diff --git a/Makefile b/Makefile index 234b8a2c88..0c426ca5bc 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,7 @@ LD = ld EXECUTABLE = factor CONSOLE_EXECUTABLE = factor-console +TEST_LIBRARY = factor-ffi-test VERSION = 0.92 IMAGE = factor.image @@ -35,7 +36,6 @@ DLL_OBJS = $(PLAF_DLL_OBJS) \ vm/debug.o \ vm/errors.o \ vm/factor.o \ - vm/ffi_test.o \ vm/image.o \ vm/io.o \ vm/math.o \ @@ -48,6 +48,8 @@ DLL_OBJS = $(PLAF_DLL_OBJS) \ EXE_OBJS = $(PLAF_EXE_OBJS) +TEST_OBJS = vm/ffi_test.o + default: $(MAKE) `./build-support/factor.sh make-target` @@ -81,60 +83,60 @@ help: @echo "X11=1 force link with X11 libraries instead of Cocoa (only on Mac OS X)" openbsd-x86-32: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.openbsd.x86.32 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.openbsd.x86.32 openbsd-x86-64: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.openbsd.x86.64 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.openbsd.x86.64 freebsd-x86-32: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.freebsd.x86.32 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.freebsd.x86.32 freebsd-x86-64: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.freebsd.x86.64 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.freebsd.x86.64 netbsd-x86-32: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.netbsd.x86.32 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.netbsd.x86.32 netbsd-x86-64: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.netbsd.x86.64 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.netbsd.x86.64 macosx-ppc: - $(MAKE) $(EXECUTABLE) macosx.app CONFIG=vm/Config.macosx.ppc + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) macosx.app CONFIG=vm/Config.macosx.ppc macosx-x86-32: - $(MAKE) $(EXECUTABLE) macosx.app CONFIG=vm/Config.macosx.x86.32 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) macosx.app CONFIG=vm/Config.macosx.x86.32 macosx-x86-64: - $(MAKE) $(EXECUTABLE) macosx.app CONFIG=vm/Config.macosx.x86.64 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) macosx.app CONFIG=vm/Config.macosx.x86.64 linux-x86-32: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.linux.x86.32 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.linux.x86.32 linux-x86-64: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.linux.x86.64 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.linux.x86.64 linux-ppc: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.linux.ppc + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.linux.ppc linux-arm: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.linux.arm + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.linux.arm solaris-x86-32: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.solaris.x86.32 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.solaris.x86.32 solaris-x86-64: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.solaris.x86.64 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.solaris.x86.64 winnt-x86-32: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.32 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.windows.nt.x86.32 $(MAKE) $(CONSOLE_EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.32 winnt-x86-64: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.64 + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.windows.nt.x86.64 $(MAKE) $(CONSOLE_EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.64 wince-arm: - $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.ce.arm + $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.windows.ce.arm macosx.app: factor mkdir -p $(BUNDLE)/Contents/MacOS @@ -157,6 +159,9 @@ factor-console: $(DLL_OBJS) $(EXE_OBJS) $(CC) $(LIBS) $(LIBPATH) -L. $(LINK_WITH_ENGINE) \ $(CFLAGS) $(CFLAGS_CONSOLE) -o factor$(EXE_SUFFIX)$(CONSOLE_EXTENSION) $(EXE_OBJS) +factor-ffi-test: $(TEST_OBJS) + $(CC) $(LIBPATH) $(CFLAGS) $(SHARED_FLAG) -o libfactor-ffi-test$(DLL_EXTENSION) $(TEST_OBJS) + clean: rm -f vm/*.o rm -f factor*.dll libfactor.{a,so,dylib} diff --git a/vm/Config.macosx b/vm/Config.macosx index 42334a0524..6655d548b7 100644 --- a/vm/Config.macosx +++ b/vm/Config.macosx @@ -5,6 +5,8 @@ PLAF_DLL_OBJS += vm/os-macosx.o vm/mach_signal.o DLL_EXTENSION = .dylib +SHARED_FLAG = -dynamiclib + ifdef X11 LIBS = -lm -framework Cocoa -L/opt/local/lib $(X11_UI_LIBS) -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib else diff --git a/vm/Config.unix b/vm/Config.unix index e8cb877249..8f2f140247 100644 --- a/vm/Config.unix +++ b/vm/Config.unix @@ -6,6 +6,7 @@ EXE_SUFFIX = DLL_PREFIX = lib DLL_EXTENSION = .a # DLL_EXTENSION = .so +SHARED_FLAG = -shared PLAF_DLL_OBJS = vm/os-unix.o PLAF_EXE_OBJS += vm/main-unix.o diff --git a/vm/Config.windows b/vm/Config.windows index 45d2f0cb98..75452a9bb4 100644 --- a/vm/Config.windows +++ b/vm/Config.windows @@ -1,6 +1,7 @@ CFLAGS += -DWINDOWS -mno-cygwin LIBS = -lm PLAF_DLL_OBJS += vm/os-windows.o +SHARED_FLAG = -shared EXE_EXTENSION=.exe CONSOLE_EXTENSION=.com DLL_EXTENSION=.dll