aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/makefile.max-darwin
diff options
context:
space:
mode:
Diffstat (limited to 'externals/grill/flext/makefile.max-darwin')
-rwxr-xr-xexternals/grill/flext/makefile.max-darwin148
1 files changed, 148 insertions, 0 deletions
diff --git a/externals/grill/flext/makefile.max-darwin b/externals/grill/flext/makefile.max-darwin
new file mode 100755
index 00000000..a2fee930
--- /dev/null
+++ b/externals/grill/flext/makefile.max-darwin
@@ -0,0 +1,148 @@
+# flext - C++ layer for Max/MSP and pd (pure data) externals
+# Copyright (c) 2001-2004 Thomas Grill (xovo@gmx.net)
+#
+# Makefile for gcc @ darwin
+#
+# usage:
+# to build run "make -f makefile.max-darwin"
+# to install (as root), do "make -f makefile.max-darwin install"
+#
+
+CONFIG=config-max-darwin.txt
+
+include ${CONFIG}
+
+# compiler+linker stuff
+# the MaxMSP SDK path is directly inserted with the FLAGS below because it normally contains spaces...
+INCLUDES=
+FLAGS=-I${MAXSDKPATH}/max-includes -I${MAXSDKPATH}/msp-includes -DFLEXT_SYS=1 ${UFLAGS}
+
+# compiler flags for optimized build
+CFLAGS=-O2
+
+# compiler flags for debug build
+CFLAGS_D=-g
+
+# additional flags for threading
+CFLAGS_T=-DFLEXT_THREADS
+
+# additional flags for shared library
+CFLAGS_S=-DFLEXT_SHARED -DFLEXT_EXPORTS
+
+# flags for shared linking
+LSHFLAGS= -dylib -dynamic -flat_namespace -undefined suppress
+
+# frameworks
+FRAMEWORKS=MaxAPI MaxAudioAPI
+
+
+# ----------------------------------------------
+# the rest can stay untouched
+# ----------------------------------------------
+
+NAME=flext
+
+SRCDIR=./source
+
+# all the source files from the package
+include make-files.txt
+
+ifdef SNDOBJ
+INCLUDES+=$(SNDOBJ)
+SRCS+=$(SRCS_SNDOBJ)
+HDRS+=$(HDRS_SNDOBJ)
+endif
+
+ifdef STK
+INCLUDES+=$(STK)
+SRCS+=$(SRCS_STK)
+HDRS+=$(HDRS_STK)
+endif
+
+
+MAKEFILE=makefile.max-darwin
+
+TARGET=$(TARGDIR)/lib$(NAME).a
+TARGET_D=$(TARGDIR)/lib$(NAME)_d.a
+TARGET_T=$(TARGDIR)/lib$(NAME)_t.a
+TARGET_TD=$(TARGDIR)/lib$(NAME)_td.a
+TARGET_S=$(TARGDIR)/lib$(NAME).dylib
+TARGET_SD=$(TARGDIR)/lib$(NAME)_d.dylib
+
+
+all: $(TARGDIR) $(TARGET) $(TARGET_D) $(TARGET_T) $(TARGET_TD) # $(TARGET_S) $(TARGET_SD)
+
+$(TARGDIR):
+ mkdir $(TARGDIR)
+
+$(patsubst %,$(SRCDIR)/%,$(SRCS)): $(patsubst %,$(SRCDIR)/%,$(HDRS)) $(patsubst %,$(SRCDIR)/%,$(IHDRS)) $(MAKEFILE) $(CONFIG)
+ touch $@
+
+$(TARGDIR)/%.o : $(SRCDIR)/%.cpp
+ $(CXX) -c -dynamic $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $(patsubst %,-F%,$(FRAMEWORKS)) $< -o $@
+
+$(TARGDIR)/%.do : $(SRCDIR)/%.cpp
+ $(CXX) -c -dynamic $(CFLAGS_D) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $(patsubst %,-F%,$(FRAMEWORKS)) $< -o $@
+
+$(TARGDIR)/%.to : $(SRCDIR)/%.cpp
+ $(CXX) -c -dynamic $(CFLAGS) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $(patsubst %,-F%,$(FRAMEWORKS)) $< -o $@
+
+$(TARGDIR)/%.tdo : $(SRCDIR)/%.cpp
+ $(CXX) -c -dynamic $(CFLAGS_D) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $(patsubst %,-F%,$(FRAMEWORKS)) $< -o $@
+
+$(TARGDIR)/%.so : $(SRCDIR)/%.cpp
+ $(CXX) -c -dynamic $(CFLAGS) $(CFLAGS_T) $(CFLAGS_S) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $(patsubst %,-F%,$(FRAMEWORKS)) $< -o $@
+
+$(TARGDIR)/%.sdo : $(SRCDIR)/%.cpp
+ $(CXX) -c -dynamic $(CFLAGS_D) $(CFLAGS_T) $(CFLAGS_S) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $(patsubst %,-F%,$(FRAMEWORKS)) $< -o $@
+
+$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS))
+ libtool -static -o $@ $^
+
+$(TARGET_D) : $(patsubst %.cpp,$(TARGDIR)/%.do,$(SRCS))
+ libtool -static -o $@ $^
+
+$(TARGET_T) : $(patsubst %.cpp,$(TARGDIR)/%.to,$(SRCS))
+ libtool -static -o $@ $^
+
+$(TARGET_TD) : $(patsubst %.cpp,$(TARGDIR)/%.tdo,$(SRCS))
+ libtool -static -o $@ $^
+
+$(TARGET_S) : $(patsubst %.cpp,$(TARGDIR)/%.so,$(SRCS))
+ ld $(LSHFLAGS) -o $@ $^ -ldylib1.o -lgcc -lstdc++ $(patsubst %,-framework %,$(FRAMEWORKS))
+
+$(TARGET_SD) : $(patsubst %.cpp,$(TARGDIR)/%.sdo,$(SRCS))
+ ld $(LSHFLAGS) -o $@ $^ -ldylib1.o -lgcc -lstdc++ $(patsubst %,-framework %,$(FRAMEWORKS))
+
+.PHONY: clean install
+
+clean:
+ rm -f $(TARGDIR)/*.{o,do,to,tdo,so,sdo} $(TARGET) $(TARGET_D) $(TARGET_T) $(TARGET_TD) $(TARGET_S) $(TARGET_SD)
+
+ifdef INSTDIR
+$(INSTDIR):
+ -mkdir $(INSTDIR)
+
+install:: $(INSTDIR)
+endif
+
+install:: $(TARGET) $(TARGET_D) $(TARGET_T) $(TARGET_TD) $(TARGET_S) $(TARGET_SD) $(patsubst %,$(SRCDIR)/%,$(HDRS))
+ cp $^ $(INSTDIR)
+ mv $(INSTDIR)/lib*.dylib /usr/local/lib
+ ranlib $(INSTDIR)/*.a # have to rerun ranlib at install dir ?!
+
+ #make compatibility links for old-style naming
+ for i in $(foreach f,$(notdir $(filter %.a,$^)),$(patsubst lib%.a,%,$(f))); do rm -f $(INSTDIR)/$$i.a && ln -sf lib$$i.a $(INSTDIR)/$$i.a; done
+
+# chmod 755 $(patsubst %,$(INSTDIR)/%,$(notdir $^))
+# chgrp admin $(patsubst %,$(INSTDIR)/%,$(notdir $^))
+
+
+
+
+
+
+
+
+
+