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 check for Perl executable so that AX_PROG_PERL_VERSION works properly.
• Tweaked PHP output.
master
1 parent
1be3362
commit
f6a9564dc43f9a18f57cd7e56403c4a14f523668
Nigel Stanger
authored
on 9 Dec 2017
Patch
Showing
1 changed file
configuration/configure.ac
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(RSYNC, rsync) AC_PATH_PROG(TOUCH, touch) AC_PATH_PROG(MKTEMP, mktemp) 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(TR, tr) AC_PATH_PROG(CUT, cut) AC_PATH_PROG(PERL, perl) AX_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. AX_PROG_JAVA dnl AX_CHECK_CLASS([org.apache.xml.resolver.apps.resolver]) dnl AX_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 PHP dnl AC_PATH_PROG(PHP, php) AS_IF([$PHP_AVAILABLE], [ AC_MSG_CHECKING([for php package Numbers_Words]) AS_IF([(sh -c "$ac_cv_path_PHP -r 'require AS_ESCAPE(["Numbers/Words.php"]);'" 2>&1 /dev/null | grep 'Failed opening required' 2>&1 > /dev/null)], [ AC_MSG_RESULT([no]) AC_MSG_ERROR([could not find php package Numbers_Words])], [ AC_MSG_RESULT([yes])])]) dnl dnl LaTeX and friends. dnl AC_PROG_LATEX AC_PROG_PDFLATEX AC_PROG_XELATEX AC_PROG_DVIPS dnl dnl PlantUML dnl AC_PATH_JARFILE(plantuml, PLANTUML, [/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 PlantUML]) AS_IF([$PLANTUML_AVAILABLE], [AC_SUBST([PLANTUML], ["${JAVA} -jar ${PLANTUML_JAR}"]) AC_MSG_RESULT([$PLANTUML])], [ AC_MSG_RESULT([no]) AC_MSG_ERROR([could not find PlantUML])]) 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. dnl 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]) dnl We can't use -jar for the entity resolver, because it needs to be able dnl to use the CLASSPATH to find the CatalogManager.properties file. Using dnl -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(RSVG_CONVERT, rsvg-convert) 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(RSYNC, rsync) AC_PATH_PROG(TOUCH, touch) AC_PATH_PROG(MKTEMP, mktemp) 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(TR, tr) AC_PATH_PROG(CUT, cut) AX_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. AX_PROG_JAVA dnl AX_CHECK_CLASS([org.apache.xml.resolver.apps.resolver]) dnl AX_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 PHP dnl AC_PATH_PROG(PHP, php) AS_IF([$PHP_AVAILABLE], [ AC_MSG_CHECKING([for Numbers_Words package (PHP)]) AS_IF([(sh -c "$ac_cv_path_PHP -r 'require AS_ESCAPE(["Numbers/Words.php"]);'" 2>&1 /dev/null | grep 'Failed opening required' 2>&1 > /dev/null)], [ AC_MSG_RESULT([no]) AC_MSG_ERROR([could not find Numbers_Words package (PHP)])], [ AC_MSG_RESULT([yes])])]) dnl dnl LaTeX and friends. dnl AC_PROG_LATEX AC_PROG_PDFLATEX AC_PROG_XELATEX AC_PROG_DVIPS dnl dnl PlantUML dnl AC_PATH_JARFILE(plantuml, PLANTUML, [/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 PlantUML]) AS_IF([$PLANTUML_AVAILABLE], [AC_SUBST([PLANTUML], ["${JAVA} -jar ${PLANTUML_JAR}"]) AC_MSG_RESULT([$PLANTUML])], [ AC_MSG_RESULT([no]) AC_MSG_ERROR([could not find PlantUML])]) 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. dnl 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]) dnl We can't use -jar for the entity resolver, because it needs to be able dnl to use the CLASSPATH to find the CatalogManager.properties file. Using dnl -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(RSVG_CONVERT, rsvg-convert) 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
Show line notes below