axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Re: GCL 2.6.6 does not buildAxiom on Windows


From: Mike Thomas
Subject: [Axiom-developer] Re: GCL 2.6.6 does not buildAxiom on Windows
Date: Wed, 16 Feb 2005 13:18:02 +1000

Hi Bill/Camm.

Good news I think.

| Thanks, Mike!  Bill, might you have a few moments to try to spot the
| relevant patch?  I'd like to get stock GCL completely axiom/windows
| ready.

After:

  tla register-archive address@hidden
http://axiom-developer.org/archive/axiom

  tla my-default-archive address@hidden

  tla get axiom--windows--1

I end up with a directory called "axiom--windows--1--patch-13" in which I
successfully built Axiom on Windows:

  1. in the usual way using gcl 2.6.5 as supplied in that new source tree
(unmodified) and also

  2. using 2.6.6 after modifications to "lsp/Makefile.pamphlet" for minimum
usual patching to the GCL 2.6.6 source in new version gcl2.2.2w.

The modifications I made apart from adding "gcl-2.6.6.tgz" and new patch
files in "zips" are to be found at the end of this email.  I believe I am
using gcc 3.4.2, binutils 2.15.91, mingw32 runtime 3.5, win32 libraries 3.1.

Interestingly I get different output (less verbose) at the point where
AHYP.spad is compiled to that you mentioned in your earlier email, Bill, and
to which I was previously accustomed:

=======================================================================BOBOO
T>c:/junk/ax/axiom--windows--1--patch-13/mnt/windows/bin/lib/notangle -R"cat
egory AHYP ArcHyperbolicFunctionCategory"
c:/junk/ax/axiom--windows--1--patch-13/src/algebra/trigcat.spad.pamphlet>c:/
junk/ax/axiom--windows--1--patch-13/int/algebra/AHYP.spad
generic 2 -- making
c:/junk/ax/axiom--windows--1--patch-13/int/algebra/AHYP.NRLIB from
c:/junk/ax/axiom--windows--1--patch-13/int/algebra/AHYP.spad
)co AHYP.spad
(cd c:/junk/ax/axiom--windows--1--patch-13/int/algebra ; echo ")co
AHYP.spad" |
c:/junk/ax/axiom--windows--1--patch-13/obj/windows/bin/interpsys >
AHYP.out )
generic 1 -- making
c:/junk/ax/axiom--windows--1--patch-13/mnt/windows/algebra/AHYP.o from
c:/junk/ax/axiom--windows--1--patch-13/int/algebra/AHYP.NRLIB
cp c:/junk/ax/axiom--windows--1--patch-13/int/algebra/AHYP.NRLIB/code.o
c:/junk/ax/axiom--windows--1--patch-13/mnt/windows/algebra/AHYP.o
=======================================================================

I'll send the compressed make log and new patch files separately to you Bill
and Camm for comparison purposes.

Gratuitous Complaint Time (apologies in advance) -  I have yet to either
successfully use the sftp repository or download a tree over a modem.  Arch
has also left me with vast directory trees I could not delete except by
shortening the directory names down the tree first and has done bizarre
permission mangling on files so they were editable with wordpad but not with
emacs!  Arch on Windows is an appalling program to use - I feel strongly
disinclined whenever I think about working on Axiom.

Cheers

Mike Thomas.




=================================================================
$ tla changes --diffs
* looking for address@hidden/axiom--windows--1--patch-13 to
com
pare with
* comparing to address@hidden/axiom--windows--1--patch-13
M  Makefile
M  Makefile.pamphlet
M  lsp/Makefile.pamphlet

* modified files

--- orig/Makefile
+++ mod/Makefile
@@ -9,7 +9,7 @@
 #GCLVERSION=gcl-2.6.2
 #GCLVERSION=gcl-2.6.2a
 #GCLVERSION=gcl-2.6.3
-GCLVERSION=gcl-2.6.5w
+GCLVERSION=gcl-2.6.6w
 AWK=gawk
 GCLDIR=${LSP}/${GCLVERSION}
 SRC=${SPD}/src


--- orig/Makefile.pamphlet
+++ mod/Makefile.pamphlet
@@ -597,9 +597,8 @@
 lsp/Makefile.pamphlet file and get the correct version. If you
 forget to erase the lsp/Makefile the wrong patches will be applied.

-The GCLVERSION of [[gcl-2.6.5w]] is the same as the [[gcl-2.6.5]]
-version except that we have to add some additional patches for windows.
-These will eventually make their way into GCL.
+The GCLVERSION of [[gcl-2.6.6w]] is the same as the [[gcl-2.6.6]]
+version except that we have to patch h/mingw.h rather than h/linux.h for
window
s.
 <<GCLVERSION>>=
 #GCLVERSION=gcl-2.4.1
 #GCLVERSION=gcl-2.5
@@ -609,7 +608,8 @@
 #GCLVERSION=gcl-2.6.2a
 #GCLVERSION=gcl-2.6.3
 #GCLVERSION=gcl-2.6.5
-GCLVERSION=gcl-2.6.5w
+#GCLVERSION=gcl-2.6.5w
+GCLVERSION=gcl-2.6.6w
 @

 \subsection{Makefile.axposf1v3}


--- orig/lsp/Makefile.pamphlet
+++ mod/lsp/Makefile.pamphlet
@@ -15,6 +15,17 @@
 over the gcl Makefiles.

 Patches are applied to the distribution before we do the configure.
+\section{Gnu Common Lisp 2.6.6w}
+This is a Windows port of GCL. We run under MSYS and have to make
+a few Windows specific changes.
+\subsection{mingw.defs}
+This patch adds the necessary [[.o]] files to the [[EXTRAS]] variable
+so they are available at link time.
+<<gcl-2.6.6w.h.mingw.defs.patch>>=
+       @(cd ${GCLVERSION}/h ; \
+         echo 1 applying gcl-2.6.6.h.mingw.defs.patch ; \
+         patch <${SPD}/zips/${GCLVERSION}.h.mingw.defs.patch )
+@
 \section{Gnu Common Lisp 2.6.5w}
 This is a Windows port of GCL. We run under MSYS and have to make
 a few Windows specific changes.
@@ -145,6 +156,11 @@
          touch ${OBJ}/${SYS}/lib/cfuns-c.ini ; \
          touch ${OBJ}/${SYS}/lib/sockio-c.ini )
 @
+<<gcl-2.6.6w.socket.patch>>=
+       @(echo 20 setup ini files for EXTRAS patch ; \
+         touch ${OBJ}/${SYS}/lib/cfuns-c.ini ; \
+         touch ${OBJ}/${SYS}/lib/sockio-c.ini )
+@
 \subsubsection{fortran patch}
 Communication over sockets (basically to the NAG fortran library)
 requires us to have XDR enabled.
@@ -199,6 +215,11 @@
          echo 28 applying libspad.a patch to unixport/makefile ; \
          patch <${SPD}/zips/${GCLVERSION}.unixport.makefile.patch )
 @
+<<gcl-2.6.6w.libspad.patch>>=
+       @(cd ${GCLVERSION}/unixport ; \
+         echo 29 applying libspad.a patch to unixport/makefile ; \
+         patch <${SPD}/zips/${GCLVERSION}.unixport.makefile.patch )
+@
 \subsubsection{toploop patch}
 This patch turns off the banner display every time GCL starts.
 We could use the -batch flag but that would be a pervasive change.
@@ -240,6 +261,11 @@
          echo 35 applying toploop patch to unixport/init_gcl.lsp ; \
          patch <${SPD}/zips/${GCLVERSION}.unixport.init_gcl.lsp.in.patch )
 @
+<<gcl-2.6.6w.toploop.patch>>=
+       @(cd ${GCLVERSION}/unixport ; \
+         echo 35 applying toploop patch to unixport/init_gcl.lsp ; \
+         patch <${SPD}/zips/${GCLVERSION}.unixport.init_gcl.lsp.in.patch )
+@
 \subsubsection{object to float patch}
 GCL 2.5.2 contains no reference to this function and it was removed.
 Axiom uses this function so we re-implement it here.
@@ -348,6 +374,14 @@
          echo 55 applying tail-recursive noise patch ; \
          patch <${SPD}/zips/${GCLVERSION}.cmpnew.gcl_cmpcall.lsp.patch )
 @
+<<gcl-2.6.6w.tail-recursive.patch>>=
+       @(cd ${GCLVERSION}/cmpnew ; \
+         echo 54 applying tail-recursive noise patch ; \
+         patch <${SPD}/zips/${GCLVERSION}.cmpnew.gcl_cmpflet.lsp.patch )
+       @(cd ${GCLVERSION}/cmpnew ; \
+         echo 55 applying tail-recursive noise patch ; \
+         patch <${SPD}/zips/${GCLVERSION}.cmpnew.gcl_cmpcall.lsp.patch )
+@
 \subsubsection{collectfn fix}
 GCL-2.6.1 renamed collectfn.lsp to gcl_collectfn.lsp.
 We rename it back into place because we have later Makefiles
@@ -404,6 +438,14 @@
          echo 65 copy sys-proclaim.lisp to
${OBJ}/${SYS}/lsp/sys-proclaim.lisp
; \
          cp sys-proclaim.lisp ${OBJ}/${SYS}/lsp/sys-proclaim.lisp )
 @
+<<gcl-2.6.6w.collectfn.fix>>=
+       @(cd ${GCLVERSION}/cmpnew ; \
+         echo 64 copy gcl_collectfn.lsp to ${OBJ}/${SYS}/lsp/collectfn.lsp
; \
+         cp gcl_collectfn.lsp ${OBJ}/${SYS}/lsp/collectfn.lsp )
+       @(cd ${GCLVERSION}/lsp ; \
+         echo 65 copy sys-proclaim.lisp to
${OBJ}/${SYS}/lsp/sys-proclaim.lisp
; \
+         cp sys-proclaim.lisp ${OBJ}/${SYS}/lsp/sys-proclaim.lisp )
+@
 \subsection{The GCL-2.5.2 stanza}
 \subsubsection{Configure and Make GCL}
 We enable several features of GCL.
@@ -798,6 +840,53 @@
        @( cd ccl ; ${ENV} ${MAKE} clean )

 @
+\subsection{The GCL-2.6.6w stanza}
+This stanza will be written out when the GCLVERSION variable is
+``gcl-2.6.6w''. It will overwrite the default version. See the
+top level Makefile.pamphlet.
+
+This is version for Windows. We untar the [[gcl-2.6.6]] version and then
+rename it to [[gcl-2.6.6w]]
+<<gcl-2.6.6w>>=
+# gcl version 2.6.6w
+OUT=${OBJ}/${SYS}/bin
+
+all:
+       @echo 110 building ${LSP} ${GCLVERSION}
+
+gcldir:
+       @echo 111 building ${GCLVERSION}
+       @tar -zxf ${ZIPS}/gcl-2.6.6.tgz
+       @mv gcl-2.6.6 ${GCLVERSION}
+<<gcl-2.6.6w.socket.patch>>
+<<gcl-2.6.6w.libspad.patch>>
+<<gcl-2.6.6w.toploop.patch>>
+<<gcl-2.6.6w.tail-recursive.patch>>
+<<gcl-2.6.6w.collectfn.fix>>
+<<gcl-2.6.6w.h.mingw.defs.patch>>
+<<gclConfigureMake>>
+       @echo 112 finished system build on `date` | tee >gcldir
+
+ccldir: ${LSP}/ccl/Makefile
+       @echo 113 building CCL
+       @mkdir -p ${INT}/ccl
+       @mkdir -p ${OBJ}/${SYS}/ccl
+       @( cd ccl ; ${ENV} ${MAKE} )
+
+${LSP}/ccl/Makefile: ${LSP}/ccl/Makefile.pamphlet
+       @echo 114 making ${LSP}/ccl/Makefile from
${LSP}/ccl/Makefile.pamphlet
+       @( cd ccl ; ${SPADBIN}/document ${NOISE} Makefile )
+
+document:
+       @echo 115 making docs in ${LSP}
+       @mkdir -p ${INT}/doc/lsp/ccl
+       @( cd ccl ; ${ENV} ${MAKE} document )
+
+clean:
+       @echo 116 cleaning ${LSP}/ccl
+       @( cd ccl ; ${ENV} ${MAKE} clean )
+
+@
 \section{Gnu Common Lisp 2.5}
 GCL 2.5 requires a different Makefile. In particular, GCL 2.5
 has a different method of building the lisp image. And, just to
=================================================================






reply via email to

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