# -*- makefile -*-
# This is the developer's makefile, not the user's makefile.
# Don't use it unless you know exactly what you do!

SHELL = /bin/sh
MAKE = make
AUTOCONF = autoconf-2.69
AUTOHEADER = autoheader-2.69
AUTOMAKE = automake-1.16
ACLOCAL = aclocal-1.16
GPERF = gperf
CC = gcc -Wall
CFLAGS = -O
MAN2HTML = groff -mandoc -Thtml
CP = cp
RM = rm -f


all : srclib/Makefile.gnulib srclib/Makefile.in \
      configures config.h.in \
      include/iconv.h.build.in \
      lib/aliases.h lib/aliases_sysaix.h lib/aliases_syshpux.h lib/aliases_sysosf1.h lib/aliases_syssolaris.h \
      lib/aliases_aix.h lib/aliases_aix_sysaix.h \
      lib/aliases_osf1.h lib/aliases_osf1_sysosf1.h \
      lib/aliases_dos.h \
      lib/aliases_extra.h \
      lib/flags.h lib/translit.h \
      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 \
      force
	cd libcharset && $(MAKE) -f Makefile.devel all


# Before making a new release:
# - check that the encoding lists in README and man/iconv_open.3 are up to date,
# - check that the files in libcharset/lib/ are in sync with the gnulib modules
#   'localcharset' and 'relocatable-lib-lgpl',
# - increment the version number in
#     configure.ac
#     include/iconv.h.in
#     README
# - update the version info in lib/Makefile.in,
# - $ ./autogen.sh
# Making a new release:
# - $ ./configure CPPFLAGS=-Wall; make; make check
# - $ make dist


GNULIB_MODULES = \
  binary-io \
  error \
  gettext \
  gettext-h \
  mbstate \
  progname \
  relocatable-prog \
  safe-read \
  sigpipe \
  stdio \
  stdlib \
  strerror \
  unistd \
  uniwidth/width \
  unlocked-io \
  xalloc \
  libiconv-misc

srclib/Makefile.gnulib :
	if test -n "$$GNULIB_TOOL"; then \
	  $$GNULIB_TOOL --lib=libicrt --source-base=srclib --m4-base=srcm4 --makefile-name=Makefile.gnulib --no-libtool --local-dir=gnulib-local --no-vc-files \
	    --import $(GNULIB_MODULES); \
	fi

srclib/Makefile.in : srclib/Makefile.am srclib/Makefile.gnulib aclocal.m4
	if test -n "$$GNULIB_TOOL"; then \
	  $$GNULIB_TOOL --copy-file build-aux/compile; \
	fi
# Make sure we get new versions of files brought in by automake.
	(cd build-aux && rm -f compile depcomp install-sh mdate-sh missing test-driver)
	$(AUTOMAKE) --gnits --add-missing --copy srclib/Makefile && rm -rf autom4te.cache

gnulib-imported-files : force
	if test -n "$$GNULIB_TOOL"; then \
	  for file in config.guess config.sub; do \
	    $$GNULIB_TOOL --copy-file build-aux/$$file || exit $$?; \
	    chmod a+x build-aux/$$file || exit $$?; \
	  done; \
	fi


CONFIGURES = configure
CONFIGURES_IN = configure.ac

aclocal.m4 : $(CONFIGURES_IN) srclib/Makefile.gnulib $(wildcard m4/*.m4) $(wildcard srcm4/*.m4)
	$(ACLOCAL) -I m4 -I srcm4 --output=$@ && touch $@ && rm -rf autom4te.cache

configures : $(CONFIGURES)

AUTOCONF_FILES = aclocal.m4 $(wildcard m4/*.m4) $(wildcard srcm4/*.m4)

configure : configure.ac $(AUTOCONF_FILES)
	$(AUTOCONF) && rm -rf autom4te.cache

check-configures : $(CONFIGURES)
	set -e; for f in $(CONFIGURES); do bash -x -n $$f; done

config.h.in : configure.ac $(AUTOCONF_FILES)
	$(AUTOHEADER) && rm -rf autom4te.cache
	touch $@


include/iconv.h.build.in : include/iconv.h.in include/export.h
	sed -e 's/extern \([^"]\)/extern LIBICONV_DLL_EXPORTED \1/' \
	    -e '/_LIBICONV_VERSION/r include/export.h' \
	  < $< > $@


lib/aliases.h lib/canonical.h lib/canonical_local.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
	$(CC) $(CFLAGS) lib/genaliases.c -o genaliases
	./genaliases lib/aliases.gperf canonical.sh canonical_local.sh
	$(RM) genaliases
	$(GPERF) -m 10 lib/aliases.gperf > tmp.h
	$(CP) tmp.h lib/aliases.h
	sh canonical.sh > lib/canonical.h
	sh canonical_local.sh > lib/canonical_local.h
	$(RM) tmp.h canonical.sh canonical_local.sh

lib/aliases_sysaix.h lib/canonical_sysaix.h lib/canonical_local_sysaix.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
	$(CC) $(CFLAGS) -DUSE_AIX_ALIASES lib/genaliases.c -o genaliases
	./genaliases lib/aliases_sysaix.gperf canonical.sh canonical_local.sh
	$(RM) genaliases
	$(GPERF) -m 10 lib/aliases_sysaix.gperf > tmp.h
	$(CP) tmp.h lib/aliases_sysaix.h
	sh canonical.sh > lib/canonical_sysaix.h
	sh canonical_local.sh > lib/canonical_local_sysaix.h
	$(RM) tmp.h canonical.sh canonical_local.sh

lib/aliases_syshpux.h lib/canonical_syshpux.h lib/canonical_local_syshpux.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
	$(CC) $(CFLAGS) -DUSE_HPUX_ALIASES lib/genaliases.c -o genaliases
	./genaliases lib/aliases_syshpux.gperf canonical.sh canonical_local.sh
	$(RM) genaliases
	$(GPERF) -m 10 lib/aliases_syshpux.gperf > tmp.h
	$(CP) tmp.h lib/aliases_syshpux.h
	sh canonical.sh > lib/canonical_syshpux.h
	sh canonical_local.sh > lib/canonical_local_syshpux.h
	$(RM) tmp.h canonical.sh canonical_local.sh

lib/aliases_sysosf1.h lib/canonical_sysosf1.h lib/canonical_local_sysosf1.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
	$(CC) $(CFLAGS) -DUSE_OSF1_ALIASES lib/genaliases.c -o genaliases
	./genaliases lib/aliases_sysosf1.gperf canonical.sh canonical_local.sh
	$(RM) genaliases
	$(GPERF) -m 10 lib/aliases_sysosf1.gperf > tmp.h
	$(CP) tmp.h lib/aliases_sysosf1.h
	sh canonical.sh > lib/canonical_sysosf1.h
	sh canonical_local.sh > lib/canonical_local_sysosf1.h
	$(RM) tmp.h canonical.sh canonical_local.sh

lib/aliases_syssolaris.h lib/canonical_syssolaris.h lib/canonical_local_syssolaris.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c
	$(CC) $(CFLAGS) -DUSE_SOLARIS_ALIASES lib/genaliases.c -o genaliases
	./genaliases lib/aliases_syssolaris.gperf canonical.sh canonical_local.sh
	$(RM) genaliases
	$(GPERF) -m 10 lib/aliases_syssolaris.gperf > tmp.h
	$(CP) tmp.h lib/aliases_syssolaris.h
	sh canonical.sh > lib/canonical_syssolaris.h
	sh canonical_local.sh > lib/canonical_local_syssolaris.h
	$(RM) tmp.h canonical.sh canonical_local.sh

lib/aliases_aix.h lib/canonical_aix.h : lib/encodings_aix.def lib/genaliases2.c
	$(CC) $(CFLAGS) -DUSE_AIX lib/genaliases2.c -o genaliases
	./genaliases aix lib/aliases_aix.h lib/canonical_aix.h
	$(RM) genaliases

lib/aliases_aix_sysaix.h lib/canonical_aix_sysaix.h : lib/encodings_aix.def lib/genaliases2.c
	$(CC) $(CFLAGS) -DUSE_AIX -DUSE_AIX_ALIASES lib/genaliases2.c -o genaliases
	./genaliases aix lib/aliases_aix_sysaix.h lib/canonical_aix_sysaix.h
	$(RM) genaliases

lib/aliases_osf1.h lib/canonical_osf1.h : lib/encodings_osf1.def lib/genaliases2.c
	$(CC) $(CFLAGS) -DUSE_OSF1 lib/genaliases2.c -o genaliases
	./genaliases osf1 lib/aliases_osf1.h lib/canonical_osf1.h
	$(RM) genaliases

lib/aliases_osf1_sysosf1.h lib/canonical_osf1_sysosf1.h : lib/encodings_osf1.def lib/genaliases2.c
	$(CC) $(CFLAGS) -DUSE_OSF1 -DUSE_OSF1_ALIASES lib/genaliases2.c -o genaliases
	./genaliases osf1 lib/aliases_osf1_sysosf1.h lib/canonical_osf1_sysosf1.h
	$(RM) genaliases

lib/aliases_dos.h lib/canonical_dos.h : lib/encodings_dos.def lib/genaliases2.c
	$(CC) $(CFLAGS) -DUSE_DOS lib/genaliases2.c -o genaliases
	./genaliases dos lib/aliases_dos.h lib/canonical_dos.h
	$(RM) genaliases

lib/aliases_extra.h lib/canonical_extra.h : lib/encodings_extra.def lib/genaliases2.c
	$(CC) $(CFLAGS) -DUSE_EXTRA lib/genaliases2.c -o genaliases
	./genaliases extra lib/aliases_extra.h lib/canonical_extra.h
	$(RM) genaliases


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
	$(CC) $(CFLAGS) lib/genflags.c -o genflags
	./genflags > lib/flags.h
	$(RM) genflags


lib/translit.h : lib/translit.def lib/gentranslit.c
	$(CC) $(CFLAGS) lib/gentranslit.c -o gentranslit
	./gentranslit < lib/translit.def > lib/translit.h
	$(RM) gentranslit


man/%.html : man/%
	$(MAN2HTML) $< > $@-t
	grep -v '<!-- CreationDate' < $@-t > $@
	$(RM) $@-t


gnulib-clean : force
# Move srclib/Makefile.gnulib away, so that the target 'srclib/Makefile.gnulib' will actually do something.
	if test -f srclib/Makefile.gnulib; then \
	  mv srclib/Makefile.gnulib srclib/Makefile.gnulib~; \
	fi
# No need to remove the stale files. gnulib-tool does this itself, thanks to srcm4/gnulib-comp.m4.
#	find srclib '(' -name '*.h' -o -name '*.c' -o -name '*.valgrind' ')' -exec rm -f '{}' ';'
#	rm -rf srcm4

totally-clean : force
	rm -f srclib/Makefile.in
	rm -f aclocal.m4 $(CONFIGURES) config.h.in include/iconv.h.build.in
	rm -f lib/aliases.gperf lib/aliases_sysaix.gperf lib/aliases_syshpux.gperf lib/aliases_sysosf1.gperf lib/aliases_syssolaris.gperf
	rm -f lib/aliases.h lib/aliases_sysaix.h lib/aliases_syshpux.h lib/aliases_sysosf1.h lib/aliases_syssolaris.h
	rm -f lib/aliases_aix.h lib/aliases_aix_sysaix.h
	rm -f lib/aliases_osf1.h lib/aliases_osf1_sysosf1.h
	rm -f lib/aliases_dos.h
	rm -f lib/aliases_extra.h
	rm -f lib/canonical.h lib/canonical_sysaix.h lib/canonical_syshpux.h lib/canonical_sysosf1.h lib/canonical_syssolaris.h
	rm -f lib/canonical_aix.h lib/canonical_aix_sysaix.h
	rm -f lib/canonical_osf1.h lib/canonical_osf1_sysosf1.h
	rm -f lib/canonical_dos.h
	rm -f lib/canonical_extra.h
	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
	rm -f lib/flags.h
	rm -f lib/translit.h
	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
	cd libcharset && $(MAKE) -f Makefile.devel totally-clean


force :
