Waldek,

I have finally succeeded in building wh-sandbox on Windows. I have attached the patch set with diffs against revision 515. My approach was to introduce a "BASE" variable as I discussed
in a previous email to allow the Windows applications to have
a different absolute path than the MSYS tools used during the
build. This is in contrast to Gaby's approach of making all paths
relative. In the end this seemed like the shortest path to getting
wh-sandbox to compile under Windows. Please let me know what you think about this approach.
I will continue to test this patchset to make sure that it does
not break the linux build.
Regards,
Bill Page.
This is a set of patches against revision 515 of wh-sandbox. 

Index: README.build-improvements
===================================================================
--- README.build-improvements	(revision 515)
+++ README.build-improvements	(working copy)
@@ -77,17 +77,11 @@
 * Properly document the new build in a very intelligible way
 * Document src/scripts/document.in
 
-* Reorganize the makefile pamphlets so that Axiom can build without
-  LaTeX or X11. 
-
 * Support cross-compilation.  Work with Camm to enhance GCL in that
   respect. This is better done when we integrate GCL to GCC. 
 
 * cleanup the Makefile pamphlets
 
-* Support standard "clean", "mostlyclean", and "distclean" Makefile
-  targets
-
 * Improve Boot documentation
 
 * Have Axiom use bootsys compile all Boot codes in src/interp. This
@@ -127,3 +121,9 @@
 
 * Fix fall-outs of missed DVI files. 
   This is believed to be fixed with the recursive rule support. 
+
+* Reorganize the makefile pamphlets so that Axiom can build without
+  LaTeX or X11. 
+
+* Support standard "clean", "mostlyclean", and "distclean" Makefile
+  targets
Index: src/scripts/document.in
===================================================================
--- src/scripts/document.in	(revision 515)
+++ src/scripts/document.in	(working copy)
@@ -37,14 +37,23 @@
 #       Anything that comes after is treated as an argument, even
 #       if it looks like an option
 
+## 2007-04-10:
+##   After moving to a recent version of MSYS, and GCL-2.6.8pre, I
+##   noticed that double-colon ('::' in boottran::boottocl) will be
+##   translated to semi-colon (';') as if interpreted for path
+##   separator.  I don't who is doing that, and I have no time to
+##   investigate it, and even if I do, it would not help much.  
+##   Therefore, I've changed the script not to use double-colon. 
+##      -- Gaby
 
+
 # set -x
 
[EMAIL PROTECTED]@
[EMAIL PROTECTED]@
+latex="@LATEX@"
+index="@MAKEINDEX@"
 
[EMAIL PROTECTED]@
[EMAIL PROTECTED]@
+notangle="@NOTANGLE@"
+noweave="@NOWEAVE@"
 
 # Flags used to invoke the Lisp compiler in batch mode
 quiet="@axiom_quiet_flags@"
@@ -103,16 +112,16 @@
     case $lisp_flavor in
 	gcl|sbcl|clisp)
 	   if [ -z "$output" ] ; then 
-	       $command $quiet $eval_flags \
-	         "(progn (compile-file \"$1\") (quit))"
+	       # $command $quiet $eval_flags \
+	       echo "(progn (compile-file \"$1\") (quit))" | $command
 	   else
                # argument to:output-file has implementation defined
                # default -- we use merge-patnames to pick defaults
                # from *default-pathname-defaults*
 
-	       $command $quiet $eval_flags \
-	         "(progn (compile-file \"$1\" :output-file \
-                 (merge-pathnames \"$output\")) (quit))"
+	       # $command $quiet $eval_flags 
+	       echo "(progn (compile-file \"$1\" :output-file \
+                 (merge-pathnames \"$output\")) (quit))" | $command
 	   fi
 	   ;;
 	# ECL makes the saved image executable only if :system-p it true. 
@@ -136,7 +145,8 @@
            ## image.  Consequently, we don't supply the $quiet flags
            ## when loading-and-saving. 
            $command $eval_flags "(load \"$1\")" \
-	       $eval_flags "(boottran::save-core \"$output\")"
+	       $eval_flags "(in-package \"boottran\")" \
+	       $eval_flags "(save-core \"$output\")"
 	   ;;
 	*)
 	   error "don't know how to compile with '$lisp_flavor' Lisp"
@@ -149,8 +159,9 @@
 make_program() {
     case $lisp_flavor in
 	gcl|sbcl|clisp)
-           $command $eval_flags \
-	       "(boottran::make-program \"$output\" (quote ($*)))"
+           ## $command $eval_flags \
+	   echo "(in-package \"boottran\") \
+	         (make-program \"$output\" (quote ($*)))" | $command
 	   ;;
 	*)
 	   error "don't know how to build program with '$lisp_flavor' Lisp"
@@ -165,8 +176,8 @@
 translate_boot_file() {
     case $lisp_flavor in
 	gcl|sbcl|clisp)
-	   $command $quiet $eval_flags \
-	       "(progn (boottran::boottoclc \"$1\") (quit))" | tee $2 
+	   # $command $quiet $eval_flags "(in-package \"boottran\")" \
+	   echo "(in-package \"boottran\") (progn (boottoclc \"$1\")) (quit)" | $command | tee $2 
 	   ;;
 	*)
 	   error "don't know how to translate with '$lisp_flavor' Lisp"
Index: src/algebra/Makefile.pamphlet
===================================================================
--- src/algebra/Makefile.pamphlet	(revision 515)
+++ src/algebra/Makefile.pamphlet	(working copy)
@@ -376,8 +376,8 @@
 	for A in ${CATLIST} ; do \
 	     echo ')compile "'$$A'.spad"' >> boo1.input ; \
 	done; \
-	{ echo ')read "boo1.input"' | \
-	    ${INTERPSYS} ${CTRACE} } || exit 1 ; \
+	( echo ')read "boo1.input"' | \
+	    ${INTERPSYS} ${CTRACE} ) || exit 1 ; \
 	echo "Stage 1 copy" ; \
 	for A in ${CATLIST} ; do \
 	    cp $$A.NRLIB/code.$(FASLEXT) ${OUT}/$$A.$(FASLEXT) || exit 1 ; \
@@ -387,8 +387,8 @@
 	for A in ${CATLIST} ${DOMLIST} ; do \
 	    echo ')compile "'$$A'.spad"' >> boo2.input ; \
 	done; \
-	{ echo ')read "boo2.input"' | \
-	    ${INTERPSYS} ${CTRACE} } || exit 1 ; \
+	( echo ')read "boo2.input"' | \
+	    ${INTERPSYS} ${CTRACE} ) || exit 1 ; \
 	echo "Stage 2 copy" ; \
 	for A in ${CATLIST} ${DOMLIST} ; do \
 	    cp $$A.NRLIB/code.$(FASLEXT) ${OUT}/$$A.$(FASLEXT) || exit 1 ; \
@@ -400,8 +400,8 @@
 	for A in ${CATLIST} ${DOMLIST} ; do \
 	    echo ')compile "'$$A'.spad"' >> boo3.input ; \
 	done; \
-	{ echo ')read "boo3.input"' | \
-	    ${INTERPSYS} ${CTRACE} } || exit 1 ; \
+	( echo ')read "boo3.input"' | \
+	    ${INTERPSYS} ${CTRACE} ) || exit 1 ; \
 	echo "Stage 3 object copy" ; \
 	for A in ${CATLIST} ${DOMLIST} ; do \
 	   cp $$A.NRLIB/code.$(FASLEXT) ${OUT}/$$A.$(FASLEXT) || exit 1 ; \
Index: src/interp/patches.lisp.pamphlet
===================================================================
--- src/interp/patches.lisp.pamphlet	(revision 515)
+++ src/interp/patches.lisp.pamphlet	(working copy)
@@ -64,8 +64,12 @@
 ;;patches for now
 
 ;; browser stuff:
-(defvar |$standard| 't)
-(defvar |$saturn| 'nil)
+;; gdr NOTES: it is WRONG to test for platforms, when in fact
+;; gdr NOTES: one should test for functionalities. 
+#+:UNIX (defvar |$standard| 't)
+#-:UNIX (defvar |$standard| 'nil)
+#+(or :UNIX :winnt) (defvar |$saturn| 'nil)
+#-(or :UNIX :winnt) (defvar |$saturn| 't)
 
 (defun CATCHALL (a &rest b) a) ;; not correct but ok for now
 (defvar |$demoFlag| nil)
@@ -360,25 +364,25 @@
            "A structure to hold XDR streams. The stream is printed out."
            (handle ) ;; this is what is used for xdr-open xdr-read xdr-write
            (name ))  ;; this is used for printing
-#+:akcl
+#+(and :gcl (not (or :dos :win32)))
 (defun |xdrOpen| (str dir) (make-xdr-stream :handle (system:xdr-open str) :name str))
 #+:CCL
 (defun |xdrOpen| (str dir) (xdr-open str dir) )
-#+:dos
+#+(and :gcl (or :dos :win32))
 (defun |xdrOpen| (str dir) (format t "xdrOpen called"))
 
-#+:akcl
+#+(and :akcl (not (or :dos :win32)))
 (defun |xdrRead| (xstr r) (system:xdr-read (xdr-stream-handle xstr) r) )
 #+:CCL
 (defun |xdrRead| (xstr r) (xdr-read xstr r) )
-#+:dos
+#+(and :gcl (or :dos :win32))
 (defun |xdrRead| (str) (format t "xdrRead called"))
 
-#+:akcl
+#+(and :akcl (not (or :dos :win32)))
 (defun |xdrWrite| (xstr d) (system:xdr-write (xdr-stream-handle xstr) d) )
 #+:CCL
 (defun |xdrWrite| (xstr d) (xdr-write xstr d) )
-#+:dos
+#+(and :gcl (or :dos :win32))
 (defun |xdrWrite| (str) (format t "xdrWrite called"))
 
 ;; here is a test for XDR
Index: src/interp/Makefile.pamphlet
===================================================================
--- src/interp/Makefile.pamphlet	(revision 515)
+++ src/interp/Makefile.pamphlet	(working copy)
@@ -518,7 +518,7 @@
 
 In order for this information to be used during compiles we define
 <<environment>>=
-PROCLAIMS=(progn (load "sys-pkg.lisp") (load "$(abs_srcdir)/interp-proclaims.lisp"))
+PROCLAIMS=(progn (load "sys-pkg.lisp") (load "$(srcdir)/interp-proclaims.lisp"))
 
 @
 
@@ -991,10 +991,10 @@
 	@ echo '(in-package "BOOT")' >> makeint.lisp
 	@ touch ${TIMESTAMP}
 	@ echo '${YEARWEEK}' >> makeint.lisp
-	@ echo '(build-interpsys (append (quote ($(patsubst %, "%", ${OBJS}))) (quote ($(patsubst %, "%", ${ASCOMP}))) (quote ($(patsubst %, "%", ${INOBJS})))) (quote ($(patsubst %, "%", ${OPOBJS}))) (quote ($(patsubst %, "%", ${OCOBJS}))) (quote ($(patsubst %, "%", ${BROBJS}))) (quote ($(patsubst %, "%", ${TRANOBJS}))) (quote ($(patsubst %, "%", ${NAGBROBJS}))) (quote ($(patsubst %, "%", ${ASAUTO})))  "${AXIOM}")' >> makeint.lisp
+	@ echo '(build-interpsys (append (quote ($(patsubst %, "%", ${OBJS}))) (quote ($(patsubst %, "%", ${ASCOMP}))) (quote ($(patsubst %, "%", ${INOBJS})))) (quote ($(patsubst %, "$(BASE)%", ${OPOBJS}))) (quote ($(patsubst %, "$(BASE)%", ${OCOBJS}))) (quote ($(patsubst %, "$(BASE)%", ${BROBJS}))) (quote ($(patsubst %, "$(BASE)%", ${TRANOBJS}))) (quote ($(patsubst %, "$(BASE)%", ${NAGBROBJS}))) (quote ($(patsubst %, "$(BASE)%", ${ASAUTO})))  "${AXIOM}")' >> makeint.lisp
 	@ echo '(boot::set-restart-hook)' >> makeint.lisp
 	@ echo '(in-package "BOOT")' >> makeint.lisp
-	@ echo '(load "${INT}/algebra/warm.data")' >> makeint.lisp
+	@ echo '(load "$(BASE)${INT}/algebra/warm.data")' >> makeint.lisp
 	@ echo '(|clearClams|)' >> makeint.lisp
 	@ echo '(load "obey")' >> makeint.lisp
 	@ echo '#+:akcl (setq compiler::*suppress-compiler-notes* t)' >> makeint.lisp
@@ -1025,7 +1025,7 @@
 	@echo '(progn (gbc t) (load "makeint.lisp") (gbc t)' \
 	   '#+:gcl(setf compiler::*default-system-p* nil)' \
 	   '#+:gcl(compiler::emit-fn nil)' \
-	   '(user::spad-save "$@"))' | DAASE=$(axiom_targetdir) ${LISPSYS}
+	   '(user::spad-save "$@"))' | DAASE="$(BASE)$(axiom_targetdir)" ${LISPSYS}
 	@ echo 6a ${AXIOMSYS} created
 @
 
@@ -1109,26 +1109,29 @@
 
 $(addsuffix .$(FASLEXT), $(IN_from_MID)): \
     %.$(FASLEXT) : $(MID)/%.clisp
-	@ echo 10 making $@ from $<
-	@ ( B=`pwd`;\
+	@ echo 10a making $@ from $< # hack 1 by Bill Page
+	# avoid paths in file names for Windows compatibility
+	@ (cd ${MID} ; \
 	  if [ -z "${NOISE}" ] ; then \
-	   echo '(progn  (compile-file "$<" :output-file "'$$B/'$@") (${BYE}))' | ${DEPSYS} ; \
+	   echo '(progn  (compile-file "$(notdir $<)" :output-file "$(notdir $@)") (${BYE}))' | ${DEPSYS} ; \
 	  else \
-	   echo '(progn  (compile-file "$<" :output-file "'$$B/'$@") (${BYE}))' | ${DEPSYS} >> ${TMP}/trace ; \
-	  fi )
+	   echo '(progn  (compile-file "$(notdir $<)" :output-file "$(notdir $@)") (${BYE}))' | ${DEPSYS} >> ${TMP}/trace ; \
+	  fi ; )
+	@ mv "${MID}/$(notdir $@)" $@ 
 
 AUTO_from_MID=\
 mark pspad1 pspad2 wi1 wi2
 
 $(addprefix $(AUTO)/, $(addsuffix .$(FASLEXT), $(AUTO_from_MID))): \
     $(AUTO)/%.$(FASLEXT) : $(MID)/%.clisp
-	@ echo 10 making $@ from $<
+	@ echo 10b making $@ from $< # hack 2 by Bill Page
 	@ (cd ${MID} ; \
 	  if [ -z "${NOISE}" ] ; then \
-	   echo '(progn  (compile-file "$<" :output-file "$@") (${BYE}))' | ${DEPSYS} ; \
+	   echo '(progn  (compile-file "$(notdir $<)" :output-file "$(notdir $@)") (${BYE}))' | ${DEPSYS} ; \
 	  else \
-	   echo '(progn  (compile-file "$<" :output-file "$@") (${BYE}))' | ${DEPSYS} >> ${TMP}/trace ; \
-	  fi )
+	   echo '(progn  (compile-file "$(notdir $<)" :output-file "$(notdir $@)") (${BYE}))' | ${DEPSYS} >> ${TMP}/trace ; \
+	  fi ; )
+	@ mv "${MID}/$(notdir $@)" $@
 
 MID_from_IN=\
  apply as ax bc-matrix bc-misc bc-solve bc-util br-con br-data \
@@ -1182,11 +1185,9 @@
 	@ echo 79 making newaux.$(FASLEXT) from newaux.lisp
 	( \
 	  if [ -z "${NOISE}" ] ; then \
-	   echo '(progn  (compile-file "newaux.lisp" :output-file' \
-	        ' "newaux.$(FASLEXT)") (${BYE}))' | ${DEPSYS} ; \
+	   echo '(progn  (compile-file "newaux.lisp" :output-file "newaux.$(FASLEXT)") (${BYE}))' | ${DEPSYS} ; \
 	  else \
-	   echo '(progn  (compile-file "newaux.lisp" :output-file' \
-	     ' "newaux.$(FASLEXT)") (${BYE}))' | ${DEPSYS} >> ${TMP}/trace ; \
+	   echo '(progn  (compile-file "newaux.lisp" :output-file "newaux.$(FASLEXT)") (${BYE}))' | ${DEPSYS} >> ${TMP}/trace ; \
 	  fi )
 
 @
@@ -1249,11 +1250,11 @@
 	@ echo 616 making $@ from exposed.lsp
 	if [ -z "${NOISE}" ] ; then \
 	   echo '(progn  (compile-file "exposed.lsp" :output-file' \
-	      ' "$(axiom_targetdir)/algebra/exposed.$(FASLEXT)") (${BYE}))' \
+	      ' "$(BASE)$(axiom_targetdir)/algebra/exposed.$(FASLEXT)") (${BYE}))' \
 		| ${DEPSYS} ; \
 	  else \
 	   echo '(progn  (compile-file "exposed.lsp" :output-file' \
-	      ' "$(axiom_targetdir)/algebra/exposed.$(FASLEXT)") (${BYE}))' \
+	      ' "$(BASE)$(axiom_targetdir)/algebra/exposed.$(FASLEXT)") (${BYE}))' \
 	        | ${DEPSYS} >> ${TMP}/trace ; \
 	  fi
 
Index: src/interp/bookvol5.pamphlet
===================================================================
--- src/interp/bookvol5.pamphlet	(revision 515)
+++ src/interp/bookvol5.pamphlet	(working copy)
@@ -1078,7 +1078,7 @@
 Prefix a filename with the {\bf AXIOM} shell variable. 
 <<defun make-absolute-filename>>=
 (defun make-absolute-filename (name)
- (concatenate 'string $spadroot name))
+  (concatenate 'string $spadroot name))
 
 @
 \subsection{defun makeInitialModemapFrame}
Index: src/interp/sys-pkg.lisp.pamphlet
===================================================================
--- src/interp/sys-pkg.lisp.pamphlet	(revision 515)
+++ src/interp/sys-pkg.lisp.pamphlet	(working copy)
@@ -29,8 +29,21 @@
 
 This is the boot to lisp compiler package which contains the
 src/boot files. Tt is the boot translator package. 
+
+The following make-pkg command caused the error:
+\begin{verbatim}
+Loading sys-pkg.lisp
+
+Correctable error: A package error occurred on "BOOTTRAN":
+"A package with this name already exists.". 
+Signalled by MAKE-PACKAGE. 
+\end{verbatim}
+Perhaps this is related to the rsym_hack for windows??
+
+Anyway I have commented it out of the build for now. 
+Bill Page, 21 April 2007
 <<*>>=
-(make-package "BOOTTRAN" :use '("LISP"))
+;;(make-package "BOOTTRAN" :use '("LISP"))
 @
 
 Everything in axiom that the user references eventually shows
Index: src/lisp/Makefile.pamphlet
===================================================================
--- src/lisp/Makefile.pamphlet	(revision 515)
+++ src/lisp/Makefile.pamphlet	(working copy)
@@ -59,8 +59,8 @@
 
 \subsection{GCL already installed or built}
 
-<<build lisp for boot>>=
-## Create a fresh image for building Boot
+<<build augmented lisp>>=
+## Create a fresh image for building interpsys and AXIOMsys
 ## These objects files are the C runtime support
 ## and must be compiled into the Lisp image,
 ## as they must be present in the final interpreter
@@ -70,8 +70,9 @@
 		$(build_libdir)/cfuns-c.o \
 		$(build_libdir)/sockio-c.o
 
-$(OUT)/lisp$(EXEEXT): $(AXIOM_LISP)
-	echo '(compiler::link nil "${OUT}/lisp" ' \
+$(OUT)/lisp$(EXEEXT): initial-env.lisp
+	@axiom_gcl_rsym_hack@
+	echo '(compiler::link (quote ("initial-env.lisp")) "lisp" ' \
               ' (format nil "(progn (let ((*load-path* (cons ~S *load-path*))'\
                                         ' (si::*load-types* ~S))' \
                                        ' (compiler::emit-fn t))' \
@@ -79,9 +80,13 @@
                                         ' (si::sgc-on t))' \
                                   ' (setq compiler::*default-system-p* t))"' \
                       ' si::*system-directory* (quote (list ".lsp")))' \
-               '  "$(lisp_c_objects)")' \
+               '  "$(lisp_c_objects) @axiom_c_runtime_extra@")' \
             | $(AXIOM_LISP)
+	$(INSTALL_PROGRAM) lisp$(EXEEXT) $(OUT)
 
+initial-env.lisp: $(srcdir)/../boot/initial-env.lisp.pamphlet
+	$(axiom_build_document) --tangle $< --output=$@
+
 @
 
 <<*>>=
@@ -91,7 +96,7 @@
 
 pamphlets = Makefile.pamphlet
 
-build_libdir = $(abs_top_builddir)/src/lib
+build_libdir = $(top_builddir)/src/lib
 
 lisp_DEPENDENCIES = $(build_libdir)/cfuns-c.o \
 		    $(build_libdir)/sockio-c.o \
@@ -102,7 +107,7 @@
 
 all-ax all-lisp: $(OUT)/lisp$(EXEEXT)
 
-<<build lisp for boot>>
+<<build augmented lisp>>
 
 # Build GCL takes quite a while, so we don't remove the
 # diretcory in mostlyclean.  Rather, we do that in clean. 
Index: ChangeLog.wh
===================================================================
--- ChangeLog.wh	(revision 515)
+++ ChangeLog.wh	(working copy)
@@ -1,3 +1,15 @@
+2007-04-25  Bill Page <[EMAIL PROTECTED]>
+
+	Changes relating to building on Windows MSYS/MinGW
+	* use echo ... | $command instead of -eval for build-prog
+	in configure.ac.pamphlet to avoid bug in GCL for Windows
+	* avoid paths in file names when calling Lisp in
+	src/interp/Makefile.pamphlet
+	* apply revision 498 from build-improvements for LN_S
+        in configure.ac.pamphlet and conf/var-defs
+	* apply revisions 394 and 411 from build-improvements for
+	Windows specific changes re XDR-OPEN etc. 
+
 2007-04-25  Waldek Hebisch  <[EMAIL PROTECTED]>
 
 	* src/doc/Makefile.pamphlet: Build Axion book with the rest
Index: config/var-def.mk
===================================================================
--- config/var-def.mk	(revision 515)
+++ config/var-def.mk	(working copy)
@@ -66,7 +66,12 @@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
-LN_S = @LN_S@
+## FIXME:  The test done with Autoconf-2.60 and later concludes
+##         that "ln -s" is unusable on msys, and therefore defaults to
+##         "cp -p", but that default is unusable for us.  For our
+##         purpose "ln -s" is just fine on that platform.  Consequently
+##         we are explicitly overrding that value here. 
+LN_S = ln -s
 mkinstalldirs = $(top_srcdir)/config/mkinstalldirs
 PATCH = @PATCH@
 RANLIB = @RANLIB@
@@ -102,23 +107,35 @@
 ## Notice, this is the src/ directory within the toplevel source
 ## directory 
 
-axiom_top_srcdir = @axiom_top_srcdir@
-
-axiom_src_srcdir = $(axiom_top_srcdir)/src
+axiom_src_srcdir = $(top_srcdir)/src
 axiom_src_docdir = $(axiom_src_srcdir)/doc
 axiom_src_datadir = $(axiom_src_srcdir)/share
 axiom_src_algdir = $(axiom_src_srcdir)/algebra
 
 ## Where tools for the build machine are built
-axiom_top_builddir = @abs_top_builddir@/build
-axiom_builddir = @axiom_builddir@
+# Tools that we occasionally build don't know
+# much about Autoconf and related infrastructure.  Therefore
+# we do lot by "hand". For the moment, things work if we specify
+# paths as absolute, as opposed to relative.  Other parts of
+# Axiom also expect absolute paths. 
+axiom_abs_top_builddir = $(abs_top_builddir)
+axiom_abs_builddir = $(abs_top_builddir)/build/$(build)
+axiom_abs_build_bindir = $(axiom_abs_builddir)/bin
+axiom_abs_build_libdir = $(axiom_abs_builddir)/lib
+axiom_abs_build_mandir = $(axiom_abs_builddir)/man
+axiom_abs_build_datadir = $(axiom_abs_builddir)/share
+axiom_abs_build_texdir = $(axiom_abs_build_datadir)/texmf/tex
+
+axiom_top_builddir = $(top_builddir)/build
+axiom_builddir = $(axiom_top_builddir)/$(build)
 axiom_build_bindir = $(axiom_builddir)/bin
 axiom_build_libdir = $(axiom_builddir)/lib
 axiom_build_mandir = $(axiom_builddir)/man
 axiom_build_docdir = $(axiom_builddir)/doc
-axiom_build_texdir = $(axiom_builddir)/share/texmf/tex
+axiom_build_datadir = $(axiom_builddir)/share
+axiom_build_texdir = $(axiom_build_datadir)/texmf/tex
 
-axiom_configdir = $(abs_top_builddir)/config
+axiom_configdir = $(top_builddir)/config
 axiom_c_macros = $(axiom_configdir)/axiom-c-macros.h
 
 LATEX = @LATEX@
@@ -144,6 +161,8 @@
 ## Where the staging build directory is found
 AXIOM = @AXIOM@
 export AXIOM
+BASE = @BASE@
+export BASE
 
 ## Where to find Axiom data bases. 
 DAASE = $(axiom_src_datadir)
Index: configure.ac.pamphlet
===================================================================
--- configure.ac.pamphlet	(revision 515)
+++ configure.ac.pamphlet	(working copy)
@@ -117,7 +117,7 @@
 axiom_builddir=`pwd`/build/$build
 AC_SUBST(axiom_builddir)
 
-## Prefix for the staging target inistallation directory
+## Prefix for the staging target installation directory
 axiom_targetdir=`pwd`/target/$target
 AC_SUBST(axiom_targetdir)
 @
@@ -636,10 +636,20 @@
 
 \paragraph{File utils}
 Then, check for a usable [[install]] program.  Also, find out
-way to hard- or soft-link files. 
+way to hard- or soft-link files.  
+
+After a recent migration to
+\Tool{Autoconf-2.60}, it turns out that all possibilities of
+soft-linking are tried (to ``play safe''), and if any variation
+fails then, [[LN_S]] is defined to [[cp -p]], which works
+only for files as sources.  But, the only way we currently
+use [[LN_S]] is when the first argument is a directory.  So, the 
+``portability help'' we get from \Tool{Autoconf} is no help.  
+Consequently, the test for
+[[ln -s]] is commented out for the moment. 
 <<file utils>>=
 AC_PROG_INSTALL
-AC_PROG_LN_S
+# AC_PROG_LN_S
 AC_CHECK_PROG([TOUCH], [touch],
               [touch], [AC_MSG_ERROR(['touch' program is missing.])])
 AC_CHECK_PROGS([MKTEMP], [mktemp])
@@ -909,8 +919,22 @@
 pervasive way.   That variable needs to be set before the
 build start --- or else, it will fail. 
 
+BASE contains the operating system root of the build environment. 
+In the case of MSYS/MinGW build environment on Windows it is
+necessary that the AXIOM variable be a Windows absolute path. 
+Therefore BASE is set to the MSYS root or otherwise empty. 
+
 <<define AXIOM>>=
-AXIOM=$axiom_targetdir
+case $host in
+    *mingw*)
+        BASE=`(cd /;pwd -W)`
+        ;;
+    *)
+        BASE=""
+        ;;
+esac
+AC_SUBST(BASE)
+AXIOM=${BASE}${axiom_targetdir}
 AC_SUBST(AXIOM)
 @
 
_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to