Hi, This patchlet adds support for the traditional
./configure && make && make install There no longer should be a need to set and export the variables AXIOM and PATH before doing make. The other version I had was doing a major overhall of toplevel Makefile. To allow people follow the changes, I decided on this alternative way of doing it. Nevertheless, the current Makefiles remain a big mess :-( Tested on i686-suse-linux and i686-redhat-linux. -- Gaby 2006-08-05 Gabriel Dos Reis <[EMAIL PROTECTED]> Provide support for "./configure && make && make install". * build-setup.sh: Generate Makefile.in too. * configure.ac.pamphlet (must_set_AXIOM): Don't ask user to set the AXIOM variable. * configure.ac: Regenerate. * configure: Regenerate. * Makefile.pamphlet (do-all): New target. Rename from target all. (all): Export the variable AXIOM, then make do-all. (VERSION): Update. * Makefile.in: Generate. *** Makefile.pamphlet (revision 15558) --- Makefile.pamphlet (local) *************** it walked the Makefile hierarchy trying *** 24,39 **** method often fails for various reasons (e.g. permissions, incomplete builds, etc). Now we simply remove the created files directly. \eject \subsection{The Top Level Makefile} <<*>>= <<environment>> ! all: noweb ${MNT}/${SYS}/bin/Makefile.pamphlet @ echo 1 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART} @ echo 2 Environment ${ENV} @ ${TANGLE} -t8 -RMakefile.${SYS} Makefile.pamphlet >Makefile.${SYS} ! @ ${DOCUMENT} Makefile ! @ mkdir -p ${MNT}/${SYS}/doc/src ! @ cp Makefile.dvi ${MNT}/${SYS}/doc/src/root.Makefile.dvi @ ${ENV} $(MAKE) -f Makefile.${SYS} @echo 3 finished system build on `date` | tee >lastBuildDate --- 24,48 ---- method often fails for various reasons (e.g. permissions, incomplete builds, etc). Now we simply remove the created files directly. \eject + \subsection{The Top Level Makefile} <<*>>= <<environment>> ! ! PATH_EXPORTS = [EMAIL PROTECTED]@; export AXIOM; [EMAIL PROTECTED]@/bin:$${PATH} ! ! all: ! $(PATH_EXPORTS); $(MAKE) do-all ! ! do-all: noweb ${MNT}/${SYS}/bin/Makefile.pamphlet @ echo 1 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART} @ echo 2 Environment ${ENV} @ ${TANGLE} -t8 -RMakefile.${SYS} Makefile.pamphlet >Makefile.${SYS} ! @ (cp Makefile.pamphlet root-Makefile.pamphlet; \ ! ${DOCUMENT} root-Makefile; \ ! cp root-Makefile.dvi Makefile.dvi; \ ! mkdir -p ${MNT}/${SYS}/doc/src; \ ! cp Makefile.dvi ${MNT}/${SYS}/doc/root.Makefile.dvi) @ ${ENV} $(MAKE) -f Makefile.${SYS} @echo 3 finished system build on `date` | tee >lastBuildDate *************** The [[DOCUMENT]] variable is now set to *** 291,297 **** to the [[$SPADBIN/document]] command. This will allow it to be changed on the command line. <<environment>>= ! VERSION="Axiom (build improvements branch) -- 2006-08-01" SPD=$(shell pwd) SYS=$(notdir $(AXIOM)) SPAD=${SPD}/mnt/${SYS} --- 300,306 ---- to the [[$SPADBIN/document]] command. This will allow it to be changed on the command line. <<environment>>= ! VERSION="Axiom (build improvements branch) -- 2006-08-05" SPD=$(shell pwd) SYS=$(notdir $(AXIOM)) SPAD=${SPD}/mnt/${SYS} *************** ${LSP}/Makefile: ${LSP}/Makefile.pamphle *** 549,556 **** if [ "${GCLVERSION}" != "gcl-2.4.1" ] ; then \ ${TANGLE} -t8 -R"${GCLVERSION}" Makefile.pamphlet >Makefile ; \ fi ) ! @cp Makefile.dvi ${MNT}/${SYS}/doc/src ! @ Here we add [[mkdir -p ${OBJ}/${SYS}/lsp]] because we need to rename the --- 558,564 ---- if [ "${GCLVERSION}" != "gcl-2.4.1" ] ; then \ ${TANGLE} -t8 -R"${GCLVERSION}" Makefile.pamphlet >Makefile ; \ fi ) ! @cp Makefile.dvi ${MNT}/${SYS}/doc/src @ Here we add [[mkdir -p ${OBJ}/${SYS}/lsp]] because we need to rename the *** build-setup.sh (revision 15558) --- build-setup.sh (local) *************** error() { *** 9,14 **** --- 9,39 ---- notangle ./configure.ac.pamphlet > ./configure.ac \ || error "could not extract configure.ac from pamphlet file" + notangle -t8 ./Makefile.pamphlet > ./Makefile.in \ + || error "could not extract Makefile.in from pamphlet file" + autoconf || error "could not re-generate configure" *** configure.ac.pamphlet (revision 15558) --- configure.ac.pamphlet (local) *************** if test "$SYSNAME" != "fedora3"; then *** 394,406 **** fi must_set_AXIOM() { - AC_MSG_NOTICE([]) - AC_MSG_NOTICE([===================================================]) - AC_MSG_NOTICE([]) - AC_MSG_NOTICE([You must set your AXIOM and PATH variables. Type:]) - AC_MSG_NOTICE([]) - AC_MSG_NOTICE([export AXIOM=`pwd`/mnt/$SYSNAME]) - AC_MSG_NOTICE([export PATH=\$AXIOM/bin:\$PATH]) case "$SYSNAME" in freebsd) AC_MSG_NOTICE([Note that freebsd usually has noweb available]) --- 394,399 ---- *************** must_set_AXIOM() { *** 409,419 **** AC_MSG_NOTICE([If you wish to use a pre-installed GCL you must type]) AC_MSG_NOTICE([make GCLVERSION=gcl-system]) ;; - solaris9) - AC_MSG_NOTICE([make AWK=gawk TAR=gtar PATCH=gpatch]) - ;; - *) - AC_MSG_NOTICE([make AWK=$AWK]) esac } --- 402,407 ---- *************** else *** 425,436 **** AC_MSG_NOTICE([configure complete. Now type ]) AC_MSG_NOTICE([ ]) AC_MSG_NOTICE([make]) - AC_MSG_NOTICE([ ]) - AC_MSG_NOTICE([export AXIOM=`pwd`/mnt/$SYSNAME]) - AC_MSG_NOTICE([export PATH=\$AXIOM/bin:\$PATH]) fi @ <<*>>= <<Autoconf init>> --- 413,429 ---- AC_MSG_NOTICE([configure complete. Now type ]) AC_MSG_NOTICE([ ]) AC_MSG_NOTICE([make]) fi + AXIOM=`pwd`/mnt/$SYSNAME + AC_SUBST(AXIOM) @ + <<instantiate config files>>= + AC_CONFIG_FILES(Makefile) + AC_OUTPUT + @ + + <<*>>= <<Autoconf init>> *************** fi *** 457,462 **** --- 450,456 ---- <<check for make>> <<replicate old behaviour>> + <<instantiate config files>> @ \end{document} _______________________________________________ Axiom-developer mailing list Axiom-developer@nongnu.org http://lists.nongnu.org/mailman/listinfo/axiom-developer