X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=make-config.sh;h=c1d49bec15efd94b4dfb1fddcb1070ad1bf0f4c9;hb=d406d3a2345fe475fa7cb27b516d023cc2f7225e;hp=ff693d1e2abb4439125307a98eb38509c173f1b7;hpb=286cb407fcf618572b874ace57c119fe284d14c5;p=sbcl.git diff --git a/make-config.sh b/make-config.sh index ff693d1..c1d49be 100644 --- a/make-config.sh +++ b/make-config.sh @@ -129,6 +129,10 @@ case `uname` in sbcl_os="openbsd" ln -s Config.$sbcl_arch-openbsd Config ;; + NetBSD) + printf ' :netbsd' >> $ltf + ln -s Config.$sbcl_arch-netbsd Config + ;; *) echo unsupported BSD variant: `uname` exit 1 @@ -157,6 +161,20 @@ case `uname` in esac cd $original_dir +# FIXME: Things like :c-stack-grows-..., etc, should be +# *derived-target-features* or equivalent, so that there was a nicer +# way to specify them then sprinkling them in this file. They should +# still be tweakable by advanced users, though, but probably not +# appear in *features* of target. #!+/- should be adjusted to take +# them in account as well. At minimum the nicer specification stuff, +# though: +# +# (define-feature :dlopen (features) +# (union '(:bsd :linux :darwin :sunos) features)) +# +# (define-feature :c-stack-grows-downwards-not-upwards (features) +# (member :x86 features)) + # KLUDGE: currently the x86 only works with the generational garbage # collector (indicated by the presence of :GENCGC in *FEATURES*) and # alpha, sparc and ppc with the stop'n'copy collector (indicated by @@ -165,20 +183,29 @@ cd $original_dir # base-target-features.lisp-expr, we add it into local-target-features # if we're building for x86. -- CSR, 2002-02-21 Then we do something # similar with :STACK-GROWS-FOOWARD, too. -- WHN 2002-03-03 -if [ "$sbcl_arch" = "x86" ] ; then +if [ "$sbcl_arch" = "x86" ]; then printf ' :gencgc :stack-grows-downward-not-upward :c-stack-is-control-stack' >> $ltf -elif [ "$sbcl_arch" = "mips" ] ; then + if [ "$sbcl_os" = "linux" ] || [ "$sbcl_os" = "freebsd" ]; then + printf ' :linkage-table' >> $ltf + fi +elif [ "$sbcl_arch" = "mips" ]; then # Use a little C program to try to guess the endianness. Ware # cross-compilers! - $GNUMAKE -C tools-for-build determine-endianness + # + # FIXME: integrate to grovel-features, mayhaps + $GNUMAKE -C tools-for-build determine-endianness -I src/runtime tools-for-build/determine-endianness >> $ltf elif [ "$sbcl_arch" = "ppc" -a "$sbcl_os" = "linux" ]; then # Use a C program to detect which kind of glibc we're building on, # to bandage across the break in source compatibility between # versions 2.3.1 and 2.3.2 - $GNUMAKE -C tools-for-build where-is-mcontext + # + # FIXME: integrate to grovel-features., maypahps + $GNUMAKE -C tools-for-build where-is-mcontext -I src/runtime tools-for-build/where-is-mcontext > src/runtime/ppc-linux-mcontext.h elif [ "$sbcl_arch" = "ppc" -a "$sbcl_os" = "darwin" ]; then + # We provide a dlopen shim, so a little lie won't hurt + printf " :os-provides-dlopen" >> $ltf # The default stack ulimit under darwin is too small to run PURIFY. # Best we can do is complain and exit at this stage if [ "`ulimit -s`" = "512" ]; then @@ -192,11 +219,17 @@ elif [ "$sbcl_arch" = "sparc" ]; then # FUNCDEF macro for assembler. No harm in running this on sparc-linux # as well. sh tools-for-build/sparc-funcdef.sh > src/runtime/sparc-funcdef.h + if [ "$sbcl_os" = "sunos" ]; then + printf ' :linkage-table' >> $ltf + fi else # Nothing need be done in this case, but sh syntax wants a placeholder. echo > /dev/null fi +export sbcl_os sbcl_arch +sh tools-for-build/grovel-features.sh >> $ltf + echo //finishing $ltf echo ')' >> $ltf @@ -210,5 +243,9 @@ echo ')' >> $ltf # Make a unique ID for this build (to discourage people from # mismatching sbcl and *.core files). -echo '"'`hostname`-`whoami`-`date +%F-%H-%M-%S`'"' > output/build-id.tmp +if [ `uname` = "SunOS" ] ; then + # use /usr/xpg4/bin/id instead of /usr/bin/id + PATH=/usr/xpg4/bin:$PATH +fi +echo '"'`hostname`-`id -un`-`date +%Y-%m-%d-%H-%M-%S`'"' > output/build-id.tmp