2 # This is the developer's makefile, not the user's makefile.
3 # Don't use it unless you know exactly what you do!
8 AUTOHEADER = autoheader
9 AUTOMAKE = automake-1.16
10 ACLOCAL = aclocal-1.16
14 MAN2HTML = groff -mandoc -Thtml
19 all : srclib/Makefile.gnulib srclib/Makefile.in \
20 configures config.h.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 \
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 man/iconvctl.3.html man/iconv_open_into.3.html \
30 cd libcharset && $(MAKE) -f Makefile.devel all
33 # Before making a new release:
34 # - check that the encoding lists in README and man/iconv_open.3 are up to date,
35 # - check that the files in libcharset/lib/ are in sync with the gnulib module
37 # - increment the version number in
41 # - update the version info in lib/Makefile.in,
43 # Making a new release:
44 # - $ ./configure CPPFLAGS=-Wall; make; make check
53 lib-symbol-visibility \
68 srclib/Makefile.gnulib :
69 if test -n "$$GNULIB_TOOL"; then \
70 $$GNULIB_TOOL --copy-file m4/codeset.m4 srcm4/codeset.m4 || exit $$?; \
71 $$GNULIB_TOOL --lib=libicrt --source-base=srclib --m4-base=srcm4 --makefile-name=Makefile.gnulib --no-libtool --local-dir=gnulib-local --no-vc-files \
72 --import $(GNULIB_MODULES); \
75 gnulib-imported-files : force
76 if test -n "$$GNULIB_TOOL"; then \
77 for file in config.guess config.sub; do \
78 $$GNULIB_TOOL --copy-file build-aux/$$file || exit $$?; \
79 chmod a+x build-aux/$$file || exit $$?; \
83 srclib/Makefile.in : srclib/Makefile.am srclib/Makefile.gnulib aclocal.m4
84 # Make sure we get new versions of files brought in by automake.
85 (cd build-aux && rm -f depcomp install-sh mdate-sh missing test-driver)
86 $(AUTOMAKE) --gnits --add-missing --copy srclib/Makefile && rm -rf autom4te.cache
89 CONFIGURES = configure
90 CONFIGURES_IN = configure.ac
92 aclocal.m4 : $(CONFIGURES_IN) srclib/Makefile.gnulib $(wildcard m4/*.m4) $(wildcard srcm4/*.m4)
93 $(ACLOCAL) -I m4 -I srcm4 --output=$@ && touch $@ && rm -rf autom4te.cache
95 configures : $(CONFIGURES)
97 AUTOCONF_FILES = aclocal.m4 $(wildcard m4/*.m4) $(wildcard srcm4/*.m4)
99 configure : configure.ac $(AUTOCONF_FILES)
100 $(AUTOCONF) && rm -rf autom4te.cache
102 check-configures : $(CONFIGURES)
103 set -e; for f in $(CONFIGURES); do bash -x -n $$f; done
105 config.h.in : configure.ac $(AUTOCONF_FILES)
106 $(AUTOHEADER) && rm -rf autom4te.cache
110 include/iconv.h.build.in : include/iconv.h.in include/export.h
111 sed -e 's/extern \([^"]\)/extern LIBICONV_DLL_EXPORTED \1/' \
112 -e '/_LIBICONV_VERSION/r include/export.h' \
116 lib/aliases.h lib/canonical.h lib/canonical_local.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
117 $(CC) $(CFLAGS) lib/genaliases.c -o genaliases
118 ./genaliases lib/aliases.gperf canonical.sh canonical_local.sh
120 $(GPERF) -m 10 lib/aliases.gperf > tmp.h
121 sed -e 's/^\(const struct alias \)/static \1/' < tmp.h > lib/aliases.h
122 sh canonical.sh > lib/canonical.h
123 sh canonical_local.sh > lib/canonical_local.h
124 $(RM) tmp.h canonical.sh canonical_local.sh
126 lib/aliases_sysaix.h lib/canonical_sysaix.h lib/canonical_local_sysaix.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
127 $(CC) $(CFLAGS) -DUSE_AIX_ALIASES lib/genaliases.c -o genaliases
128 ./genaliases lib/aliases_sysaix.gperf canonical.sh canonical_local.sh
130 $(GPERF) -m 10 lib/aliases_sysaix.gperf > tmp.h
131 sed -e 's/^\(const struct alias \)/static \1/' < tmp.h > lib/aliases_sysaix.h
132 sh canonical.sh > lib/canonical_sysaix.h
133 sh canonical_local.sh > lib/canonical_local_sysaix.h
134 $(RM) tmp.h canonical.sh canonical_local.sh
136 lib/aliases_syshpux.h lib/canonical_syshpux.h lib/canonical_local_syshpux.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
137 $(CC) $(CFLAGS) -DUSE_HPUX_ALIASES lib/genaliases.c -o genaliases
138 ./genaliases lib/aliases_syshpux.gperf canonical.sh canonical_local.sh
140 $(GPERF) -m 10 lib/aliases_syshpux.gperf > tmp.h
141 sed -e 's/^\(const struct alias \)/static \1/' < tmp.h > lib/aliases_syshpux.h
142 sh canonical.sh > lib/canonical_syshpux.h
143 sh canonical_local.sh > lib/canonical_local_syshpux.h
144 $(RM) tmp.h canonical.sh canonical_local.sh
146 lib/aliases_sysosf1.h lib/canonical_sysosf1.h lib/canonical_local_sysosf1.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
147 $(CC) $(CFLAGS) -DUSE_OSF1_ALIASES lib/genaliases.c -o genaliases
148 ./genaliases lib/aliases_sysosf1.gperf canonical.sh canonical_local.sh
150 $(GPERF) -m 10 lib/aliases_sysosf1.gperf > tmp.h
151 sed -e 's/^\(const struct alias \)/static \1/' < tmp.h > lib/aliases_sysosf1.h
152 sh canonical.sh > lib/canonical_sysosf1.h
153 sh canonical_local.sh > lib/canonical_local_sysosf1.h
154 $(RM) tmp.h canonical.sh canonical_local.sh
156 lib/aliases_syssolaris.h lib/canonical_syssolaris.h lib/canonical_local_syssolaris.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
157 $(CC) $(CFLAGS) -DUSE_SOLARIS_ALIASES lib/genaliases.c -o genaliases
158 ./genaliases lib/aliases_syssolaris.gperf canonical.sh canonical_local.sh
160 $(GPERF) -m 10 lib/aliases_syssolaris.gperf > tmp.h
161 sed -e 's/^\(const struct alias \)/static \1/' < tmp.h > lib/aliases_syssolaris.h
162 sh canonical.sh > lib/canonical_syssolaris.h
163 sh canonical_local.sh > lib/canonical_local_syssolaris.h
164 $(RM) tmp.h canonical.sh canonical_local.sh
166 lib/aliases_aix.h lib/canonical_aix.h : lib/encodings_aix.def lib/genaliases2.c
167 $(CC) $(CFLAGS) -DUSE_AIX lib/genaliases2.c -o genaliases
168 ./genaliases aix lib/aliases_aix.h lib/canonical_aix.h
171 lib/aliases_aix_sysaix.h lib/canonical_aix_sysaix.h : lib/encodings_aix.def lib/genaliases2.c
172 $(CC) $(CFLAGS) -DUSE_AIX -DUSE_AIX_ALIASES lib/genaliases2.c -o genaliases
173 ./genaliases aix lib/aliases_aix_sysaix.h lib/canonical_aix_sysaix.h
176 lib/aliases_osf1.h lib/canonical_osf1.h : lib/encodings_osf1.def lib/genaliases2.c
177 $(CC) $(CFLAGS) -DUSE_OSF1 lib/genaliases2.c -o genaliases
178 ./genaliases osf1 lib/aliases_osf1.h lib/canonical_osf1.h
181 lib/aliases_osf1_sysosf1.h lib/canonical_osf1_sysosf1.h : lib/encodings_osf1.def lib/genaliases2.c
182 $(CC) $(CFLAGS) -DUSE_OSF1 -DUSE_OSF1_ALIASES lib/genaliases2.c -o genaliases
183 ./genaliases osf1 lib/aliases_osf1_sysosf1.h lib/canonical_osf1_sysosf1.h
186 lib/aliases_dos.h lib/canonical_dos.h : lib/encodings_dos.def lib/genaliases2.c
187 $(CC) $(CFLAGS) -DUSE_DOS lib/genaliases2.c -o genaliases
188 ./genaliases dos lib/aliases_dos.h lib/canonical_dos.h
191 lib/aliases_extra.h lib/canonical_extra.h : lib/encodings_extra.def lib/genaliases2.c
192 $(CC) $(CFLAGS) -DUSE_EXTRA lib/genaliases2.c -o genaliases
193 ./genaliases extra lib/aliases_extra.h lib/canonical_extra.h
197 lib/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
198 $(CC) $(CFLAGS) lib/genflags.c -o genflags
199 ./genflags > lib/flags.h
203 lib/translit.h : lib/translit.def lib/gentranslit.c
204 $(CC) $(CFLAGS) lib/gentranslit.c -o gentranslit
205 ./gentranslit < lib/translit.def > lib/translit.h
210 $(MAN2HTML) $< > $@-t
211 grep -v '<!-- CreationDate' < $@-t > $@
216 # Move srclib/Makefile.gnulib away, so that the target 'srclib/Makefile.gnulib' will actually do something.
217 if test -f srclib/Makefile.gnulib; then \
218 mv srclib/Makefile.gnulib srclib/Makefile.gnulib~; \
220 # No need to remove the stale files. gnulib-tool does this itself, thanks to srcm4/gnulib-comp.m4.
221 # find srclib '(' -name '*.h' -o -name '*.c' -o -name '*.valgrind' ')' -exec rm -f '{}' ';'
224 totally-clean : force
225 rm -f srclib/Makefile.in
226 rm -f aclocal.m4 $(CONFIGURES) config.h.in include/iconv.h.build.in
227 rm -f lib/aliases.gperf lib/aliases_sysaix.gperf lib/aliases_syshpux.gperf lib/aliases_sysosf1.gperf lib/aliases_syssolaris.gperf
228 rm -f lib/aliases.h lib/aliases_sysaix.h lib/aliases_syshpux.h lib/aliases_sysosf1.h lib/aliases_syssolaris.h
229 rm -f lib/aliases_aix.h lib/aliases_aix_sysaix.h
230 rm -f lib/aliases_osf1.h lib/aliases_osf1_sysosf1.h
231 rm -f lib/aliases_dos.h
232 rm -f lib/aliases_extra.h
233 rm -f lib/canonical.h lib/canonical_sysaix.h lib/canonical_syshpux.h lib/canonical_sysosf1.h lib/canonical_syssolaris.h
234 rm -f lib/canonical_aix.h lib/canonical_aix_sysaix.h
235 rm -f lib/canonical_osf1.h lib/canonical_osf1_sysosf1.h
236 rm -f lib/canonical_dos.h
237 rm -f lib/canonical_extra.h
238 rm -f lib/canonical_local.h lib/canonical_local_sysaix.h lib/canonical_local_syshpux.h lib/canonical_local_sysosf1.h lib/canonical_local_syssolaris.h
241 rm -f man/iconv.1.html man/iconv.3.html man/iconv_close.3.html man/iconv_open.3.html man/iconvctl.3.html man/iconv_open_into.3.html
242 cd libcharset && $(MAKE) -f Makefile.devel totally-clean