summaryrefslogtreecommitdiff
path: root/Build/source/Makefile.am
blob: 899c371d509a00ecf722cb544ecc4fc6fdc098e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
## Makefile.am for the TeX Live top-level
##
## Copyright (C) 2009-2011 Peter Breitenlohner <tex-live@tug.org>
## You may freely use, modify and/or distribute this file.
##
## Use 'aclocal --force' (for "computed m4_sinclude")
##
ACLOCAL_AMFLAGS = -I m4 --force

## speed up distcheck
DISTCHECK_CONFIGURE_FLAGS = -C
## check as well for symlinks
distuninstallcheck_listfiles = find . -type f -o -type l -print
distcleancheck_listfiles = find . -type f -o -type l -print

EXTRA_DIST = \
	Build \
	README.coding \
	README.config \
	README.cross \
	README.distro \
	README.hacking \
	README.layout \
	build-aux/README.TL \
	m4/ChangeLog \
	m4/README \
	reautoconf

# just in case a subdirectory has added directories
dist-hook:
	rm -rf `find $(distdir) -name .svn`

CONFIG_AUX = subsubdir-conf.cmd

SUBDIRS = . $(TEXLIBS) libs utils texk
DIST_SUBDIRS = auxdir/auxsub $(DIST_TEXLIBS) libs utils texk

all-local: texlibs

.PHONY: texlibs
# We must configure all texk subdirs since 'make dist' needs the Makefile.
# For those not required for the current set of configure options
# we append '--disable-build' so they can skip tests that would
# fail because other libraries were not built.
#
# Sequentially configure and optionally build all texk subdirs;
# code inspired by automake's way to handle recursive targets.
texlibs: $(CONFIG_AUX)
	@fail= failcom='exit 1'; \
	for f in x $$MAKEFLAGS; do \
	  case $$f in \
	    *=* | --[!k]*);; \
	    *k*) failcom='fail=yes';; \
	  esac; \
	done; \
	list='$(DIST_TEXLIBS)'; for texlibs in $$list; do \
	  if test ! -f $$texlibs/Makefile; then \
	    test -d $$texlibs || $(MKDIR_P) $$texlibs; \
	    cmd=`cat $(CONFIG_AUX) | sed "s,auxdir/auxsub,$$texlibs,g"`; \
	    case " $(TEXLIBS) " in \
	      *" $$texlibs "*) skip=;; \
	      *) skip=' --disable-build';; \
	    esac; \
	    (cd $$texlibs && echo "=== configuring in $$texlibs (`pwd`)" && \
	      echo "make: running $(SHELL) $$cmd$$skip" && \
	      CONFIG_SHELL=$(SHELL) && export CONFIG_SHELL && \
	      eval $(SHELL) $$cmd$$skip || \
	        { echo "=== configuring in $$texlibs failed"; exit 1; }) && \
	    if test "x$$skip" = x; then \
	      echo "Making all in $$texlibs" && \
	      (cd $$texlibs && $(MAKE) $(AM_MAKEFLAGS) all); \
	    fi || eval $$failcom; \
	  fi; \
	done; test -z "$$fail"

subsubdir-conf.cmd:
	@echo "configure in auxdir/auxsub failed to create the file $@"
	exit 1


# This is the default target for the Build script in TeX Live.
.PHONY: world
# Run texlinks here since the binaries won't be there
# at install-data, and fmtutil.cnf won't be there at install-exec,
# and there is no install-hook or install-local.
world: all
## Serialize 'make all' and 'make install-strip'.
	@echo "top-level make $@: running install-strip..."
	$(MAKE) $(AM_MAKEFLAGS) install-strip
##
	@echo "top-level make $@: running texlinks in texk/tetex..."
	cd texk/tetex && $(MAKE) $(AM_MAKEFLAGS) run-texlinks
##
	@echo "top-level make $@: running $(check_target)..."
	$(MAKE) $(AM_MAKEFLAGS) $(check_target)
##
	@echo "make $@ done."

# Allow for skipping make check if needed.
if cross
check_target = skip
else !cross
check_target = check
endif !cross
skip:
.PHONY: skip

# Special target to run TRIP and TRAP tests and create diffs.
.PHONY: triptrap
triptrap:
	cd texk && $(MAKE) $(AM_MAKEFLAGS) $@