[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] [build-improvements] Support traditional build command
From: |
Gabriel Dos Reis |
Subject: |
[Axiom-developer] [build-improvements] Support traditional build commands |
Date: |
05 Aug 2006 17:12:24 +0200 |
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 <address@hidden>
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 = address@hidden@; export AXIOM; address@hidden@/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}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Axiom-developer] [build-improvements] Support traditional build commands,
Gabriel Dos Reis <=