# $Id$
# @configure_input@
# Makefile for teTeX distribution, also used for TeX Live.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

srcdir = @srcdir@
VPATH  = $(srcdir)

SHELL = /bin/sh

prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
scriptdir = $(bindir)
texmf = @texmfmain@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DATA = @INSTALL_DATA@

NCURSESDIR=libs/ncurses
ZLIBDIR=libs/zlib
LIBPNGDIR=libs/libpng
LIBT1DIR=libs/t1lib
LIBTYPE1DIR=$(LIBT1DIR)/../type1
LIBXPDFDIR=libs/xpdf
GDDIR=libs/gd
FREETYPEDIR=libs/freetype
FREETYPE2DIR=libs/freetype2
ICUDIR=libs/icu-xetex
TECKITDIR=libs/teckit
LIBOBSDCOMPATDIR=libs/obsdcompat
GRAPHITEDIR=libs/graphite-engine

# Subdirectories that have makefiles
ESUBDIRS = @ESUBDIRS@ texk
LIBSDIRS = @LIBSDIRS@

# Subdirectories for which we want to run make (un)install; these are
# different for xdvik standalone distribution where we don't want to
# install kpathsea and friends by default.
INSTDIRS = @INSTDIRS@

default: all
install install-exec install-data uninstall: all 
	for dir in $(INSTDIRS); do \
	  echo making $@ in $$dir; \
	  (cd $$dir && $(MAKE) $@) || exit 1; \
	done
# only do this at make install, because the binaries won't be there with
# just install-data, and fmtutil.cnf won't be there with just install-exec.
	if test "$@" = install; then \
	  echo "top-level make $@: running texlinks ..."; \
	  cd texk/tetex && $(MAKE) run-texlinks; \
	fi

strip: install 
	cd $(bindir) && strip * >/dev/null 2>&1 || true

check:
	cd texk; TEXMF='{$(texmf),$(texmf)-dist}' TEXMFCNF=$(texmf)/web2c $(MAKE) $@

Makefile: Makefile.in config.status
	$(SHELL) ./config.status

all clean mostlyclean:
	esubdirs="$(LIBSDIRS) $(ESUBDIRS)"; \
	  for dir in $$esubdirs; do \
	    echo making $@ in $$dir; \
	    (if test -f $$dir/Makefile; then cd $$dir && $(MAKE) $@; else true; fi) || exit 1; \
	  done
	@echo "make $@ done."

# to build libraries only, when working on drivers.
lib: @LIBSDEP@

distclean: clean
	cleandirs="$(LIBSDIRS) $(ESUBDIRS)"; \
	  for dir in $$cleandirs; do \
	    echo making $@ in $$dir; \
	    (if test -f $$dir/Makefile; then cd $$dir && $(MAKE) $@; else true; fi) || exit 1; \
	  done
	rm -f Makefile *.status *.cache *.log dialogconfig.h TAGS
	rm -f libs/config.log libs/config.status libs/config.cache
realclean: distclean

tags TAGS:
	rm -f TAGS
	find . -name '*.[ch]' -print | xargs etags --append -o TAGS

# 
# This is the default target for the Build script in TeX Live.
world: strip
	@echo "make $@ done."

pdftex pdfetex:
	cd texk/web2c && $(MAKE) $@
	test -f texk/web2c/pdftex && ls -l texk/web2c/pdftex
	test -f texk/web2c/pdfetex && ls -l texk/web2c/pdfetex

$(NCURSESDIR)/lib/libncurses.a:
	cd $(NCURSESDIR); $(MAKE)
$(ZLIBDIR)/libz.a:
	cd $(ZLIBDIR); $(MAKE) libz.a
$(LIBPNGDIR)/libpng.a:
	cd $(LIBPNGDIR); $(MAKE) libpng.a
$(LIBT1DIR)/libt1.a:
	cd $(LIBT1DIR); $(MAKE) libt1.a
$(LIBTYPE1DIR)/libtype1.a:
	cd $(LIBTYPE1DIR); $(MAKE) libtype1.a
$(LIBXPDFDIR)/xpdf/libxpdf.a:
	cd $(LIBXPDFDIR)/xpdf; $(MAKE) libxpdf.a
$(LIBXPDFDIR)/goo/libGoo.a:
	cd $(LIBXPDFDIR)/goo; $(MAKE) libGoo.a
$(LIBXPDFDIR)/fofi/libfofi.a:
	cd $(LIBXPDFDIR)/fofi; $(MAKE) libfofi.a
$(GDDIR)/libgd.a:
	cd $(GDDIR); $(MAKE) libgd.a
$(FREETYPEDIR)/lib/.libs/libttf.a:
	cd $(FREETYPEDIR); $(MAKE)
$(FREETYPE2DIR)/.libs/libfreetype.a:
	cd $(FREETYPE2DIR); $(MAKE)
$(ICUDIR)/lib/libsicuuc.a $(ICUDIR)/lib/libsicule.a $(ICUDIR)/lib/libsicudata.a:
	cd $(ICUDIR); $(MAKE)
$(TECKITDIR)/lib/.libs/libTECkit.a:
	cd $(TECKITDIR); $(MAKE)
$(LIBOBSDCOMPATDIR)/libopenbsd-compat.a:
	cd $(LIBOBSDCOMPATDIR); $(MAKE) libopenbsd-compat.a
$(GRAPHITEDIR)/src/.libs/libgraphite.a:
	cd $(GRAPHITEDIR); $(MAKE)

# Prevent GNU make v3 from overflowing arg limit on SysV.
.NOEXPORT: