From 7bb82e0c1bb5ddf9e04d30786fd89ce2c0c3276f Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Thu, 1 Apr 2010 14:25:02 -0700 Subject: [PATCH] statically link factor executable to VM so dylib is only needed for embedding --- GNUmakefile | 14 ++++---------- vm/os-macosx.hpp | 2 +- vm/os-unix.cpp | 1 - 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index 12ca388f87..9f93deedf2 100755 --- a/GNUmakefile +++ b/GNUmakefile @@ -169,22 +169,16 @@ macosx.app: factor mkdir -p $(BUNDLE)/Contents/Frameworks mv $(EXECUTABLE) $(BUNDLE)/Contents/MacOS/factor ln -s Factor.app/Contents/MacOS/factor ./factor - cp $(ENGINE) $(BUNDLE)/Contents/Frameworks/$(ENGINE) - - install_name_tool \ - -change libfactor.dylib \ - @executable_path/../Frameworks/libfactor.dylib \ - Factor.app/Contents/MacOS/factor $(ENGINE): $(DLL_OBJS) $(TOOLCHAIN_PREFIX)$(LINKER) $(ENGINE) $(DLL_OBJS) -factor: $(EXE_OBJS) $(ENGINE) - $(TOOLCHAIN_PREFIX)$(CPP) $(LIBS) $(LIBPATH) -L. $(LINK_WITH_ENGINE) \ +factor: $(EXE_OBJS) $(DLL_OBJS) + $(TOOLCHAIN_PREFIX)$(CPP) $(LIBS) $(LIBPATH) -L. $(DLL_OBJS) \ $(CFLAGS) -o $(EXECUTABLE) $(EXE_OBJS) -factor-console: $(EXE_OBJS) $(ENGINE) - $(TOOLCHAIN_PREFIX)$(CPP) $(LIBS) $(LIBPATH) -L. $(LINK_WITH_ENGINE) \ +factor-console: $(EXE_OBJS) $(DLL_OBJS) + $(TOOLCHAIN_PREFIX)$(CPP) $(LIBS) $(LIBPATH) -L. $(DLL_OBJS) \ $(CFLAGS) $(CFLAGS_CONSOLE) -o $(CONSOLE_EXECUTABLE) $(EXE_OBJS) factor-ffi-test: $(FFI_TEST_LIBRARY) diff --git a/vm/os-macosx.hpp b/vm/os-macosx.hpp index 8428f56998..4d4499461d 100644 --- a/vm/os-macosx.hpp +++ b/vm/os-macosx.hpp @@ -3,7 +3,7 @@ namespace factor #define VM_C_API extern "C" __attribute__((visibility("default"))) #define FACTOR_OS_STRING "macosx" -#define NULL_DLL "libfactor.dylib" +#define NULL_DLL NULL void early_init(); diff --git a/vm/os-unix.cpp b/vm/os-unix.cpp index a8898eccab..60ac00fb39 100644 --- a/vm/os-unix.cpp +++ b/vm/os-unix.cpp @@ -46,7 +46,6 @@ void sleep_nanos(u64 nsec) void factor_vm::init_ffi() { - /* NULL_DLL is "libfactor.dylib" for OS X and NULL for generic Unix */ null_dll = dlopen(NULL_DLL,RTLD_LAZY); }