]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
OS/2 port update.
authorBruno Haible <bruno@clisp.org>
Wed, 13 Feb 2002 13:56:35 +0000 (13:56 +0000)
committerBruno Haible <bruno@clisp.org>
Sun, 21 Jun 2009 23:22:04 +0000 (01:22 +0200)
ChangeLog
os2/Makefile
os2/README.OS2

index 15dfc368f9f3814b131cd80e032967ff7bdf9c72..d1e1b1ebcda5c2dfc636e04a304ac076f39483b4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-02-14  Andrew Zabolotny  <zap@cobra.ru>
+
+       * os2/README.OS2: Update.
+       * os2/Makefile: Update.
+
 2002-02-10  Bruno Haible  <bruno@clisp.org>
 
        * Makefile.am (EXTRA_DIST): Remove os2/iconv/README.
index a598737abcf988c76a5d48203ab401d5f87e8fb5..09d78e5a614e46847b7d65c8476955573586ebf5 100644 (file)
-#\r
-# OS/2 GNU Makefile for building gettext with GNU Make and GNU C compiler\r
-#\r
-# OS/2 still supports the regular configure/make building mechanism, but its\r
-# way more clumsy, complicated and error prone. It is highly recommended to\r
-# use this makefile instead, because :\r
-# - this makefile builds an optimized static and dynamic version of the\r
-#   library\r
-# - it is able to build both optimized and debug versions of the library\r
-#   without any reconfiguring\r
-# - this makefile builds an backward compatible DLL. When building with\r
-#   configure you will get a DLL which is compatible only with the 0.10.40\r
-#   and later DLLs of gettext; this makefile builds a DLL which is binary\r
-#   compatible with gettext 0.10.35 (exports by ordinal matter).\r
-# - it is able to generate a complete OS/2 binary distribution (make distr)\r
-# - besides its simply alot faster than configure generated makefiles\r
-#\r
-# The makefile is designed to be more or less gettext version independent,\r
-# so it is likely to work with future versions of gettext as well.\r
-#\r
-\r
-# Use CMD.EXE as shell since its way faster\r
-SHELL = $(COMSPEC)\r
-# An Unix-like shell (needed for running config.charset)\r
-UNIXSHELL = sh.exe\r
-\r
-# Debug mode (1) or optimize mode (0)\r
-DEBUG = 0\r
-\r
-# The version of INTL.DLL (the name suffix)\r
-INTLDLLVER =\r
-\r
-# Pack the DLL and executables with lxlite\r
-LXLITE = 1\r
-\r
-# Output directory\r
-OUT = out/$(OUT.SUFFIX)/\r
-# Root package directory\r
-ROOT = ../\r
-# The base directory for distribution archive (emx/ or usr/)\r
-INST = emx/\r
-\r
-# Tools\r
-CC = gcc -c\r
-CFLAGS = -Wall -Zmt $(INCLUDE) $(DEFS)\r
-INCLUDE = -I. -I$(ROOT) -I$(ROOT)intl -I$(ROOT)src -I$(ROOT)lib\r
-DEFS = -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" \\r
-  -DLOCALEDIR=\"/usr/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/share/locale\" \\r
-  -DPROJECTSDIR=\"/usr/share/gettext/projects\" \\r
-  -DGETTEXTJAR=\"/usr/share/gettext/gettext.jar\"\r
-\r
-LD = gcc\r
-LDFLAGS = -Zmt -Zcrtdll\r
-LDFLAGS.SHARED = -Zmt -Zcrtdll -Zdll\r
-LIBS = -liberty -lgcc\r
-\r
-AR = ar\r
-ARFLAGS = crs\r
-\r
-MKDIR = mkdir.exe -p\r
-COPY = cp -p\r
-\r
-LINKINTL = $(OUT)intl.a\r
-\r
-ifeq ($(DEBUG),0)\r
-  CFLAGS += -s -O2\r
-  LDFLAGS += -s -Zexe\r
-  LDFLAGS.SHARED += -s\r
-  OUT.SUFFIX = release\r
-else\r
-  CFLAGS += -g\r
-  LDFLAGS += -g -Zexe\r
-  LDFLAGS.SHARED += -g\r
-  OUT.SUFFIX = debug\r
-  LXLITE := 0\r
-  LINKINTL = $(OUT)intl_s.a\r
-endif\r
-\r
-# Languages with encodings unsupported by OS/2 API (BIG5)\r
-BAD.LINGUAS=zh\r
-\r
-# The list of languages to be included in binary distribution\r
-LINGUAS = $(filter-out $(BAD.LINGUAS),$(shell sed -e "/^\#/d" $(ROOT)po/LINGUAS))\r
-\r
-# Fetch version number from configure.in\r
-VERSION = $(shell sed ../configure.in -ne "/AM_INIT_AUTOMAKE/{" -e "s/.*(gettext, *\\(.*\\))/\\1/" -e "p" -e "}")\r
-\r
-# Fetch the list of source files for libintl from intl/Makefile.in\r
-INTL.SOURCES = $(addprefix $(ROOT)intl/,\\r
-  $(subst $$lo,c,\\r
-  $(subst @INTLOBJS@,intl-compat.c,\\r
-  $(subst OBJECTS = ,,\\r
-  $(subst \,,\\r
-  $(shell sed $(ROOT)intl/Makefile.in -ne "/^OBJECTS =/,/[^\]$$/p"))))))\r
-INTL.OBJECTS = $(addprefix $(OUT),$(subst $(ROOT),,$(INTL.SOURCES:.c=.o)))\r
-\r
-PROGRAMS = $(addsuffix .exe,$(subst bin_PROGRAMS = ,,\\r
-  $(subst \,,\\r
-  $(shell sed $(ROOT)src/Makefile.am -ne "/^bin_PROGRAMS =/,/[^\]$$/p"))))\r
-PROGRAMS.EXE = $(addprefix $(OUT),$(PROGRAMS))\r
-SRC.SOURCES = $(filter-out $(addprefix $(ROOT)src/,$(PROGRAMS:.exe=.c)),\\r
-  $(wildcard $(ROOT)src/*.c))\r
-SRC.OBJECTS = $(addprefix $(OUT),$(subst $(ROOT),,$(SRC.SOURCES:.c=.o)))\r
-LIB.SOURCES = $(addprefix $(ROOT)lib/, error.c stpcpy.c stpncpy.c mkdtemp.c getline.c \\r
-  $(subst libgettextlib_la_SOURCES = ,,\\r
-  $(subst \,,\\r
-  $(patsubst getopt%.c,,\\r
-  $(shell sed $(ROOT)lib/Makefile.am -ne "/^libgettextlib_la_SOURCES =/,/[^\]$$/p")))))\r
-LIB.OBJECTS = $(addprefix $(OUT),$(subst $(ROOT),,$(LIB.SOURCES:.c=.o)))\r
-\r
-OUTDIRS = $(OUT) $(sort $(dir $(INTL.OBJECTS) $(SRC.OBJECTS) $(LIB.OBJECTS) $(INSTALL.FILES)))\r
-\r
-INSTALL.FILES = $(addprefix $(INST)bin/,$(PROGRAMS)) \\r
-  $(INST)lib/intl.a $(INST)lib/intl_s.a $(INST)lib/iconv.a \\r
-  $(INST)include/libintl.h $(INST)include/iconv.h $(INST)dll/intl.dll \\r
-  $(INST)share/locale/charset.alias $(INST)share/locale/locale.alias \\r
-  $(INST)doc/gettext-$(VERSION)/README.OS2 \\r
-  $(INST)doc/gettext-$(VERSION)/COPYING $(INST)doc/gettext-$(VERSION)/README \\r
-  $(addsuffix /LC_MESSAGES/gettext.mo,$(addprefix $(INST)share/locale/,$(LINGUAS))) \\r
-  $(INSTALL.DIFF)\r
-\r
-.SUFFIXES:\r
-.SUFFIXES: .o .a .def .exe .dll .po .mo\r
-.PRECIOUS: $(OUT)%.o $(OUT)%.a\r
-\r
-.PHONY: all depend clean distr rmzip\r
-\r
-$(OUT)%.o: $(ROOT)%.c\r
-       $(CC) $(CFLAGS) -o $@ $<\r
-\r
-# To avoid playing with object file lists for every program we will build\r
-# instead a library containing all the object files from src directory, and\r
-# then link the library against the main program module, so that linker can\r
-# pull all the required functions from there\r
-$(OUT)%.exe: $(OUT)src/%.o $(OUT)util.a $(LINKINTL)\r
-       $(LD) $(LDFLAGS) -o $@ $^ $(LIBS)\r
-ifeq ($(LXLITE),1)\r
-       lxlite /b- $@\r
-endif\r
-\r
-all: config.h $(OUTDIRS) $(ROOT)src/po-gram-gen2.h $(ROOT)intl/libintl.h \\r
-  $(OUT)intl.a $(OUT)intl_s.a $(OUT)intl$(INTLDLLVER).dll $(PROGRAMS.EXE)\r
-\r
-define MAKEDEP\r
-       echo $(OUT)PATH = FILENAME\r
-       makedep $(INCLUDE) $(DEFS) -p $$(OUT)PATH -r -a FILENAME\r
-\r
-endef\r
-\r
-depend: $(INTL.SOURCES) $(SRC.SOURCES)\r
-# Remove all dependencies\r
-       @makedep os2compat.h\r
-# Build dependencies, by one file (to avoid 1024 chars command line length limit)\r
-       @$(foreach fn,$^,$(subst PATH,$(subst ../,,$(dir $(fn))),$(subst FILENAME,$(fn),$(MAKEDEP))))\r
-       @rm -f __tmp__\r
-\r
-clean:\r
-       rm -rf out emx\r
-\r
-distr: all rmzip gettext-os2-$(VERSION)-bin.zip\r
-\r
-rmzip:\r
-       rm -f gettext-os2-$(VERSION)-bin.zip\r
-\r
-# How to configure without configure...\r
-config.h: ../config.h.in ./configure.awk\r
-       gawk -f configure.awk -v PACKAGE=gettext -v VERSION=$(VERSION) $< >config.h\r
-\r
-$(OUTDIRS):\r
-       $(MKDIR) $(@:/=)\r
-\r
-$(OUT)intl_s.a: $(INTL.OBJECTS)\r
-       $(AR) $(ARFLAGS) $@ $^\r
-\r
-$(OUT)intl.def: $(INTL.OBJECTS)\r
-       @echo LIBRARY INTL$(INTLDLLVER) INITINSTANCE TERMINSTANCE>$@\r
-       @echo DESCRIPTION "GNU gettext internationalization library version $(VERSION)">>$@\r
-       @echo DATA MULTIPLE NONSHARED>>$@\r
-       @echo EXPORTS>>$@\r
-       type backward.def>>$@\r
-       emxexp $^ >>$@\r
-\r
-$(OUT)intl$(INTLDLLVER).dll: $(INTL.OBJECTS) $(OUT)intl.def\r
-       @echo *********************************************************\r
-       @echo *** YOU CAN SAFELY IGNORE WARNINGS FROM EMXBIND BELOW ***\r
-       @echo *********************************************************\r
-       $(LD) $(LDFLAGS.SHARED) -o $@ $^ $(LIBS)\r
-ifeq ($(LXLITE),1)\r
-       lxlite $@\r
-endif\r
-\r
-# How to build an import library from a .DEF file\r
-$(OUT)%.a: $(OUT)%.def\r
-       emximp -o $@ $<\r
-\r
-# iconv.a is just a subset of intl.a (imports from INTL.DLL)\r
-$(OUT)iconv.def:\r
-       @echo LIBRARY INTL$(INTLDLLVER) INITINSTANCE TERMINSTANCE>$@\r
-       @echo EXPORTS>>$@\r
-       @echo iconv_open>>$@\r
-       @echo iconv>>$@\r
-       @echo iconv_close>>$@\r
-\r
-$(OUT)util.a: $(SRC.OBJECTS) $(LIB.OBJECTS)\r
-       $(AR) $(ARFLAGS) $@ $^\r
-\r
-$(ROOT)src/po-gram-gen2.h: $(ROOT)src/po-gram-gen.h\r
-       sed -e "s/[yY][yY]/po_gram_/g" $< > $@\r
-\r
-$(ROOT)intl/libintl.h: $(ROOT)intl/libgnuintl.h \r
-       $(COPY) $< $@\r
-\r
-gettext-os2-$(VERSION)-bin.zip: $(INSTALL.FILES)\r
-       @rm -f $@\r
-       zip -9XD $@ $^\r
-\r
-# The following rules are for `make distr' target only\r
-\r
-$(INST)share/locale/charset.alias: $(ROOT)lib/config.charset\r
-       $(UNIXSHELL) $< i386-pc-os2-emx >$@\r
-$(INST)share/locale/locale.alias: $(ROOT)intl/locale.alias\r
-       $(COPY) $< $@\r
-$(INST)bin/% $(INST)lib/% $(INST)dll/%: $(OUT)%\r
-       $(COPY) $< $@\r
-$(INST)include/%: $(ROOT)intl/%\r
-       $(COPY) $< $@\r
-$(INST)doc/gettext-$(VERSION)/%: $(ROOT)%\r
-       $(COPY) $< $@\r
-$(INST)doc/gettext-$(VERSION)/% $(INST)include/%: %\r
-       $(COPY) $< $@\r
-$(INST)share/locale/%/LC_MESSAGES/gettext.mo: $(ROOT)po/%.po\r
-       $(MKDIR) $(dir $@)\r
-       $(COMSPEC) /c "$(subst /,\\,set BEGINLIBPATH=$(OUT:/=) && \\r
-         $(OUT)msgfmt.exe) --statistics --verbose -o $@ $<"\r
-\r
-# DO NOT DELETE this line -- makedep depends on it!\r
-\r
-$(OUT)intl/intl-compat.o: ../intl/libgnuintl.h ../intl/gettextP.h \\r
-  ../intl/loadinfo.h ../intl/gettext.h\r
-\r
-$(OUT)intl/bindtextdom.o: ../intl/libgnuintl.h ../intl/gettextP.h \\r
-  ../intl/loadinfo.h ../intl/gettext.h\r
-\r
-$(OUT)intl/dcgettext.o: ../intl/gettextP.h ../intl/loadinfo.h \\r
-  ../intl/gettext.h ../intl/libgnuintl.h\r
-\r
-$(OUT)intl/dgettext.o: ../intl/gettextP.h ../intl/loadinfo.h \\r
-  ../intl/gettext.h ../intl/libgnuintl.h\r
-\r
-$(OUT)intl/gettext.o: ../intl/gettextP.h ../intl/loadinfo.h ../intl/gettext.h \\r
-  ../intl/libgnuintl.h\r
-\r
-$(OUT)intl/finddomain.o: ../intl/gettextP.h ../intl/loadinfo.h \\r
-  ../intl/gettext.h ../intl/libgnuintl.h\r
-\r
-$(OUT)intl/loadmsgcat.o: ../intl/gettext.h ../intl/gettextP.h \\r
-  ../intl/loadinfo.h ../intl/plural-exp.h\r
-\r
-$(OUT)intl/localealias.o: ../intl/gettextP.h ../intl/loadinfo.h \\r
-  ../intl/gettext.h\r
-\r
-$(OUT)intl/textdomain.o: ../intl/libgnuintl.h ../intl/gettextP.h \\r
-  ../intl/loadinfo.h ../intl/gettext.h\r
-\r
-$(OUT)intl/l10nflist.o: ../intl/loadinfo.h\r
-\r
-$(OUT)intl/explodename.o: ../intl/loadinfo.h\r
-\r
-$(OUT)intl/dcigettext.o: ../intl/gettextP.h ../intl/loadinfo.h \\r
-  ../intl/gettext.h ../intl/plural-exp.h ../intl/libgnuintl.h \\r
-  ../intl/hash-string.h ../intl/plural-eval.c\r
-\r
-$(OUT)intl/dcngettext.o: ../intl/gettextP.h ../intl/loadinfo.h \\r
-  ../intl/gettext.h ../intl/libgnuintl.h\r
-\r
-$(OUT)intl/dngettext.o: ../intl/gettextP.h ../intl/loadinfo.h \\r
-  ../intl/gettext.h ../intl/libgnuintl.h\r
-\r
-$(OUT)intl/ngettext.o: ../intl/gettextP.h ../intl/loadinfo.h \\r
-  ../intl/gettext.h ../intl/libgnuintl.h\r
-\r
-$(OUT)intl/plural.o: ../intl/plural-exp.h\r
-\r
-$(OUT)intl/plural-exp.o: ../intl/plural-exp.h\r
-\r
-$(OUT)intl/osdep.o: os2compat.c iconv.c iconv.h\r
-\r
-$(OUT)src/dir-list.o: config.h ../os2/os2compat.h ../src/dir-list.h \\r
-  ../lib/system.h ../src/str-list.h\r
-\r
-$(OUT)src/file-list.o: config.h ../os2/os2compat.h ../src/file-list.h \\r
-  ../src/str-list.h ../lib/error.h ../lib/system.h ../lib/getline.h \\r
-  ../intl/libgettext.h\r
-\r
-$(OUT)src/format-c.o: ../src/format.h ../src/pos.h ../src/message.h \\r
-  ../src/str-list.h ../lib/hash.h ../lib/xmalloc.h ../lib/error.h \\r
-  ../lib/progname.h ../intl/libgettext.h\r
-\r
-$(OUT)src/format-java.o: ../src/format.h ../src/pos.h ../src/message.h \\r
-  ../src/str-list.h ../lib/hash.h ../lib/c-ctype.h ../lib/xmalloc.h \\r
-  ../lib/error.h ../lib/progname.h ../intl/libgettext.h\r
-\r
-$(OUT)src/format-librep.o: ../src/format.h ../src/pos.h ../src/message.h \\r
-  ../src/str-list.h ../lib/hash.h ../lib/xmalloc.h ../lib/error.h \\r
-  ../lib/progname.h ../intl/libgettext.h\r
-\r
-$(OUT)src/format-lisp.o: ../src/format.h ../src/pos.h ../src/message.h \\r
-  ../src/str-list.h ../lib/hash.h ../lib/c-ctype.h ../lib/gcd.h \\r
-  ../lib/xmalloc.h ../lib/system.h ../lib/error.h ../lib/progname.h \\r
-  ../intl/libgettext.h\r
-\r
-$(OUT)src/format-pascal.o: ../src/format.h ../src/pos.h ../src/message.h \\r
-  ../src/str-list.h ../lib/hash.h ../lib/c-ctype.h ../lib/xmalloc.h \\r
-  ../lib/error.h ../lib/progname.h ../intl/libgettext.h\r
-\r
-$(OUT)src/format-python.o: ../src/format.h ../src/pos.h ../src/message.h \\r
-  ../src/str-list.h ../lib/hash.h ../lib/xmalloc.h ../lib/error.h \\r
-  ../lib/progname.h ../intl/libgettext.h\r
-\r
-$(OUT)src/format-ycp.o: ../src/format.h ../src/pos.h ../src/message.h \\r
-  ../src/str-list.h ../lib/hash.h ../lib/xmalloc.h ../lib/error.h \\r
-  ../lib/progname.h ../intl/libgettext.h\r
-\r
-$(OUT)src/format.o: ../src/format.h ../src/pos.h ../src/message.h \\r
-  ../src/str-list.h ../lib/hash.h\r
-\r
-$(OUT)src/hostname.o: config.h ../os2/os2compat.h ../lib/error.h \\r
-  ../lib/progname.h ../lib/basename.h ../lib/xmalloc.h ../lib/system.h \\r
-  ../intl/libgettext.h\r
-\r
-$(OUT)src/message.o: ../src/message.h ../src/str-list.h ../src/pos.h \\r
-  ../lib/hash.h ../lib/fstrcmp.h ../src/format.h ../lib/xmalloc.h \\r
-  ../lib/strstr.h ../lib/system.h\r
-\r
-$(OUT)src/msgl-ascii.o: config.h ../os2/os2compat.h ../src/msgl-ascii.h \\r
-  ../src/message.h ../src/str-list.h ../src/pos.h ../lib/hash.h \\r
-  ../lib/c-ctype.h\r
-\r
-$(OUT)src/msgl-cat.o: config.h ../os2/os2compat.h ../src/msgl-cat.h \\r
-  ../src/message.h ../src/str-list.h ../src/pos.h ../lib/hash.h \\r
-  ../lib/error.h ../lib/xerror.h ../src/read-po.h ../src/po-charset.h \\r
-  ../src/msgl-ascii.h ../src/msgl-equal.h ../src/msgl-iconv.h \\r
-  ../lib/xmalloc.h ../lib/strstr.h ../lib/basename.h ../lib/system.h \\r
-  ../intl/libgettext.h\r
-\r
-$(OUT)src/msgl-charset.o: config.h ../os2/os2compat.h ../src/msgl-charset.h \\r
-  ../src/message.h ../src/str-list.h ../src/pos.h ../lib/hash.h \\r
-  ../src/po-charset.h ../lib/error.h ../lib/progname.h ../lib/basename.h \\r
-  ../lib/xerror.h ../lib/strstr.h ../lib/system.h ../intl/libgettext.h\r
-\r
-$(OUT)src/msgl-english.o: config.h ../os2/os2compat.h ../src/msgl-english.h \\r
-  ../src/message.h ../src/str-list.h ../src/pos.h ../lib/hash.h \\r
-  ../lib/xmalloc.h\r
-\r
-$(OUT)src/msgl-equal.o: config.h ../os2/os2compat.h ../src/msgl-equal.h \\r
-  ../src/message.h ../src/str-list.h ../src/pos.h ../lib/hash.h\r
-\r
-$(OUT)src/msgl-iconv.o: config.h ../os2/os2compat.h ../src/msgl-iconv.h \\r
-  ../src/message.h ../src/str-list.h ../src/pos.h ../lib/hash.h \\r
-  ../lib/error.h ../lib/progname.h ../lib/basename.h ../src/po-charset.h \\r
-  ../src/msgl-ascii.h ../lib/xmalloc.h ../lib/strstr.h ../lib/system.h \\r
-  ../intl/libgettext.h\r
-\r
-$(OUT)src/open-po.o: ../src/open-po.h ../src/dir-list.h ../lib/error.h \\r
-  ../lib/system.h ../intl/libgettext.h\r
-\r
-$(OUT)src/plural-eval.o: ../intl/plural-exp.h ../intl/plural-eval.c\r
-\r
-$(OUT)src/plural.o: ../intl/plural.c ../intl/plural-exp.h \\r
-  ../intl/plural-exp.c\r
-\r
-$(OUT)src/po-charset.o: config.h ../os2/os2compat.h ../src/po-charset.h \\r
-  ../lib/error.h ../lib/xerror.h ../lib/basename.h ../lib/strstr.h \\r
-  ../lib/system.h ../intl/libgettext.h\r
-\r
-$(OUT)src/po-gram-gen.o: config.h ../os2/os2compat.h ../src/po-gram.h \\r
-  ../src/str-list.h ../src/po-lex.h ../lib/error.h ../lib/progname.h \\r
-  ../src/pos.h ../lib/xerror.h ../lib/xmalloc.h ../intl/libgettext.h \\r
-  ../src/po.h ../src/message.h ../lib/hash.h\r
-\r
-$(OUT)src/po-hash-gen.o: config.h ../os2/os2compat.h ../src/po-hash.h \\r
-  ../lib/xmalloc.h ../src/po.h ../src/po-lex.h ../lib/error.h \\r
-  ../lib/progname.h ../src/pos.h ../lib/xerror.h ../src/message.h \\r
-  ../src/str-list.h ../lib/hash.h\r
-\r
-$(OUT)src/po-lex.o: config.h ../os2/os2compat.h ../src/po-lex.h \\r
-  ../lib/error.h ../lib/progname.h ../src/pos.h ../lib/xerror.h \\r
-  ../lib/c-ctype.h ../lib/linebreak.h ../intl/libgettext.h \\r
-  ../src/str-list.h ../src/po-charset.h ../lib/xmalloc.h ../lib/system.h \\r
-  ../src/open-po.h ../src/po-gram-gen2.h ../lib/utf8-ucs4.h\r
-\r
-$(OUT)src/po-time.o: ../src/po-time.h ../lib/xerror.h ../lib/error.h\r
-\r
-$(OUT)src/po.o: config.h ../os2/os2compat.h ../src/po.h ../src/po-lex.h \\r
-  ../lib/error.h ../lib/progname.h ../src/pos.h ../lib/xerror.h \\r
-  ../src/message.h ../src/str-list.h ../lib/hash.h ../src/po-charset.h \\r
-  ../src/po-hash.h ../lib/xmalloc.h\r
-\r
-$(OUT)src/read-java.o: ../src/read-java.h ../src/message.h ../src/str-list.h \\r
-  ../src/pos.h ../lib/hash.h ../src/msgunfmt.h ../lib/javaexec.h \\r
-  ../lib/pipe.h ../lib/wait-process.h ../src/read-po.h ../lib/error.h \\r
-  ../lib/system.h ../intl/libgettext.h\r
-\r
-$(OUT)src/read-mo.o: ../src/read-mo.h ../src/message.h ../src/str-list.h \\r
-  ../src/pos.h ../lib/hash.h ../intl/gettext.h ../lib/error.h \\r
-  ../lib/xmalloc.h ../lib/system.h ../intl/libgettext.h\r
-\r
-$(OUT)src/read-po.o: ../src/read-po.h ../src/message.h ../src/str-list.h \\r
-  ../src/pos.h ../lib/hash.h ../src/po.h ../src/po-lex.h ../lib/error.h \\r
-  ../lib/progname.h ../lib/xerror.h ../lib/xmalloc.h ../intl/libgettext.h\r
-\r
-$(OUT)src/str-list.o: config.h ../os2/os2compat.h ../src/str-list.h \\r
-  ../lib/xmalloc.h\r
-\r
-$(OUT)src/urlget.o: config.h ../os2/os2compat.h ../lib/error.h \\r
-  ../lib/progname.h ../lib/basename.h ../lib/full-write.h ../lib/execute.h \\r
-  ../lib/javaexec.h ../lib/system.h ../intl/libgettext.h\r
-\r
-$(OUT)src/write-java.o: ../src/write-java.h ../src/message.h \\r
-  ../src/str-list.h ../src/pos.h ../lib/hash.h ../lib/c-ctype.h \\r
-  ../lib/error.h ../lib/javacomp.h ../lib/mkdtemp.h ../src/msgfmt.h \\r
-  ../src/msgl-iconv.h ../lib/pathmax.h ../intl/plural-exp.h \\r
-  ../src/po-charset.h ../lib/xmalloc.h ../lib/system.h ../lib/tmpdir.h \\r
-  ../lib/utf8-ucs4.h ../intl/libgettext.h\r
-\r
-$(OUT)src/write-mo.o: ../src/write-mo.h ../src/message.h ../src/str-list.h \\r
-  ../src/pos.h ../lib/hash.h ../src/msgfmt.h ../intl/gettext.h \\r
-  ../intl/hash-string.h ../lib/error.h ../lib/system.h ../intl/libgettext.h\r
-\r
-$(OUT)src/write-po.o: ../src/write-po.h ../src/message.h ../src/str-list.h \\r
-  ../src/pos.h ../lib/hash.h ../lib/c-ctype.h ../lib/linebreak.h \\r
-  ../src/msgl-ascii.h ../lib/xmalloc.h ../lib/strstr.h ../lib/system.h \\r
-  ../lib/error.h ../lib/xerror.h ../intl/libgettext.h\r
-\r
-$(OUT)src/x-c.o: config.h ../os2/os2compat.h ../src/message.h \\r
-  ../src/str-list.h ../src/pos.h ../lib/hash.h ../src/x-c.h \\r
-  ../src/xgettext.h ../lib/error.h ../lib/progname.h ../lib/xmalloc.h \\r
-  ../lib/system.h ../intl/libgettext.h\r
-\r
-$(OUT)src/x-java.o: ../src/message.h ../src/str-list.h ../src/pos.h \\r
-  ../lib/hash.h ../src/x-java.h ../src/xgettext.h ../lib/xmalloc.h \\r
-  ../lib/strstr.h\r
-\r
-$(OUT)src/x-librep.o: config.h ../os2/os2compat.h ../src/message.h \\r
-  ../src/str-list.h ../src/pos.h ../lib/hash.h ../src/x-librep.h \\r
-  ../src/xgettext.h ../lib/error.h ../lib/xmalloc.h ../lib/system.h \\r
-  ../intl/libgettext.h\r
-\r
-$(OUT)src/x-lisp.o: config.h ../os2/os2compat.h ../src/message.h \\r
-  ../src/str-list.h ../src/pos.h ../lib/hash.h ../src/x-lisp.h \\r
-  ../src/xgettext.h ../lib/error.h ../lib/xmalloc.h ../lib/system.h \\r
-  ../intl/libgettext.h\r
-\r
-$(OUT)src/x-po.o: ../src/message.h ../src/str-list.h ../src/pos.h \\r
-  ../lib/hash.h ../src/x-po.h ../src/xgettext.h ../lib/xmalloc.h \\r
-  ../src/po.h ../src/po-lex.h ../lib/error.h ../lib/progname.h \\r
-  ../lib/xerror.h ../intl/libgettext.h\r
-\r
-$(OUT)src/x-rst.o: config.h ../os2/os2compat.h ../src/message.h \\r
-  ../src/str-list.h ../src/pos.h ../lib/hash.h ../src/x-rst.h \\r
-  ../src/xgettext.h ../lib/error.h ../lib/progname.h ../lib/xmalloc.h \\r
-  ../lib/system.h ../intl/libgettext.h\r
-\r
-$(OUT)src/x-ycp.o: config.h ../os2/os2compat.h ../src/message.h \\r
-  ../src/str-list.h ../src/pos.h ../lib/hash.h ../src/x-ycp.h \\r
-  ../src/xgettext.h ../lib/error.h ../lib/xmalloc.h ../lib/system.h \\r
-  ../intl/libgettext.h\r
+#
+# 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
+DEFS = -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" \
+  -DLOCALEDIR=\"/usr/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/share/locale\" \
+  -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)))
+
+OUTDIRS = $(OUT) $(sort $(dir $(INTL.OBJECTS) $(SRC.OBJECTS) $(LIB.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 $(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 $^ >>$@
+
+$(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) $@ $^
+
+$(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
index 1b2cb0fb454f3c03be48ef7b480e05014e608093..2ba274bd68acf70bb12ed50eafb9acf98213fefb 100644 (file)
@@ -2,7 +2,7 @@
 Welcome!
 ========
 
-This is the OS/2 port of GNU gettext 0.10.40 and possibly later versions.
+This is the OS/2 port of GNU gettext internationalization library.
 
 
 Compatibility
@@ -64,8 +64,10 @@ or (same effect):
 set LANG=ru_RU.IBM-878
 
 If the output character set is ommited from the LANG variable, the default
-codepage is queried by using the OS/2 API; you may want to set it just if you
-want to override the OS/2 active codepage.
+codepage is ALWAYS taken from the operating system (e.g. the codepage setting
+from locale.alias is always ignored, so "russian" stays just for "ru_RU" and
+not for "ru_RU.ISO-8859-5"); you may want to set it just if you want to
+override the active OS/2 codepage.
 
 
 XFree86 setup