src/Makefile.in: Punt $(FFIS) and build-ffis target.
authorMatt Birkholz <matt@birkholz.chandler.az.us>
Sat, 7 Sep 2013 04:33:06 +0000 (21:33 -0700)
committerMatt Birkholz <matt@birkholz.chandler.az.us>
Sat, 7 Sep 2013 04:33:06 +0000 (21:33 -0700)
Moved the test wrapper to tests/ffi/ though it is still commented out
of tests/check.scm.

src/Makefile.in
src/configure.ac
src/etc/make-liarc.sh
src/ffi/Makefile-fragment
tests/ffi/Makefile [new file with mode: 0644]
tests/ffi/ffi-test.c [moved from src/ffi/ffi-test.c.stay with 100% similarity]
tests/ffi/ffi-test.cdecl [moved from src/ffi/ffi-test.cdecl with 100% similarity]
tests/ffi/ffi-test.h [moved from src/ffi/ffi-test.h with 100% similarity]
tests/ffi/test-ffi-wrapper.scm
tests/ffi/test-ffi.scm

index f7ee153949f210927a7d0743322fa25933eda52f..4ce49f754eb96d0d71a3a06ac5522d434f74ef5d 100644 (file)
@@ -62,10 +62,9 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/microcode/mkinstalldirs
 
 LIARC_BOOT_BUNDLES = compiler cref sf star-parser
 LIARC_BUNDLES = $(LIARC_BOOT_BUNDLES) edwin ffi imail sos ssp xml
-FFIS = @FFIS@
 
 SUBDIRS = $(INSTALLED_SUBDIRS) 6001 compiler rcs win32 xdoc
-INSTALLED_SUBDIRS = microcode runtime $(LIARC_BUNDLES) $(FFIS)
+INSTALLED_SUBDIRS = microcode runtime $(LIARC_BUNDLES)
 
 MIT_SCHEME_EXE = @MIT_SCHEME_EXE@
 AUXDIR_NAME = @AUXDIR_NAME@
@@ -253,7 +252,7 @@ compile-xml: compile-star-parser
 all-svm: microcode/svm1-defns.h
        $(MAKE) compile-microcode
        @$(top_srcdir)/etc/compile-svm.sh "$(MIT_SCHEME_EXE)"
-       $(MAKE) build-bands #build-ffis
+       $(MAKE) build-bands
 
 microcode/svm1-defns.h: compiler/machines/svm/svm1-defns.h
        @$(top_srcdir)/etc/maybe-update-file.sh \
@@ -272,10 +271,7 @@ compiler/machines/svm/svm1-defns.h: \
 
 all-liarc:
        @$(top_srcdir)/etc/c-compile.sh "$(MIT_SCHEME_EXE)" --batch-mode
-       $(MAKE) compile-liarc-bundles build-bands #build-ffis
-
-build-ffis:
-       etc/make-in-subdirs.sh build ffi $(FFIS)
+       $(MAKE) compile-liarc-bundles build-bands
 
 macosx-app: stamp_macosx-app
 
index 27bdea69f1afbba7c8207ed3ec58747406dd7e21..601a4bd9a2cad374c79a0403925e5f227fe51779 100644 (file)
@@ -151,7 +151,6 @@ fi
 
 AC_SUBST([DEFAULT_TARGET])
 AC_SUBST([ALL_TARGET])
-AC_SUBST([FFIS])
 AC_SUBST([INSTALL_COM])
 AC_SUBST([INSTALL_LIARC_BUNDLES])
 AC_SUBST([MIT_SCHEME_EXE])
@@ -207,7 +206,7 @@ if test x"${mit_scheme_native_code}" = xc; then
         (cd lib; rm -f ${BN}; ${LN_S} ../${BN} .)
     done
     for BUNDLE in 6001 compiler cref edwin ffi imail sf sos ssp star-parser \
-                 xdoc xml $FFIS; do
+                 xdoc xml; do
        SO=${BUNDLE}.so
        (cd lib/lib; rm -f ${SO}; ${LN_S} ../../${BUNDLE}/${SO} .)
     done
index 3f6db20d2d2b12778274685d8c9889455210a09a..ee370c61ecfab17f36081ba6723d700004e9eb7d 100755 (executable)
@@ -56,4 +56,4 @@ run_configure --prefix=`pwd`/boot-root --enable-native-code=c \
 run_make stamp_install-liarc-boot-compiler c-clean distclean
 
 run_configure --enable-native-code=c --disable-host-scheme-test "${@}"
-run_make stamp_compile-liarc-bundles build-bands clean-boot-root #build-ffis
+run_make stamp_compile-liarc-bundles build-bands clean-boot-root
index f16a50c6b4396caff3ab0171cd8f876911131548..b2e68b7d4a3cfc8aa52f256fe3aa9163620bbf78 100644 (file)
@@ -11,48 +11,3 @@ install:
        $(INSTALL_DATA) *.bci $(DESTDIR)$(TARGET_DIR)/.
        $(INSTALL_DATA) ffi-*.pkd $(DESTDIR)$(TARGET_DIR)/.
        $(INSTALL_DATA) make.scm $(DESTDIR)$(TARGET_DIR)/.
-
-# Build a test library interface.
-
-# This target is built after everything else (during build-ffis), and
-# should use the new machine, runtime, etc.
-
-# This interface is for tests/ffi/test-ffi.scm, which uses its own
-# wrapper, so there is no need for the compile-ffi procedure (hint).
-build: ffi-test-shim.so ffi-test-types.bin ffi-test-const.bin
-
-ffi-test-shim.so: ffi-test-shim.o ffi-test.o $(SHIM_LOADER)
-       $(LINK_SHIM) ffi-test-shim.o ffi-test.o $(SHIM_LIBS)
-
-ffi-test-shim.o: ffi-test-shim.c ffi-test.h
-       $(COMPILE_SHIM) -c $*.c
-
-ffi-test-shim.c ffi-test-const.c ffi-test-types.bin: ffi-test.cdecl
-       (echo "(begin"; \
-        echo "  (load-option 'FFI)"; \
-        echo '  (C-generate "ffi-test" "#include \"ffi-test.h\""))') \
-       | ../microcode/scheme --library ../lib --batch-mode
-
-ffi-test-const.bin: ffi-test-const.scm
-       echo '(sf "ffi-test-const")' \
-       | ../microcode/scheme --library ../lib --batch-mode
-
-ffi-test-const.scm: ffi-test-const
-       ./ffi-test-const
-
-ffi-test-const: ffi-test-const.o
-       @rm -f $@
-       $(CC) $(CFLAGS) $(LDFLAGS) -o $@ ffi-test-const.o
-
-ffi-test-const.o: ffi-test-const.c
-       $(CC) $(CFLAGS) -o $@ -c $<
-
-# Finally, the test library itself.
-
-ffi-test.o: ffi-test.c ffi-test.h
-       $(COMPILE_SHIM) -o $@ -c $<
-
-ffi-test.c: ffi-test.c.stay
-       cp -p ffi-test.c.stay ffi-test.c
-
-.PHONY: build
diff --git a/tests/ffi/Makefile b/tests/ffi/Makefile
new file mode 100644 (file)
index 0000000..ca4ecbb
--- /dev/null
@@ -0,0 +1,24 @@
+#-*-Makefile-*-
+# tests/ffi/Makefile
+
+# Build a test library and wrapper.
+
+all: ffi-test-shim.so
+
+HOST=../../src/microcode/scheme --library ../../src/lib --batch-mode
+
+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
+       echo '(generate-shim "ffi-test" "#include \"ffi-test.h\"")' | $(HOST)
+
+# The test library itself.
+
+ffi-test.o: ffi-test.c ffi-test.h
+       echo "(compile-shim)" | $(HOST) -- -o $@ -c $<
+
+.PHONY: build
similarity index 100%
rename from src/ffi/ffi-test.c.stay
rename to tests/ffi/ffi-test.c
similarity index 100%
rename from src/ffi/ffi-test.h
rename to tests/ffi/ffi-test.h
index 59caba1167f3497fb4f7bd9e210dade1b7ac454d..54e444b59d7523e59ad756b07dab40fc8963e748 100644 (file)
@@ -2,7 +2,14 @@
 
 (C-include "ffi-test")
 
-(define (test-ffi)
+(define test-ffi
+  (let ((libdir (merge-pathnames "./")))
+    (named-lambda (test-ffi)
+      (with-system-library-directories (list libdir)
+       (lambda ()
+         (test-ffi*))))))
+
+(define (test-ffi*)
   (let* ((struct (malloc (c-sizeof "TestStruct") '|TestStruct|))
         (string "input string")
         (pi (* 4 (atan 1 1)))
index 1240038c120d9a441601da29b3ceb153ff5d0339..3b1b7b57dc3bcb1a78a3a6b985f47d0f15387b0a 100644 (file)
@@ -1,8 +1,22 @@
 ;;;-*-Scheme-*-
 
-(load-option 'FFI)
 (with-working-directory-pathname (directory-pathname (current-load-pathname))
   (lambda ()
-    (compile-file "test-ffi-wrapper")
-    (load "test-ffi-wrapper")))
+    (let ((code
+          (with-notification
+           (lambda (port)
+             (write-string "make build" port)
+             (newline port))
+           (lambda ()
+             (run-synchronous-subprocess "make" (list "all"))))))
+      (if (not (zero? code))
+         (warn "Test library build failed:" code)
+         (begin
+           (fluid-let ((load/suppress-loading-message? #t))
+             (load-option 'FFI))
+           (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