diff options
author | LaMont Jones <lamont@debian.org> | 2003-05-07 08:36:40 -0600 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:27 -0800 |
commit | e21d47d7813159bb71e0671df9b52ec0470c358d (patch) | |
tree | 3c7770ea846123c291f599044e9f234ac17616bb /compile.scm | |
parent | 8cfce36c6a4fc2e0a0ab6ef2db66a23cbe462693 (diff) | |
parent | deda2c0fd8689349fea2a900199a76ff7ecb319e (diff) | |
download | scm-e21d47d7813159bb71e0671df9b52ec0470c358d.tar.gz scm-e21d47d7813159bb71e0671df9b52ec0470c358d.zip |
Import Debian changes 5d6-3.2debian/5d6-3.2
scm (5d6-3.2) unstable; urgency=low
* Fix hppa compile. Closes: #144062
scm (5d6-3.1) unstable; urgency=low
* NMU with patch from James Troup, to fix FTBFS on sparc. Closes: #191171
scm (5d6-3) unstable; urgency=low
* Add build depend on xlibs-dev (Closes: #148020)
scm (5d6-2) unstable; urgency=low
* Remove libregexx-dev from build-depends.
* Change build to use ./scmlit rather than scmlit (should fix some build
problems) (looks like alpha is mostly building)
* New release (Closes: #140175)
* Built with turtlegraphics last time (Closes: #58515)
scm (5d6-1) unstable; urgency=low
* New upstream.
* Add xlib and turtlegr to requested list of features. (closes
some bug)
* Make clean actually clean most everything up.
* Remove hacks renaming build to something else and just set build as a
.PHONY target in debian/rules.
* Add the turtlegr code.
scm (5d5-1) unstable; urgency=low
* New upstream
* Has fixes for 64 bit archs. May fix alpha compile problem. Does fix
(Closes: #140175)
* Take out -O2 arg.
scm (5d4-3) unstable; urgency=low
* Don't link with regexx, but just use libc6's regular expression
functions.
* Define (terms) to output /usr/share/common-licenses/GPL (Closes:
#119321)
scm (5d4-2) unstable; urgency=low
* Add texinfo to build depends (Closes: #107011)
scm (5d4-1) unstable; urgency=low
* New upstream release.
* Move install-info --remove to prerm.
scm (5d3-5) unstable; urgency=low
* Move scm info files to section "The Algorithmic Language Scheme" to
match up with guile.
scm (5d3-4) unstable; urgency=low
* Fix build depends (Closes: #76691)
scm (5d3-3) unstable; urgency=low
* Fix path in scm dhelp file.
scm (5d3-2) unstable; urgency=low
* Actually put the header files in the package. Oops.
scm (5d3-1) unstable; urgency=low
* New upstream. (Closes: #74761)
* Make (terms) use new license location.
* Make use libregexx rather than librx.
* Fix build depends for above.
* Using new regex lib seems to fix crash (Closes: #66787)
* Consider adding scm-dev package with headers, but instead just add the
headers to the scm package. (Closes: #70787)
* Add doc-base support.
Diffstat (limited to 'compile.scm')
-rwxr-xr-x | compile.scm | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/compile.scm b/compile.scm new file mode 100755 index 0000000..ce96822 --- /dev/null +++ b/compile.scm @@ -0,0 +1,112 @@ +#! /bin/sh +:;exec scm -e"(set! *script* \"$0\")" -f$0 $* + +;; Copyright (C) 1992-2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111, USA. +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of SCM. +;; +;; The exception is that, if you link the SCM library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the SCM library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name SCM. If you copy +;; code from other Free Software Foundation releases into a copy of +;; SCM, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for SCM, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. + +;;;; "compile.scm", Compile C ==> Scheme ==> object-file. +;;; Author: Aubrey Jaffer. + +(define (go-script) + (cond ((not *script*)) + ((and (<= 1 (- (length *argv*) *optind*)) + (not (eqv? #\- (string-ref (car (list-tail *argv* *optind*)) 0)))) + (apply compile-file (list-tail *argv* *optind*))) + (else + (display "\ +\ +Usage: compile.scm FILE1.scm FILE2.scm ... +\ + Compiles Scheme FILE1.scm FILE2.scm ... to an object file named + FILE1<object-suffix>, where <object-suffix> is the object file suffix + for your computer (for instance, `.o'). FILE1.scm must be in the + current directory; FILE2.scm ... can be in other directories. +" + (current-error-port)) + (exit #f)))) + +;;; This unusual autoload loads either the +;;; source or compiled version if present. +(if (not (defined? hobbit)) ;Autoload for hobbit +(define (hobbit . args) + (require 'hobbit) + (apply hobbit args))) + +(define (compile-file file . args) + (require 'glob) + (apply hobbit file args) + (let ((command + (list "build" + "-hsystem" + "-tdll" + (string-append "--compiler-options=-I" (implementation-vicinity)) + "-c" (replace-suffix file (scheme-file-suffix) ".c")))) + (require 'build) + (cond ((>= (verbose) 3) (write command) (newline))) + (build-from-whole-argv command))) + +(define (compile->executable name . args) + (define sfs (scheme-file-suffix)) + (require 'glob) + (for-each hobbit args) + (let ((inits (map (lambda (file) + (string-append "-iinit_" (replace-suffix file sfs ""))) + args)) + (files (map (lambda (file) + (string-append "-c" (replace-suffix file sfs ".c"))) + args))) + (define command (append (list "build" + "-hsystem" + "--type=exe" + "-o" name + "-F" "compiled-closure" "inexact" + (string-append "--linker-options=-L" + (implementation-vicinity))) + files + inits)) + (require 'build) + (cond ((>= (verbose) 3) (write command) (newline))) + (build-from-whole-argv command))) + +(go-script) + +;;; Local Variables: +;;; mode:scheme +;;; End: |