#
# 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.
#

# 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 = -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 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)lib/iconv.a \
  $(INST)include/libintl.h $(INST)include/iconv.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)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

endef

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

clean:
	rm -rf out emx

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 $@ $<

# iconv.a is just a subset of intl.a (imports from INTL.DLL)
$(OUT)iconv.def:
	@echo LIBRARY INTL$(INTLDLLVER) INITINSTANCE TERMINSTANCE>$@
	@echo EXPORTS>>$@
	@echo iconv_open>>$@
	@echo iconv>>$@
	@echo iconv_close>>$@

$(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) $< $@

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 $@ $<"

# DO NOT DELETE this line -- makedep depends on it!

$(OUT)intl/intl-compat.o: ../intl/libgnuintl.h ../intl/gettextP.h \
  ../intl/loadinfo.h ../intl/gettext.h

$(OUT)intl/bindtextdom.o: ../intl/libgnuintl.h ../intl/gettextP.h \
  ../intl/loadinfo.h ../intl/gettext.h

$(OUT)intl/dcgettext.o: ../intl/gettextP.h ../intl/loadinfo.h \
  ../intl/gettext.h ../intl/libgnuintl.h

$(OUT)intl/dgettext.o: ../intl/gettextP.h ../intl/loadinfo.h \
  ../intl/gettext.h ../intl/libgnuintl.h

$(OUT)intl/gettext.o: ../intl/gettextP.h ../intl/loadinfo.h ../intl/gettext.h \
  ../intl/libgnuintl.h

$(OUT)intl/finddomain.o: ../intl/gettextP.h ../intl/loadinfo.h \
  ../intl/gettext.h ../intl/libgnuintl.h

$(OUT)intl/loadmsgcat.o: ../intl/gettext.h ../intl/gettextP.h \
  ../intl/loadinfo.h ../intl/plural-exp.h

$(OUT)intl/localealias.o: ../intl/gettextP.h ../intl/loadinfo.h \
  ../intl/gettext.h

$(OUT)intl/textdomain.o: ../intl/libgnuintl.h ../intl/gettextP.h \
  ../intl/loadinfo.h ../intl/gettext.h

$(OUT)intl/l10nflist.o: ../intl/loadinfo.h

$(OUT)intl/explodename.o: ../intl/loadinfo.h

$(OUT)intl/dcigettext.o: ../intl/gettextP.h ../intl/loadinfo.h \
  ../intl/gettext.h ../intl/plural-exp.h ../intl/libgnuintl.h \
  ../intl/hash-string.h ../intl/plural-eval.c

$(OUT)intl/dcngettext.o: ../intl/gettextP.h ../intl/loadinfo.h \
  ../intl/gettext.h ../intl/libgnuintl.h

$(OUT)intl/dngettext.o: ../intl/gettextP.h ../intl/loadinfo.h \
  ../intl/gettext.h ../intl/libgnuintl.h

$(OUT)intl/ngettext.o: ../intl/gettextP.h ../intl/loadinfo.h \
  ../intl/gettext.h ../intl/libgnuintl.h

$(OUT)intl/plural.o: ../intl/plural-exp.h

$(OUT)intl/plural-exp.o: ../intl/plural-exp.h

$(OUT)intl/osdep.o: os2compat.c iconv.c iconv.h

$(OUT)src/dir-list.o: config.h ../os2/os2compat.h ../src/dir-list.h \
  ../lib/system.h ../src/str-list.h

$(OUT)src/file-list.o: config.h ../os2/os2compat.h ../src/file-list.h \
  ../src/str-list.h ../lib/error.h ../lib/system.h ../lib/getline.h \
  ../intl/libgettext.h

$(OUT)src/format-c.o: ../src/format.h ../src/pos.h ../src/message.h \
  ../src/str-list.h ../lib/hash.h ../lib/xmalloc.h ../lib/error.h \
  ../lib/progname.h ../intl/libgettext.h

$(OUT)src/format-java.o: ../src/format.h ../src/pos.h ../src/message.h \
  ../src/str-list.h ../lib/hash.h ../lib/c-ctype.h ../lib/xmalloc.h \
  ../lib/error.h ../lib/progname.h ../intl/libgettext.h

$(OUT)src/format-librep.o: ../src/format.h ../src/pos.h ../src/message.h \
  ../src/str-list.h ../lib/hash.h ../lib/xmalloc.h ../lib/error.h \
  ../lib/progname.h ../intl/libgettext.h

$(OUT)src/format-lisp.o: ../src/format.h ../src/pos.h ../src/message.h \
  ../src/str-list.h ../lib/hash.h ../lib/c-ctype.h ../lib/gcd.h \
  ../lib/xmalloc.h ../lib/system.h ../lib/error.h ../lib/progname.h \
  ../intl/libgettext.h

$(OUT)src/format-pascal.o: ../src/format.h ../src/pos.h ../src/message.h \
  ../src/str-list.h ../lib/hash.h ../lib/c-ctype.h ../lib/xmalloc.h \
  ../lib/error.h ../lib/progname.h ../intl/libgettext.h

$(OUT)src/format-python.o: ../src/format.h ../src/pos.h ../src/message.h \
  ../src/str-list.h ../lib/hash.h ../lib/xmalloc.h ../lib/error.h \
  ../lib/progname.h ../intl/libgettext.h

$(OUT)src/format-ycp.o: ../src/format.h ../src/pos.h ../src/message.h \
  ../src/str-list.h ../lib/hash.h ../lib/xmalloc.h ../lib/error.h \
  ../lib/progname.h ../intl/libgettext.h

$(OUT)src/format.o: ../src/format.h ../src/pos.h ../src/message.h \
  ../src/str-list.h ../lib/hash.h

$(OUT)src/hostname.o: config.h ../os2/os2compat.h ../lib/error.h \
  ../lib/progname.h ../lib/basename.h ../lib/xmalloc.h ../lib/system.h \
  ../intl/libgettext.h

$(OUT)src/message.o: ../src/message.h ../src/str-list.h ../src/pos.h \
  ../lib/hash.h ../lib/fstrcmp.h ../src/format.h ../lib/xmalloc.h \
  ../lib/strstr.h ../lib/system.h

$(OUT)src/msgl-ascii.o: config.h ../os2/os2compat.h ../src/msgl-ascii.h \
  ../src/message.h ../src/str-list.h ../src/pos.h ../lib/hash.h \
  ../lib/c-ctype.h

$(OUT)src/msgl-cat.o: config.h ../os2/os2compat.h ../src/msgl-cat.h \
  ../src/message.h ../src/str-list.h ../src/pos.h ../lib/hash.h \
  ../lib/error.h ../lib/xerror.h ../src/read-po.h ../src/po-charset.h \
  ../src/msgl-ascii.h ../src/msgl-equal.h ../src/msgl-iconv.h \
  ../lib/xmalloc.h ../lib/strstr.h ../lib/basename.h ../lib/system.h \
  ../intl/libgettext.h

$(OUT)src/msgl-charset.o: config.h ../os2/os2compat.h ../src/msgl-charset.h \
  ../src/message.h ../src/str-list.h ../src/pos.h ../lib/hash.h \
  ../src/po-charset.h ../lib/error.h ../lib/progname.h ../lib/basename.h \
  ../lib/xerror.h ../lib/strstr.h ../lib/system.h ../intl/libgettext.h

$(OUT)src/msgl-english.o: config.h ../os2/os2compat.h ../src/msgl-english.h \
  ../src/message.h ../src/str-list.h ../src/pos.h ../lib/hash.h \
  ../lib/xmalloc.h

$(OUT)src/msgl-equal.o: config.h ../os2/os2compat.h ../src/msgl-equal.h \
  ../src/message.h ../src/str-list.h ../src/pos.h ../lib/hash.h

$(OUT)src/msgl-iconv.o: config.h ../os2/os2compat.h ../src/msgl-iconv.h \
  ../src/message.h ../src/str-list.h ../src/pos.h ../lib/hash.h \
  ../lib/error.h ../lib/progname.h ../lib/basename.h ../src/po-charset.h \
  ../src/msgl-ascii.h ../lib/xmalloc.h ../lib/strstr.h ../lib/system.h \
  ../intl/libgettext.h

$(OUT)src/open-po.o: ../src/open-po.h ../src/dir-list.h ../lib/error.h \
  ../lib/system.h ../intl/libgettext.h

$(OUT)src/plural-eval.o: ../intl/plural-exp.h ../intl/plural-eval.c

$(OUT)src/plural.o: ../intl/plural.c ../intl/plural-exp.h \
  ../intl/plural-exp.c

$(OUT)src/po-charset.o: config.h ../os2/os2compat.h ../src/po-charset.h \
  ../lib/error.h ../lib/xerror.h ../lib/basename.h ../lib/strstr.h \
  ../lib/system.h ../intl/libgettext.h

$(OUT)src/po-gram-gen.o: config.h ../os2/os2compat.h ../src/po-gram.h \
  ../src/str-list.h ../src/po-lex.h ../lib/error.h ../lib/progname.h \
  ../src/pos.h ../lib/xerror.h ../lib/xmalloc.h ../intl/libgettext.h \
  ../src/po.h ../src/message.h ../lib/hash.h

$(OUT)src/po-hash-gen.o: config.h ../os2/os2compat.h ../src/po-hash.h \
  ../lib/xmalloc.h ../src/po.h ../src/po-lex.h ../lib/error.h \
  ../lib/progname.h ../src/pos.h ../lib/xerror.h ../src/message.h \
  ../src/str-list.h ../lib/hash.h

$(OUT)src/po-lex.o: config.h ../os2/os2compat.h ../src/po-lex.h \
  ../lib/error.h ../lib/progname.h ../src/pos.h ../lib/xerror.h \
  ../lib/c-ctype.h ../lib/linebreak.h ../intl/libgettext.h \
  ../src/str-list.h ../src/po-charset.h ../lib/xmalloc.h ../lib/system.h \
  ../src/open-po.h ../src/po-gram-gen2.h ../lib/utf8-ucs4.h

$(OUT)src/po-time.o: ../src/po-time.h ../lib/xerror.h ../lib/error.h

$(OUT)src/po.o: config.h ../os2/os2compat.h ../src/po.h ../src/po-lex.h \
  ../lib/error.h ../lib/progname.h ../src/pos.h ../lib/xerror.h \
  ../src/message.h ../src/str-list.h ../lib/hash.h ../src/po-charset.h \
  ../src/po-hash.h ../lib/xmalloc.h

$(OUT)src/read-java.o: ../src/read-java.h ../src/message.h ../src/str-list.h \
  ../src/pos.h ../lib/hash.h ../src/msgunfmt.h ../lib/javaexec.h \
  ../lib/pipe.h ../lib/wait-process.h ../src/read-po.h ../lib/error.h \
  ../lib/system.h ../intl/libgettext.h

$(OUT)src/read-mo.o: ../src/read-mo.h ../src/message.h ../src/str-list.h \
  ../src/pos.h ../lib/hash.h ../intl/gettext.h ../lib/error.h \
  ../lib/xmalloc.h ../lib/system.h ../intl/libgettext.h

$(OUT)src/read-po.o: ../src/read-po.h ../src/message.h ../src/str-list.h \
  ../src/pos.h ../lib/hash.h ../src/po.h ../src/po-lex.h ../lib/error.h \
  ../lib/progname.h ../lib/xerror.h ../lib/xmalloc.h ../intl/libgettext.h

$(OUT)src/str-list.o: config.h ../os2/os2compat.h ../src/str-list.h \
  ../lib/xmalloc.h

$(OUT)src/urlget.o: config.h ../os2/os2compat.h ../lib/error.h \
  ../lib/progname.h ../lib/basename.h ../lib/full-write.h ../lib/execute.h \
  ../lib/javaexec.h ../lib/system.h ../intl/libgettext.h

$(OUT)src/write-java.o: ../src/write-java.h ../src/message.h \
  ../src/str-list.h ../src/pos.h ../lib/hash.h ../lib/c-ctype.h \
  ../lib/error.h ../lib/javacomp.h ../lib/mkdtemp.h ../src/msgfmt.h \
  ../src/msgl-iconv.h ../lib/pathmax.h ../intl/plural-exp.h \
  ../src/po-charset.h ../lib/xmalloc.h ../lib/system.h ../lib/tmpdir.h \
  ../lib/utf8-ucs4.h ../intl/libgettext.h

$(OUT)src/write-mo.o: ../src/write-mo.h ../src/message.h ../src/str-list.h \
  ../src/pos.h ../lib/hash.h ../src/msgfmt.h ../intl/gettext.h \
  ../intl/hash-string.h ../lib/error.h ../lib/system.h ../intl/libgettext.h

$(OUT)src/write-po.o: ../src/write-po.h ../src/message.h ../src/str-list.h \
  ../src/pos.h ../lib/hash.h ../lib/c-ctype.h ../lib/linebreak.h \
  ../src/msgl-ascii.h ../lib/xmalloc.h ../lib/strstr.h ../lib/system.h \
  ../lib/error.h ../lib/xerror.h ../intl/libgettext.h

$(OUT)src/x-c.o: config.h ../os2/os2compat.h ../src/message.h \
  ../src/str-list.h ../src/pos.h ../lib/hash.h ../src/x-c.h \
  ../src/xgettext.h ../lib/error.h ../lib/progname.h ../lib/xmalloc.h \
  ../lib/system.h ../intl/libgettext.h

$(OUT)src/x-java.o: ../src/message.h ../src/str-list.h ../src/pos.h \
  ../lib/hash.h ../src/x-java.h ../src/xgettext.h ../lib/xmalloc.h \
  ../lib/strstr.h

$(OUT)src/x-librep.o: config.h ../os2/os2compat.h ../src/message.h \
  ../src/str-list.h ../src/pos.h ../lib/hash.h ../src/x-librep.h \
  ../src/xgettext.h ../lib/error.h ../lib/xmalloc.h ../lib/system.h \
  ../intl/libgettext.h

$(OUT)src/x-lisp.o: config.h ../os2/os2compat.h ../src/message.h \
  ../src/str-list.h ../src/pos.h ../lib/hash.h ../src/x-lisp.h \
  ../src/xgettext.h ../lib/error.h ../lib/xmalloc.h ../lib/system.h \
  ../intl/libgettext.h

$(OUT)src/x-po.o: ../src/message.h ../src/str-list.h ../src/pos.h \
  ../lib/hash.h ../src/x-po.h ../src/xgettext.h ../lib/xmalloc.h \
  ../src/po.h ../src/po-lex.h ../lib/error.h ../lib/progname.h \
  ../lib/xerror.h ../intl/libgettext.h

$(OUT)src/x-rst.o: config.h ../os2/os2compat.h ../src/message.h \
  ../src/str-list.h ../src/pos.h ../lib/hash.h ../src/x-rst.h \
  ../src/xgettext.h ../lib/error.h ../lib/progname.h ../lib/xmalloc.h \
  ../lib/system.h ../intl/libgettext.h

$(OUT)src/x-ycp.o: config.h ../os2/os2compat.h ../src/message.h \
  ../src/str-list.h ../src/pos.h ../lib/hash.h ../src/x-ycp.h \
  ../src/xgettext.h ../lib/error.h ../lib/xmalloc.h ../lib/system.h \
  ../intl/libgettext.h
