ffi-test: Catch up with the new (old) generate-shim behavior.
authorMatt Birkholz <matt@birkholz.chandler.az.us>
Tue, 10 Sep 2013 00:11:50 +0000 (17:11 -0700)
committerMatt Birkholz <matt@birkholz.chandler.az.us>
Tue, 10 Sep 2013 00:11:50 +0000 (17:11 -0700)
Add 4 tedious little rules to the Makefile and copyright notices.
Make the test definition conditional on the wrapper build.

tests/ffi/Makefile
tests/ffi/ffi-test.c
tests/ffi/test-ffi.scm

index ca4ecbbe9f754b1fd6a95bb14ff17f3322576e1f..fd6cd5ffe239f975ab686e0657cbb123100808c6 100644 (file)
@@ -1,24 +1,53 @@
-#-*-Makefile-*-
-# tests/ffi/Makefile
-
-# Build a test library and wrapper.
-
-all: ffi-test-shim.so
+# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
+#     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+#     2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
+#     Massachusetts Institute of Technology
+#
+# This file is part of MIT/GNU Scheme.
+#
+# MIT/GNU Scheme 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 of the
+# License, or (at your option) any later version.
+#
+# MIT/GNU Scheme 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 MIT/GNU Scheme; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+# 02110-1301, USA.
 
 HOST=../../src/microcode/scheme --library ../../src/lib --batch-mode
 
+all: ffi-test-shim.so ffi-test-types.bin ffi-test-const.bin
+
 ffi-test-shim.so: ffi-test-shim.o ffi-test.o
        echo "(link-shim)" | $(HOST) -- -o $@ $^
 
 ffi-test-shim.o: ffi-test-shim.c ffi-test.h
        echo "(compile-shim)" | $(HOST) -- -c $<
 
-ffi-test-shim.c: ffi-test.cdecl
+ffi-test-shim.c ffi-test-const.c ffi-test-types.bin: ffi-test.cdecl
        echo '(generate-shim "ffi-test" "#include \"ffi-test.h\"")' | $(HOST)
 
+ffi-test-const.bin: ffi-test-const.scm
+       echo '(sf "ffi-test-const")' | $(HOST)
+
+ffi-test-const.scm: ffi-test-const
+       ./ffi-test-const
+
+ffi-test-const: ffi-test-const.o
+       $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
+
+ffi-test-const.o: ffi-test-const.c
+       $(CC) $(CPPFLAGS) $(CFLAGS) -c $<
+
 # The test library itself.
 
 ffi-test.o: ffi-test.c ffi-test.h
        echo "(compile-shim)" | $(HOST) -- -o $@ -c $<
 
-.PHONY: build
+.PHONY: all
index 03dc76927d015cd6abea2786e727db3cde1ed721..c2e4f130411338beb83e91d04143ba9031aa65c9 100644 (file)
@@ -1,4 +1,28 @@
-/* -*-C-*- */
+/* -*-C-*-
+
+Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
+    1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Massachusetts
+    Institute of Technology
+
+This file is part of MIT/GNU Scheme.
+
+MIT/GNU Scheme 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 of the License, or (at
+your option) any later version.
+
+MIT/GNU Scheme 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 MIT/GNU Scheme; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA.
+
+*/
 
 /* A test library; used to test the C/Unix FFI. */
 
index 3b1b7b57dc3bcb1a78a3a6b985f47d0f15387b0a..90d5d3c07128d703de8ed3a8832f1ac62864ce31 100644 (file)
@@ -1,11 +1,37 @@
-;;;-*-Scheme-*-
+#| -*-Scheme-*-
+
+Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
+    1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Massachusetts
+    Institute of Technology
+
+This file is part of MIT/GNU Scheme.
+
+MIT/GNU Scheme 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 of the License, or (at
+your option) any later version.
+
+MIT/GNU Scheme 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 MIT/GNU Scheme; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA.
+
+|#
+
+;;;; Build and test the test library wrapper.
 
 (with-working-directory-pathname (directory-pathname (current-load-pathname))
   (lambda ()
     (let ((code
           (with-notification
            (lambda (port)
-             (write-string "make build" port)
+             (write-string "make all" port)
              (newline port))
            (lambda ()
              (run-synchronous-subprocess "make" (list "all"))))))
@@ -17,6 +43,5 @@
            (with-system-library-directories '("./")
              (lambda ()
                (compile-file "test-ffi-wrapper")))
-           (load "test-ffi-wrapper"))))))
-
-(define-test 'ffi test-ffi)
\ No newline at end of file
+           (load "test-ffi-wrapper")
+           (define-test 'ffi test-ffi))))))
\ No newline at end of file