GitBucket
4.21.2
Toggle navigation
Snippets
Sign in
Files
Branches
1
Releases
Issues
1
Pull requests
Labels
Priorities
Milestones
Wiki
Forks
nigel.stanger
/
Handbook
Browse code
• Added explicit GNU cp, as the --update flag is useful for only copying files when needed.
master
1 parent
de64731
commit
79440df6efc52a9ba3f5ec21fbfdeb76daf010e1
Nigel Stanger
authored
on 18 Sep 2015
Patch
Showing
2 changed files
configuration/configure.ac
make-includes/local_configuration.make.in
Ignore Space
Show notes
View
configuration/configure.ac
dnl dnl Autoconf script for database paper handbooks. It creates a ./configure dnl that sets up the local configuration of tools, so that it's easy to get dnl up and going again quickly should some package suddenly decide to rearange dnl itself and install things in different locations. It also makes things dnl completely independent of whatever package manager we happen to be using. dnl dnl All tools used in the handbook makefiles should be included here, so as dnl to abstract things as much as possible. This includes even "obvious" things dnl like cp, mv, etc., and also any required environment variables. dnl AC_PREREQ([2.61]) AC_INIT([INFO Database Handbook], [2.0]) dnl dnl Check required environment variables. Note that we don't error out if any dnl aren't defined, as the makefiles will warn about this anyway. It's really dnl just more for completeness than anything that they're included here. dnl AC_MSG_NOTICE([checking handbook environment]) AC_ARG_VAR(TEACHING_SHARED, [the root level of the shared teaching directory (e.g., /path/to/Teaching/Shared)]) AC_ARG_VAR(ALL_PAPERS_ROOT, [the root level of the current teaching directory hierarchy (e.g., /path/to/Teaching/2005)]) AC_ARG_VAR(HANDBOOK_INSTALL_ROOT, [the root level of the directory hierarchy on the web server (e.g., \\INFO-NTS-12\DBCourses$)]) AC_ARG_VAR(XSLT, [default XSLT processor (in order of preference: "saxon-b", "saxon", "xalan-j", "xalan-c")]) AC_CHECK_ENVVAR([TEACHING_SHARED]) AC_CHECK_ENVVAR([ALL_PAPERS_ROOT]) AC_CHECK_ENVVAR([HANDBOOK_INSTALL_ROOT]) dnl This one is required for configuration, so handle separately. AC_MSG_CHECKING([variable XSLT]) AS_IF([test -z $XSLT], [ AC_MSG_RESULT([no]) AC_MSG_ERROR([required environment variable XSLT not defined])], [AC_MSG_RESULT([$XSLT])]) dnl dnl Check required tools. dnl AC_MSG_NOTICE([checking for required tools]) dnl dnl File system. dnl AC_PROG_MKDIR_P AC_PATH_PROG(MV, mv) AC_PATH_PROG(CP, cp) AC_PATH_PROG(RM, rm) AC_PATH_PROG(TOUCH, touch) AC_PROG_LN_S dnl dnl Searching. dnl AC_PROG_GREP dnl We need GNU find as we use some of its specific command-line switches. AC_CACHE_CHECK([for GNU find], [ac_cv_path_FIND], [AC_PATH_PROGS_FEATURE_CHECK([FIND], [gnufind gfind find], [AS_IF([( sh -c "$ac_path_FIND --version" 2> /dev/null | grep GNU 2>&1 > /dev/null )], [ ac_cv_path_FIND=$ac_path_FIND ac_path_FIND_found=:], [])], [AC_MSG_ERROR([could not find GNU find (irony)])])]) AC_SUBST([FIND], [$ac_cv_path_FIND]) dnl dnl Tests. dnl AC_PATH_PROG(TEST_PROGRAM, test) AC_PATH_PROG(TRUE, true) AC_PATH_PROG(FALSE, false) dnl dnl Output. dnl AC_PATH_PROG(ECHO, echo) AC_PATH_PROG(CAT, cat) AC_PATH_PROG(ANNOUNCE, announce) dnl dnl Miscellaneous utilities. dnl AC_PROG_SED AC_PATH_PROG(CUT, cut) AC_PROG_PERL_VERSION(5.6.0) AC_PATH_PROG(DATE, date) AC_PATH_PROG(EXPR, expr) AC_PATH_PROG(BASENAME, basename) AC_PATH_PROG(ZIP, zip) AC_PATH_PROG(UNZIP, unzip) AC_PATH_PROG(GIT, git) AC_PATH_PROG(LOCKFILE, lockfile) dnl Java stuff. AC_PROG_JAVA dnl AC_CHECK_CLASS([org.apache.xml.resolver.apps.resolver]) dnl AC_CHECK_CLASS([net.sf.saxon.Transform]) dnl We make heavy use of features specific to GNU make. AC_CACHE_CHECK([for GNU make], [ac_cv_path_MAKE], [AC_PATH_PROGS_FEATURE_CHECK([MAKE], [gnumake gmake make], [AS_IF([( sh -c "$ac_path_MAKE --version" 2> /dev/null | grep GNU 2>&1 > /dev/null )], [ ac_cv_path_MAKE=$ac_path_MAKE ac_path_MAKE_found=:], [])], [AC_MSG_ERROR([could not find GNU make])])]) AC_SUBST([MAKE], [$ac_cv_path_MAKE]) dnl GNU cp is occasionally useful for the --update flag (copy only if newer). AC_CACHE_CHECK([for GNU cp], [ac_cv_path_GCP], [AC_PATH_PROGS_FEATURE_CHECK([GCP], [gnucp gcp cp], [AS_IF([( sh -c "$ac_path_GCP --version" 2> /dev/null | grep GNU 2>&1 > /dev/null )], [ ac_cv_path_GCP=$ac_path_GCP ac_path_GCP_found=:], [])], [AC_MSG_ERROR([could not find GNU cp])])]) AC_SUBST([GCP], [$ac_cv_path_GCP]) dnl dnl LaTeX and friends. dnl AC_PROG_LATEX AC_PROG_PDFLATEX AC_PROG_XELATEX AC_PROG_DVIPS dnl dnl XML manipulation. dnl AC_PATH_PROG(XMLLINT, xmllint) dnl Use a different variable for the XSLT processor path to keep it distinct dnl from the XSLT environment variable, which serves a slightly different dnl purpose. However, we use the value derived from $XSLT above to seed the dnl executable name. # Figure out the appropriate name of the executable based on $XSLT. AS_CASE([$XSLT], [xalan-c], [AC_PATH_PROG(XSLTPROC, [Xalan])], [xalan-j], [AC_PATH_PROG(XSLTPROC, [xalan])], [saxon-b], [ AC_PATH_JARFILE([saxon9], [SAXON], [/opt/local/share/java /sw/share/java /usr/local/share/java /usr/share/java /opt/local/lib/java /sw/lib/java /usr/local/lib/java /usr/lib/java ${HOME}/Library/Java /Library/Java /System/Library/Java]) AC_MSG_CHECKING([for Saxon-B]) AS_IF([$SAXON_AVAILABLE], [AC_SUBST([XSLTPROC], ["${JAVA} -jar ${SAXON_JAR}"]) AC_MSG_RESULT([$XSLTPROC])], [ AC_MSG_RESULT([no]) AC_MSG_ERROR([could not find Saxon-B])])], [AC_MSG_ERROR([unknown XSLT processor "${XSLT}" specified])]) AC_PATH_JARFILE(resolver, RESOLVER, [/opt/local/share/java /sw/share/java /usr/local/share/java /usr/share/java /opt/local/lib/java /sw/lib/java /usr/local/lib/java /usr/lib/java ${HOME}/Library/Java /Library/Java /System/Library/Java]) AC_MSG_CHECKING([for XML entity resolver]) # We can't use -jar for the entity resolver, because it needs to be able # to use the CLASSPATH to find the CatalogManager.properties file. Using # -jar suppresses the CLASSPATH completely. AS_IF([$RESOLVER_AVAILABLE], [ AC_SUBST([RESOLVER], ["${JAVA} -cp ${RESOLVER_JAR}:${CLASSPATH} org.apache.xml.resolver.apps.resolver"]) AC_MSG_RESULT([$RESOLVER])], [ AC_MSG_RESULT([no]) AC_MSG_ERROR([could not find the XML entity resolver])]) dnl dnl Image manipulation and conversion (includes PDF & PS). dnl AC_PATH_PROG(CONVERT, convert) AC_PATH_PROG(COMPOSITE, composite) AC_PATH_PROG(PDFNUP, pdfnup) AC_PATH_PROG(PDFCROP, pdfcrop) AC_PATH_PROG(PS2EPS, ps2eps) AC_PATH_PROG(PS2PDF, ps2pdf) AC_PATH_PROG(SHIFTBBOX, shiftbbox) AC_PATH_PROG(EPSTOPDF, epstopdf) AC_PATH_PROG(INKSCAPE, inkscape) AC_PATH_PROG(GS, gs) AC_PATH_PROG(XCF2PNG, xcf2png) dnl dnl Plotting tools. dnl AC_PATH_PROG(PLOTICUS, ploticus) AC_PATH_PROG(R, R) dnl dnl Web site synchronisation. dnl AC_PATH_PROG(SITECOPY, sitecopy) dnl dnl CSS development. dnl AC_PATH_PROG(SASS, sass) dnl dnl Files to be generated. Currently this is only make include file containing dnl the list of tools used. We could use autoconf to just insert these directly dnl into each of the files in ../make-includes and ../makefile-templates, as dnl appropriate, but it seems to make more sense to define them all in one dnl place. This will make it easier to reuse them in other (especially dnl non-handbook) contexts. dnl AC_CONFIG_FILES([${TEACHING_SHARED}/Authoring/Handbook/make-includes/local_configuration.make]) AC_OUTPUT
dnl dnl Autoconf script for database paper handbooks. It creates a ./configure dnl that sets up the local configuration of tools, so that it's easy to get dnl up and going again quickly should some package suddenly decide to rearange dnl itself and install things in different locations. It also makes things dnl completely independent of whatever package manager we happen to be using. dnl dnl All tools used in the handbook makefiles should be included here, so as dnl to abstract things as much as possible. This includes even "obvious" things dnl like cp, mv, etc., and also any required environment variables. dnl AC_PREREQ([2.61]) AC_INIT([INFO Database Handbook], [2.0]) dnl dnl Check required environment variables. Note that we don't error out if any dnl aren't defined, as the makefiles will warn about this anyway. It's really dnl just more for completeness than anything that they're included here. dnl AC_MSG_NOTICE([checking handbook environment]) AC_ARG_VAR(TEACHING_SHARED, [the root level of the shared teaching directory (e.g., /path/to/Teaching/Shared)]) AC_ARG_VAR(ALL_PAPERS_ROOT, [the root level of the current teaching directory hierarchy (e.g., /path/to/Teaching/2005)]) AC_ARG_VAR(HANDBOOK_INSTALL_ROOT, [the root level of the directory hierarchy on the web server (e.g., \\INFO-NTS-12\DBCourses$)]) AC_ARG_VAR(XSLT, [default XSLT processor (in order of preference: "saxon-b", "saxon", "xalan-j", "xalan-c")]) AC_CHECK_ENVVAR([TEACHING_SHARED]) AC_CHECK_ENVVAR([ALL_PAPERS_ROOT]) AC_CHECK_ENVVAR([HANDBOOK_INSTALL_ROOT]) dnl This one is required for configuration, so handle separately. AC_MSG_CHECKING([variable XSLT]) AS_IF([test -z $XSLT], [ AC_MSG_RESULT([no]) AC_MSG_ERROR([required environment variable XSLT not defined])], [AC_MSG_RESULT([$XSLT])]) dnl dnl Check required tools. dnl AC_MSG_NOTICE([checking for required tools]) dnl dnl File system. dnl AC_PROG_MKDIR_P AC_PATH_PROG(MV, mv) AC_PATH_PROG(CP, cp) AC_PATH_PROG(RM, rm) AC_PATH_PROG(TOUCH, touch) AC_PROG_LN_S dnl dnl Searching. dnl AC_PROG_GREP dnl We need GNU find as we use some of its specific command-line switches. AC_CACHE_CHECK([for GNU find], [ac_cv_path_FIND], [AC_PATH_PROGS_FEATURE_CHECK([FIND], [gnufind gfind find], [AS_IF([( sh -c "$ac_path_FIND --version" 2> /dev/null | grep GNU 2>&1 > /dev/null )], [ ac_cv_path_FIND=$ac_path_FIND ac_path_FIND_found=:], [])], [AC_MSG_ERROR([could not find GNU find (irony)])])]) AC_SUBST([FIND], [$ac_cv_path_FIND]) dnl dnl Tests. dnl AC_PATH_PROG(TEST_PROGRAM, test) AC_PATH_PROG(TRUE, true) AC_PATH_PROG(FALSE, false) dnl dnl Output. dnl AC_PATH_PROG(ECHO, echo) AC_PATH_PROG(CAT, cat) AC_PATH_PROG(ANNOUNCE, announce) dnl dnl Miscellaneous utilities. dnl AC_PROG_SED AC_PATH_PROG(CUT, cut) AC_PROG_PERL_VERSION(5.6.0) AC_PATH_PROG(DATE, date) AC_PATH_PROG(EXPR, expr) AC_PATH_PROG(BASENAME, basename) AC_PATH_PROG(ZIP, zip) AC_PATH_PROG(UNZIP, unzip) AC_PATH_PROG(GIT, git) AC_PATH_PROG(LOCKFILE, lockfile) dnl Java stuff. AC_PROG_JAVA dnl AC_CHECK_CLASS([org.apache.xml.resolver.apps.resolver]) dnl AC_CHECK_CLASS([net.sf.saxon.Transform]) dnl We make heavy use of features specific to GNU make. AC_CACHE_CHECK([for GNU make], [ac_cv_path_MAKE], [AC_PATH_PROGS_FEATURE_CHECK([MAKE], [gnumake gmake make], [AS_IF([( sh -c "$ac_path_MAKE --version" 2> /dev/null | grep GNU 2>&1 > /dev/null )], [ ac_cv_path_MAKE=$ac_path_MAKE ac_path_MAKE_found=:], [])], [AC_MSG_ERROR([could not find GNU make])])]) AC_SUBST([MAKE], [$ac_cv_path_MAKE]) dnl dnl LaTeX and friends. dnl AC_PROG_LATEX AC_PROG_PDFLATEX AC_PROG_XELATEX AC_PROG_DVIPS dnl dnl XML manipulation. dnl AC_PATH_PROG(XMLLINT, xmllint) dnl Use a different variable for the XSLT processor path to keep it distinct dnl from the XSLT environment variable, which serves a slightly different dnl purpose. However, we use the value derived from $XSLT above to seed the dnl executable name. # Figure out the appropriate name of the executable based on $XSLT. AS_CASE([$XSLT], [xalan-c], [AC_PATH_PROG(XSLTPROC, [Xalan])], [xalan-j], [AC_PATH_PROG(XSLTPROC, [xalan])], [saxon-b], [ AC_PATH_JARFILE([saxon9], [SAXON], [/opt/local/share/java /sw/share/java /usr/local/share/java /usr/share/java /opt/local/lib/java /sw/lib/java /usr/local/lib/java /usr/lib/java ${HOME}/Library/Java /Library/Java /System/Library/Java]) AC_MSG_CHECKING([for Saxon-B]) AS_IF([$SAXON_AVAILABLE], [AC_SUBST([XSLTPROC], ["${JAVA} -jar ${SAXON_JAR}"]) AC_MSG_RESULT([$XSLTPROC])], [ AC_MSG_RESULT([no]) AC_MSG_ERROR([could not find Saxon-B])])], [AC_MSG_ERROR([unknown XSLT processor "${XSLT}" specified])]) AC_PATH_JARFILE(resolver, RESOLVER, [/opt/local/share/java /sw/share/java /usr/local/share/java /usr/share/java /opt/local/lib/java /sw/lib/java /usr/local/lib/java /usr/lib/java ${HOME}/Library/Java /Library/Java /System/Library/Java]) AC_MSG_CHECKING([for XML entity resolver]) # We can't use -jar for the entity resolver, because it needs to be able # to use the CLASSPATH to find the CatalogManager.properties file. Using # -jar suppresses the CLASSPATH completely. AS_IF([$RESOLVER_AVAILABLE], [ AC_SUBST([RESOLVER], ["${JAVA} -cp ${RESOLVER_JAR}:${CLASSPATH} org.apache.xml.resolver.apps.resolver"]) AC_MSG_RESULT([$RESOLVER])], [ AC_MSG_RESULT([no]) AC_MSG_ERROR([could not find the XML entity resolver])]) dnl dnl Image manipulation and conversion (includes PDF & PS). dnl AC_PATH_PROG(CONVERT, convert) AC_PATH_PROG(COMPOSITE, composite) AC_PATH_PROG(PDFNUP, pdfnup) AC_PATH_PROG(PDFCROP, pdfcrop) AC_PATH_PROG(PS2EPS, ps2eps) AC_PATH_PROG(PS2PDF, ps2pdf) AC_PATH_PROG(SHIFTBBOX, shiftbbox) AC_PATH_PROG(EPSTOPDF, epstopdf) AC_PATH_PROG(INKSCAPE, inkscape) AC_PATH_PROG(GS, gs) AC_PATH_PROG(XCF2PNG, xcf2png) dnl dnl Plotting tools. dnl AC_PATH_PROG(PLOTICUS, ploticus) AC_PATH_PROG(R, R) dnl dnl Web site synchronisation. dnl AC_PATH_PROG(SITECOPY, sitecopy) dnl dnl CSS development. dnl AC_PATH_PROG(SASS, sass) dnl dnl Files to be generated. Currently this is only make include file containing dnl the list of tools used. We could use autoconf to just insert these directly dnl into each of the files in ../make-includes and ../makefile-templates, as dnl appropriate, but it seems to make more sense to define them all in one dnl place. This will make it easier to reuse them in other (especially dnl non-handbook) contexts. dnl AC_CONFIG_FILES([${TEACHING_SHARED}/Authoring/Handbook/make-includes/local_configuration.make]) AC_OUTPUT
Ignore Space
Show notes
View
make-includes/local_configuration.make.in
################################################################################ # # @configure_input@ # # This file sets up items that are system dependent (mostly paths to various) # tools, so it must always be loaded FIRST, before any other make includes! In # particular, it MUST be loaded before files that assume its existence, such # as standard_rules.make. # ################################################################################ # File system. MKDIR_P=@MKDIR_P@ MV=@MV@ CP=@CP@ RM=@RM@ TOUCH=@TOUCH@ LN_S=@LN_S@ # Searching. GREP=@GREP@ FIND=@FIND@ # Tests. TEST=@TEST_PROGRAM@ TRUE=@TRUE@ FALSE=@FALSE@ # Output. ECHO=@ECHO@ CAT=@CAT@ ANNOUNCE=@ANNOUNCE@ # Miscellaneous. SED=@SED@ CUT=@CUT@ PERL=@PERL@ DATE=@DATE@ EXPR=@EXPR@ BASENAME=@BASENAME@ ZIP=@ZIP@ UNZIP=@UNZIP@ GIT=@GIT@ LOCKFILE=@LOCKFILE@ JAVA=@JAVA@ MAKE=@MAKE@ GCP=@GCP@ # LaTeX and friends. LATEX=@latex@ PDFLATEX=@pdflatex@ XELATEX=@xelatex@ DVIPS=@dvips@ # XML manipulation. XMLLINT=@XMLLINT@ # Note: XSLTPROC is distinct from the XSLT environment variable. # We may not even use this directly, as the command-line arguments are # different for each processor anyway, which means that the current # approach of parameterised make functions is better in general. XSLTPROC=@XSLTPROC@ RESOLVER=@RESOLVER@ # Image manipulation and conversion (includes PDF & PS). CONVERT=@CONVERT@ COMPOSITE=@COMPOSITE@ PDFNUP=@PDFNUP@ PDFCROP=@PDFCROP@ PS2EPS=@PS2EPS@ PS2PDF=@PS2PDF@ SHIFTBBOX=@SHIFTBBOX@ EPSTOPDF=@EPSTOPDF@ INKSCAPE=@INKSCAPE@ GS=@GS@ XCF2PNG=@XCF2PNG@ # Plotting tools. PLOTICUS=@PLOTICUS@ R=@R@ # Web site synchronisation. SITECOPY=@SITECOPY@ # CSS development. SASS=@SASS@
################################################################################ # # @configure_input@ # # This file sets up items that are system dependent (mostly paths to various) # tools, so it must always be loaded FIRST, before any other make includes! In # particular, it MUST be loaded before files that assume its existence, such # as standard_rules.make. # ################################################################################ # File system. MKDIR_P=@MKDIR_P@ MV=@MV@ CP=@CP@ RM=@RM@ TOUCH=@TOUCH@ LN_S=@LN_S@ # Searching. GREP=@GREP@ FIND=@FIND@ # Tests. TEST=@TEST_PROGRAM@ TRUE=@TRUE@ FALSE=@FALSE@ # Output. ECHO=@ECHO@ CAT=@CAT@ ANNOUNCE=@ANNOUNCE@ # Miscellaneous. SED=@SED@ CUT=@CUT@ PERL=@PERL@ DATE=@DATE@ EXPR=@EXPR@ BASENAME=@BASENAME@ ZIP=@ZIP@ UNZIP=@UNZIP@ GIT=@GIT@ LOCKFILE=@LOCKFILE@ JAVA=@JAVA@ MAKE=@MAKE@ # LaTeX and friends. LATEX=@latex@ PDFLATEX=@pdflatex@ XELATEX=@xelatex@ DVIPS=@dvips@ # XML manipulation. XMLLINT=@XMLLINT@ # Note: XSLTPROC is distinct from the XSLT environment variable. # We may not even use this directly, as the command-line arguments are # different for each processor anyway, which means that the current # approach of parameterised make functions is better in general. XSLTPROC=@XSLTPROC@ RESOLVER=@RESOLVER@ # Image manipulation and conversion (includes PDF & PS). CONVERT=@CONVERT@ COMPOSITE=@COMPOSITE@ PDFNUP=@PDFNUP@ PDFCROP=@PDFCROP@ PS2EPS=@PS2EPS@ PS2PDF=@PS2PDF@ SHIFTBBOX=@SHIFTBBOX@ EPSTOPDF=@EPSTOPDF@ INKSCAPE=@INKSCAPE@ GS=@GS@ XCF2PNG=@XCF2PNG@ # Plotting tools. PLOTICUS=@PLOTICUS@ R=@R@ # Web site synchronisation. SITECOPY=@SITECOPY@ # CSS development. SASS=@SASS@
Show line notes below