diff options
Diffstat (limited to 'externals/grill/flext/makefile.max-darwin')
-rwxr-xr-x | externals/grill/flext/makefile.max-darwin | 148 |
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 $^)) + + + + + + + + + + |