author | Francesco Abbate <francesco.abbate@gmail.com> | 2013年08月24日 17:30:25 +0200 |
---|---|---|
committer | Francesco Abbate <francesco.abbate@gmail.com> | 2013年08月24日 17:30:25 +0200 |
commit | f10ae615a68d4e217de77a9ac55b4e07baa78335 (patch) | |
tree | f4337fb2601e0fcebbbcf350ce883dc0739e6a63 | |
parent | 26a6016d996f22d68bb161b1d8d2df1c0fee34de (diff) | |
download | gsl-shell-f10ae615a68d4e217de77a9ac55b4e07baa78335.tar.gz |
-rw-r--r-- | Makefile | 73 | ||||
-rw-r--r-- | agg-plot/Makefile | 8 | ||||
-rw-r--r-- | benchmarks/ode/Makefile | 4 | ||||
-rw-r--r-- | fox-gui/Makefile | 27 | ||||
-rw-r--r-- | gdt/Makefile | 7 | ||||
-rw-r--r-- | lua-gsl/Makefile | 9 | ||||
-rw-r--r-- | luajit2/src/Makefile | 5 | ||||
-rw-r--r-- | make-system-detect | 1 | ||||
-rw-r--r-- | makedefs | 17 |
@@ -23,12 +23,10 @@ include make-system-detect include makepackages include makedefs -LUADIR = luajit2 +GSH_BASE_DIR = . INCLUDES += -I. $(GSL_INCLUDES) -Iagg-plot -Ilua-gsl -GSL_SHELL = gsl-shell$(EXE_EXT) -GSL_SHELL_GUI = gsl-shell-gui$(EXE_EXT) -LUA_CFLAGS = -I$(LUADIR)/src +CFLAGS += $(LUA_CFLAGS) ifeq ($(HOST_SYS),Windows) INCLUDES += -I/usr/include @@ -42,7 +40,12 @@ else endif endif -SUBDIRS = $(LUADIR) lua-gsl gdt +FOXGUI_LDFLAGS = -lsupc++ -lm +ifeq ($(HOST_SYS),Windows) + FOXGUI_LDFLAGS += -mwindows +else + FOXGUI_LDFLAGS += -ldl +endif C_SRC_FILES = @@ -71,23 +74,17 @@ LUA_BASE_FILES += $(HELP_FILES:%=help/%.lua) EXAMPLES_FILES := $(EXAMPLES_FILES_SRC:%=examples/%.csv) -LUAGSL_LIBS += $(LUADIR)/src/libluajit.a - C_SRC_FILES += gsl-shell-jit.c -TARGETS = $(GSL_SHELL) +TARGETS = $(GSL_SHELL) $(GSL_SHELL_GUI) # files and flags related to the pre3d modules LUA_BASE_FILES += pre3d/pre3d.lua pre3d/pre3d_shape_utils.lua INCLUDES += $(PTHREADS_CFLAGS) -Iagg-plot -GUI_SUBDIR = fox-gui -SUBDIRS += agg-plot $(GUI_SUBDIR) -LUAGSL_LIBS += agg-plot/libaggplot.a +LUAGSL_LIBS += $(GSH_LIBDIR)/libaggplot.a LIBS += $(AGG_LIBS) $(FREETYPE_LIBS) $(PTHREADS_LIBS) -LUAGSL_LIBS += lua-gsl/libluagsl.a gdt/libgdt.a - -COMPILE = $(CC) $(CFLAGS) $(LUA_CFLAGS) $(DEFS) $(INCLUDES) +LUAGSL_LIBS += $(GSH_LIBDIR)/libluajit.a $(GSH_LIBDIR)/libluagsl.a $(GSH_LIBDIR)/libgdt.a LUAGSL_OBJ_FILES = $(C_SRC_FILES:%.c=%.o) @@ -106,35 +103,55 @@ endif LIBS += $(GSL_LIBS) -lm -all: $(SUBDIRS) $(TARGETS) +SUBDIRS := $(LUADIR) lua-gsl agg-plot gdt +FOXGUI_DIR := fox-gui + +FOXGUI_LIB = $(GSH_LIBDIR)/libfoxgui.a + +all: $(TARGETS) $(SUBDIRS) $(FOXGUI_DIR) + +subdirs: $(SUBDIRS) $(FOXGUI_DIR) -$(GSL_SHELL): $(LUAGSL_OBJ_FILES) $(LUAGSL_LIBS) +$(SUBDIRS): + $(MAKE) -C $@ + +$(FOXGUI_DIR): + $(MAKE) -C $@ + +$(GSH_LIBDIR)/libluajit.a: $(LUADIR) +$(GSH_LIBDIR)/libluagsl.a: lua-gsl +$(GSH_LIBDIR)/libgdt.a: gdt +$(GSH_LIBDIR)/libaggplot.a: agg-plot +$(FOXGUI_LIB): $(FOXGUI_DIR) + +$(GSL_SHELL): $(LUAGSL_OBJ_FILES) $(LUAGSL_LIBS) $(SUBDIRS) @echo Linking $@ - @$(LINK_EXE) -o $@ $(LUAGSL_OBJ_FILES) $(LUAGSL_LIBS) $(LIBS) + $(LINK_EXE) -o $@ $(LUAGSL_OBJ_FILES) $(LUAGSL_LIBS) $(LIBS) -install: $(GSL_SHELL) $(GUI_SUBDIR) +$(GSL_SHELL_GUI): $(FOXGUI_LIB) $(LUAGSL_LIBS) $(SUBDIRS) $(FOXGUI_DIR) + @echo Linking $@ + $(LINK_EXE) -o $@ $(FOXGUI_LIB) $(LUAGSL_LIBS) $(LIBS) $(FOX_LIBS) $(FOXGUI_LDFLAGS) + +install: $(GSL_SHELL) $(GSL_SHELL_GUI) mkdir -p $(INSTALL_BIN_DIR) cp $(GSL_SHELL) $(INSTALL_BIN_DIR) - cp fox-gui/$(GSL_SHELL_GUI) $(INSTALL_BIN_DIR) + cp $(GSL_SHELL_GUI) $(INSTALL_BIN_DIR) strip $(INSTALL_BIN_DIR)/$(GSL_SHELL) strip $(INSTALL_BIN_DIR)/$(GSL_SHELL_GUI) mkdir -p $(INSTALL_LIB_DIR) $(CP_REL) $(LUA_BASE_FILES) $(INSTALL_LIB_DIR) $(CP_REL) $(EXAMPLES_FILES) $(INSTALL_BIN_DIR) -.PHONY: clean all $(SUBDIRS) +.PHONY: clean all subdirs $(SUBDIRS) $(FOXGUI_DIR) include makerules -$(SUBDIRS): - cd $@; $(MAKE) - clean: - $(MAKE) -C agg-plot clean - $(MAKE) -C $(LUADIR) clean - $(MAKE) -C fox-gui clean - $(MAKE) -C gdt clean - $(HOST_RM) *.o $(TARGETS) + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir clean; \ + done + $(MAKE) -C $(FOXGUI_DIR) clean + $(HOST_RM) *.o *.dll *.so $(HOST_RM) -r ./.libs/ -include $(DEP_FILES) diff --git a/agg-plot/Makefile b/agg-plot/Makefile index 5f2c1a48..3a965c24 100644 --- a/agg-plot/Makefile +++ b/agg-plot/Makefile @@ -25,8 +25,6 @@ include $(GSH_BASE_DIR)/make-system-detect include $(GSH_BASE_DIR)/makepackages include $(GSH_BASE_DIR)/makedefs -LUADIR = $(GSH_BASE_DIR)/luajit2 - ifeq ($(HOST_SYS),Windows) INCLUDES += -I/usr/include -I/usr/pthreads-w32/include PLATSUP_SRC_FILES = support_win32.cpp agg_platform_support_win32.cpp agg_win32_bmp.cpp @@ -38,20 +36,18 @@ else endif INCLUDES += $(FREETYPE_INCLUDES) $(AGG_INCLUDES) -I$(GSH_BASE_DIR) -I$(GSH_BASE_DIR)/lua-gsl -I$(LUADIR)/src -I$(GSH_BASE_DIR)/cpp-utils +CFLAGS += $(LUA_CFLAGS) AGGPLOT_SRC_FILES = $(PLATSUP_SRC_FILES) printf_check.cpp fonts.cpp gamma.cpp agg_font_freetype.cpp plot.cpp plot-auto.cpp utils.cpp units.cpp colors.cpp markers.cpp draw_svg.cpp canvas_svg.cpp lua-draw.cpp lua-text.cpp text.cpp agg-parse-trans.cpp window_registry.cpp window.cpp lua-plot.cpp canvas-window.cpp bitmap-plot.cpp lua-graph.cpp - AGGPLOT_OBJ_FILES := $(AGGPLOT_SRC_FILES:%.cpp=%.o) - DEP_FILES := $(AGGPLOT_SRC_FILES:%.cpp=.deps/%.P) DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) -CXXCOMPILE = $(CXX) $(CXXFLAGS) $(DEFS) $(INCLUDES) - TARGETS = libaggplot.a all: $(TARGETS) + @$(HOST_CP) libaggplot.a $(GSH_LIBDIR) libaggplot.a: $(AGGPLOT_OBJ_FILES) @echo Archive $@ diff --git a/benchmarks/ode/Makefile b/benchmarks/ode/Makefile index 06150b18..37876e9a 100644 --- a/benchmarks/ode/Makefile +++ b/benchmarks/ode/Makefile @@ -17,10 +17,10 @@ else LINK_EXE = $(CC) $(LDFLAGS) endif -ode-benchmark$(EXE_EXT): ode-benchmark.o +ode-benchmark.exe: ode-benchmark.o @echo Linking $@ @$(LINK_EXE) -o $@ $< $(LIBS) -ode-benchmark-rk8pd$(EXE_EXT): ode-benchmark-rk8pd.o +ode-benchmark-rk8pd.exe: ode-benchmark-rk8pd.o @echo Linking $@ @$(LINK_EXE) -o $@ $< $(LIBS) diff --git a/fox-gui/Makefile b/fox-gui/Makefile index 8579c8e9..5d5581e8 100644 --- a/fox-gui/Makefile +++ b/fox-gui/Makefile @@ -25,39 +25,24 @@ include $(GSH_BASE_DIR)/make-system-detect include $(GSH_BASE_DIR)/makepackages include $(GSH_BASE_DIR)/makedefs -GSL_SHELL_GUI = gsl-shell-gui$(EXE_EXT) - -LUADIR = $(GSH_BASE_DIR)/luajit2 - -GSL_SHELL_LIBS = $(LUADIR)/src/libluajit.a $(GSH_BASE_DIR)/agg-plot/libaggplot.a $(GSH_BASE_DIR)/lua-gsl/libluagsl.a $(GSH_BASE_DIR)/gdt/libgdt.a - INCLUDES += -I$(GSH_BASE_DIR) -I$(GSH_BASE_DIR)/lua-gsl -I$(GSH_BASE_DIR)/agg-plot -I$(LUADIR)/src -I$(GSH_BASE_DIR)/cpp-utils - INCLUDES += $(AGG_INCLUDES) $(FOX_INCLUDES) $(FREETYPE_INCLUDES) $(PTHREADS_CFLAGS) -LIBS += $(GSL_SHELL_LIBS) $(FOX_LIBS) $(AGG_LIBS) $(FREETYPE_LIBS) $(PTHREADS_LIBS) $(GSL_LIBS) -lsupc++ -lm FOXGUI_SRC_FILES = io_thread.cpp window_surface.cpp fx_console.cpp redirect.cpp gsl_shell_interp.cpp gsl_shell_thread.cpp fox_gsl_shell.cpp gsl_shell_window.cpp window_part.cpp fx_plot_canvas.cpp fx_plot_window.cpp lua_plot_window.cpp gsl_shell_app.cpp gsl-shell-fox.cpp FOXGUI_OBJ_FILES := $(FOXGUI_SRC_FILES:%.cpp=%.o) - DEP_FILES := $(FOXGUI_SRC_FILES:%.cpp=.deps/%.P) DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) -CXXCOMPILE = $(CC) $(CXXFLAGS) $(DEFS) $(INCLUDES) - -ifeq ($(HOST_SYS),Windows) - LDFLAGS += -mwindows -else - LIBS += -ldl -endif - -TARGETS = $(GSL_SHELL_GUI) +TARGETS = libfoxgui.a all: $(TARGETS) + @$(HOST_CP) libfoxgui.a $(GSH_LIBDIR) -$(GSL_SHELL_GUI): $(FOXGUI_OBJ_FILES) $(GSL_SHELL_LIBS) - @echo Linking $@ - @$(LINK_EXE) -o $@ $(FOXGUI_OBJ_FILES) $(LIBS) +libfoxgui.a: $(FOXGUI_OBJ_FILES) + @echo Archive $@ + @$(AR) $@ $? + @$(RANLIB) $@ include $(GSH_BASE_DIR)/makerules diff --git a/gdt/Makefile b/gdt/Makefile index c0c3b630..fcfbd990 100644 --- a/gdt/Makefile +++ b/gdt/Makefile @@ -28,19 +28,18 @@ include $(GSH_BASE_DIR)/makedefs INCLUDES += -I$(GSH_BASE_DIR) CFLAGS += -std=c99 +CFLAGS += $(LUA_CFLAGS) GDT_SRC_FILES = char_buffer.c gdt_index.c gdt_table.c GDT_OBJ_FILES := $(GDT_SRC_FILES:%.c=%.o) - DEP_FILES := $(GDT_SRC_FILES:%.c=.deps/%.P) DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) -COMPILE = $(CC) $(CFLAGS) $(LUA_CFLAGS) $(DEFS) $(INCLUDES) - TARGETS = libgdt.a all: $(TARGETS) + @$(HOST_CP) libgdt.a $(GSH_LIBDIR) libgdt.a: $(GDT_OBJ_FILES) @echo Archive $@ @@ -52,6 +51,6 @@ include $(GSH_BASE_DIR)/makerules .PHONY: clean all clean: - $(HOST_RM) *.o *.a *$(DLL_EXT) $(TARGETS) + $(HOST_RM) *.o *.a $(TARGETS) -include $(DEP_FILES) diff --git a/lua-gsl/Makefile b/lua-gsl/Makefile index 8f59e144..34bc93c0 100644 --- a/lua-gsl/Makefile +++ b/lua-gsl/Makefile @@ -25,22 +25,19 @@ include $(GSH_BASE_DIR)/make-system-detect include $(GSH_BASE_DIR)/makepackages include $(GSH_BASE_DIR)/makedefs -LUADIR = $(GSH_BASE_DIR)/luajit2 - -INCLUDES += -I$(LUADIR)/src -I$(GSH_BASE_DIR) +INCLUDES += -I$(GSH_BASE_DIR) +CFLAGS += $(LUA_CFLAGS) LUAGSL_SRC_FILES = lua-properties.c gs-types.c lua-utils.c lua-gsl.c str.c fatal.c LUAGSL_OBJ_FILES := $(LUAGSL_SRC_FILES:%.c=%.o) - DEP_FILES := $(LUAGSL_SRC_FILES:%.c=.deps/%.P) DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) -COMPILE = $(CC) $(CFLAGS) $(LUA_CFLAGS) $(DEFS) $(INCLUDES) - TARGETS = libluagsl.a all: $(TARGETS) + @$(HOST_CP) libluagsl.a $(GSH_LIBDIR) libluagsl.a: $(LUAGSL_OBJ_FILES) @echo Archive $@ diff --git a/luajit2/src/Makefile b/luajit2/src/Makefile index 31c500fb..bc760073 100644 --- a/luajit2/src/Makefile +++ b/luajit2/src/Makefile @@ -150,6 +150,8 @@ XCFLAGS= include ../../makeconfig +GSH_LIBDIR = ../../.libs + ifeq ($(strip $(LUA_BUILD)), no) XCFLAGS += -DGSH_SHORT_FSYNTAX -DGSL_SHELL -D_REENTRANT -DPACKAGE_NAME=gsl-shell -DPACKAGE_VERSION=2.3 else @@ -197,6 +199,7 @@ TARGET_DYNCC= $(DYNAMIC_CC) TARGET_LD= $(CROSS)$(CC) TARGET_AR= $(CROSS)ar rcus TARGET_STRIP= $(CROSS)strip +TARGET_COPY= cp TARGET_SONAME= libluajit-$(ABIVER).so.$(MAJVER) TARGET_DYLIBNAME= libluajit-$(ABIVER).$(MAJVER).dylib @@ -570,6 +573,8 @@ E= @echo ############################################################################## default all: $(TARGET_T) + $(E) "Copying luajit $(LUAJIT_A)" + $(Q)$(TARGET_COPY) $(LUAJIT_A) $(GSH_LIBDIR) amalg: @grep "^[+|]" ljamalg.c diff --git a/make-system-detect b/make-system-detect index e1107bd9..e191213e 100644 --- a/make-system-detect +++ b/make-system-detect @@ -20,3 +20,4 @@ else endif HOST_RM= rm -f +HOST_CP= cp
\ No newline at end of file @@ -16,8 +16,15 @@ CP_REL = cp --parents CC = gcc CXX = g++ +COMPILE = $(CC) $(CFLAGS) $(DEFS) $(INCLUDES) +CXXCOMPILE = $(CXX) $(CXXFLAGS) $(DEFS) $(INCLUDES) LINK_EXE = $(CC) $(LDFLAGS) +GSH_LIBDIR= $(GSH_BASE_DIR)/.libs +GSH_DLL_LIBDIR= $(GSH_BASE_DIR) +LUADIR = $(GSH_BASE_DIR)/luajit2 +LUA_CFLAGS = -I$(LUADIR)/src + ifeq ($(HOST_SYS),Windows) INCLUDES += -I/usr/include LDFLAGS += -Wl,--enable-auto-import @@ -56,15 +63,17 @@ LIBS += -lsupc++ ifeq ($(HOST_SYS),Windows) DEFS += -DWIN32 - EXE_EXT = .exe - DLL_EXT = .dll LDFLAGS += -Wl,--export-all-symbols + + GSL_SHELL = gsl-shell.exe + GSL_SHELL_GUI = gsl-shell-gui.exe else - EXE_EXT = - DLL_EXT = .so DEFS += -pthread LIBS += -pthread LDFLAGS += -Wl,-E + + GSL_SHELL = gsl-shell + GSL_SHELL_GUI = gsl-shell-gui endif ifeq ($(strip $(DEBUG)), yes) |