gsl-shell.git - gsl-shell

index : gsl-shell.git
gsl-shell
summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrancesco Abbate <francesco.abbate@gmail.com>2013年08月24日 17:30:25 +0200
committerFrancesco Abbate <francesco.abbate@gmail.com>2013年08月24日 17:30:25 +0200
commitf10ae615a68d4e217de77a9ac55b4e07baa78335 (patch)
treef4337fb2601e0fcebbbcf350ce883dc0739e6a63
parent26a6016d996f22d68bb161b1d8d2df1c0fee34de (diff)
downloadgsl-shell-f10ae615a68d4e217de77a9ac55b4e07baa78335.tar.gz
Fix the subdirectories dependencies in Makefile system
Diffstat
-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
9 files changed, 80 insertions, 71 deletions
diff --git a/Makefile b/Makefile
index 06ea3a30..53321e47 100644
--- a/Makefile
+++ b/Makefile
@@ -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
diff --git a/makedefs b/makedefs
index d61b4499..ae2b8f74 100644
--- a/makedefs
+++ b/makedefs
@@ -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)
generated by cgit v1.2.3 (git 2.25.1) at 2025年09月18日 07:10:12 +0000

AltStyle によって変換されたページ (->オリジナル) /