From: Matt Birkholz Date: Tue, 10 Sep 2013 00:11:50 +0000 (-0700) Subject: ffi-test: Catch up with the new (old) generate-shim behavior. X-Git-Tag: release-9.2.0~116 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=586d84107061cf455acdf0074e5ab6225c46a0ff;p=mit-scheme.git ffi-test: Catch up with the new (old) generate-shim behavior. Add 4 tedious little rules to the Makefile and copyright notices. Make the test definition conditional on the wrapper build. --- diff --git a/tests/ffi/Makefile b/tests/ffi/Makefile index ca4ecbbe9..fd6cd5ffe 100644 --- a/tests/ffi/Makefile +++ b/tests/ffi/Makefile @@ -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 diff --git a/tests/ffi/ffi-test.c b/tests/ffi/ffi-test.c index 03dc76927..c2e4f1304 100644 --- a/tests/ffi/ffi-test.c +++ b/tests/ffi/ffi-test.c @@ -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. */ diff --git a/tests/ffi/test-ffi.scm b/tests/ffi/test-ffi.scm index 3b1b7b57d..90d5d3c07 100644 --- a/tests/ffi/test-ffi.scm +++ b/tests/ffi/test-ffi.scm @@ -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