allow SB-CONTRIB operation without explicitly set CC
[sbcl.git] / make-config.sh
index 60f9fc0..ca9e63f 100644 (file)
@@ -293,7 +293,16 @@ esac
 
 link_or_copy() {
    if [ "$sbcl_os" = "win32" ] ; then
-       cp -r "$1" "$2"
+      # Use preprocessor or makefile includes instead of copying if
+      # possible, to avoid unexpected use of the original, unchanged
+      # files when re-running only make-target-1 during development.
+      if echo "$1" | egrep '[.][ch]$'; then
+         echo "#include \"$1\"" >"$2"
+      elif echo "$1" | egrep '^Config[.]'; then
+         echo "include $1" >"$2"
+      else
+         cp -r "$1" "$2"
+      fi
    else
        ln -s "$1" "$2"
    fi
@@ -517,6 +526,8 @@ case "$sbcl_os" in
         ;;
     win32)
         printf ' :win32' >> $ltf
+        printf ' :sb-futex' >> $ltf
+        printf ' :sb-qshow' >> $ltf
         link_or_copy Config.$sbcl_arch-win32 Config
         link_or_copy $sbcl_arch-win32-os.h target-arch-os.h
         link_or_copy win32-os.h target-os.h
@@ -583,12 +594,6 @@ elif [ "$sbcl_arch" = "mips" ]; then
     printf ' :stack-allocatable-closures :stack-allocatable-vectors' >> $ltf
     printf ' :stack-allocatable-lists :stack-allocatable-fixed-objects' >> $ltf
     printf ' :alien-callbacks' >> $ltf
-    # Use a little C program to try to guess the endianness.  Ware
-    # cross-compilers!
-    #
-    # 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" ]; then
     printf ' :gencgc :stack-allocatable-closures :stack-allocatable-lists' >> $ltf
     printf ' :linkage-table :raw-instance-init-vops :memory-barrier-vops' >> $ltf
@@ -618,7 +623,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
-    printf ' :cheneygc' >> $ltf
+    if [ "$sbcl_os" = "sunos" ]; then
+        printf ' :gencgc' >> $ltf
+    else
+        echo '***'
+        echo '*** You are running SPARC on non-SunOS.  Since GENCGC is'
+        echo '*** untested on this combination, make-config.sh is falling'
+        echo '*** back to CHENEYGC.  Please consider adjusting parms.lisp'
+        echo '*** to build with GENCGC instead.'
+        echo '***'
+        printf ' :cheneygc' >> $ltf
+    fi
     if [ "$sbcl_os" = "sunos" ] || [ "$sbcl_os" = "linux" ]; then
         printf ' :linkage-table' >> $ltf
     fi
@@ -635,6 +650,13 @@ else
     echo > /dev/null
 fi
 
+# Use a little C program to try to guess the endianness.  Ware
+# cross-compilers!
+#
+# FIXME: integrate to grovel-features, mayhaps
+$GNUMAKE -C tools-for-build determine-endianness -I ../src/runtime
+tools-for-build/determine-endianness >> $ltf
+
 export sbcl_os sbcl_arch
 sh tools-for-build/grovel-features.sh >> $ltf