compile an ffi test library, reduce factor runtime by 6kb!
							parent
							
								
									4b275c2861
								
							
						
					
					
						commit
						97283b9857
					
				
							
								
								
									
										43
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										43
									
								
								Makefile
								
								
								
								
							| 
						 | 
					@ -4,6 +4,7 @@ LD = ld
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXECUTABLE = factor
 | 
					EXECUTABLE = factor
 | 
				
			||||||
CONSOLE_EXECUTABLE = factor-console
 | 
					CONSOLE_EXECUTABLE = factor-console
 | 
				
			||||||
 | 
					TEST_LIBRARY = factor-ffi-test
 | 
				
			||||||
VERSION = 0.92
 | 
					VERSION = 0.92
 | 
				
			||||||
 | 
					
 | 
				
			||||||
IMAGE = factor.image
 | 
					IMAGE = factor.image
 | 
				
			||||||
| 
						 | 
					@ -35,7 +36,6 @@ DLL_OBJS = $(PLAF_DLL_OBJS) \
 | 
				
			||||||
	vm/debug.o \
 | 
						vm/debug.o \
 | 
				
			||||||
	vm/errors.o \
 | 
						vm/errors.o \
 | 
				
			||||||
	vm/factor.o \
 | 
						vm/factor.o \
 | 
				
			||||||
	vm/ffi_test.o \
 | 
					 | 
				
			||||||
	vm/image.o \
 | 
						vm/image.o \
 | 
				
			||||||
	vm/io.o \
 | 
						vm/io.o \
 | 
				
			||||||
	vm/math.o \
 | 
						vm/math.o \
 | 
				
			||||||
| 
						 | 
					@ -48,6 +48,8 @@ DLL_OBJS = $(PLAF_DLL_OBJS) \
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXE_OBJS = $(PLAF_EXE_OBJS)
 | 
					EXE_OBJS = $(PLAF_EXE_OBJS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TEST_OBJS = vm/ffi_test.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
default:
 | 
					default:
 | 
				
			||||||
	$(MAKE) `./build-support/factor.sh make-target`
 | 
						$(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)"
 | 
						@echo "X11=1  force link with X11 libraries instead of Cocoa (only on Mac OS X)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
openbsd-x86-32:
 | 
					openbsd-x86-32:
 | 
				
			||||||
	$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.openbsd.x86.32
 | 
						$(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.openbsd.x86.32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
openbsd-x86-64:
 | 
					openbsd-x86-64:
 | 
				
			||||||
	$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.openbsd.x86.64
 | 
						$(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.openbsd.x86.64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
freebsd-x86-32:
 | 
					freebsd-x86-32:
 | 
				
			||||||
	$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.freebsd.x86.32
 | 
						$(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.freebsd.x86.32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
freebsd-x86-64:
 | 
					freebsd-x86-64:
 | 
				
			||||||
	$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.freebsd.x86.64
 | 
						$(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.freebsd.x86.64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
netbsd-x86-32:
 | 
					netbsd-x86-32:
 | 
				
			||||||
	$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.netbsd.x86.32
 | 
						$(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.netbsd.x86.32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
netbsd-x86-64:
 | 
					netbsd-x86-64:
 | 
				
			||||||
	$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.netbsd.x86.64
 | 
						$(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.netbsd.x86.64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
macosx-ppc:
 | 
					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:
 | 
					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:
 | 
					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:
 | 
					linux-x86-32:
 | 
				
			||||||
	$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.linux.x86.32
 | 
						$(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.linux.x86.32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
linux-x86-64:
 | 
					linux-x86-64:
 | 
				
			||||||
	$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.linux.x86.64
 | 
						$(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.linux.x86.64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
linux-ppc:
 | 
					linux-ppc:
 | 
				
			||||||
	$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.linux.ppc
 | 
						$(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.linux.ppc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
linux-arm:
 | 
					linux-arm:
 | 
				
			||||||
	$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.linux.arm
 | 
						$(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.linux.arm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
solaris-x86-32:
 | 
					solaris-x86-32:
 | 
				
			||||||
	$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.solaris.x86.32
 | 
						$(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.solaris.x86.32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
solaris-x86-64:
 | 
					solaris-x86-64:
 | 
				
			||||||
	$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.solaris.x86.64
 | 
						$(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.solaris.x86.64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
winnt-x86-32:
 | 
					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
 | 
						$(MAKE) $(CONSOLE_EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
winnt-x86-64:
 | 
					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
 | 
						$(MAKE) $(CONSOLE_EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
wince-arm:
 | 
					wince-arm:
 | 
				
			||||||
	$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.ce.arm
 | 
						$(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.windows.ce.arm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
macosx.app: factor
 | 
					macosx.app: factor
 | 
				
			||||||
	mkdir -p $(BUNDLE)/Contents/MacOS
 | 
						mkdir -p $(BUNDLE)/Contents/MacOS
 | 
				
			||||||
| 
						 | 
					@ -157,6 +159,9 @@ factor-console: $(DLL_OBJS) $(EXE_OBJS)
 | 
				
			||||||
	$(CC) $(LIBS) $(LIBPATH) -L. $(LINK_WITH_ENGINE) \
 | 
						$(CC) $(LIBS) $(LIBPATH) -L. $(LINK_WITH_ENGINE) \
 | 
				
			||||||
		$(CFLAGS) $(CFLAGS_CONSOLE) -o factor$(EXE_SUFFIX)$(CONSOLE_EXTENSION) $(EXE_OBJS)
 | 
							$(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:
 | 
					clean:
 | 
				
			||||||
	rm -f vm/*.o
 | 
						rm -f vm/*.o
 | 
				
			||||||
	rm -f factor*.dll libfactor.{a,so,dylib}
 | 
						rm -f factor*.dll libfactor.{a,so,dylib}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,6 +5,8 @@ PLAF_DLL_OBJS += vm/os-macosx.o vm/mach_signal.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DLL_EXTENSION = .dylib
 | 
					DLL_EXTENSION = .dylib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SHARED_FLAG = -dynamiclib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifdef X11
 | 
					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
 | 
						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
 | 
					else
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,7 @@ EXE_SUFFIX =
 | 
				
			||||||
DLL_PREFIX = lib
 | 
					DLL_PREFIX = lib
 | 
				
			||||||
DLL_EXTENSION = .a
 | 
					DLL_EXTENSION = .a
 | 
				
			||||||
# DLL_EXTENSION = .so
 | 
					# DLL_EXTENSION = .so
 | 
				
			||||||
 | 
					SHARED_FLAG = -shared
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PLAF_DLL_OBJS = vm/os-unix.o
 | 
					PLAF_DLL_OBJS = vm/os-unix.o
 | 
				
			||||||
PLAF_EXE_OBJS += vm/main-unix.o
 | 
					PLAF_EXE_OBJS += vm/main-unix.o
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
CFLAGS += -DWINDOWS -mno-cygwin
 | 
					CFLAGS += -DWINDOWS -mno-cygwin
 | 
				
			||||||
LIBS = -lm
 | 
					LIBS = -lm
 | 
				
			||||||
PLAF_DLL_OBJS += vm/os-windows.o
 | 
					PLAF_DLL_OBJS += vm/os-windows.o
 | 
				
			||||||
 | 
					SHARED_FLAG = -shared
 | 
				
			||||||
EXE_EXTENSION=.exe
 | 
					EXE_EXTENSION=.exe
 | 
				
			||||||
CONSOLE_EXTENSION=.com
 | 
					CONSOLE_EXTENSION=.com
 | 
				
			||||||
DLL_EXTENSION=.dll
 | 
					DLL_EXTENSION=.dll
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue