head	1.2;
access;
symbols
	perseant-exfatfs-base-20250801:1.2
	perseant-exfatfs-base-20240630:1.2
	cjep_sun2x:1.2.0.14
	cjep_sun2x-base:1.2
	cjep_staticlib_x-base1:1.2
	cjep_staticlib_x:1.2.0.12
	cjep_staticlib_x-base:1.2
	phil-wifi-20200421:1.2
	phil-wifi-20200411:1.2
	phil-wifi-20200406:1.2
	pgoyette-compat-merge-20190127:1.2
	pgoyette-compat-20190127:1.2
	pgoyette-compat-20190118:1.2
	pgoyette-compat-1226:1.2
	pgoyette-compat-1126:1.2
	pgoyette-compat-1020:1.2
	pgoyette-compat-0930:1.2
	pgoyette-compat-0906:1.2
	netbsd-7-2-RELEASE:1.1.1.1
	pgoyette-compat-0728:1.2
	pgoyette-compat-0625:1.2
	pgoyette-compat-0521:1.2
	pgoyette-compat-0502:1.2
	pgoyette-compat-0422:1.2
	pgoyette-compat-0415:1.2
	pgoyette-compat-0407:1.2
	pgoyette-compat-0330:1.2
	pgoyette-compat-0322:1.2
	pgoyette-compat-0315:1.2
	netbsd-7-1-2-RELEASE:1.1.1.1
	pgoyette-compat:1.2.0.10
	pgoyette-compat-base:1.2
	netbsd-7-1-1-RELEASE:1.1.1.1
	perseant-stdc-iso10646:1.2.0.8
	perseant-stdc-iso10646-base:1.2
	prg-localcount2-base3:1.2
	prg-localcount2-base2:1.2
	prg-localcount2-base1:1.2
	prg-localcount2:1.2.0.6
	prg-localcount2-base:1.2
	pgoyette-localcount-20170426:1.2
	bouyer-socketcan-base1:1.2
	pgoyette-localcount-20170320:1.2
	netbsd-7-1:1.1.1.1.0.68
	netbsd-7-1-RELEASE:1.1.1.1
	netbsd-7-1-RC2:1.1.1.1
	netbsd-7-nhusb-base-20170116:1.1.1.1
	bouyer-socketcan:1.2.0.4
	bouyer-socketcan-base:1.2
	pgoyette-localcount-20170107:1.2
	netbsd-7-1-RC1:1.1.1.1
	pgoyette-localcount-20161104:1.2
	netbsd-7-0-2-RELEASE:1.1.1.1
	localcount-20160914:1.2
	netbsd-7-nhusb:1.1.1.1.0.66
	netbsd-7-nhusb-base:1.1.1.1
	pgoyette-localcount-20160806:1.2
	pgoyette-localcount-20160726:1.2
	pgoyette-localcount:1.2.0.2
	pgoyette-localcount-base:1.2
	netbsd-7-0-1-RELEASE:1.1.1.1
	netbsd-7-0:1.1.1.1.0.64
	netbsd-7-0-RELEASE:1.1.1.1
	netbsd-7-0-RC3:1.1.1.1
	netbsd-7-0-RC2:1.1.1.1
	netbsd-7-0-RC1:1.1.1.1
	netbsd-5-2-3-RELEASE:1.1.1.1
	netbsd-5-1-5-RELEASE:1.1.1.1
	netbsd-6-0-6-RELEASE:1.1.1.1
	netbsd-6-1-5-RELEASE:1.1.1.1
	netbsd-7:1.1.1.1.0.62
	netbsd-7-base:1.1.1.1
	yamt-pagecache-base9:1.1.1.1
	yamt-pagecache-tag8:1.1.1.1
	netbsd-6-1-4-RELEASE:1.1.1.1
	netbsd-6-0-5-RELEASE:1.1.1.1
	tls-earlyentropy:1.1.1.1.0.60
	tls-earlyentropy-base:1.1.1.1
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.1
	riastradh-drm2-base3:1.1.1.1
	netbsd-6-1-3-RELEASE:1.1.1.1
	netbsd-6-0-4-RELEASE:1.1.1.1
	netbsd-5-2-2-RELEASE:1.1.1.1
	netbsd-5-1-4-RELEASE:1.1.1.1
	netbsd-6-1-2-RELEASE:1.1.1.1
	netbsd-6-0-3-RELEASE:1.1.1.1
	netbsd-5-2-1-RELEASE:1.1.1.1
	netbsd-5-1-3-RELEASE:1.1.1.1
	netbsd-6-1-1-RELEASE:1.1.1.1
	riastradh-drm2-base2:1.1.1.1
	riastradh-drm2-base1:1.1.1.1
	riastradh-drm2:1.1.1.1.0.54
	riastradh-drm2-base:1.1.1.1
	netbsd-6-1:1.1.1.1.0.58
	netbsd-6-0-2-RELEASE:1.1.1.1
	netbsd-6-1-RELEASE:1.1.1.1
	netbsd-6-1-RC4:1.1.1.1
	netbsd-6-1-RC3:1.1.1.1
	agc-symver:1.1.1.1.0.56
	agc-symver-base:1.1.1.1
	netbsd-6-1-RC2:1.1.1.1
	netbsd-6-1-RC1:1.1.1.1
	yamt-pagecache-base8:1.1.1.1
	netbsd-5-2:1.1.1.1.0.52
	netbsd-6-0-1-RELEASE:1.1.1.1
	yamt-pagecache-base7:1.1.1.1
	netbsd-5-2-RELEASE:1.1.1.1
	netbsd-5-2-RC1:1.1.1.1
	matt-nb6-plus-nbase:1.1.1.1
	yamt-pagecache-base6:1.1.1.1
	netbsd-6-0:1.1.1.1.0.50
	netbsd-6-0-RELEASE:1.1.1.1
	netbsd-6-0-RC2:1.1.1.1
	tls-maxphys:1.1.1.1.0.48
	tls-maxphys-base:1.1.1.1
	matt-nb6-plus:1.1.1.1.0.46
	matt-nb6-plus-base:1.1.1.1
	netbsd-6-0-RC1:1.1.1.1
	yamt-pagecache-base5:1.1.1.1
	yamt-pagecache-base4:1.1.1.1
	netbsd-6:1.1.1.1.0.44
	netbsd-6-base:1.1.1.1
	netbsd-5-1-2-RELEASE:1.1.1.1
	netbsd-5-1-1-RELEASE:1.1.1.1
	yamt-pagecache-base3:1.1.1.1
	yamt-pagecache-base2:1.1.1.1
	yamt-pagecache:1.1.1.1.0.42
	yamt-pagecache-base:1.1.1.1
	cherry-xenmp:1.1.1.1.0.40
	cherry-xenmp-base:1.1.1.1
	bouyer-quota2-nbase:1.1.1.1
	bouyer-quota2:1.1.1.1.0.38
	bouyer-quota2-base:1.1.1.1
	matt-mips64-premerge-20101231:1.1.1.1
	matt-nb5-mips64-premerge-20101231:1.1.1.1
	matt-nb5-pq3:1.1.1.1.0.36
	matt-nb5-pq3-base:1.1.1.1
	netbsd-5-1:1.1.1.1.0.34
	netbsd-5-1-RELEASE:1.1.1.1
	netbsd-5-1-RC4:1.1.1.1
	matt-nb5-mips64-k15:1.1.1.1
	netbsd-5-1-RC3:1.1.1.1
	netbsd-5-1-RC2:1.1.1.1
	netbsd-5-1-RC1:1.1.1.1
	netbsd-5-0-2-RELEASE:1.1.1.1
	matt-nb5-mips64-premerge-20091211:1.1.1.1
	matt-premerge-20091211:1.1.1.1
	matt-nb5-mips64-u2-k2-k4-k7-k8-k9:1.1.1.1
	matt-nb4-mips64-k7-u2a-k9b:1.1.1.1
	matt-nb5-mips64-u1-k1-k5:1.1.1.1
	matt-nb5-mips64:1.1.1.1.0.32
	netbsd-5-0-1-RELEASE:1.1.1.1
	jym-xensuspend-nbase:1.1.1.1
	netbsd-5-0:1.1.1.1.0.30
	netbsd-5-0-RELEASE:1.1.1.1
	netbsd-5-0-RC4:1.1.1.1
	netbsd-5-0-RC3:1.1.1.1
	netbsd-5-0-RC2:1.1.1.1
	jym-xensuspend:1.1.1.1.0.28
	jym-xensuspend-base:1.1.1.1
	netbsd-5-0-RC1:1.1.1.1
	netbsd-5:1.1.1.1.0.26
	netbsd-5-base:1.1.1.1
	matt-mips64-base2:1.1.1.1
	matt-mips64:1.1.1.1.0.24
	mjf-devfs2:1.1.1.1.0.22
	mjf-devfs2-base:1.1.1.1
	netbsd-4-0-1-RELEASE:1.1.1.1
	wrstuden-revivesa-base-3:1.1.1.1
	wrstuden-revivesa-base-2:1.1.1.1
	wrstuden-fixsa-newbase:1.1.1.1
	wrstuden-revivesa-base-1:1.1.1.1
	yamt-pf42-base4:1.1.1.1
	yamt-pf42-base3:1.1.1.1
	hpcarm-cleanup-nbase:1.1.1.1
	yamt-pf42-baseX:1.1.1.1
	yamt-pf42-base2:1.1.1.1
	wrstuden-revivesa:1.1.1.1.0.20
	wrstuden-revivesa-base:1.1.1.1
	yamt-pf42:1.1.1.1.0.18
	yamt-pf42-base:1.1.1.1
	keiichi-mipv6:1.1.1.1.0.16
	keiichi-mipv6-base:1.1.1.1
	matt-armv6-nbase:1.1.1.1
	matt-armv6-prevmlocking:1.1.1.1
	wrstuden-fixsa-base-1:1.1.1.1
	netbsd-4-0:1.1.1.1.0.14
	netbsd-4-0-RELEASE:1.1.1.1
	cube-autoconf:1.1.1.1.0.12
	cube-autoconf-base:1.1.1.1
	netbsd-4-0-RC5:1.1.1.1
	netbsd-4-0-RC4:1.1.1.1
	netbsd-4-0-RC3:1.1.1.1
	netbsd-4-0-RC2:1.1.1.1
	netbsd-4-0-RC1:1.1.1.1
	matt-armv6:1.1.1.1.0.10
	matt-armv6-base:1.1.1.1
	matt-mips64-base:1.1.1.1
	hpcarm-cleanup:1.1.1.1.0.8
	hpcarm-cleanup-base:1.1.1.1
	wrstuden-fixsa:1.1.1.1.0.6
	wrstuden-fixsa-base:1.1.1.1
	abandoned-netbsd-4-base:1.1.1.1
	abandoned-netbsd-4:1.1.1.1.0.2
	netbsd-4:1.1.1.1.0.4
	netbsd-4-base:1.1.1.1
	v0_14_4:1.1.1.1
	GNU:1.1.1;
locks; strict;
comment	@# @;


1.2
date	2016.01.13.01.59.40;	author christos;	state dead;
branches;
next	1.1;
commitid	U9rtUbw2y5ZheIQy;

1.1
date	2005.04.29.14.56.47;	author christos;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2005.04.29.14.56.47;	author christos;	state Exp;
branches;
next	;


desc
@@


1.2
log
@gettext has moved.
@
text
@#
# OS/2 GNU Makefile for building gettext with GNU Make and GNU C compiler
#
# OS/2 still supports the regular configure/make building mechanism, but its
# way more clumsy, complicated and error prone. It is highly recommended to
# use this makefile instead, because :
# - this makefile builds an optimized static and dynamic version of the
#   library
# - it is able to build both optimized and debug versions of the library
#   without any reconfiguring
# - this makefile builds an backward compatible DLL. When building with
#   configure you will get a DLL which is compatible only with the 0.10.40
#   and later DLLs of gettext; this makefile builds a DLL which is binary
#   compatible with gettext 0.10.35 (exports by ordinal matter).
# - it is able to generate a complete OS/2 binary distribution (make distr)
# - besides its simply alot faster than configure generated makefiles
#
# The makefile is designed to be more or less gettext version independent,
# so it is likely to work with future versions of gettext as well.
#
# If you get unresolved dependencies (e.g. "don't know how to make somefile.h
# which is required for zzz.o) remove (or rebuild, if you have the makedep tool)
# the depend.mak file which contains all the dependencies.
#

# Use CMD.EXE as shell since its way faster
SHELL = $(COMSPEC)
# An Unix-like shell (needed for running config.charset)
UNIXSHELL = sh.exe

# Debug mode (1) or optimize mode (0)
DEBUG = 0

# The version of INTL.DLL (the name suffix)
INTLDLLVER =

# Pack the DLL and executables with lxlite
LXLITE = 1

# Output directory
OUT = out/$(OUT.SUFFIX)/
# Root package directory
ROOT = ../
# The base directory for distribution archive (emx/ or usr/)
INST = emx/

# Tools
CC = gcc -c
CFLAGS = -Wall -Zmt $(INCLUDE) $(DEFS)
INCLUDE = -I. -I$(ROOT) -I$(ROOT)intl -I$(ROOT)src -I$(ROOT)lib -I$(ROOT)libuniname
DEFS = -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" \
  -DLOCALEDIR=\"/usr/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/share/locale\" \
  -DGETTEXTDATADIR=\"/usr/share/gettext\" \
  -DPROJECTSDIR=\"/usr/share/gettext/projects\" \
  -DGETTEXTJAR=\"/usr/share/gettext/gettext.jar\"


LD = gcc
LDFLAGS = -Zmt -Zcrtdll
LDFLAGS.SHARED = -Zmt -Zcrtdll -Zdll
LIBS = -liconv -liberty -lgcc

AR = ar
ARFLAGS = crs

MKDIR = mkdir.exe -p
COPY = cp -p

LINKINTL = $(OUT)intl.a

ifeq ($(DEBUG),0)
  CFLAGS += -s -O2
  LDFLAGS += -s -Zexe
  LDFLAGS.SHARED += -s
  OUT.SUFFIX = release
else
  CFLAGS += -g
  LDFLAGS += -g -Zexe
  LDFLAGS.SHARED += -g
  OUT.SUFFIX = debug
  LXLITE := 0
  LINKINTL = $(OUT)intl_s.a
endif

# Languages with encodings unsupported by OS/2 API (BIG5)
BAD.LINGUAS=zh

# The list of languages to be included in binary distribution
LINGUAS = $(filter-out $(BAD.LINGUAS),$(shell sed -e "/^\#/d" $(ROOT)po/LINGUAS))

# Fetch version number from configure.in
VERSION = $(shell sed ../configure.in -ne "/AM_INIT_AUTOMAKE/{" -e "s/.*(gettext, *\\(.*\\))/\\1/" -e "p" -e "}")

# Fetch the list of source files for libintl from intl/Makefile.in
INTL.SOURCES = $(addprefix $(ROOT)intl/,\
  $(subst $$lo,c,\
  $(subst @@INTLOBJS@@,intl-compat.c,\
  $(subst OBJECTS = ,,\
  $(subst \,,\
  $(shell sed $(ROOT)intl/Makefile.in -ne "/^OBJECTS =/,/[^\]$$/p"))))))
INTL.OBJECTS = $(addprefix $(OUT),$(subst $(ROOT),,$(INTL.SOURCES:.c=.o)))

PROGRAMS = $(addsuffix .exe,$(subst bin_PROGRAMS = ,,\
  $(subst \,,\
  $(shell sed $(ROOT)src/Makefile.am -ne "/^bin_PROGRAMS =/,/[^\]$$/p"))))
PROGRAMS.EXE = $(addprefix $(OUT),$(PROGRAMS))
SRC.SOURCES = $(filter-out $(addprefix $(ROOT)src/,$(PROGRAMS:.exe=.c)),\
  $(wildcard $(ROOT)src/*.c))
SRC.OBJECTS = $(addprefix $(OUT),$(subst $(ROOT),,$(SRC.SOURCES:.c=.o)))
LIB.SOURCES = $(addprefix $(ROOT)lib/, error.c stpcpy.c stpncpy.c mkdtemp.c getline.c \
  $(subst libgettextlib_la_SOURCES = ,,\
  $(subst \,,\
  $(patsubst %.h,,\
  $(patsubst getopt%.c,,\
  $(shell sed $(ROOT)lib/Makefile.am -ne "/^libgettextlib_la_SOURCES =/,/[^\]$$/p"))))))
LIB.OBJECTS = $(addprefix $(OUT),$(subst $(ROOT),,$(LIB.SOURCES:.c=.o)))

LIBUNINAME.SOURCES = $(addprefix $(ROOT)libuniname/, \
  $(subst libuniname_a_SOURCES = ,,\
  $(subst \,,\
  $(patsubst %.h,,\
  $(shell sed $(ROOT)libuniname/Makefile.am -ne "/^libuniname_a_SOURCES =/,/^$$/p")))))
LIBUNINAME.OBJECTS = $(addprefix $(OUT),$(subst $(ROOT),,$(LIBUNINAME.SOURCES:.c=.o)))

OUTDIRS = $(OUT) $(sort $(dir $(INTL.OBJECTS) $(SRC.OBJECTS) $(LIB.OBJECTS) \
  $(LIBUNINAME.OBJECTS) $(INSTALL.FILES)))

INSTALL.FILES = $(addprefix $(INST)bin/,$(PROGRAMS)) \
  $(INST)lib/intl.a $(INST)lib/intl_s.a $(INST)include/libintl.h \
  $(INST)dll/intl.dll $(INST)share/locale/charset.alias \
  $(INST)share/locale/locale.alias $(INST)doc/gettext-$(VERSION)/README.OS2 \
  $(INST)doc/gettext-$(VERSION)/COPYING $(INST)doc/gettext-$(VERSION)/README \
  $(addsuffix /LC_MESSAGES/gettext.mo,$(addprefix $(INST)share/locale/,$(LINGUAS))) \
  $(INSTALL.DIFF)

.SUFFIXES:
.SUFFIXES: .o .a .def .exe .dll .po .mo
.PRECIOUS: $(OUT)%.o $(OUT)%.a

.PHONY: all depend clean distr rmzip

$(OUT)%.o: $(ROOT)%.c
	$(CC) $(CFLAGS) -o $@@ $<

# To avoid playing with object file lists for every program we will build
# instead a library containing all the object files from src directory, and
# then link the library against the main program module, so that linker can
# pull all the required functions from there
$(OUT)%.exe: $(OUT)src/%.o $(OUT)util.a $(OUT)uniname.a $(LINKINTL)
	$(LD) $(LDFLAGS) -o $@@ $^ $(LIBS)
ifeq ($(LXLITE),1)
	lxlite /b- $@@
endif

all: config.h $(OUTDIRS) $(ROOT)src/po-gram-gen2.h $(ROOT)lib/stdbool.h \
  $(ROOT)intl/libintl.h $(OUT)intl.a $(OUT)intl_s.a $(OUT)intl$(INTLDLLVER).dll \
  $(PROGRAMS.EXE)

define MAKEDEP
	echo $(OUT)PATH = FILENAME
	makedep $(INCLUDE) $(DEFS) -p $$(OUT)PATH -r -a FILENAME -c -f depend.mak

endef

depend: $(INTL.SOURCES) $(SRC.SOURCES)
# Remove all dependencies
	rm -f depend.mak
# Build dependencies, by one file (to avoid 1024 chars command line length limit)
	@@$(foreach fn,$^,$(subst PATH,$(subst ../,,$(dir $(fn))),$(subst FILENAME,$(fn),$(MAKEDEP))))

clean:
	rm -rf out emx config.h

distr: all rmzip gettext-os2-$(VERSION)-bin.zip

rmzip:
	rm -f gettext-os2-$(VERSION)-bin.zip

# How to configure without configure...
config.h: ../config.h.in ./configure.awk
	gawk -f configure.awk -v PACKAGE=gettext -v VERSION=$(VERSION) $< >config.h

$(OUTDIRS):
	$(MKDIR) $(@@:/=)

$(OUT)intl_s.a: $(INTL.OBJECTS)
	$(AR) $(ARFLAGS) $@@ $^

$(OUT)intl.def: $(INTL.OBJECTS)
	@@echo LIBRARY INTL$(INTLDLLVER) INITINSTANCE TERMINSTANCE>$@@
	@@echo DESCRIPTION "GNU gettext internationalization library version $(VERSION)">>$@@
	@@echo DATA MULTIPLE NONSHARED>>$@@
	@@echo EXPORTS>>$@@
	type backward.def>>$@@
	emxexp -u $^ >>$@@

$(OUT)intl$(INTLDLLVER).dll: $(INTL.OBJECTS) $(OUT)intl.def
	@@echo *********************************************************
	@@echo *** YOU CAN SAFELY IGNORE WARNINGS FROM EMXBIND BELOW ***
	@@echo *********************************************************
	$(LD) $(LDFLAGS.SHARED) -o $@@ $^ $(LIBS)
ifeq ($(LXLITE),1)
	lxlite $@@
endif

# How to build an import library from a .DEF file
$(OUT)%.a: $(OUT)%.def
	emximp -o $@@ $<

$(OUT)util.a: $(SRC.OBJECTS) $(LIB.OBJECTS)
	$(AR) $(ARFLAGS) $@@ $^

$(OUT)uniname.a: $(LIBUNINAME.OBJECTS)
	$(AR) $(ARFLAGS) $@@ $^

$(ROOT)src/po-gram-gen2.h: $(ROOT)src/po-gram-gen.h
	sed -e "s/[yY][yY]/po_gram_/g" $< > $@@

$(ROOT)intl/libintl.h: $(ROOT)intl/libgnuintl.h 
	$(COPY) $< $@@

$(ROOT)lib/stdbool.h: $(ROOT)lib/stdbool.h.in
	$(COPY) $< $@@

gettext-os2-$(VERSION)-bin.zip: $(INSTALL.FILES)
	@@rm -f $@@
	zip -9XD $@@ $^

# The following rules are for `make distr' target only

$(INST)share/locale/charset.alias: $(ROOT)lib/config.charset
	$(UNIXSHELL) $< i386-pc-os2-emx >$@@
$(INST)share/locale/locale.alias: $(ROOT)intl/locale.alias
	$(COPY) $< $@@
$(INST)bin/% $(INST)lib/% $(INST)dll/%: $(OUT)%
	$(COPY) $< $@@
$(INST)include/%: $(ROOT)intl/%
	$(COPY) $< $@@
$(INST)doc/gettext-$(VERSION)/%: $(ROOT)%
	$(COPY) $< $@@
$(INST)doc/gettext-$(VERSION)/% $(INST)include/%: %
	$(COPY) $< $@@
$(INST)share/locale/%/LC_MESSAGES/gettext.mo: $(ROOT)po/%.po
	$(MKDIR) $(dir $@@)
	$(COMSPEC) /c "$(subst /,\\,set BEGINLIBPATH=$(OUT:/=) && \
	  $(OUT)msgfmt.exe) --statistics --verbose -o $@@ $<"

-include depend.mak
@


1.1
log
@Initial revision
@
text
@@


1.1.1.1
log
@ftp ftp.gnu.org
@
text
@@
