diff options
33 files changed, 337 insertions, 172 deletions
@@ -1,3 +1,14 @@ +2007-10-10 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * configure.ac.pamphlet: Tidy. Don't instantiate src/lisp/core.lisp. + * configure.ac: Regenerate. + * configure: Likewise. + * config/var-def.mk (open_axiom_installdir): New. + (AXIOM): Support versioning. + * Makefile.pamphlet (install): Tidy. + Remove sections on SPAD and SYS variables. + * Makefile.in: Regenerate. + 2007-09-23 Gabriel Dos Reis <gdr@cs.tamu.edu> * config/setup-dep.mk ($(top_builddir)/libtool): Regenerate when diff --git a/Makefile.in b/Makefile.in index 494d85d5..4d6bb68a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -97,11 +97,11 @@ $(axiom_build_bindir)/gcl$(EXEEXT): $(MAKE) && $(MAKE) install install: @echo Installing OpenAxiom in $(prefix) - @mkdir -p $(DESTDIR)$(libdir)/open-axiom - @cp -pr $(builddir)/target $(DESTDIR)$(libdir)/open-axiom - @ rm -f $(bindir)/axiom - @ $(mkinstalldirs) $(bindir) - @ $(INSTALL_PROGRAM) src/scripts/axiom $(bindir) + @$(mkinstalldirs) $(DESTDIR)$(open_axiom_installdir) + cp -pr $(builddir)/$(target)/* $(DESTDIR)$(open_axiom_installdir) + rm -f $(bindir)/axiom + @$(mkinstalldirs) $(bindir) + $(INSTALL_PROGRAM) src/scripts/axiom $(bindir) @echo OpenAxiom installation finished. .PHONY: check diff --git a/Makefile.pamphlet b/Makefile.pamphlet index 5596cc2d..ea55f2a3 100644 --- a/Makefile.pamphlet +++ b/Makefile.pamphlet @@ -396,20 +396,6 @@ of its file information. See the [[YEARWEEK]] variable in the [[src/interp/Makefile.pamphlet]] and the [[yearweek]] function in [[src/interp/util.lisp.pamphlet]]. -\subsubsection{SPAD} -The [[SPAD]] variable is normally specified in the environment. -It is expected to be a path to the top level directory of the -shipped system. For example, if we want to build a linux system -the [[SPAD]] variable should look like: - - `pwd`/target/i686-pc-linux - -\subsubsection{SYS} -From the [[SPAD]] variable we look at the last directory name -and create a version of OpenAxiom for that system. The [[SYS]] -environment variable is the last directory name in the [[SPAD]] -variable. - \subsubsection{AXIOM\_X11\_CFLAGS} The variable [[AXIOM_X11_CFLAGS]] holds the C compiler flags necessary @@ -575,11 +561,11 @@ $(addprefix $(axiom_build_bindir)/, notangle noweave): maybe-cp-noweb-srcdir <<install>>= install: @echo Installing OpenAxiom in $(prefix) - @mkdir -p $(DESTDIR)$(libdir)/open-axiom - @cp -pr $(builddir)/target $(DESTDIR)$(libdir)/open-axiom - @ rm -f $(bindir)/axiom - @ $(mkinstalldirs) $(bindir) - @ $(INSTALL_PROGRAM) src/scripts/axiom $(bindir) + @$(mkinstalldirs) $(DESTDIR)$(open_axiom_installdir) + cp -pr $(builddir)/$(target)/* $(DESTDIR)$(open_axiom_installdir) + rm -f $(bindir)/axiom + @$(mkinstalldirs) $(bindir) + $(INSTALL_PROGRAM) src/scripts/axiom $(bindir) @echo OpenAxiom installation finished. @ diff --git a/config/var-def.mk b/config/var-def.mk index 32e5c572..3281f17a 100644 --- a/config/var-def.mk +++ b/config/var-def.mk @@ -160,7 +160,7 @@ axiom_c_macros = $(axiom_configdir)/axiom-c-macros.h LATEX = @LATEX@ ## Staging directory for the target DESTDIR -axiom_targetdir = $(top_builddir)/target/$(target) +axiom_targetdir = $(top_builddir)/$(target) axiom_target_bindir = $(axiom_targetdir)/bin axiom_target_libdir = $(axiom_targetdir)/lib axiom_target_srcdir = $(axiom_targetdir)/src @@ -172,6 +172,10 @@ axiom_target_texdir = $(axiom_target_datadir)/texmf/tex ## Where OpenAxiom keeps the tarballs for optional components axiom_optional_srcdir = $(abs_top_srcdir)/zips +## The final directory where OpenAxiom is installed. This is usually +## the directory deduced or specified at configuration time. +open_axiom_installdir = @open_axiom_installdir@ + INC=$(top_srcdir)/src/include PLF=@PLF@ CCF=@CCF@ @@ -185,7 +189,7 @@ AXIOM_X11_LDFLAGS = @X_LIBS@ @X_PRE_LIBS@ -lX11 @X_EXTRA_LIBS@ axiom_includes = -I$(axiom_src_srcdir)/include -I$(axiom_configdir) ## Where the staging build directory is found -AXIOM = $(top_builddir)/target/$(target) +AXIOM = $(top_builddir)/$(target) ## Where to find OpenAxiom data bases. DAASE = $(axiom_src_datadir) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.60 for OpenAxiom 1.1.0 experimental 2007-10-08. +# Generated by GNU Autoconf 2.60 for OpenAxiom 1.1.0-2007-10-09. # # Report bugs to <open-axiom-bugs@lists.sf.net>. # @@ -711,10 +711,10 @@ MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. -PACKAGE_NAME='OpenAxiom 1.1.0 experimental' -PACKAGE_TARNAME='openaxiom-1-1-0-experimental' -PACKAGE_VERSION='2007-10-08' -PACKAGE_STRING='OpenAxiom 1.1.0 experimental 2007-10-08' +PACKAGE_NAME='OpenAxiom' +PACKAGE_TARNAME='openaxiom' +PACKAGE_VERSION='1.1.0-2007-10-09' +PACKAGE_STRING='OpenAxiom 1.1.0-2007-10-09' PACKAGE_BUGREPORT='open-axiom-bugs@lists.sf.net' ac_unique_file="src/Makefile.pamphlet" @@ -830,6 +830,7 @@ target target_cpu target_vendor target_os +open_axiom_installdir MAKE axiom_cflags INSTALL_PROGRAM @@ -1387,7 +1388,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures OpenAxiom 1.1.0 experimental 2007-10-08 to adapt to many kinds of systems. +\`configure' configures OpenAxiom 1.1.0-2007-10-09 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1435,7 +1436,7 @@ Fine tuning of the installation directories: --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/openaxiom-1-1-0-experimental] + --docdir=DIR documentation root [DATAROOTDIR/doc/openaxiom] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] @@ -1457,7 +1458,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of OpenAxiom 1.1.0 experimental 2007-10-08:";; + short | recursive ) echo "Configuration of OpenAxiom 1.1.0-2007-10-09:";; esac cat <<\_ACEOF @@ -1561,7 +1562,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -OpenAxiom 1.1.0 experimental configure 2007-10-08 +OpenAxiom configure 1.1.0-2007-10-09 generated by GNU Autoconf 2.60 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1575,7 +1576,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by OpenAxiom 1.1.0 experimental $as_me 2007-10-08, which was +It was created by OpenAxiom $as_me 1.1.0-2007-10-09, which was generated by GNU Autoconf 2.60. Invocation command line was $ $0 $@ @@ -1928,6 +1929,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu + ac_aux_dir= for ac_dir in config "$srcdir"/config; do if test -f "$ac_dir/install-sh"; then @@ -3771,7 +3773,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 3774 "configure"' > conftest.$ac_ext + echo '#line 3776 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -6626,11 +6628,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6629: $lt_compile\"" >&5) + (eval echo "\"\$as_me:6631: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:6633: \$? = $ac_status" >&5 + echo "$as_me:6635: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -6894,11 +6896,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6897: $lt_compile\"" >&5) + (eval echo "\"\$as_me:6899: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:6901: \$? = $ac_status" >&5 + echo "$as_me:6903: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -6998,11 +7000,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7001: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7003: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7005: \$? = $ac_status" >&5 + echo "$as_me:7007: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -9450,7 +9452,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<EOF -#line 9453 "configure" +#line 9455 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -9550,7 +9552,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<EOF -#line 9553 "configure" +#line 9555 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11918,11 +11920,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:11921: $lt_compile\"" >&5) + (eval echo "\"\$as_me:11923: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:11925: \$? = $ac_status" >&5 + echo "$as_me:11927: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -12022,11 +12024,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12025: $lt_compile\"" >&5) + (eval echo "\"\$as_me:12027: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:12029: \$? = $ac_status" >&5 + echo "$as_me:12031: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -13592,11 +13594,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13595: $lt_compile\"" >&5) + (eval echo "\"\$as_me:13597: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:13599: \$? = $ac_status" >&5 + echo "$as_me:13601: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -13696,11 +13698,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13699: $lt_compile\"" >&5) + (eval echo "\"\$as_me:13701: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:13703: \$? = $ac_status" >&5 + echo "$as_me:13705: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -15926,11 +15928,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15929: $lt_compile\"" >&5) + (eval echo "\"\$as_me:15931: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:15933: \$? = $ac_status" >&5 + echo "$as_me:15935: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -16194,11 +16196,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16197: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16199: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:16201: \$? = $ac_status" >&5 + echo "$as_me:16203: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -16298,11 +16300,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16301: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16303: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:16305: \$? = $ac_status" >&5 + echo "$as_me:16307: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -19070,6 +19072,9 @@ fi ## Where tools for the build platform are sequestered axiom_build_sharedir=$axiom_builddir/share +open_axiom_installdir=$libdir/open-axiom/$target/$PACKAGE_VERSION + + ## Accumulate list of utils needed for the build platform ## It is vital that noweb is present in the build environement. axiom_all_prerequisites= @@ -24786,8 +24791,6 @@ ac_config_files="$ac_config_files src/lib/Makefile:config/var-def.mk:src/lib/Mak ac_config_files="$ac_config_files src/lisp/Makefile:config/var-def.mk:src/lisp/Makefile.in:config/setup-dep.mk" -ac_config_files="$ac_config_files src/lisp/core.lisp" - ac_config_files="$ac_config_files src/boot/Makefile:config/var-def.mk:src/boot/Makefile.in:config/setup-dep.mk" ac_config_files="$ac_config_files src/interp/Makefile:config/var-def.mk:src/interp/Makefile.in:config/setup-dep.mk" @@ -25195,7 +25198,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by OpenAxiom 1.1.0 experimental $as_me 2007-10-08, which was +This file was extended by OpenAxiom $as_me 1.1.0-2007-10-09, which was generated by GNU Autoconf 2.60. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -25244,7 +25247,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -OpenAxiom 1.1.0 experimental config.status 2007-10-08 +OpenAxiom config.status 1.1.0-2007-10-09 configured by $0, generated by GNU Autoconf 2.60, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" @@ -25367,7 +25370,6 @@ do "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile:config/var-def.mk:src/Makefile.in:config/setup-dep.mk" ;; "src/lib/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/Makefile:config/var-def.mk:src/lib/Makefile.in:config/setup-dep.mk" ;; "src/lisp/Makefile") CONFIG_FILES="$CONFIG_FILES src/lisp/Makefile:config/var-def.mk:src/lisp/Makefile.in:config/setup-dep.mk" ;; - "src/lisp/core.lisp") CONFIG_FILES="$CONFIG_FILES src/lisp/core.lisp" ;; "src/boot/Makefile") CONFIG_FILES="$CONFIG_FILES src/boot/Makefile:config/var-def.mk:src/boot/Makefile.in:config/setup-dep.mk" ;; "src/interp/Makefile") CONFIG_FILES="$CONFIG_FILES src/interp/Makefile:config/var-def.mk:src/interp/Makefile.in:config/setup-dep.mk" ;; "src/share/Makefile") CONFIG_FILES="$CONFIG_FILES src/share/Makefile:config/var-def.mk:src/share/Makefile.in:config/setup-dep.mk" ;; @@ -25514,6 +25516,7 @@ target!$target$ac_delim target_cpu!$target_cpu$ac_delim target_vendor!$target_vendor$ac_delim target_os!$target_os$ac_delim +open_axiom_installdir!$open_axiom_installdir$ac_delim MAKE!$MAKE$ac_delim axiom_cflags!$axiom_cflags$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim @@ -25534,7 +25537,6 @@ axiom_gcl_rsym_hack!$axiom_gcl_rsym_hack$ac_delim axiom_quiet_flags!$axiom_quiet_flags$ac_delim axiom_eval_flags!$axiom_eval_flags$ac_delim axiom_fasl_type!$axiom_fasl_type$ac_delim -axiom_all_prerequisites!$axiom_all_prerequisites$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then @@ -25576,6 +25578,7 @@ _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF +axiom_all_prerequisites!$axiom_all_prerequisites$ac_delim axiom_c_runtime!$axiom_c_runtime$ac_delim axiom_c_runtime_extra!$axiom_c_runtime_extra$ac_delim axiom_use_sman!$axiom_use_sman$ac_delim @@ -25596,7 +25599,7 @@ LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 18; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 19; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/configure.ac b/configure.ac index c5ad563c..637479a7 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,8 @@ sinclude(config/open-axiom.m4) sinclude(config/aclocal.m4) -AC_INIT([OpenAxiom 1.1.0 experimental], [2007-10-08], +AC_INIT([OpenAxiom], [1.1.0-2007-10-09], [open-axiom-bugs@lists.sf.net]) + AC_CONFIG_AUX_DIR(config) AC_CONFIG_MACRO_DIR(config) AC_CONFIG_HEADERS([config/axiom-c-macros.h]) @@ -39,6 +40,9 @@ fi ## Where tools for the build platform are sequestered axiom_build_sharedir=$axiom_builddir/share +open_axiom_installdir=$libdir/open-axiom/$target/$PACKAGE_VERSION +AC_SUBST(open_axiom_installdir) + ## Accumulate list of utils needed for the build platform ## It is vital that noweb is present in the build environement. axiom_all_prerequisites= @@ -487,7 +491,6 @@ AXIOM_MAKEFILE([Makefile]) AXIOM_MAKEFILE([src/Makefile]) AXIOM_MAKEFILE([src/lib/Makefile]) AXIOM_MAKEFILE([src/lisp/Makefile]) -AC_CONFIG_FILES([src/lisp/core.lisp]) AXIOM_MAKEFILE([src/boot/Makefile]) AXIOM_MAKEFILE([src/interp/Makefile]) AXIOM_MAKEFILE([src/share/Makefile]) diff --git a/configure.ac.pamphlet b/configure.ac.pamphlet index 8b7c628d..70ee0992 100644 --- a/configure.ac.pamphlet +++ b/configure.ac.pamphlet @@ -1010,8 +1010,9 @@ information: <<Autoconf init>>= sinclude(config/open-axiom.m4) sinclude(config/aclocal.m4) -AC_INIT([OpenAxiom 1.1.0 experimental], [2007-10-08], +AC_INIT([OpenAxiom], [1.1.0-2007-10-09], [open-axiom-bugs@lists.sf.net]) + @ \Tool{Autoconf} needs some auxilary files that are present in the @@ -1079,7 +1080,6 @@ AXIOM_MAKEFILE([Makefile]) AXIOM_MAKEFILE([src/Makefile]) AXIOM_MAKEFILE([src/lib/Makefile]) AXIOM_MAKEFILE([src/lisp/Makefile]) -AC_CONFIG_FILES([src/lisp/core.lisp]) AXIOM_MAKEFILE([src/boot/Makefile]) AXIOM_MAKEFILE([src/interp/Makefile]) AXIOM_MAKEFILE([src/share/Makefile]) @@ -1165,6 +1165,9 @@ AC_SUBST(axiom_src_subdirs) <<host build target platfoms>> +open_axiom_installdir=$libdir/open-axiom/$target/$PACKAGE_VERSION +AC_SUBST(open_axiom_installdir) + <<build utils>> # FIXME: Move this out of here. diff --git a/src/algebra/ChangeLog b/src/algebra/ChangeLog index 9b180d13..4fa56e90 100644 --- a/src/algebra/ChangeLog +++ b/src/algebra/ChangeLog @@ -1,3 +1,9 @@ +2007-10-10 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.pamphlet (INTERPSYS): Now take system root directory + and algebra directory as arguments. + * Makefile.in: Regenerate. + 2007-09-24 Gabriel Dos Reis <gdr@cs.tamu.edu> * Makefile.pamphlet (DEPSYS): Remove. diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in index 9fdcb0ea..2ea676a4 100644 --- a/src/algebra/Makefile.in +++ b/src/algebra/Makefile.in @@ -13,10 +13,8 @@ EXTRACT_BOOTSTRAP_FILE = \ COMPILE_LISP = ../interp/interpsys$(EXEEXT) -- --compile --output=$@ $< -INTERPSYS = \ - AXIOM="$(AXIOM)" \ - DAASE="$(axiom_src_datadir)" \ - ../interp/interpsys$(EXEEXT) +INTERPSYS = ../interp/interpsys$(EXEEXT) -- --system="$(AXIOM)" \ + --sysalg="$(axiom_src_datadir)/algebra/" SPADFILES= \ diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 4eb64bb1..5e3d9ad0 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -1326,10 +1326,8 @@ files. <<environment>>= -INTERPSYS = \ - AXIOM="$(AXIOM)" \ - DAASE="$(axiom_src_datadir)" \ - ../interp/interpsys$(EXEEXT) +INTERPSYS = ../interp/interpsys$(EXEEXT) -- --system="$(AXIOM)" \ + --sysalg="$(axiom_src_datadir)/algebra/" @ diff --git a/src/etc/ChangeLog b/src/etc/ChangeLog index 223ab96f..318967b8 100644 --- a/src/etc/ChangeLog +++ b/src/etc/ChangeLog @@ -1,3 +1,9 @@ +2007-10-10 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * Makefile.pamphlet (INTERPSYS): Take system root directory and + algebra directory as arguments. + * Makefile.in: Regenerate. + 2007-08-14 Gabriel Dos Reis <gdr@cs.tamu.edu> * Makefile.pamphlet ($(axiom_targetdir)/algebra/*.daase): Don't diff --git a/src/etc/Makefile.in b/src/etc/Makefile.in index f67bc3a7..66e93c63 100644 --- a/src/etc/Makefile.in +++ b/src/etc/Makefile.in @@ -1,7 +1,5 @@ -INTERPSYS= \ - AXIOM="$(AXIOM)" \ - DAASE="$(axiom_src_datadir)" \ - ../interp/interpsys$(EXEEXT) +INTERPSYS = ../interp/interpsys$(EXEEXT) -- --system="$(AXIOM)" \ + --sysalg="$(axiom_src_datadir)/algebra/" subdir = src/etc/ diff --git a/src/etc/Makefile.pamphlet b/src/etc/Makefile.pamphlet index e8efe4af..a47a7172 100644 --- a/src/etc/Makefile.pamphlet +++ b/src/etc/Makefile.pamphlet @@ -90,10 +90,8 @@ asq.c: $(srcdir)/asq.c.pamphlet @ <<*>>= -INTERPSYS= \ - AXIOM="$(AXIOM)" \ - DAASE="$(axiom_src_datadir)" \ - ../interp/interpsys$(EXEEXT) +INTERPSYS = ../interp/interpsys$(EXEEXT) -- --system="$(AXIOM)" \ + --sysalg="$(axiom_src_datadir)/algebra/" subdir = src/etc/ diff --git a/src/interp/ChangeLog b/src/interp/ChangeLog index c8196599..5764493d 100644 --- a/src/interp/ChangeLog +++ b/src/interp/ChangeLog @@ -1,3 +1,32 @@ +2007-10-10 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * bookvol5.pamphlet (initroot): Use |systemRootDirectory| instead + of environment variable AXIOM. + (|loadExposureGroupData|): Likewise. + * br-data.boot.pamphlet (dbHasExamplePage): Likewise. + (dbRead): Likewise. + (dbReadComments): Likewise. + (buildGloss): Likewise. + * br-saturn.boot.pamphlet (getSaturnExampleList): Likewise. + * br-search.boot.pamphlet (grepSplit): Likewise. + * daase.lisp.pamphlet (asharp): Likewise. + (initial-getdatabase): Likewise. + (DaaseName): Likewise. + (create-initializers): Likewise. + * ht-root.boot.pamphlet (htGlossPage): Likewise. + * htcheck.boot.pamphlet (buildHtMacroTable): Likewise. + * i-syscmd.boot.pamphlet (summary): Likewise. + (copyright): Likewise. + * patches.lisp.pamphlet (restart0): Likewise. + * util.lisp.pamphlet (sourcepath): Likewise. + * Makefile.pamphlet (OBJS): Include sys-driver.$(FASLEXT). + (${SAVESYS}): Tidy. + (${AXIOMSYS}): Likewise. + (${DEPSYS}): Depend on sys-driver.$(FASLEXT). Load it. + (sys-driver.$(FASLEXT)): New rule. + * Makefile.in: Regenerate. + * sys-driver.boot: New. + 2007-09-25 Gabriel Dos Reis <gdr@cs.tamu.edu> * Makefile.pamphlet (<<bc-matrix.clisp>>): Remove. diff --git a/src/interp/Makefile.in b/src/interp/Makefile.in index 66f21c7e..f7a4099e 100644 --- a/src/interp/Makefile.in +++ b/src/interp/Makefile.in @@ -49,7 +49,7 @@ SAVESYS= interpsys$(EXEEXT) AXIOMSYS= $(axiom_target_bindir)/AXIOMsys$(EXEEXT) OBJS= vmlisp.$(FASLEXT) hash.$(FASLEXT) \ - diagnostics.$(FASLEXT) \ + diagnostics.$(FASLEXT) sys-driver.$(FASLEXT) \ macros.$(FASLEXT) \ unlisp.$(FASLEXT) setq.$(FASLEXT) \ astr.$(FASLEXT) bits.$(FASLEXT) \ @@ -308,9 +308,10 @@ makeint.lisp: ${DEPSYS} ${OBJS} bookvol5.$(FASLEXT) util.$(FASLEXT) \ @ echo '(gbc t)' >> makeint.lisp ${SAVESYS}: makeint.lisp - AXIOM="$(AXIOM)" DAASE="$(axiom_src_datadir)" \ - $(LOADSYS) -- --make --output=$@ --main="BOOT::RESTART" \ - --load-directory=. makeint.lisp + $(LOADSYS) -- --system="$(AXIOM)/" \ + --sysalg="$(axiom_src_datadir)/algebra/" \ + --make --output=$@ --main="BOOT::RESTART" \ + --load-directory=. makeint.lisp @ echo 6 ${SAVESYS} created $(mkinstalldirs) $(axiom_target_bindir) depsys_lisp_sources += parsing.lisp metalex.lisp bootlex.lisp \ @@ -339,6 +340,7 @@ ${DEPSYS}: vmlisp.$(FASLEXT) \ boot-pkg.$(FASLEXT) \ sys-constants.$(FASLEXT) \ sys-globals.$(FASLEXT) \ + sys-driver.$(FASLEXT) \ diagnostics.$(FASLEXT) \ sys-macros.$(FASLEXT) \ macros.$(FASLEXT) \ @@ -366,6 +368,7 @@ ${DEPSYS}: vmlisp.$(FASLEXT) \ @ echo 3 making ${DEPSYS} @ rm -f makedep.lisp @ $(mkinstalldirs) $(axiom_build_bindir) + @ echo '(|importModule| "sys-driver")' >> makedep.lisp @ echo '(|importModule| "vmlisp")' >> makedep.lisp @ echo '(|importModule| "bits")' >> makedep.lisp @ echo '(|importModule| "hash")' >> makedep.lisp @@ -422,9 +425,11 @@ nocompil.$(FASLEXT): nocompil.lisp boot-pkg.$(FASLEXT) all-axiomsys: ${AXIOMSYS} ${AXIOMSYS}: makeint.lisp - AXIOM="$(AXIOM)" DAASE="$(axiom_targetdir)" \ - $(LOADSYS) -- --make --output=$@ --main="BOOT::RESTART" \ - --load-directory=. makeint.lisp + $(LOADSYS) -- \ + --system="$(AXIOM)/" \ + --sysalg="$(axiom_targetdir)/algebra/" \ + --make --output=$@ --main="BOOT::RESTART" \ + --load-directory=. makeint.lisp @ echo 6a ${AXIOMSYS} created exposed.lsp: $(axiom_src_algdir)/exposed.lsp.pamphlet @ echo 615 making exposed.lsp from $(axiom_src_algdir)/exposed.lsp.pamphlet @@ -556,6 +561,9 @@ diagnostics.$(FASLEXT): diagnostics.boot sys-constants.$(FASLEXT) \ sys-globals.$(FASLEXT) $(BOOTSYS) -- --compile --output=$@ --load-directory=. $< +sys-driver.$(FASLEXT): sys-driver.boot boot-pkg.$(FASLEXT) + $(BOOTSYS) -- --compile --output=$@ --load-directory=. $< + sys-globals.$(FASLEXT): sys-globals.boot sys-constants.$(FASLEXT) \ hash.$(FASLEXT) $(BOOTSYS) -- --compile --output=$@ --load-directory=. $< diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet index c10dc169..23651987 100644 --- a/src/interp/Makefile.pamphlet +++ b/src/interp/Makefile.pamphlet @@ -322,7 +322,7 @@ interpreted) in [[depsys]]. <<environment>>= OBJS= vmlisp.$(FASLEXT) hash.$(FASLEXT) \ - diagnostics.$(FASLEXT) \ + diagnostics.$(FASLEXT) sys-driver.$(FASLEXT) \ macros.$(FASLEXT) \ unlisp.$(FASLEXT) setq.$(FASLEXT) \ astr.$(FASLEXT) bits.$(FASLEXT) \ @@ -972,6 +972,7 @@ ${DEPSYS}: vmlisp.$(FASLEXT) \ boot-pkg.$(FASLEXT) \ sys-constants.$(FASLEXT) \ sys-globals.$(FASLEXT) \ + sys-driver.$(FASLEXT) \ diagnostics.$(FASLEXT) \ sys-macros.$(FASLEXT) \ macros.$(FASLEXT) \ @@ -999,6 +1000,7 @@ ${DEPSYS}: vmlisp.$(FASLEXT) \ @ echo 3 making ${DEPSYS} @ rm -f makedep.lisp @ $(mkinstalldirs) $(axiom_build_bindir) + @ echo '(|importModule| "sys-driver")' >> makedep.lisp @ echo '(|importModule| "vmlisp")' >> makedep.lisp @ echo '(|importModule| "bits")' >> makedep.lisp @ echo '(|importModule| "hash")' >> makedep.lisp @@ -1099,9 +1101,10 @@ makeint.lisp: ${DEPSYS} ${OBJS} bookvol5.$(FASLEXT) util.$(FASLEXT) \ @ echo '(gbc t)' >> makeint.lisp ${SAVESYS}: makeint.lisp - AXIOM="$(AXIOM)" DAASE="$(axiom_src_datadir)" \ - $(LOADSYS) -- --make --output=$@ --main="BOOT::RESTART" \ - --load-directory=. makeint.lisp + $(LOADSYS) -- --system="$(AXIOM)/" \ + --sysalg="$(axiom_src_datadir)/algebra/" \ + --make --output=$@ --main="BOOT::RESTART" \ + --load-directory=. makeint.lisp @ echo 6 ${SAVESYS} created $(mkinstalldirs) $(axiom_target_bindir) @ @@ -1119,9 +1122,11 @@ are re-generated after leaving \File{interp/} directory. all-axiomsys: ${AXIOMSYS} ${AXIOMSYS}: makeint.lisp - AXIOM="$(AXIOM)" DAASE="$(axiom_targetdir)" \ - $(LOADSYS) -- --make --output=$@ --main="BOOT::RESTART" \ - --load-directory=. makeint.lisp + $(LOADSYS) -- \ + --system="$(AXIOM)/" \ + --sysalg="$(axiom_targetdir)/algebra/" \ + --make --output=$@ --main="BOOT::RESTART" \ + --load-directory=. makeint.lisp @ echo 6a ${AXIOMSYS} created @ @@ -2024,6 +2029,9 @@ diagnostics.$(FASLEXT): diagnostics.boot sys-constants.$(FASLEXT) \ sys-globals.$(FASLEXT) $(BOOTSYS) -- --compile --output=$@ --load-directory=. $< +sys-driver.$(FASLEXT): sys-driver.boot boot-pkg.$(FASLEXT) + $(BOOTSYS) -- --compile --output=$@ --load-directory=. $< + sys-globals.$(FASLEXT): sys-globals.boot sys-constants.$(FASLEXT) \ hash.$(FASLEXT) $(BOOTSYS) -- --compile --output=$@ --load-directory=. $< diff --git a/src/interp/bookvol5.pamphlet b/src/interp/bookvol5.pamphlet index 8ed64eba..411fa27f 100644 --- a/src/interp/bookvol5.pamphlet +++ b/src/interp/bookvol5.pamphlet @@ -763,7 +763,7 @@ Sets up the system to use the {\bf AXIOM} shell variable if we can and default to the {\bf \$spadroot} variable (which was the value of the {\bf AXIOM} shell variable at build time) if we can't. <<defun initroot>>= -(defun initroot (&optional (newroot (BOOT::|getEnv| "AXIOM"))) +(defun initroot (&optional (newroot (|systemRootDirectory|))) (reroot (or newroot $spadroot (error "setenv AXIOM or (setq $spadroot)")))) @ @@ -783,7 +783,7 @@ of the {\bf AXIOM} shell variable at build time) if we can't. (defun |loadExposureGroupData| () (cond ((load "./exposed.lsp" :verbose NIL :if-does-not-exist NIL) '|done|) - ((load (concat (BOOT::|getEnv| "AXIOM") "/../../src/algebra/exposed.lsp") + ((load (concat (|systemRootDirectory|) "/../../src/algebra/exposed.lsp") :verbose nil :if-does-not-exist nil) '|done|) (t nil) )) diff --git a/src/interp/br-data.boot.pamphlet b/src/interp/br-data.boot.pamphlet index a5490ee7..4058c4e1 100644 --- a/src/interp/br-data.boot.pamphlet +++ b/src/interp/br-data.boot.pamphlet @@ -261,12 +261,12 @@ dbHasExamplePage conname == sname := STRINGIMAGE conname abb := constructor? conname ucname := UPCASE STRINGIMAGE abb - pathname :=STRCONC(getEnv '"AXIOM",'"/share/hypertex/pages/",ucname,'".ht") + pathname :=STRCONC(systemRootDirectory(),'"/share/hypertex/pages/",ucname,'".ht") isExistingFile pathname => INTERN STRCONC(sname,'"XmpPage") nil dbRead(n) == - instream := MAKE_-INSTREAM STRCONC(getEnv('"AXIOM"), '"/algebra/libdb.text") + instream := MAKE_-INSTREAM STRCONC(systemRootDirectory(), '"/algebra/libdb.text") FILE_-POSITION(instream,n) line := READLINE instream SHUT instream @@ -274,7 +274,7 @@ dbRead(n) == dbReadComments(n) == n = 0 => '"" - instream := MAKE_-INSTREAM STRCONC(getEnv('"AXIOM"),'"/algebra/comdb.text") + instream := MAKE_-INSTREAM STRCONC(systemRootDirectory(),'"/algebra/comdb.text") FILE_-POSITION(instream,n) line := READLINE instream k := dbTickIndex(line,1,1) @@ -344,7 +344,7 @@ buildGloss() == --called by buildDatabase (database.boot) $outStream: local := MAKE_-OUTSTREAM '"temp.text" $x : local := nil $attribute? : local := true --do not surround first word - pathname := STRCONC(getEnv '"AXIOM",'"/algebra/gloss.text") + pathname := STRCONC(systemRootDirectory(),'"/algebra/gloss.text") instream := MAKE_-INSTREAM pathname keypath := '"glosskey.text" OBEY STRCONC('"rm -f ",keypath) diff --git a/src/interp/br-saturn.boot.pamphlet b/src/interp/br-saturn.boot.pamphlet index 46b53f9d..673a1dd5 100644 --- a/src/interp/br-saturn.boot.pamphlet +++ b/src/interp/br-saturn.boot.pamphlet @@ -792,7 +792,7 @@ saturnHasExamplePage conname == ASSQ(conname, $exampleConstructors) getSaturnExampleList() == - file := STRCONC( getEnv('"AXIOM"), "/doc/axug/examples.lsp") + file := STRCONC(systemRootDirectory(), "/doc/axug/examples.lsp") not PROBE_-FILE file => nil fp := MAKE_-INSTREAM file lst := READ fp diff --git a/src/interp/br-search.boot.pamphlet b/src/interp/br-search.boot.pamphlet index f886a96a..e232b231 100644 --- a/src/interp/br-search.boot.pamphlet +++ b/src/interp/br-search.boot.pamphlet @@ -220,7 +220,7 @@ isFilterDelimiter? c == MEMQ(c,$pmFilterDelimiters) grepSplit(lines,doc?) == if doc? then - instream2 := OPEN STRCONC(getEnv '"AXIOM",'"/algebra/libdb.text") + instream2 := OPEN STRCONC(systemRootDirectory(),'"/algebra/libdb.text") cons := atts := doms := nil while lines is [line, :lines] repeat if doc? then diff --git a/src/interp/daase.lisp.pamphlet b/src/interp/daase.lisp.pamphlet index ed192038..8b40ffed 100644 --- a/src/interp/daase.lisp.pamphlet +++ b/src/interp/daase.lisp.pamphlet @@ -319,7 +319,7 @@ database. (defun asharp (file &optional (flags *asharpflags*)) "call the asharp compiler" (system::system - (concatenate 'string (|getEnv| "AXIOM") "/compiler/bin/axiomxl " + (concatenate 'string (|systemRootDirectory|) "/compiler/bin/axiomxl " flags " " file))) (defun resethashtables () @@ -423,7 +423,7 @@ database. |Integer| |List| |OutputForm|)) (dolist (con constr) (let ((c (concatenate 'string - (|getEnv| "AXIOM") "/algebra/" + (|systemRootDirectory|) "/algebra/" (string (getdatabase con 'abbreviation)) ".o"))) (format t " preloading ~a.." c) (if (probe-file c) @@ -1247,12 +1247,14 @@ database. (defun DaaseName (name erase?) (let (daase filename) - (declare (special $spadroot)) - (if (setq daase (|getEnv| "DAASE")) + (if (setq daase (|systemAlgebraDirectory|)) (progn - (setq filename (concatenate 'string daase "/algebra/" name)) + (setq filename (concatenate 'string daase name)) (format t " Using local database ~a.." filename)) - (setq filename (concatenate 'string $spadroot "/algebra/" name))) + (setq filename (concatenate 'string + (|systemRootDirectory|) + "/algebra/" + name))) (when erase? (system::system (concatenate 'string "rm -f " filename))) filename)) @@ -1792,7 +1794,7 @@ database format. (set (foam::axiomxl-file-init-name "filecliq") NOPfuncall) (set (foam::axiomxl-file-init-name "attrib") NOPfuncall) ;; following needs to happen inside restart since $AXIOM may change - (let ((asharprootlib (strconc (|getEnv| "AXIOM") "/aldor/lib/"))) + (let ((asharprootlib (strconc (|systemRootDirectory|) "/aldor/lib/"))) (set-file-getter (strconc asharprootlib "runtime")) (set-file-getter (strconc asharprootlib "lang")) (set-file-getter (strconc asharprootlib "attrib")) diff --git a/src/interp/ht-root.boot.pamphlet b/src/interp/ht-root.boot.pamphlet index 3d8d08af..e8c27ee0 100644 --- a/src/interp/ht-root.boot.pamphlet +++ b/src/interp/ht-root.boot.pamphlet @@ -158,7 +158,7 @@ htGlossPage(htPage,pattern,tryAgain?) == results := applyGrep(grepForm,'gloss) --pathname := STRCONC('"/tmp/",PNAME resultFile,'".text.", getEnv '"SPADNUM") --instream := MAKE_-INSTREAM pathname - defstream := MAKE_-INSTREAM STRCONC(getEnv '"AXIOM",'"/algebra/glossdef.text") + defstream := MAKE_-INSTREAM STRCONC(systemRootDirectory(),'"/algebra/glossdef.text") lines := gatherGlossLines(results,defstream) -- OBEY STRCONC('"rm -f ", pathname) --PROBE_-FILE(pathname) and DELETE_-FILE(pathname) diff --git a/src/interp/htcheck.boot.pamphlet b/src/interp/htcheck.boot.pamphlet index d2dd018c..c78a8db6 100644 --- a/src/interp/htcheck.boot.pamphlet +++ b/src/interp/htcheck.boot.pamphlet @@ -99,7 +99,7 @@ $primitiveHtCommands := '( buildHtMacroTable() == $htMacroTable := MAKE_-HASHTABLE 'UEQUAL - fn := CONCAT(getEnv '"AXIOM", '"/share/hypertex/pages/util.ht") + fn := CONCAT(systemRootDirectory(), '"/share/hypertex/pages/util.ht") if PROBE_-FILE(fn) then instream := MAKE_-INSTREAM fn while not EOFP instream repeat diff --git a/src/interp/i-syscmd.boot.pamphlet b/src/interp/i-syscmd.boot.pamphlet index 30762926..369ef713 100644 --- a/src/interp/i-syscmd.boot.pamphlet +++ b/src/interp/i-syscmd.boot.pamphlet @@ -839,9 +839,10 @@ withAsharpCmd args == --% )copyright -- display copyright notice summary l == - OBEY STRCONC ('"cat ",getEnv('"AXIOM"),'"/lib/summary") + OBEY STRCONC ('"cat ", systemRootDirectory(),'"/lib/summary") + copyright () == - OBEY STRCONC ('"cat ",getEnv('"AXIOM"),'"/lib/copyright") + OBEY STRCONC ('"cat ", systemRootDirectory(),'"/lib/copyright") --% )credits -- display credit list diff --git a/src/interp/patches.lisp.pamphlet b/src/interp/patches.lisp.pamphlet index 17a3e1bc..a981bff2 100644 --- a/src/interp/patches.lisp.pamphlet +++ b/src/interp/patches.lisp.pamphlet @@ -182,7 +182,7 @@ previous definition. (operationopen);; all of the operations known to the system (categoryopen);; answer hasCategory question (browseopen) - (let ((asharprootlib (strconc (|getEnv| "AXIOM") "/aldor/lib/"))) + (let ((asharprootlib (strconc (|systemRootDirectory|) "/aldor/lib/"))) (set-file-getter (strconc asharprootlib "runtime.o")) (set-file-getter (strconc asharprootlib "lang.o")) (set-file-getter (strconc asharprootlib "attrib.o")) diff --git a/src/interp/sys-driver.boot b/src/interp/sys-driver.boot new file mode 100644 index 00000000..f33d9bc8 --- /dev/null +++ b/src/interp/sys-driver.boot @@ -0,0 +1,65 @@ +-- Copyright (C) 2007 Gabriel Dos Reis +-- All rights reserved. +-- +-- Redistribution and use in source and binary forms, with or without +-- modification, are permitted provided that the following conditions are +-- met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +-- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +-- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +-- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +-- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +-- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +-- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-- +-- + +-- +-- This file collects and documents routines common to the driver of +-- both the OpenAxiom compiler and interpreter. +-- + +import '"boot-pkg" +)package "BOOT" + ++++ Initialization routine run by the core system before handing off ++++ to the interpreter or compiler. ++++ ??? This part is still in flux. +AxiomCore::%sysInit() == + SETQ(_*PACKAGE_*, FIND_-PACKAGE '"BOOT") + + ++++ Returns the root directory of the running system. ++++ A directory specified on command line takes precedence ++++ over directory specified at configuration time. +systemRootDirectory() == + dir := ASSOC(Option '"system", %systemOptions()) => + ensureTrailingSlash cdr dir + $systemInstallationDirectory + + ++++ Returns the system algebra directory, as specified on command ++++ line. nil, otherwise. +systemAlgebraDirectory() == + dir := ASSOC(Option '"sysalg", %systemOptions()) => + ensureTrailingSlash cdr dir + nil + + diff --git a/src/interp/util.lisp.pamphlet b/src/interp/util.lisp.pamphlet index 80d2443e..b8a81377 100644 --- a/src/interp/util.lisp.pamphlet +++ b/src/interp/util.lisp.pamphlet @@ -1499,7 +1499,7 @@ function assumes that \\ can only appear as first character of name. (defun sourcepath (f) "find the sourcefile in the system directories" (let (axiom algebra naglink) - (setq axiom (|getEnv| "AXIOM")) + (setq axiom (|systemRootDirectory|)) (setq algebra (concatenate 'string axiom "/../../src/algebra/" f ".spad")) (setq naglink (concatenate 'string axiom "/../../src/naglink/" f ".spad")) (cond diff --git a/src/lisp/ChangeLog b/src/lisp/ChangeLog index 10c3a1ee..14dc4c84 100644 --- a/src/lisp/ChangeLog +++ b/src/lisp/ChangeLog @@ -1,3 +1,14 @@ +2007-10-10 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * core.lisp.in (|%systemOptions|): New. + (|%systemArguments|): Likewise. + (|$systemInstallationDirectory|): Likewise. + (|$sysOpts|): Likewise. + (|$sysArgs|): Likewise. + (|handleCommandLine|): Tidy. + (|printUsage|): Update. + * Makefile.pamphlet (core.lisp): Instantiate here. + 2007-09-24 Gabriel Dos Reis <gdr@cs.tamu.edu> * core.lisp.in (|handleCommandLine|): Return truthvalue on success. diff --git a/src/lisp/Makefile.in b/src/lisp/Makefile.in index d24514e0..870a838d 100644 --- a/src/lisp/Makefile.in +++ b/src/lisp/Makefile.in @@ -79,9 +79,19 @@ base-lisp$(EXEEXT): core.$(FASLEXT) $(eval_flags) '(load "core")' \ $(eval_flags) '(|AxiomCore|::|link| "$@" (quote nil) (function |AxiomCore|::|topLevel|))' + +axiom_optimize_options = @axiom_optimize_options@ + +edit = sed \ + -e 's|@open_axiom_installdir[@]|$(open_axiom_installdir)|g' \ + -e 's|@axiom_optimize_options[@]|$(axiom_optimize_options)|g' \ + -e 's|@host[@]|$(host)|g' \ + -e 's|@build[@]|$(build)|g' \ + -e 's|@target[@]|$(target)|g' + core.lisp: $(srcdir)/core.lisp.in - cd $(top_builddir) && \ - $(SHELL) ./config.status src/lisp/core.lisp + $(edit) $< > $@.tmp + $(top_srcdir)/config/move-if-change $@.tmp $@ core.$(FASLEXT): core.lisp $(AXIOM_LISP) $(quiet_flags) \ diff --git a/src/lisp/Makefile.pamphlet b/src/lisp/Makefile.pamphlet index aaef2495..76809b71 100644 --- a/src/lisp/Makefile.pamphlet +++ b/src/lisp/Makefile.pamphlet @@ -66,9 +66,19 @@ base-lisp$(EXEEXT): core.$(FASLEXT) $(eval_flags) '(load "core")' \ $(eval_flags) '(|AxiomCore|::|link| "$@" (quote nil) (function |AxiomCore|::|topLevel|))' + +axiom_optimize_options = @axiom_optimize_options@ + +edit = sed \ + -e 's|@open_axiom_installdir[@]|$(open_axiom_installdir)|g' \ + -e 's|@axiom_optimize_options[@]|$(axiom_optimize_options)|g' \ + -e 's|@host[@]|$(host)|g' \ + -e 's|@build[@]|$(build)|g' \ + -e 's|@target[@]|$(target)|g' + core.lisp: $(srcdir)/core.lisp.in - cd $(top_builddir) && \ - $(SHELL) ./config.status src/lisp/core.lisp + $(edit) $< > $@.tmp + $(top_srcdir)/config/move-if-change $@.tmp $@ core.$(FASLEXT): core.lisp $(AXIOM_LISP) $(quiet_flags) \ diff --git a/src/lisp/core.lisp.in b/src/lisp/core.lisp.in index 1cdf990c..3a5ef1ee 100644 --- a/src/lisp/core.lisp.in +++ b/src/lisp/core.lisp.in @@ -62,11 +62,15 @@ "warn" "%hasFeature" + "%systemOptions" + "%systemArguments" "$hostPlatform" "$buildPlatform" "$targetPlatform" + "$systemInstallationDirectory" + "getCommandLineArguments" "processCommandLine" "handleCommandLine" @@ -96,6 +100,12 @@ (defconstant |$buildPlatform| "@build@") (defconstant |$targetPlatform| "@target@") +;; The directory that contains the final installation directory, as +;; specified at configuration time (or in exoteric cases, as overriden +;; on the Make command line). +(defconstant |$systemInstallationDirectory| + "@open_axiom_installdir@/") + ;; Lisp compiler optimization settings. (proclaim '(optimize @axiom_optimize_options@)) @@ -144,6 +154,8 @@ ;; Ideally we want to handle ;; --help: just print a help menu and exit ;; --version: Print version information and exit +;; --system=<dir>: specify <dir> as the root directory +;; --sysalg=<dir>: specify <dir> as directory containing algebras ;; --compile: boot or lisp files ;; --translate: boot files ;; --make: boot, lisp, or fasl files @@ -349,6 +361,16 @@ ;; ;; -*- Command Line Arguments -*- + +(defparameter |$sysOpts| nil) +(defparameter |$sysArgs| nil) + +(defun |%systemOptions| () + |$sysOpts|) + +(defun |%systemArguments| () + |$sysArgs|) + ;; ;; Ideally, we would just like to have a traditional command line ;; passing mechanism from the shell to the application. That @@ -445,7 +467,7 @@ (defun |handleCommandLine| (prog-name options args) (when (or options args) - (dolist (opt options t) + (dolist (opt options nil) (cond ((eq (car opt) (|Option| "help")) ; print help, get out of here (|helpHandler| prog-name)) @@ -460,7 +482,8 @@ (opt-name (car opt)) (request (cons opt-name file-type))) (unless (|handleRequest| prog-name request options f) - (return nil))))) + (return nil)))) + (return t)) ;; In general, nothing is to be done for option value ;; specification. However, some specifications may require @@ -482,16 +505,18 @@ ;; ;; Print help screen -(defun |printUsage|(prog-name) +(defun |printUsage| (prog-name) (write-line "usage:") (write-line - (concatenate 'string prog-name " -- options [files]")) + (concatenate 'string prog-name " -- [options] [files]")) (write-line "option:") - (write-line " --help print this message") - (write-line " --compile compile file") - (write-line " --output=OUT set output file to OUT") - (write-line " --load-directory=DIR use DIR as search path for modules") - (write-line " --make create an executable")) + (write-line " --help print this message") + (write-line " --system=<dir> set <dir> to the root directory of running system") + (write-line " --sysalg=<dir> set <dir> to the algebra directory of running system") + (write-line " --compile compile file") + (write-line " --output=<out> set output file to <out>") + (write-line " --load-directory=<dir> use <dir> as search path for modules") + (write-line " --make create an executable")) (defun |helpHandler|(prog-name) (|printUsage| prog-name) @@ -633,13 +658,13 @@ ;; a filename. (multiple-value-bind (options args) (|processCommandLine| (cdr command-args) nil) + + (setq |$sysOpts| options) + (setq |$sysArgs| args) - ;; Push into the system's preferred namespace. Ideally, this should - ;; be run of initialization code if needed. However, a curiously - ;; nasty bug in GCL prevents us from expressing the natural semantics - ;; in a clean way. - (when (boundp '|$sysScope|) - (setq *package* (find-package (symbol-value '|$sysScope|)))) + ;; Run the system-specific initialization. + (when (fboundp '|%sysInit|) + (funcall '|%sysInit|)) (when (|handleCommandLine| (car command-args) options args) (|coreQuit| (if (> (|errorCount|) 0) 1 0)))))) diff --git a/src/scripts/ChangeLog b/src/scripts/ChangeLog index 86419485..736bb6a2 100644 --- a/src/scripts/ChangeLog +++ b/src/scripts/ChangeLog @@ -1,3 +1,8 @@ +2007-10-10 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * axiom.in (AXIOM): Use value substituted by Autoconf. + Remove dead code. + 2007-09-01 Gabriel Dos Reis <gdr@cs.tamu.edu> * document.in (TANGLE): New environment variable. Use in place diff --git a/src/scripts/axiom.in b/src/scripts/axiom.in index 29d896bb..1fda6803 100644 --- a/src/scripts/axiom.in +++ b/src/scripts/axiom.in @@ -1,6 +1,6 @@ #!/bin/sh -# Start everything for Axiom. +# Start everything for OpenAxiom. # # axiom # [-ht |-noht] whether to use HyperDoc @@ -23,13 +23,13 @@ # # -## Where The Axiom system resides +## Where The OpenAxiom system resides prefix=@prefix@ exec_prefix=@exec_prefix@ -AXIOM=@libdir@/open-axiom/target/@target@ +AXIOM=@open_axiom_installdir@ export AXIOM -## We adjust the value of PATH here because, currently, some Axiom +## We adjust the value of PATH here because, currently, some OpenAxiom ## programs are called from the executing shell, and relying on the ## fact that the executables are reachable from the PATH. PATH=$AXIOM/bin:$PATH @@ -88,29 +88,6 @@ if [ "$*" = "-h" ] ; then showuse fi -if [ "$SPAD" = "" ] ; then - if [ "$AXIOM" = "" ] ; then - echo "AXIOM variable is not set" - exit 1 - else - SPAD=$AXIOM - fi - export SPAD -else - if [ "$AXIOM" = "" ] ; then - echo "AXIOM variable is not set" - echo "but SPAD = $SPAD" - echo "Using AXIOM = $SPAD" - AXIOM=$SPAD - export AXIOM - else - if [ ! "$SPAD" = "$AXIOM" ] ; then - echo "ignoring SPAD variable" - SPAD=$AXIOM - fi - fi -fi - if [ "$AXIOMXLROOT" = "" ] ; then AXIOMXLROOT=${AXIOM}/compiler fi @@ -120,13 +97,13 @@ export PATH -if [ ! -d "$SPAD" ] ; then - echo "The directory for Axiom, $SPAD, does not exist." +if [ ! -d "$AXIOM" ] ; then + echo "The directory for OpenAxiom, $AXIOM, does not exist." ciao fi # Name the workspace directories. -rootwsdir=$SPAD/bin +rootwsdir=$AXIOM/bin # 2. Process command line arguments. @@ -204,12 +181,12 @@ fi if [ $go = no ] ; then echo "Would now start the processes." - echo exec $SPAD/bin/sman $otheropts -ws $serverws + echo exec $AXIOM/bin/sman $otheropts -ws $serverws exit 0 fi if [ $use_sman = "yes" ]; then - exec $SPAD/bin/sman $otheropts -ws $serverws + exec $AXIOM/bin/sman $otheropts -ws $serverws else exec $serverws fi |