author | Francesco Abbate <francesco.abbate@gmail.com> | 2013年08月24日 19:08:12 +0200 |
---|---|---|
committer | Francesco Abbate <francesco.abbate@gmail.com> | 2013年08月24日 19:08:12 +0200 |
commit | 71359b2215ea6943e3e7d4d4065b5568d8a853ce (patch) | |
tree | 0ae6bba062f23770fec6578807def456ab73c980 | |
parent | f10ae615a68d4e217de77a9ac55b4e07baa78335 (diff) | |
download | gsl-shell-71359b2215ea6943e3e7d4d4065b5568d8a853ce.tar.gz |
-rw-r--r-- | Makefile | 29 | ||||
-rw-r--r-- | luajit2/src/Makefile | 7 | ||||
-rw-r--r-- | makeconfig | 3 | ||||
-rw-r--r-- | makedefs | 13 |
@@ -84,10 +84,17 @@ INCLUDES += $(PTHREADS_CFLAGS) -Iagg-plot LUAGSL_LIBS += $(GSH_LIBDIR)/libaggplot.a LIBS += $(AGG_LIBS) $(FREETYPE_LIBS) $(PTHREADS_LIBS) -LUAGSL_LIBS += $(GSH_LIBDIR)/libluajit.a $(GSH_LIBDIR)/libluagsl.a $(GSH_LIBDIR)/libgdt.a +ifneq ($(BUILDMODE),dynamic) + LUAGSL_LIBS += $(GSH_LIBDIR)/libluajit.a +endif +ifeq ($(BUILDMODE),dynamic) + GSL_SHELL_DEP = $(LUAJIT_SO) libluajit-$(ABIVER).so.$(MAJVER) + LIBS += -L$(GSH_DLL_LIBDIR) -l$(LUAJIT_DLL) +endif -LUAGSL_OBJ_FILES = $(C_SRC_FILES:%.c=%.o) +LUAGSL_LIBS += $(GSH_LIBDIR)/libluagsl.a $(GSH_LIBDIR)/libgdt.a +LUAGSL_OBJ_FILES = $(C_SRC_FILES:%.c=%.o) DEP_FILES := $(C_SRC_FILES:%.c=.deps/%.P) DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) @@ -96,9 +103,11 @@ LIBS_MAGIC := $(shell mkdir .libs > /dev/null 2>&1 || :) ifeq ($(HOST_SYS),Windows) INSTALL_BIN_DIR = $(DESTDIR)$(PREFIX) INSTALL_LIB_DIR = $(DESTDIR)$(PREFIX)/$(PACKAGE_NAME) + INSTALL_SYS_LIB_DIR = $(INSTALL_BIN_DIR) else INSTALL_BIN_DIR = $(DESTDIR)$(PREFIX)/bin INSTALL_LIB_DIR = $(DESTDIR)$(PREFIX)/share/$(PACKAGE_NAME)/$(PACKAGE_VERSION) + INSTALL_SYS_LIB_DIR = $(DESTDIR)$(PREFIX)/lib endif LIBS += $(GSL_LIBS) -lm @@ -123,12 +132,13 @@ $(GSH_LIBDIR)/libluagsl.a: lua-gsl $(GSH_LIBDIR)/libgdt.a: gdt $(GSH_LIBDIR)/libaggplot.a: agg-plot $(FOXGUI_LIB): $(FOXGUI_DIR) +$(LUAJIT_SO): $(LUADIR) -$(GSL_SHELL): $(LUAGSL_OBJ_FILES) $(LUAGSL_LIBS) $(SUBDIRS) +$(GSL_SHELL): $(LUAGSL_OBJ_FILES) $(LUAGSL_LIBS) $(GSL_SHELL_DEP) $(SUBDIRS) @echo Linking $@ $(LINK_EXE) -o $@ $(LUAGSL_OBJ_FILES) $(LUAGSL_LIBS) $(LIBS) -$(GSL_SHELL_GUI): $(FOXGUI_LIB) $(LUAGSL_LIBS) $(SUBDIRS) $(FOXGUI_DIR) +$(GSL_SHELL_GUI): $(FOXGUI_LIB) $(LUAGSL_LIBS) $(GSL_SHELL_DEP) $(SUBDIRS) $(FOXGUI_DIR) @echo Linking $@ $(LINK_EXE) -o $@ $(FOXGUI_LIB) $(LUAGSL_LIBS) $(LIBS) $(FOX_LIBS) $(FOXGUI_LDFLAGS) @@ -136,6 +146,12 @@ install: $(GSL_SHELL) $(GSL_SHELL_GUI) mkdir -p $(INSTALL_BIN_DIR) cp $(GSL_SHELL) $(INSTALL_BIN_DIR) cp $(GSL_SHELL_GUI) $(INSTALL_BIN_DIR) + test -f $(LUAJIT_SO) && \ + mkdir -p $(INSTALL_SYS_LIB_DIR) && \ + cp $(LUAJIT_SO) $(INSTALL_SYS_LIB_DIR) && \ + cd $(INSTALL_SYS_LIB_DIR) && \ + ln -s libluajit.so libluajit-$(ABIVER).so && \ + ln -s libluajit-$(ABIVER).so libluajit-$(ABIVER).so.$(MAJVER) || : strip $(INSTALL_BIN_DIR)/$(GSL_SHELL) strip $(INSTALL_BIN_DIR)/$(GSL_SHELL_GUI) mkdir -p $(INSTALL_LIB_DIR) @@ -146,6 +162,11 @@ install: $(GSL_SHELL) $(GSL_SHELL_GUI) include makerules +libluajit-$(ABIVER).so.$(MAJVER): $(LUAJIT_SO) + $(HOST_RM) libluajit-$(ABIVER).so.$(MAJVER) libluajit-$(ABIVER).so + ln -s libluajit.so libluajit-$(ABIVER).so + ln -s libluajit-$(ABIVER).so libluajit-$(ABIVER).so.$(MAJVER) + clean: for dir in $(SUBDIRS); do \ $(MAKE) -C $$dir clean; \ diff --git a/luajit2/src/Makefile b/luajit2/src/Makefile index bc760073..b3a92341 100644 --- a/luajit2/src/Makefile +++ b/luajit2/src/Makefile @@ -75,7 +75,7 @@ CCWARN= -Wall #BUILDMODE= mixed # # Static mode creates a static library and a statically linked luajit. -BUILDMODE= static +#BUILDMODE= static # # Dynamic mode creates a dynamic library and a dynamically linked luajit. # Note: this executable will only run when the library is installed! @@ -151,6 +151,7 @@ XCFLAGS= include ../../makeconfig GSH_LIBDIR = ../../.libs +GSH_DLL_LIBDIR = ../.. ifeq ($(strip $(LUA_BUILD)), no) XCFLAGS += -DGSH_SHORT_FSYNTAX -DGSL_SHELL -D_REENTRANT -DPACKAGE_NAME=gsl-shell -DPACKAGE_VERSION=2.3 @@ -573,8 +574,8 @@ E= @echo ############################################################################## default all: $(TARGET_T) - $(E) "Copying luajit $(LUAJIT_A)" - $(Q)$(TARGET_COPY) $(LUAJIT_A) $(GSH_LIBDIR) + test -f $(LUAJIT_SO) && $(TARGET_COPY) $(LUAJIT_SO) $(GSH_DLL_LIBDIR) || : + test -f $(LUAJIT_A) && $(TARGET_COPY) $(LUAJIT_A) $(GSH_LIBDIR) || : amalg: @grep "^[+|]" ljamalg.c diff --git a/makeconfig b/makeconfig index 645c6c82..fcfdd91d 100644 --- a/makeconfig +++ b/makeconfig @@ -19,5 +19,8 @@ DEBUG = no USE_READLINE = yes +# can be: static, mixed or dynamic +BUILDMODE = static + PREFIX= /usr/local DESTDIR= @@ -9,6 +9,12 @@ # Copyright (C) 2009-2010 Francesco Abbate. See Copyright Notice in gsl-shell.c ############################################################################## +MAJVER= 2 +MINVER= 0 +RELVER= 0 +ABIVER= 5.1 +NODOTABIVER= 51 + AR= ar rcu RANLIB= ranlib CP_REL = cp --parents @@ -43,7 +49,7 @@ endif ifeq ($(strip $(LUA_BUILD)), yes) PACKAGE_NAME = lua - PACKAGE_VERSION = 5.1 + PACKAGE_VERSION = $(ABIVER) else PACKAGE_NAME = gsl-shell PACKAGE_VERSION = 2.3 @@ -67,13 +73,16 @@ ifeq ($(HOST_SYS),Windows) GSL_SHELL = gsl-shell.exe GSL_SHELL_GUI = gsl-shell-gui.exe + LUAJIT_DLL = lua$(NODOTABIVER) + LUAJIT_SO = $(GSH_DLL_LIBDIR)/$(LUAJIT_DLL).dll else DEFS += -pthread LIBS += -pthread - LDFLAGS += -Wl,-E GSL_SHELL = gsl-shell GSL_SHELL_GUI = gsl-shell-gui + LUAJIT_DLL = luajit + LUAJIT_SO = $(GSH_DLL_LIBDIR)/lib$(LUAJIT_DLL).so endif ifeq ($(strip $(DEBUG)), yes) |