1# -*- makefile -*-
2# This is the developer's makefile, not the user's makefile.
3# Don't use it unless you know exactly what you do!
4
5SHELL = /bin/sh
6MAKE = make
7AUTOCONF = autoconf-2.68
8AUTOHEADER = autoheader-2.68
9AUTOMAKE = automake-1.11
10ACLOCAL = aclocal-1.11
11GPERF = gperf
12CC = gcc
13CFLAGS = -O
14MAN2HTML = groff -mandoc -Thtml
15CP = cp
16RM = rm -f
17
18
19all : configures config.h.in \
20      srclib/Makefile.gnulib srclib/Makefile.in \
21      include/iconv.h.build.in \
22      lib/aliases.h lib/aliases_sysaix.h lib/aliases_syshpux.h lib/aliases_sysosf1.h lib/aliases_syssolaris.h \
23      lib/aliases_aix.h lib/aliases_aix_sysaix.h \
24      lib/aliases_osf1.h lib/aliases_osf1_sysosf1.h \
25      lib/aliases_dos.h \
26      lib/aliases_extra.h \
27      lib/flags.h lib/translit.h \
28      man/iconv.1.html man/iconv.3.html man/iconv_close.3.html man/iconv_open.3.html force
29	cd libcharset && $(MAKE) -f Makefile.devel all
30	cd preload && $(MAKE) -f Makefile.devel all
31
32
33# Before making a new release:
34# - check that the encoding lists in README and man/iconv_open.3 are up to date,
35# - increment the version number in
36#     include/iconv.h.in
37#     README
38#     djgpp/README
39#     djgpp/fnchange.lst
40#     libcharset/djgpp/README
41#     libcharset/djgpp/fnchange.lst
42# - update the version info in lib/Makefile.in,
43# - do "make -f Makefile.devel".
44
45
46CONFIGURES = configure
47CONFIGURES_IN = configure.ac
48
49aclocal.m4 : $(CONFIGURES_IN) srclib/Makefile.gnulib $(wildcard m4/*.m4) $(wildcard srcm4/*.m4)
50	$(ACLOCAL) -I m4 -I srcm4 --output=$@ && touch $@
51
52configures : $(CONFIGURES)
53
54AUTOCONF_FILES = aclocal.m4 $(wildcard m4/*.m4) $(wildcard srcm4/*.m4)
55
56configure : configure.ac $(AUTOCONF_FILES)
57	$(AUTOCONF)
58
59check-configures : $(CONFIGURES)
60	set -e; for f in $(CONFIGURES); do bash -x -n $$f; done
61
62config.h.in : configure.ac $(AUTOCONF_FILES)
63	$(AUTOHEADER)
64	touch $@
65
66
67GNULIB_MODULES = \
68  binary-io \
69  error \
70  gettext \
71  gettext-h \
72  mbstate \
73  memmove \
74  progname \
75  relocatable-prog \
76  safe-read \
77  sigpipe \
78  stdio \
79  stdlib \
80  strerror \
81  unistd \
82  uniwidth/width \
83  unlocked-io \
84  xalloc \
85  libiconv-misc
86
87srclib/Makefile.gnulib : force
88	if test -n "$$GNULIB_TOOL"; then \
89	  $$GNULIB_TOOL --lib=libicrt --source-base=srclib --m4-base=srcm4 --makefile-name=Makefile.gnulib --no-libtool --local-dir=gnulib-local --no-vc-files \
90	    --import $(GNULIB_MODULES); \
91	fi
92
93srclib/Makefile.in : srclib/Makefile.am srclib/Makefile.gnulib
94	touch build-aux/compile \
95	&& $(AUTOMAKE) --gnits srclib/Makefile \
96	&& rm -f build-aux/compile
97
98
99include/iconv.h.build.in : include/iconv.h.in include/export.h
100	sed -e 's/extern \([^"]\)/extern LIBICONV_DLL_EXPORTED \1/' \
101	    -e '/_LIBICONV_VERSION/r include/export.h' \
102	  < $< > $@
103
104
105lib/aliases.h lib/canonical.h lib/canonical_local.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
106	$(CC) $(CFLAGS) lib/genaliases.c -o genaliases
107	./genaliases > lib/aliases.gperf 3> canonical.sh 4> canonical_local.sh
108	$(RM) genaliases
109	$(GPERF) -m 10 lib/aliases.gperf > tmp.h
110	$(CP) tmp.h lib/aliases.h
111	sh canonical.sh > lib/canonical.h
112	sh canonical_local.sh > lib/canonical_local.h
113	$(RM) tmp.h canonical.sh canonical_local.sh
114
115lib/aliases_sysaix.h lib/canonical_sysaix.h lib/canonical_local_sysaix.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
116	$(CC) $(CFLAGS) -DUSE_AIX_ALIASES lib/genaliases.c -o genaliases
117	./genaliases > lib/aliases_sysaix.gperf 3> canonical.sh 4> canonical_local.sh
118	$(RM) genaliases
119	$(GPERF) -m 10 lib/aliases_sysaix.gperf > tmp.h
120	$(CP) tmp.h lib/aliases_sysaix.h
121	sh canonical.sh > lib/canonical_sysaix.h
122	sh canonical_local.sh > lib/canonical_local_sysaix.h
123	$(RM) tmp.h canonical.sh canonical_local.sh
124
125lib/aliases_syshpux.h lib/canonical_syshpux.h lib/canonical_local_syshpux.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
126	$(CC) $(CFLAGS) -DUSE_HPUX_ALIASES lib/genaliases.c -o genaliases
127	./genaliases > lib/aliases_syshpux.gperf 3> canonical.sh 4> canonical_local.sh
128	$(RM) genaliases
129	$(GPERF) -m 10 lib/aliases_syshpux.gperf > tmp.h
130	$(CP) tmp.h lib/aliases_syshpux.h
131	sh canonical.sh > lib/canonical_syshpux.h
132	sh canonical_local.sh > lib/canonical_local_syshpux.h
133	$(RM) tmp.h canonical.sh canonical_local.sh
134
135lib/aliases_sysosf1.h lib/canonical_sysosf1.h lib/canonical_local_sysosf1.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
136	$(CC) $(CFLAGS) -DUSE_OSF1_ALIASES lib/genaliases.c -o genaliases
137	./genaliases > lib/aliases_sysosf1.gperf 3> canonical.sh 4> canonical_local.sh
138	$(RM) genaliases
139	$(GPERF) -m 10 lib/aliases_sysosf1.gperf > tmp.h
140	$(CP) tmp.h lib/aliases_sysosf1.h
141	sh canonical.sh > lib/canonical_sysosf1.h
142	sh canonical_local.sh > lib/canonical_local_sysosf1.h
143	$(RM) tmp.h canonical.sh canonical_local.sh
144
145lib/aliases_syssolaris.h lib/canonical_syssolaris.h lib/canonical_local_syssolaris.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
146	$(CC) $(CFLAGS) -DUSE_SOLARIS_ALIASES lib/genaliases.c -o genaliases
147	./genaliases > lib/aliases_syssolaris.gperf 3> canonical.sh 4> canonical_local.sh
148	$(RM) genaliases
149	$(GPERF) -m 10 lib/aliases_syssolaris.gperf > tmp.h
150	$(CP) tmp.h lib/aliases_syssolaris.h
151	sh canonical.sh > lib/canonical_syssolaris.h
152	sh canonical_local.sh > lib/canonical_local_syssolaris.h
153	$(RM) tmp.h canonical.sh canonical_local.sh
154
155lib/aliases_aix.h lib/canonical_aix.h : lib/encodings_aix.def lib/genaliases2.c
156	$(CC) $(CFLAGS) -DUSE_AIX lib/genaliases2.c -o genaliases
157	./genaliases aix > lib/aliases_aix.h 3> lib/canonical_aix.h
158	$(RM) genaliases
159
160lib/aliases_aix_sysaix.h lib/canonical_aix_sysaix.h : lib/encodings_aix.def lib/genaliases2.c
161	$(CC) $(CFLAGS) -DUSE_AIX -DUSE_AIX_ALIASES lib/genaliases2.c -o genaliases
162	./genaliases aix > lib/aliases_aix_sysaix.h 3> lib/canonical_aix_sysaix.h
163	$(RM) genaliases
164
165lib/aliases_osf1.h lib/canonical_osf1.h : lib/encodings_osf1.def lib/genaliases2.c
166	$(CC) $(CFLAGS) -DUSE_OSF1 lib/genaliases2.c -o genaliases
167	./genaliases osf1 > lib/aliases_osf1.h 3> lib/canonical_osf1.h
168	$(RM) genaliases
169
170lib/aliases_osf1_sysosf1.h lib/canonical_osf1_sysosf1.h : lib/encodings_osf1.def lib/genaliases2.c
171	$(CC) $(CFLAGS) -DUSE_OSF1 -DUSE_OSF1_ALIASES lib/genaliases2.c -o genaliases
172	./genaliases osf1 > lib/aliases_osf1_sysosf1.h 3> lib/canonical_osf1_sysosf1.h
173	$(RM) genaliases
174
175lib/aliases_dos.h lib/canonical_dos.h : lib/encodings_dos.def lib/genaliases2.c
176	$(CC) $(CFLAGS) -DUSE_DOS lib/genaliases2.c -o genaliases
177	./genaliases dos > lib/aliases_dos.h 3> lib/canonical_dos.h
178	$(RM) genaliases
179
180lib/aliases_extra.h lib/canonical_extra.h : lib/encodings_extra.def lib/genaliases2.c
181	$(CC) $(CFLAGS) -DUSE_EXTRA lib/genaliases2.c -o genaliases
182	./genaliases extra > lib/aliases_extra.h 3> lib/canonical_extra.h
183	$(RM) genaliases
184
185
186lib/flags.h : lib/encodings.def lib/encodings_aix.def lib/encodings_osf1.def lib/encodings_dos.def lib/encodings_extra.def lib/converters.h lib/genflags.c
187	$(CC) $(CFLAGS) lib/genflags.c -o genflags
188	./genflags > lib/flags.h
189	$(RM) genflags
190
191
192lib/translit.h : lib/translit.def lib/gentranslit.c
193	$(CC) $(CFLAGS) lib/gentranslit.c -o gentranslit
194	ulimit -s unlimited; ./gentranslit < lib/translit.def > lib/translit.h
195	$(RM) gentranslit
196
197
198man/%.html : man/%
199	$(MAN2HTML) $< > $@
200
201
202force :
203