From 403359433cd5380f66b5eae875fd817afcacc250 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 17 Feb 2017 22:37:44 +0000 Subject: do not configure in disabled (with --disable-PKG) subdirs git-svn-id: svn://tug.org/texlive/trunk@43261 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/ChangeLog | 30 ++---------------------------- Build/source/README | 18 ++++++++++++------ Build/source/am/ChangeLog | 34 ++++++++++++++++++++++++++++++++++ Build/source/am/README | 7 +++++++ Build/source/am/recurse.am | 19 +++++++++++-------- Build/source/m4/ChangeLog | 11 +++++++++++ Build/source/m4/README | 8 ++++++-- Build/source/m4/kpse-setup.m4 | 36 +++++++++++++++++++----------------- 8 files changed, 102 insertions(+), 61 deletions(-) create mode 100644 Build/source/am/ChangeLog create mode 100644 Build/source/am/README (limited to 'Build/source') diff --git a/Build/source/ChangeLog b/Build/source/ChangeLog index 0ad46ff6ce2..781c0a26336 100644 --- a/Build/source/ChangeLog +++ b/Build/source/ChangeLog @@ -1,8 +1,3 @@ -2017-02-16 Karl Berry - - * am/bin_links.am: $(MKDIR_P) $(DESTDIR)$(bindir) to be sure, - since this can end up being called first with --disable-all-pkgs. - 2016-11-16 Karl Berry * Makefile.am (install-exec-hook): warn that the @@ -45,19 +40,10 @@ * tardate.ac: Switch to 2015-03-07. -2015-02-16 Peter Breitenlohner - - * am/dist_hook.am (new): Makefile fragment for dist-hook target. - * Makefile.am: Use the fragment am/dist_hook.am. - 2014-11-24 Peter Breitenlohner * tardate.ac: Switch to 2014-11-24. -2014-11-17 Karl Berry - - * am/script_links.am: Use w32_wrapper or w64_wrapper. - 2014-10-21 Karl Berry * configure.ac: report CC/CXX values, with --version output @@ -127,21 +113,9 @@ * Makefile.am: Add the make target 'texlinks'. -2013-07-16 Peter Breitenlohner - - * am/rebuild.am: Avoid still more 'parallel make' problems. - -2013-07-15 Peter Breitenlohner - - * am/rebuild.am: Avoid more 'parallel make' problems. - 2013-07-06 Peter Breitenlohner - * am/*.am: Moved Makefile fragments from libs/am/ and tekk/am/. - * am/rebuild.am: New Makefile fragment to rebuild a library. - * am/reconfig.am: New Makefile fragment to reconfigure. - * am/recurse.am: New Makefile fragment to recurse into subdirs. - + * am: new subdirectory. * Makefile.am, configure.ac: Use am/recurse.am. 2013-06-24 Peter Breitenlohner @@ -596,4 +570,4 @@ (sup_main_memory, sup_save_size): increase per tex.ch. From Akira. -(This ChangeLog file public domain.) +(This file public domain.) diff --git a/Build/source/README b/Build/source/README index 1f6ccff359b..a6ee005665f 100644 --- a/Build/source/README +++ b/Build/source/README @@ -4,18 +4,24 @@ Public domain. Originally written 2005 by Karl Berry. For a high-level overview of building TeX Live, see http://tug.org/texlive/build.html. In brief: -To configure and make the source tree, run ./Build. -To build (mostly) without optimization, run ./Build --debug. -To make without configuring, run TL_CONFIGURE=true ./Build. +- To configure and make the source tree, run ./Build. + This builds in subdirectory Work/, and installs into subdirectory inst/. + +- To build (mostly) without optimization, run ./Build --debug. + +- If the make fails and you want to rebuild without starting from scratch: + cd Work/whatever/subdir && make + Email tlbuild@tug.org if problems. (Nearly everything the Build script does can be overridden via environment variables; just take a look to see the names.) Many more details about the TL build system, such as configuring to work -on a single program, adding new programs or libraries, recompiling after -fixing problems, etc., are in the doc/tlbuild* document and the sibling -README* files here (which are generated from that document). +on a single program, adding new programs or libraries, documentation +about the many pieces of the system, etc., are in the doc/tlbuild* +document and the sibling README* files here (which are generated from +that document). Build information for some of the platforms. diff --git a/Build/source/am/ChangeLog b/Build/source/am/ChangeLog new file mode 100644 index 00000000000..6b72cb9fc35 --- /dev/null +++ b/Build/source/am/ChangeLog @@ -0,0 +1,34 @@ +2017-02-17 Karl Berry + + * recurse.am: doc fixes. + +2017-02-16 Karl Berry + + * bin_links.am: $(MKDIR_P) $(DESTDIR)$(bindir) to be sure, + since this can end up being called first with --disable-all-pkgs. + +2015-02-16 Peter Breitenlohner + + * dist_hook.am (new): Makefile fragment for dist-hook target. + * Makefile.am: Use the fragment dist_hook.am. + +2014-11-17 Karl Berry + + * script_links.am: Use w32_wrapper or w64_wrapper. + +2013-07-16 Peter Breitenlohner + + * rebuild.am: Avoid still more 'parallel make' problems. + +2013-07-15 Peter Breitenlohner + + * rebuild.am: Avoid more 'parallel make' problems. + +2013-07-06 Peter Breitenlohner + + * *.am: Moved Makefile fragments from libs/ and tekk/. + * rebuild.am: New Makefile fragment to rebuild a library. + * reconfig.am: New Makefile fragment to reconfigure. + * recurse.am: New Makefile fragment to recurse into subdirs. + +(This file public domain.) diff --git a/Build/source/am/README b/Build/source/am/README new file mode 100644 index 00000000000..424899d0ab6 --- /dev/null +++ b/Build/source/am/README @@ -0,0 +1,7 @@ +$Id$ +Public domain. Originally written 2017 by Karl Berry. + +This top-level am/ directory contains fragments which are ultimately used +in Makefile.am files by automake (a.k.a. the top-level reautoconf). + +See also the sibling top-level m4/ directory. diff --git a/Build/source/am/recurse.am b/Build/source/am/recurse.am index 158fb658655..3c6221a93db 100644 --- a/Build/source/am/recurse.am +++ b/Build/source/am/recurse.am @@ -1,16 +1,20 @@ +# $Id$ ## am/recurse.am: Makefile fragment to configure and build subdirs. ## -## Copyright (C) 2013 Peter Breitenlohner +## Copyright 2017 Karl Berry +## Copyright 2013 Peter Breitenlohner ## You may freely use, modify and/or distribute this file. -## -## requires $(recurse_this) and $(recurse_top). -## -# We must configure all subdirs since 'make dist' needs the Makefile. -# For those not required for the current set of configure options +# +# Requires $(recurse_this) and $(recurse_top). +# Uses CONF_SUBDIRS and MAKE_SUBDIRS (set by kpse-setup.m4). +# +# For subdirs not required for the current set of configure options # we append '--disable-build' so they can skip tests that would # fail because, e.g., some required libraries were not built. +# (By manually testing $enable_build in configure, e.g., dvisvgm/configure.) +# # Code inspired by automake's way to handle recursive targets. -## +# cf_silent = $(cf_silent_@AM_V@) cf_silent_ = $(cf_silent_@AM_DEFAULT_V@) cf_silent_0 = --silent @@ -52,4 +56,3 @@ recurse: $(CONFIG_AUX) $(CONFIG_AUX): @echo "configure in $(recurse_top)auxdir/auxsub failed to create the file $@" exit 1 - diff --git a/Build/source/m4/ChangeLog b/Build/source/m4/ChangeLog index 2dd0e21e50c..d8e2d2d11a8 100644 --- a/Build/source/m4/ChangeLog +++ b/Build/source/m4/ChangeLog @@ -1,3 +1,12 @@ +2017-02-17 Karl Berry + + * kpse-setup.m4 (_KPSE_RECURSE): do not add a package to + CONF_SUBDIRS if --disable-PKG was given. Thus, the directory for a + disabled package will no longer be descended into at all, as if it + were nonexistent. This way, if a package's configure causes + problems on some systems (like dvisvgm v2's new requirement for + C++11), --disable-PKG can be given and work can go on. + 2016-03-07 Karl Berry * kpse-pkgs (KPSE_UTILS_PKGS): add autosp. @@ -440,3 +449,5 @@ 2009-08-17 Peter Breitenlohner * kpse-warnings.m4: Implement Objective C compiler warnings. + +(This file public domain.) diff --git a/Build/source/m4/README b/Build/source/m4/README index 52e429face6..d2b7dc0cccf 100644 --- a/Build/source/m4/README +++ b/Build/source/m4/README @@ -1,8 +1,10 @@ -Copyright (C) 2009-2012 Peter Breitenlohner +$Id$ +Copyright 2009-2017 Karl Berry +Copyright 2009-2012 Peter Breitenlohner You may freely use, modify and/or distribute this file. This directory is the central repository for Autoconf macros needed to build -the TeX Live (TL) tree. +the TeX Live (TL) tree. They are incorporated into the configure scripts. (1) Public macros such as libtool.m4 used to build the libraries and programs in the TL subdirectories libs/*/, utils/*/, and texk/*/ that are @@ -25,7 +27,9 @@ owned by the TL tree. kpse-pkgs.m4: defines lists of subdirectories libs/Lib/, utils/Util/, and tex/Prog/ with libraries and programs that can be built as part of the TL tree. + kpse-setup.m4: macros that walk through these lists to provide configure options. They depend on configure fragments */*/ac/withenable.ac defining the dependencies between these libraries and programs. +See also the sibling top-level am/ directory. diff --git a/Build/source/m4/kpse-setup.m4 b/Build/source/m4/kpse-setup.m4 index 192a10b598c..fecf5b1d950 100644 --- a/Build/source/m4/kpse-setup.m4 +++ b/Build/source/m4/kpse-setup.m4 @@ -1,5 +1,7 @@ +# $Id$ (m4/kpse-setup.m4) # Private macros for the TeX Live (TL) tree. -# Copyright (C) 2009-2015 Peter Breitenlohner +# Copyright 2017 Karl Berry +# Copyright 2009-2015 Peter Breitenlohner # # This file is free software; the copyright holder # gives unlimited permission to copy and/or distribute it, @@ -8,12 +10,13 @@ # KPSE_SETUP(TOP-LEVEL) # --------------------- # Initialize path prefix kpse_TL to top-level TeX Live (TL) directory. -# Sinclude all withenable.ac files providing: -# configure options --with-system-LIB, --with-LIB-includes, and --with-LIB-libdir -# for libraries -# configure option --disable-PKG or --enable-PKG for programs -# additional program specific configure options (if any) -# library dependencies for programs and libraries +# Sinclude all pkgdir/ac/withenable.ac files, which are supposed to provide: +# configure options for libraries: +# --with-system-LIB --with-LIB-includes --with-LIB-libdir +# configure options for programs: +# --disable-PROG --enable-PROG +# additional package-specific configure options, if any +# library dependencies for programs and libraries, if any AC_DEFUN([KPSE_SETUP], [dnl AC_REQUIRE([AC_CANONICAL_HOST])[]dnl AC_REQUIRE([_KPSE_MSG_WARN_PREPARE])[]dnl @@ -262,25 +265,24 @@ m4_popdef([Kpse_add])[]dnl # _KPSE_RECURSE(LIST, TEXT, COND, [PREFIX]) # ----------------------------------------- # Internal subroutine. Determine which of the libraries or programs in -# kpse_LIST_pkgs to build, and set output variables MAKE_SUBDIRS and -# CONF_SUBDIRS. Cause 'make dist', 'configure -hr', and 'autoreconf' -# to recurse into all existing ones. +# kpse_LIST_pkgs to build: if a package's source directory contains a +# configure script, and COND is true, then add to the output variables +# MAKE_SUBDIRS and CONF_SUBDIRS. Thus, if a package directory does not +# exist at all, or if the package has been disabled, it will be ignored. +# m4_define([_KPSE_RECURSE], [dnl AC_MSG_CHECKING([for $2 to build]) -MAKE_SUBDIRS= CONF_SUBDIRS= +MAKE_SUBDIRS= KPSE_FOR_PKGS([$1], [dnl m4_ifdef([have_]Kpse_pkg, [dnl -if test -x $srcdir/$4Kpse_Pkg/configure; then - $3 && Kpse_add([MAKE_SUBDIRS]) +if test -x $srcdir/$4Kpse_Pkg/configure && $3; then Kpse_add([CONF_SUBDIRS]) - if false; then - AC_CONFIG_SUBDIRS($4Kpse_Pkg) - fi + Kpse_add([MAKE_SUBDIRS]) fi ])[]dnl m4_ifdef ]) -AC_SUBST([MAKE_SUBDIRS])[]dnl AC_SUBST([CONF_SUBDIRS])[]dnl +AC_SUBST([MAKE_SUBDIRS])[]dnl AC_MSG_RESULT([$MAKE_SUBDIRS])[]dnl ]) # _KPSE_RECURSE -- cgit v1.2.3