Commit graph

83 commits

Author SHA1 Message Date
Stas Boukarev 1d103b04ae Stop saying (out of 20 contribs)
Some are disabled or not applicable to the platform, confusing the
users.
2025-04-02 04:50:12 +03:00
Douglas Katzman 24a6b32c98 Stop warning that UINT32-MODULARLY isn't removed
It matches MODULARLY which should be removed. No good answer to that.
2024-04-24 15:36:38 -04:00
Douglas Katzman f0ef90a4a2 Kill obsolete sbcl.nm refs after cf6a01774b removed that file 2024-02-04 21:31:40 -05:00
Douglas Katzman 591dbbcc4e Cease calling host runtime's perfect hash generator
Run a C program instead using SB-EXT:RUN-PROGRAM.
At least one motivating reason is that a recent commit allowed the
generator to accept fewer than 5 keys but the old one would invoke lose()
when given 3 or 4 keys, quickly terminating your make-host-2 pass.
2024-01-30 09:10:03 -05:00
Stas Boukarev 9dc684cfcf Don't check for leftover symbols on #+sb-devel 2023-08-04 18:09:39 +03:00
Douglas Katzman 8b45790d9e Move some post-checks from make-target-2.sh into make.sh 2023-03-29 20:17:01 -04:00
Douglas Katzman 3b3156eb05 Remove complicated scaffolding from make-target-contrib
Since contrib modules are not regression-tested when just built,
and we endeavor to release code that at least builds cleanly,
there is almost no chance that the script could report a failure.
Specifically, stop producing and looking for build-passed
files as a success indicator. Counting the fasls is adequate.
2022-09-29 16:19:22 -04:00
Douglas Katzman fbd46c52ea Run contrib tests with all other tests and not in make-target-contrib
Most build systems distinguish a failed build from a failed test run,
but make.sh has a hard time doing that because of the conflation of the two.

The whole regression suite should be run if you want to ensure a good build,
so that would be a good time to test contribs. Not only that, with ASDF
we obscured a ton of style-warnings, we lost sandboxing of input files,
the ability to use --evaluator-mode, automatic generation and cleanup of
scratch pathnames, and automatic sb-sprof profiling.

So convert contrib tests to use WITH-TEST except some that gave me trouble.
This makes the output a ton more readable, and makes bisection on seldom-used
configurations quicker, not to mention that SB-RT is very lame anyway.
And there is quite literally less code to maintain now. Go figure.
2022-09-01 21:17:47 -04:00
Stas Boukarev 9de75316a3 Don't make-shared-library.sh as it doesn't work on linux-x86. 2022-03-16 22:52:12 +03:00
Kartik Singh e354cdbd4b Add libsbcl.so to installation 2022-03-16 11:48:35 -07:00
Richard M Kreuter 12c8db033c Make some build scripts robust in case CDPATH is set and inconvenient.
CDPATH isn't supposed to be exported, but it can be; and POSIX says cd
should always use PWD after searching CDPATH, but some recent OS
releases still ship versions of /bin/sh that don't. So let's have our
build scripts continue to be explicit about where they're cd'ing to.
2021-05-03 10:24:15 -04:00
Stas Boukarev d2bc715eb9 Allow "make.sh host-implementation" again.
I.e. without --xc-host
2020-02-20 18:19:22 +03:00
Douglas Katzman adca90e756 Cause make-config to run successfully by default
i.e. do not fail if the host lisp isn't found, barring any other failures.

Intuitively the check for a host lisp belongs in 'make.sh', but the rationale
for putting it in make-config is that failing sooner makes sense if the build
can't begin. But it was an incorrect behavior for make-config when run at the
shell prompt while trying to diagnose problems in that script.
2020-02-17 22:03:46 -05:00
Douglas Katzman aa57a380e7 Fix disconcerting discrepancy
With the addition of contrib/Makfile we said "19 out of 20" were built.
2020-01-15 16:10:45 -05:00
Stas Boukarev 2c0eb8f1fa Remove $legacy_xc_spec
No reason to ever stop allowing "./make.sh sbcl"
2020-01-04 05:40:12 +03:00
Stas Boukarev 5090286027 make.sh: remove the remark about tests.
It's really stale.
2019-01-28 02:53:37 +03:00
Stas Boukarev a34d75bd64 make.sh: Fix time invocation.
Can't invoke builtin utils from variables.
2017-09-16 21:44:41 +03:00
Stas Boukarev 10504515f8 make.sh: don't run out of /bin/time. 2017-09-14 17:52:21 +03:00
Jan Moringen 6b693fe00d tools-for-build: Do whitespace canonicalization in Lisp
* Avoids dependency on the "expand" tool which is not available on some
  platforms.

* Replaces tools-for-build/{canonicalize-whitespace[-1],
  check-canonical-whitespace, grep-noncanonical-whitespace,
  whitespacely-canonical-filenames} with
  tools-for-build/canonicalize-whitespace.lisp
2016-02-07 14:22:23 +01:00
Kambiz Darabi 1cac435b7b Document make-config's --host-location switch 2015-06-03 10:53:22 +01:00
Francois-Rene Rideau 25c1769e30 Deliver each contrib as a single FASL. Don't implicitly require ASDF or source code at runtime.
Also, move contrib output to obj/sbcl-home/, asdf cache to obj/asdf-cache/
Update sb-grovel and other contribs and their tests for asdf3.

Fixes lp#1132254.
2013-10-17 03:10:58 +02:00
Stas Boukarev 9f53ac7b6e make.sh --help no longer runs clean.sh
Fixes lp#937001
2012-12-18 19:04:29 +04:00
Nikodemus Siivola f67decd66a make make.sh run clean.sh
Since eg. trying to build for different arches without cleaning
  in the middle will just break things.

  slam.sh is for those in a hurry.
2011-12-05 10:19:18 +02:00
Alastair Bridgewater 7d407220e1 Clean up build process for cross-compiled targets.
* Over time, the process for producing an SBCL build for another
target architecture or OS has become more difficult and less
documented.

  * Move all make.sh argument processing to make-config.sh.

  * Have make-config.sh produce a file, output/build-config,
containing shell commands to set up important build parameters
such as where to find GNUMAKE, what SBCL_XC_HOST is, and so on.

  * Source output/build-config in most of the make*.sh scripts.

  * The practical upshot of all this is that a cross-compile
build is now a matter of alternating between target and host,
calling make-config.sh, make-host-1.sh, make-target-1.sh,
make-host-2.sh, make-target-2.sh, and following up with a
make-target-contrib.sh on the target, and you wind up with a
usable product.  And, as make-config.sh does all of the arg
parsing, you can pass --xc-host= or --dynamic-space-size= or
whatever and it all works out.
2011-10-22 17:10:38 -04:00
Nikodemus Siivola bf5163e4f0 A git-only SBCL workflow
This updates the SBCL build and release process to be more compatible
 with distributed development -- to facilitate moving the upstream
 repository into Git.

 A detailed description of what is going on here is in
 doc/GIT-WORKFLOW.md.

 Some highlights:

  * Drop version.lisp-expr and branch-version.lisp-expr.

  * Auto-generate the version at build time using information
    from Git, incorporating:
    - Last release number.
    - Number of commits on origin/master since last release.
    - Current branch, if there are commits not on origin/master.
    - Number of commits not on origin/master.
    - SHA1 id of the last commit.
    - Optional -dirty marker.

  * Update release.sh to work with Git.

  * Make source-distribution.sh exclude the .git directory from tarballs.

  * Release tags contain NEWS for that release.
2011-06-06 09:48:08 +03:00
Nikodemus Siivola 110ebca58d 1.0.44.20: clarify meaning of make.sh --dynamic-space-size option
EOM.
2010-11-10 17:39:25 +00:00
Nikodemus Siivola fc6722762a 1.0.43.10: make.sh now accepts --dynamic-space-size=<size> option
...so users can build SBCL with the right default without
 touching source.

 Fixes lp#383222.
2010-09-30 08:36:38 +00:00
Nikodemus Siivola c22ea074a0 1.0.41.53: more make.sh tweakery, part N
Aka stuff that was supposed to be in .52, but got left out.

 * Create output/ if necessary for saving the prefix.

 * Put back the semicolon that fell on the floor and rolled into a corner.

 Scripting is hard, dammit.
2010-08-18 14:56:59 +00:00
Nikodemus Siivola f5fcb637f2 1.0.41.52: more make.sh tweakery
* Empty string as the value for an option is treated as if the option
   wasn't provided at all, which makes scripting builds easier.

 * Temporary support for legacy-style xc host specifications for the
   benefit of clbuild &co. Add a noisy message to the end of the build
   so people will hopefully notice.
2010-08-18 14:49:27 +00:00
Nikodemus Siivola 202dd54e4d 1.0.41.51: eliminate accidental bash-ism from run-sbcl.sh
Thanks to Josh "Eagle Eye" Elsasser.
2010-08-17 16:06:34 +00:00
Nikodemus Siivola 57bf8a7e65 1.0.41.46: further make.sh tweaks
* Remove OpenMCL and Clisp examples from make.sh help
   string. Builders who need them should be able to figure them
   out. From the SBCL and CMUCL examples, I think -- and this way they
   won't go stale...

 * Also check for empty arguments to --foo= style command line options.
2010-08-16 11:44:28 +00:00
Nikodemus Siivola 9e4ba79747 1.0.41.45: make.sh command-line parsing
Based on patches by Daniel Herring:

 * Simple --option and --option=arg command-line parser in make.sh.

 * Supported options:

   ** --xc-host=<command> to specify XC host option instead of a
      positional argument. (Incompatible change!)

   ** --prefix=<path> to specify a non-standard install location for
      both build and install.sh.

      Addresses https://bugs.launchpad.net/sbcl/+bug/550889

   ** --help

 Semi-related minor cleanup:

 * Use --no-userinit and --no-sysinit instead of version.lisp-expr as
   the default inits for self-building: they have been around long
   enough now that it should not stop anyone from building, and makes
   for a somewhat less magical looking "//Build options: ..." line in
   the build log.
2010-08-15 13:59:00 +00:00
Alastair Bridgewater eb1a9840ad 1.0.27.7: Win32 build fix
On Win32, the default cross-compilation host is SBCL with a --sysinit
NUL --userinit NUL.  Unfortunately, SBCL itself doesn't recognize NUL
as a valid filename as it's actually a DOS device name and there's a
separate API to check for them.  The least losing workaround is to use
a real file with known-harmless content for userinit and sysinit, and
the simplest choice is version.lisp-expr.  This changes makes it
possible to build on Win32 without specifying a host lisp.
2009-04-12 14:03:08 +00:00
Nathan Froyd 6792f42055 1.0.6.10: put --disable-debugger back where it belongs
* it was accidentally deleted in a previous commit.
2007-06-01 03:05:10 +00:00
Nathan Froyd 9105a2e4a8 1.0.5.53: cleanup LOAD-TYPE macros
* when the LOAD-TYPE macros in the various backends hardcoded '3',
	  they really meant (1- N-WORD-BYTES)--a little reflection on
	  widetags, lowtags, and endian orderings should make this clear
	  (we don't have a 64-bit big-endian port to drive it home, though);
	* catch the spread of magic constants in code/array.lisp.
2007-05-19 02:14:05 +00:00
Nikodemus Siivola 64e9a9cae2 0.9.13.9: expand portability fixes
* $DEVNULL, as BSD expand hangs without < /dev/null, and Windows needs
   NUL.
2006-05-30 11:58:43 +00:00
Rudi Schlatte 2365c1b81d 0.9.11.12
new toplevel options --no-sysinit, --no-userinit to inhibit
    loading the corresponding init files
    ... also fixes the win32 build failure that motivated this change
2006-04-05 07:46:56 +00:00
Christophe Rhodes 04d819bb1a 0.9.8.27:
Merge patch from James Bielman fixing self-build under Win32.
	... a little bit of an accident ensued; I ran
		canonicalize-whitespace on .sh files, which seemed to
		work (except on wc.sh) until it scribbled all over
		make.sh, confusing the shell interpreter utterly.
	... the resulting files have built the system, nevertheless.
2006-01-09 13:00:17 +00:00
Thiemo Seufer babd45f778 0.9.4.72:
Robustify the build system scripts.
2005-09-16 13:26:39 +00:00
Christophe Rhodes 2add48f5ee 0.9.4.18:
MORE POLICY
	... upgrade asdf to upstream HEAD
	... make canonicalize-whitespace-1 not touch the file if it
		doesn't need touching
	... automatically run canonicalize-whitespace as part of make.sh
		(this is potentially controversial, as it takes a
		non-trivial amount of time, and also potentially
		scribbles over files which the unwary developer has
		open.  Better, automatic solutions are still being
		sought)
2005-08-31 14:43:43 +00:00
Nikodemus Siivola 568214ddf4 0.9.2.18: various error &co reporting improvements and build tweaks
* print the cell name for CELL-ERRORs when *PRINT-ESCAPE* is true.
 * print just the filename, not the SHARED-OBJECT structure for failed
   LOAD-SHARED-OBJECT.
 * improve our Darwin dlerror(3)-shim reporting; also clean up warnings from
   ppc-darwin-dlsim.c and reindent it for 80 columns.
 * move reporting of failed contribs to make-target-contrib.sh, and re-add
   --disable-debugger, which had accidentally fallen off.
2005-07-03 13:51:06 +00:00
Alexey Dejneka 00ac8aa578 0.9.1.40:
* COERCE for objects other than numbers and characters is not
          foldable (fix a bug reported by Nikodemus Siivola).
        * Set LC_ALL to "C" when building SBCL.
        * Set locale to "C" in run-tests.sh.
2005-06-13 11:05:44 +00:00
Christophe Rhodes 731d5dd65a 0.9.1.2:
Merge a couple of cleanup fixes that I've had tagged for months
	if not years.
2005-05-28 09:00:34 +00:00
Juho Snellman eaa8a50679 0.9.0.37:
* Merge sbcl-devel "Unneeded REX prefixes on x86-64"
          (Lutz Euler, 2005-05-17)
        * Merge sbcl-devel " x86-64 fp exceptions" (James Knight,
          2005-05-17)
        * Add "--userinit /dev/null --sysinit /dev/null" to the
          default SBCL_XC_HOST.
        * Clean up some stale x86 code (mostly floating point related)
          in the x86-64 port.
2005-05-18 02:22:48 +00:00
Christophe Rhodes 3273f8edb6 0.9.0.26:
More build fixes
	... for our non-8859-1 friends, explicitly request the C locale
		while building.
	... running the tests (and indeed starting up the new sbcl)
		in unknown locales will fail instantly, but that's probably
		less annoying than having the build fail at cold-init time.
	... probably stdin/out/err should fall back to ascii external format
		if all else fails
2005-05-08 15:55:06 +00:00
Nathan Froyd 5e291412ff 0.8.21.2:
Remove traces of the '--noprogrammer' option from the sources.
2005-03-28 15:19:18 +00:00
Nikodemus Siivola b63c4fb9b9 0.8.19.30: less COMPILE-FILE verbosity
First stab at fixing bug #7. To get output approximately as
           verbose as the old behaviour use :TOP-LEVEL-FORMS as the
           value of the :PRINT option to COMPILE-FILE.

           Note: Giving users control over the way things are printed
           via *COMPILER-PRINT-VARIABLE-ALIST* is OTOH a good thing,
           but it also seems to be used for ratheer diverse things,
           and people could reasonably want to customize them
           separately. Gah.

           Also list x86/FreeBSD4 as "expected to pass tests" in
           make.sh output, as that seems to be the case.
2005-02-17 14:30:38 +00:00
Nikodemus Siivola 079ef9dad5 message 2005-02-13 14:27:01 +00:00
Nikodemus Siivola 75b52379bd 0.8.14.5: Join the foreign legion!
* x86/FreeBSD, x86/Linux and Sparc/SunOS now have
              linkage-table support, allowing SAVE-LISP-AND-DIE to
              function properly in the presence of loaded shared
              objects.
           * As a related cleanup automate testing for dlopen
              support on the plaform, and conditionalize
              LOAD-SHARED-OBJECT support on the resulting
              :os-provides-dlopen feature.
2004-09-09 12:10:11 +00:00
Nikodemus Siivola 5d410bdb15 0.8.13.46: More verbosity and a BUG
* Add more informative output to make.sh, to direct
               users to build the manual and use install.sh.
            * Record a bug from #lisp.
2004-08-09 23:35:33 +00:00