axiom-developer
[Top][All Lists]
Advanced

[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}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]