From bef22b3a3e4bb1256ac2a8a87eadbc4005b8e4e2 Mon Sep 17 00:00:00 2001 From: Georg Holzmann Date: Sun, 7 Jan 2007 23:20:23 +0000 Subject: added pdcontainer and adaptive to the build system svn path=/trunk/; revision=7229 --- externals/Makefile | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 126 insertions(+), 3 deletions(-) (limited to 'externals') diff --git a/externals/Makefile b/externals/Makefile index 1942925d..58675205 100644 --- a/externals/Makefile +++ b/externals/Makefile @@ -60,7 +60,7 @@ ifeq ($(OS_NAME),linux) LDFLAGS += -Wl,-export_dynamic -shared LIBS += -lc DYLIB_LDFLAGS = $(LDFLAGS) - DYLIB_EXTENSION = dll + DYLIB_EXTENSION = so STRIP = strip --strip-unneeded -R .note -R .comment endif ifeq ($(OS_NAME),windows) @@ -78,7 +78,7 @@ ifeq ($(OS_NAME),windows) LIBS += -L$(pd_src)/bin -L$(pd_src)/obj -lpd \ -lwsock32 -lpthreadGC2 -lkernel32 -luser32 -lgdi32 -lregex DYLIB_LDFLAGS = -shared - DYLIB_EXTENSION = so + DYLIB_EXTENSION = dll STRIP = strip --strip-unneeded -R .note -R .comment endif @@ -124,7 +124,7 @@ CXXFLAGS = $(CFLAGS) # # WARNING! this MUST be all on one line because the automatic package # building scripts rely on it being that way. -LIB_TARGETS = boids bsaylor creb cxc cyclone deprecated ekext ext13 flatspace flib freeverb ggee hardware hcs hidio iem_ambi iem_bin_ambi iemlib jasch_lib loaders mapping markex maxlib mjlib motex mrpeach msd oscx pan pddp pdogg pmpd sigpack smlib toxy unauthorized vbap zexy +LIB_TARGETS = boids bsaylor creb cxc cyclone deprecated ekext ext13 flatspace flib freeverb ggee hardware hcs hidio iem_ambi iem_bin_ambi iemlib jasch_lib loaders mapping markex maxlib mjlib motex mrpeach msd oscx pan pddp pdogg pmpd sigpack smlib toxy unauthorized vbap zexy pdcontainer adaptive # this is for libraries that don't compile (yet) on all platforms ifeq ($(OS_NAME),windows) @@ -2239,6 +2239,129 @@ zexy_clean: + +#PDCONTAINER_XML = $(wildcard $(externals_src)/grh/PDContainer/tinyxml/*.cpp) +#PDCONTAINER_SRC := $(wildcard $(externals_src)/grh/PDContainer/src/*.cpp) \ +# $(PDCONTAINER_XML) +#PDCONTAINER_OBJECTS := $(PDCONTAINER_SRC:.cpp=.o) +#PDCONTAINER_LIB_SRC = $(wildcard $(externals_src)/grh/PDContainer/src/H*.cpp) \ +# $(PDCONTAINER_XML) +#PDCONTAINER_LIB = $(PDCONTAINER_BASE_SRC:.cpp=.o) +#PDCONTAINER_TMP := $(wildcard $(externals_src)/grh/PDContainer/src/h_*.cpp) +#PDCONTAINER_TARGETS = $(PDCONTAINER_TMP:.cpp=.$(EXTENSION)) + +#compile_pdcontainer: $(PDCONTAINER_TARGETS) +# #rm -f -- $(PDCONTAINER_OBJECTS) + + +#------------------------------------------------------------------------------# +# PDContainer +PDCONTAINER_NAME = pdcontainer +PDCONTAINER_INCLUDE = -I$(externals_src)/grh/PDContainer + +# shared library libpdc for shared code +LIBPDC_SRC = $(wildcard $(externals_src)/grh/PDContainer/src/H*.cpp) \ + $(wildcard $(externals_src)/grh/PDContainer/tinyxml/*.cpp) +LIBPDC_OBJ = $(LIBPDC_SRC:.cpp=.o) +LIBPDC_TARGET = $(externals_src)/grh/PDContainer/src/libpdc.$(DYLIB_EXTENSION) + +# the pd externals (linked to libpdc) +PDCONTAINER_SRC = $(wildcard $(externals_src)/grh/PDContainer/src/h_*.cpp) +PDCONTAINER_TARGETS = $(PDCONTAINER_SRC:.cpp=.$(EXTENSION)) + + +pdcontainer: $(PDCONTAINER_TARGETS) + +$(PDCONTAINER_TARGETS) : %.$(EXTENSION) : libpdc + $(CXX) $(CXXFLAGS) $(PDCONTAINER_INCLUDE) -o "$*.o" -c "$*.cpp" + $(CXX) $(LDFLAGS) -o $*.$(EXTENSION) "$*.o" $(LIBS) $(LIBPDC_TARGET) + strip --strip-unneeded $*.$(EXTENSION) + chmod 755 $*.$(EXTENSION) + -rm -f -- "$*.o" + +libpdc: $(LIBPDC_OBJ) + $(CXX) $(LDFLAGS) -o $(LIBPDC_TARGET) $(LIBPDC_OBJ) $(LIBS) + strip --strip-unneeded $(LIBPDC_TARGET) + chmod 755 $(LIBPDC_TARGET) + -rm -f -- $(LIBPDC_OBJ) + +$(LIBPDC_OBJ) : %.o : %.cpp + $(CXX) $(CXXFLAGS) $(PDCONTAINER_INCLUDE) -o "$*.o" -c "$*.cpp" + +pdcontainer_install: pdcontainer + install -d $(objectsdir)/$(PDCONTAINER_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(PDCONTAINER_NAME) \ + --author "Georg Holzmann" \ + --description "container objects of the C++ STL for Pd" \ + --license "GPL" \ + --version "" + install -p $(LIBPDC_TARGET) $(PDCONTAINER_TARGETS) $(objectsdir)/$(PDCONTAINER_NAME) + install -d $(helpdir)/$(PDCONTAINER_NAME) + install -p $(externals_src)/grh/PDContainer/help/*.pd \ + $(helpdir)/$(PDCONTAINER_NAME) + install -d $(readmesdir) + install -p $(externals_src)/grh/PDContainer/readme.txt \ + $(readmesdir)/$(PDCONTAINER_NAME).txt + +pdcontainer_clean: + -rm -f -- $(PDCONTAINER_TARGETS) + -rm -f -- $(LIBPDC_TARGETS) + -rm -f -- $(externals_src)/grh/PDContainer/src/*.o + -rm -f -- $(externals_src)/grh/PDContainer/src/*.bak + -rm -f -- $(externals_src)/grh/PDContainer/src/*.*~ + -rm -f -- $(externals_src)/grh/PDContainer/tinyxml/*.o + -rm -f -- $(externals_src)/grh/PDContainer/tinyxml/*.bak + -rm -f -- $(externals_src)/grh/PDContainer/tinyxml/*.*~ + + + +#------------------------------------------------------------------------------# +# adaptive +ADAPTIVE_NAME=adaptive +ADAPTIVE_SRC := $(wildcard $(externals_src)/grh/adaptive/src/*.c) +ADAPTIVE_OBJECTS := $(ADAPTIVE_SRC:.c=.o) +ADAPTIVE_FLAGS := -DADAPTIVE_SINGLE_OBJ +ADAPTIVE_TMP := $(wildcard $(externals_src)/grh/adaptive/src/*lms*.c) +ADAPTIVE_TARGETS := $(ADAPTIVE_TMP:.c=.$(EXTENSION)) + +adaptive: $(ADAPTIVE_TARGETS) + +$(ADAPTIVE_TARGETS) : %.$(EXTENSION) : %.o $(ADAPTIVE_OBJECTS) + $(CC) $(LDFLAGS) -o $*.$(EXTENSION) "$*.o" $(externals_src)/grh/adaptive/src/adaptive.o $(LIBS) + strip --strip-unneeded $*.$(EXTENSION) + chmod 755 $*.$(EXTENSION) + rm -f -- "$*.o" + +$(ADAPTIVE_OBJECTS) : %.o : %.c + $(CC) $(CFLAGS) $(ADAPTIVE_FLAGS) -o "$*.o" -c "$*.c" + +adaptive_install: adaptive + install -d $(objectsdir)/$(ADAPTIVE_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(ADAPTIVE_NAME) \ + --author "Georg Holzmann, Gerda Strobl" \ + --description "library for adaptive systems and filters" \ + --license "GNU GPL" \ + --version "" + install -p $(ADAPTIVE_TARGETS) $(objectsdir)/$(ADAPTIVE_NAME) + install -d $(helpdir)/$(ADAPTIVE_NAME) + install -p $(externals_src)/grh/adaptive/doc/*.pd \ + $(helpdir)/$(ADAPTIVE_NAME) + install -d $(readmesdir) + install -p $(externals_src)/grh/adaptive/readme \ + $(readmesdir)/$(ADAPTIVE_NAME).txt + install -d $(examplesdir)/$(ADAPTIVE_NAME) + install -p $(externals_src)/grh/adaptive/examples/*.pd \ + $(externals_src)/grh/adaptive/examples/*.dat \ + $(examplesdir)/$(ADAPTIVE_NAME) + +adaptive_clean: + -rm -f -- $(ADAPTIVE_TARGETS) + -rm -f -- $(ADAPTIVE_OBJECTS) + -rm -f -- $(externals_src)/grh/adaptive/src/*.bak + -rm -f -- $(externals_src)/grh/adaptive/src/*.*~ + + + #==============================================================================# # # DEVELOPER'S TARGETS -- cgit v1.2.1