echo //entering make-target-1.sh
+# Use a little lisp to write LDSO stubs in correct format for the toolchain.
+echo //generating ldso-subs.S
+$SBCL_XC_HOST <<-'EOF' || exit 1
+ (load "src/cold/shared.lisp")
+ (load "tools-for-build/ldso-stubs.lisp")
+ #+cmu (ext:quit)
+ #+clisp (ext:quit)
+EOF
+
# Build the runtime system and symbol table (.nm) file.
#
# (This C build has to come after the first genesis in order to get
# doesn't matter.)
echo //building runtime system and symbol table file
cd src/runtime
-${GNUMAKE:-gmake} clean || exit 1
-${GNUMAKE:-gmake} depend || exit 1
-${GNUMAKE:-gmake} all || exit 1
+$GNUMAKE clean || exit 1
+$GNUMAKE depend || exit 1
+$GNUMAKE all || exit 1
+cd ../..
+
+# Use a little C program to grab stuff from the C header files and
+# smash it into Lisp source code.
+cd tools-for-build
+$GNUMAKE -I../src/runtime grovel-headers || exit 1
+cd ..
+tools-for-build/grovel-headers > output/stuff-groveled-from-headers.lisp
+
+# after-grovel-headers may not exist for all platforms (used for
+# Darwin hacks)
+cd src/runtime
+$GNUMAKE after-grovel-headers || true
+cd ..