diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | Makefile.in | 28 | ||||
-rw-r--r-- | Makefile.pamphlet | 40 | ||||
-rw-r--r-- | config/var-def.mk | 1 | ||||
-rwxr-xr-x | configure | 12 | ||||
-rw-r--r-- | configure.ac | 10 | ||||
-rw-r--r-- | configure.ac.pamphlet | 21 |
7 files changed, 113 insertions, 10 deletions
@@ -1,3 +1,14 @@ +2007-08-16 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * configure.ac.pamphlet: Don't error out if noweb source files + are present when no executable is available. + * configure.ac.: Regenerate. + * configure: Likewise. + * config/var-def.mk (axiom_build_nowebdir): Resurect. + * Makefile.pamphlet (<<noweb>>): Resurect. + (clean-local): Remove noweb build dir too. + * Makefile.in: Regenerate. + 2007-08-15 Gabriel Dos Reis <gdr@cs.tamu.edu> * configure.ac.pamphlet: Check GCL tarball dependency. diff --git a/Makefile.in b/Makefile.in index e03689be..33990568 100644 --- a/Makefile.in +++ b/Makefile.in @@ -40,6 +40,33 @@ stamp-rootdirs: $(axiom_build_document) @$(STAMP) stamp-rootdirs +.PHONY: all-noweb +all-noweb: $(addprefix $(axiom_build_bindir)/, notangle noweave) + +$(addprefix $(axiom_build_bindir)/, notangle noweave): + $(mkinstalldirs) $(axiom_build_bindir) + $(mkinstalldirs) $(axiom_build_libdir) + $(mkinstalldirs) $(axiom_build_texdir) + $(mkinstalldirs) $(axiom_build_mandir) + if test "$(srcdir)" != "$(builddir)" -a ! -d noweb; then \ + cp -r $(srcdir)/noweb $(builddir); \ + fi; + cd noweb/src && \ + touch *.h *.c && \ + cat Makefile \ + | sed -e "s,^BIN=.*,BIN=$(axiom_abs_build_bindir)," \ + -e "s,^LIB=.*,LIB=$(axiom_abs_build_libdir)," \ + -e "s,^MAN=.*,MAN=$(axiom_abs_build_mandir)," \ + -e "s,^TEXINPUTS=.*,TEXINPUTS=$(axiom_abs_build_texdir)," \ + -e "s, make , $$\(MAKE\) ," \ + -e "s,c/nt,c/nt$(EXEEXT)," \ + -e "s,c/markup,c/markup$(EXEEXT)," \ + -e "s,c/mnt,c/mnt$(EXEEXT)," \ + -e "s,c/finduses,c/finduses$(EXEEXT)," \ + -e "s/-texhash.*/:/" \ + -e "s/ install-elisp//" \ + > Makefile.tmp && mv Makefile.tmp Makefile && \ + ./awkname $(AWK) && $(MAKE) all install .PHONY: all-gcl all-gcl: $(axiom_build_bindir)/gcl$(EXEEXT) @@ -62,6 +89,7 @@ mostlyclean-local: @-rm -f lastBuildDate clean-local: mostlyclean-local + @rm -fr $(axiom_build_nowebdir) @ rm -f stamp-* @ rm -rf int diff --git a/Makefile.pamphlet b/Makefile.pamphlet index 68629a00..80ecd2ba 100644 --- a/Makefile.pamphlet +++ b/Makefile.pamphlet @@ -341,6 +341,7 @@ $(AXIOM_SRC_TARGETS): <<rootdirs>> +<<noweb>> <<gcl>> <<install>> @@ -348,6 +349,7 @@ mostlyclean-local: @-rm -f lastBuildDate clean-local: mostlyclean-local + @rm -fr $(axiom_build_nowebdir) @ rm -f stamp-* @ rm -rf int @@ -507,6 +509,44 @@ $(axiom_build_bindir)/gcl$(EXEEXT): @ +\subsection{\Tool{noweb}} + +When \Tool{noweb} is not available from the build environment +and a \Tool{noweb} source files a present in a top level directory +named \File{noweb}, we use those source file to build the executable +necessary to extract codes and documentations. +% +<<noweb>>= +.PHONY: all-noweb +all-noweb: $(addprefix $(axiom_build_bindir)/, notangle noweave) + +$(addprefix $(axiom_build_bindir)/, notangle noweave): + $(mkinstalldirs) $(axiom_build_bindir) + $(mkinstalldirs) $(axiom_build_libdir) + $(mkinstalldirs) $(axiom_build_texdir) + $(mkinstalldirs) $(axiom_build_mandir) + if test "$(srcdir)" != "$(builddir)" -a ! -d noweb; then \ + cp -r $(srcdir)/noweb $(builddir); \ + fi; + cd noweb/src && \ + touch *.h *.c && \ + cat Makefile \ + | sed -e "s,^BIN=.*,BIN=$(axiom_abs_build_bindir)," \ + -e "s,^LIB=.*,LIB=$(axiom_abs_build_libdir)," \ + -e "s,^MAN=.*,MAN=$(axiom_abs_build_mandir)," \ + -e "s,^TEXINPUTS=.*,TEXINPUTS=$(axiom_abs_build_texdir)," \ + -e "s, make , $$\(MAKE\) ," \ + -e "s,c/nt,c/nt$(EXEEXT)," \ + -e "s,c/markup,c/markup$(EXEEXT)," \ + -e "s,c/mnt,c/mnt$(EXEEXT)," \ + -e "s,c/finduses,c/finduses$(EXEEXT)," \ + -e "s/-texhash.*/:/" \ + -e "s/ install-elisp//" \ + > Makefile.tmp && mv Makefile.tmp Makefile && \ + ./awkname $(AWK) && $(MAKE) all install +@ + + \subsection{install} <<install>>= install: diff --git a/config/var-def.mk b/config/var-def.mk index 2e56ac2d..874e3b8a 100644 --- a/config/var-def.mk +++ b/config/var-def.mk @@ -207,6 +207,7 @@ axiom_include_gcl = @axiom_include_gcl@ ## -- Files generated for the build machine -- ## ------------------------------------------- axiom_build_document = $(axiom_top_builddir)/scripts/document +axiom_build_nowebdir = $(axiom_builddir)/noweb TANGLE = @NOTANGLE@ WEAVE = @NOWEAVE@ @@ -20506,11 +20506,17 @@ done ## In case noweb is missing we need to build our own. if test -z $NOTANGLE -o -z $NOWEAVE ; then - { echo "$as_me:$LINENO: OpenAxiom requires noweb utilties" >&5 + ## Yes, but do we have the source files to build from? + if test ! -d ${srcdir}/noweb; then + { echo "$as_me:$LINENO: OpenAxiom requires noweb utilties" >&5 echo "$as_me: OpenAxiom requires noweb utilties" >&6;} - { { echo "$as_me:$LINENO: error: Please install noweb and reconfigure" >&5 -echo "$as_me: error: Please install noweb and reconfigure" >&2;} + { { echo "$as_me:$LINENO: error: Please get the tarball of dependencies and reconfigure" >&5 +echo "$as_me: error: Please get the tarball of dependencies and reconfigure" >&2;} { (exit 1); exit 1; }; } + fi + NOTANGLE='$(axiom_build_bindir)/notangle' + NOWEAVE='$(axiom_build_bindir)/noweave' + axiom_all_prerequisites="$axiom_all_prerequisites all-noweb" fi ## ------------------------ diff --git a/configure.ac b/configure.ac index 6c13ed26..7ec29ebf 100644 --- a/configure.ac +++ b/configure.ac @@ -110,8 +110,14 @@ AC_CHECK_PROGS([NOWEAVE], [noweave]) ## In case noweb is missing we need to build our own. if test -z $NOTANGLE -o -z $NOWEAVE ; then - AC_MSG_NOTICE([OpenAxiom requires noweb utilties]) - AC_MSG_ERROR([Please install noweb and reconfigure]) + ## Yes, but do we have the source files to build from? + if test ! -d ${srcdir}/noweb; then + AC_MSG_NOTICE([OpenAxiom requires noweb utilties]) + AC_MSG_ERROR([Please get the tarball of dependencies and reconfigure]) + fi + NOTANGLE='$(axiom_build_bindir)/notangle' + NOWEAVE='$(axiom_build_bindir)/noweave' + axiom_all_prerequisites="$axiom_all_prerequisites all-noweb" fi ## ------------------------ diff --git a/configure.ac.pamphlet b/configure.ac.pamphlet index 61011e4b..927e158d 100644 --- a/configure.ac.pamphlet +++ b/configure.ac.pamphlet @@ -681,9 +681,14 @@ AC_CHECK_PROG([AR], [ar], [ar], [AC_MSG_ERROR([program 'ar' is missing])]) OpenAxiom sources is literate, and it uses the \Tool{noweb} technology. \Tool{noweb} is used to extract both the actual source code from the pamphlet files, and the documentation as \LaTeX{} source files. -There are many platforms on which \Tool{noweb} is inexistent. OpenAxiom source -repository used to cache a copy of \Tool{noweb}. We now require -that an external [[noweb]] executable. +There are many platforms on which \Tool{noweb} is not installed +by default. There is tarball of the dependencies on OpenAxiom's +web site to people to grab in case they don't have \Tool{noweb} +or \Tool{GCL}. What we do is that if noweb is not found, then +we try to build one from the tarball of dependency. For that +to work, the protocol is that the user has placed \Tool{noweb}'s source +files in a directory named \File{noweb/} at the top level. Normally, +this works right when one follows the installation instructions. % <<doc utils>>= AC_PATH_PROG([LATEX], [latex]) @@ -704,8 +709,14 @@ AC_CHECK_PROGS([NOWEAVE], [noweave]) ## In case noweb is missing we need to build our own. if test -z $NOTANGLE -o -z $NOWEAVE ; then - AC_MSG_NOTICE([OpenAxiom requires noweb utilties]) - AC_MSG_ERROR([Please install noweb and reconfigure]) + ## Yes, but do we have the source files to build from? + if test ! -d ${srcdir}/noweb; then + AC_MSG_NOTICE([OpenAxiom requires noweb utilties]) + AC_MSG_ERROR([Please get the tarball of dependencies and reconfigure]) + fi + NOTANGLE='$(axiom_build_bindir)/notangle' + NOWEAVE='$(axiom_build_bindir)/noweave' + axiom_all_prerequisites="$axiom_all_prerequisites all-noweb" fi @ |