aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--Makefile.in28
-rw-r--r--Makefile.pamphlet40
-rw-r--r--config/var-def.mk1
-rwxr-xr-xconfigure12
-rw-r--r--configure.ac10
-rw-r--r--configure.ac.pamphlet21
7 files changed, 113 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 4d6f61be..fae6a85a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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@
diff --git a/configure b/configure
index d0a6f7fd..21072ec1 100755
--- a/configure
+++ b/configure
@@ -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
@