From 860641f759354d793809d4ddc940dc09375d9716 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Wed, 20 Jan 2010 00:42:51 +1300 Subject: [PATCH] GNUmakefile: some more cleanups --- GNUmakefile | 226 ++++++++++++++++++++++++++-------------------------- Nmakefile | 2 +- 2 files changed, 113 insertions(+), 115 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index fbf871c527..4447dfbede 100755 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,81 +1,77 @@ -CC = gcc -CPP = g++ -AR = ar -LD = ld - -EXECUTABLE = factor -CONSOLE_EXECUTABLE = factor-console -TEST_LIBRARY = factor-ffi-test -VERSION = 0.92 - -BUNDLE = Factor.app -LIBPATH = -L/usr/X11R6/lib -CFLAGS = -Wall - -ifdef DEBUG - CFLAGS += -g -DFACTOR_DEBUG -else - CFLAGS += -O3 -endif +ifdef CONFIG + CC = gcc + CPP = g++ + AR = ar + LD = ld -ifdef REENTRANT - CFLAGS += -DFACTOR_REENTRANT -endif + VERSION = 0.92 -CFLAGS += $(SITE_CFLAGS) + BUNDLE = Factor.app + LIBPATH = -L/usr/X11R6/lib -ENGINE = $(DLL_PREFIX)factor$(DLL_SUFFIX)$(DLL_EXTENSION) + CFLAGS = -Wall $(SITE_CFLAGS) + + ifdef DEBUG + CFLAGS += -g -DFACTOR_DEBUG + else + CFLAGS += -O3 + endif -ifdef CONFIG include $(CONFIG) -endif -DLL_OBJS = $(PLAF_DLL_OBJS) \ - vm/aging_collector.o \ - vm/alien.o \ - vm/arrays.o \ - vm/bignum.o \ - vm/booleans.o \ - vm/byte_arrays.o \ - vm/callbacks.o \ - vm/callstack.o \ - vm/code_blocks.o \ - vm/code_heap.o \ - vm/compaction.o \ - vm/contexts.o \ - vm/data_heap.o \ - vm/data_heap_checker.o \ - vm/debug.o \ - vm/dispatch.o \ - vm/entry_points.o \ - vm/errors.o \ - vm/factor.o \ - vm/free_list.o \ - vm/full_collector.o \ - vm/gc.o \ - vm/image.o \ - vm/inline_cache.o \ - vm/instruction_operands.o \ - vm/io.o \ - vm/jit.o \ - vm/math.o \ - vm/nursery_collector.o \ - vm/object_start_map.o \ - vm/objects.o \ - vm/primitives.o \ - vm/profiler.o \ - vm/quotations.o \ - vm/run.o \ - vm/strings.o \ - vm/to_tenured_collector.o \ - vm/tuples.o \ - vm/utilities.o \ - vm/vm.o \ - vm/words.o - -EXE_OBJS = $(PLAF_EXE_OBJS) - -TEST_OBJS = vm/ffi_test.o + ENGINE = $(DLL_PREFIX)factor$(DLL_SUFFIX)$(DLL_EXTENSION) + EXECUTABLE = factor$(EXE_SUFFIX)$(EXE_EXTENSION) + CONSOLE_EXECUTABLE = factor$(EXE_SUFFIX)$(CONSOLE_EXTENSION) + + DLL_OBJS = $(PLAF_DLL_OBJS) \ + vm/aging_collector.o \ + vm/alien.o \ + vm/arrays.o \ + vm/bignum.o \ + vm/booleans.o \ + vm/byte_arrays.o \ + vm/callbacks.o \ + vm/callstack.o \ + vm/code_blocks.o \ + vm/code_heap.o \ + vm/compaction.o \ + vm/contexts.o \ + vm/data_heap.o \ + vm/data_heap_checker.o \ + vm/debug.o \ + vm/dispatch.o \ + vm/entry_points.o \ + vm/errors.o \ + vm/factor.o \ + vm/free_list.o \ + vm/full_collector.o \ + vm/gc.o \ + vm/image.o \ + vm/inline_cache.o \ + vm/instruction_operands.o \ + vm/io.o \ + vm/jit.o \ + vm/math.o \ + vm/nursery_collector.o \ + vm/object_start_map.o \ + vm/objects.o \ + vm/primitives.o \ + vm/profiler.o \ + vm/quotations.o \ + vm/run.o \ + vm/strings.o \ + vm/to_tenured_collector.o \ + vm/tuples.o \ + vm/utilities.o \ + vm/vm.o \ + vm/words.o + + EXE_OBJS = $(PLAF_EXE_OBJS) + + FFI_TEST_LIBRARY = libfactor-ffi-test$(SHARED_DLL_EXTENSION) + + TEST_OBJS = vm/ffi_test.o +endif default: $(MAKE) `./build-support/factor.sh make-target` @@ -110,60 +106,62 @@ help: @echo "X11=1 force link with X11 libraries instead of Cocoa (only on Mac OS X)" openbsd-x86-32: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.openbsd.x86.32 + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.openbsd.x86.32 openbsd-x86-64: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.openbsd.x86.64 + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.openbsd.x86.64 freebsd-x86-32: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.freebsd.x86.32 + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.freebsd.x86.32 freebsd-x86-64: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.freebsd.x86.64 + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.freebsd.x86.64 netbsd-x86-32: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.netbsd.x86.32 + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.netbsd.x86.32 netbsd-x86-64: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.netbsd.x86.64 + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.netbsd.x86.64 macosx-ppc: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) macosx.app CONFIG=vm/Config.macosx.ppc + $(MAKE) factor factor-ffi-test macosx.app CONFIG=vm/Config.macosx.ppc macosx-x86-32: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) macosx.app CONFIG=vm/Config.macosx.x86.32 + $(MAKE) factor factor-ffi-test macosx.app CONFIG=vm/Config.macosx.x86.32 macosx-x86-64: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) macosx.app CONFIG=vm/Config.macosx.x86.64 + $(MAKE) factor factor-ffi-test macosx.app CONFIG=vm/Config.macosx.x86.64 linux-x86-32: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.linux.x86.32 + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.linux.x86.32 linux-x86-64: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.linux.x86.64 + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.linux.x86.64 linux-ppc: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.linux.ppc + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.linux.ppc linux-arm: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.linux.arm + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.linux.arm solaris-x86-32: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.solaris.x86.32 + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.solaris.x86.32 solaris-x86-64: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.solaris.x86.64 + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.solaris.x86.64 winnt-x86-32: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.windows.nt.x86.32 - $(MAKE) $(CONSOLE_EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.32 + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.windows.nt.x86.32 + $(MAKE) factor-console CONFIG=vm/Config.windows.nt.x86.32 winnt-x86-64: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.windows.nt.x86.64 - $(MAKE) $(CONSOLE_EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.64 + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.windows.nt.x86.64 + $(MAKE) factor-console CONFIG=vm/Config.windows.nt.x86.64 wince-arm: - $(MAKE) $(EXECUTABLE) $(TEST_LIBRARY) CONFIG=vm/Config.windows.ce.arm + $(MAKE) factor factor-ffi-test CONFIG=vm/Config.windows.ce.arm + +ifdef CONFIG macosx.app: factor mkdir -p $(BUNDLE)/Contents/MacOS @@ -177,30 +175,21 @@ macosx.app: factor @executable_path/../Frameworks/libfactor.dylib \ Factor.app/Contents/MacOS/factor -FACTOR_SHARED_LIBRARY: +$(ENGINE): $(DLL_OBJS) $(TOOLCHAIN_PREFIX)$(LINKER) $(ENGINE) $(DLL_OBJS) -$(EXECUTABLE): $(DLL_OBJS) $(EXE_OBJS) FACTOR_SHARED_LIBRARY +factor: $(EXE_OBJS) $(ENGINE) $(TOOLCHAIN_PREFIX)$(CPP) $(LIBS) $(LIBPATH) -L. $(LINK_WITH_ENGINE) \ - $(CFLAGS) -o $@$(EXE_SUFFIX)$(EXE_EXTENSION) $(EXE_OBJS) + $(CFLAGS) -o $(EXECUTABLE) $(EXE_OBJS) -$(CONSOLE_EXECUTABLE): $(DLL_OBJS) $(EXE_OBJS) FACTOR_SHARED_LIBRARY +factor-console: $(EXE_OBJS) $(ENGINE) $(TOOLCHAIN_PREFIX)$(CPP) $(LIBS) $(LIBPATH) -L. $(LINK_WITH_ENGINE) \ - $(CFLAGS) $(CFLAGS_CONSOLE) -o factor$(EXE_SUFFIX)$(CONSOLE_EXTENSION) $(EXE_OBJS) + $(CFLAGS) $(CFLAGS_CONSOLE) -o $(CONSOLE_EXECUTABLE) $(EXE_OBJS) +factor-ffi-test: $(FFI_TEST_LIBRARY) -$(TEST_LIBRARY): vm/ffi_test.o - $(TOOLCHAIN_PREFIX)$(CC) $(LIBPATH) $(CFLAGS) $(FFI_TEST_CFLAGS) $(SHARED_FLAG) -o libfactor-ffi-test$(SHARED_DLL_EXTENSION) $(TEST_OBJS) - -clean: - rm -f vm/*.o - rm -f factor.dll - rm -f libfactor.* - rm -f libfactor-ffi-test.* - rm -f Factor.app/Contents/Frameworks/libfactor.dylib - -tags: - etags vm/*.{cpp,hpp,mm,S,c} +$(FFI_TEST_LIBRARY): vm/ffi_test.o + $(TOOLCHAIN_PREFIX)$(CC) $(LIBPATH) $(CFLAGS) $(FFI_TEST_CFLAGS) $(SHARED_FLAG) -o $(FFI_TEST_LIBRARY) $(TEST_OBJS) vm/resources.o: $(TOOLCHAIN_PREFIX)$(WINDRES) vm/factor.rs vm/resources.o @@ -208,9 +197,6 @@ vm/resources.o: vm/ffi_test.o: vm/ffi_test.c $(TOOLCHAIN_PREFIX)$(CC) -c $(CFLAGS) $(FFI_TEST_CFLAGS) -o $@ $< -.c.o: - $(TOOLCHAIN_PREFIX)$(CC) -c $(CFLAGS) -o $@ $< - .cpp.o: $(TOOLCHAIN_PREFIX)$(CPP) -c $(CFLAGS) -o $@ $< @@ -220,6 +206,18 @@ vm/ffi_test.o: vm/ffi_test.c .mm.o: $(TOOLCHAIN_PREFIX)$(CPP) -c $(CFLAGS) -o $@ $< -.PHONY: factor tags clean - .SUFFIXES: .mm + +endif + +clean: + rm -f vm/*.o + rm -f factor.dll + rm -f libfactor.* + rm -f libfactor-ffi-test.* + rm -f Factor.app/Contents/Frameworks/libfactor.dylib + +tags: + etags vm/*.{cpp,hpp,mm,S,c} + +.PHONY: factor factor-console factor-ffi-test tags clean macosx.app diff --git a/Nmakefile b/Nmakefile index 405cf331e8..e964105d9f 100755 --- a/Nmakefile +++ b/Nmakefile @@ -72,6 +72,6 @@ clean: del factor.dll del factor.dll.lib -.PHONY: clean +.PHONY: all clean .SUFFIXES: .rs -- 2.34.1