# flext - C++ layer for Max/MSP and pd (pure data) externals # Copyright (c) 2001,2002 Thomas Grill (xovo@gmx.net) # # Makefile for gcc @ darwin # # usage: # to build run "make -f makefile.pd-darwin" # to install (as root), do "make -f makefile.pd-darwin install" # CONFIG=config-pd-darwin.txt include $(CONFIG) # compiler+linker stuff INCLUDES=$(PDPATH) $(SNDOBJ) FLAGS=-DPD -Dunix -DMACOSX -Wno-unused -Wno-parentheses -Wno-switch -Wstrict-prototypes # -maltivec CFLAGS=-O6 CFLAGS_D=-g -Wshadow CFLAGS_T=-DFLEXT_THREADS LIBS= # ---------------------------------------------- # the rest can stay untouched # ---------------------------------------------- NAME=flext # all the source files from the package include make-files.txt ifdef SNDOBJ _SRCS=$(SRCS) $(SRCS_SNDOBJ) _HDRS=$(HDRS) $(HDRS_SNDOBJ) else _SRCS=$(SRCS) _HDRS=$(HDRS) endif MAKEFILE=makefile.pd-darwin TARGET=$(TARGDIR)/$(NAME).a TARGET_D=$(TARGDIR)/$(NAME)_d.a TARGET_T=$(TARGDIR)/$(NAME)_t.a TARGET_TD=$(TARGDIR)/$(NAME)_td.a all: $(TARGDIR) $(TARGET) $(TARGET_D) $(TARGET_T) $(TARGET_TD) $(TARGDIR): mkdir $(TARGDIR) $(patsubst %,source/%,$(_SRCS)): $(patsubst %,source/%,$(HDRS)) $(patsubst %,source/%,$(IHDRS)) $(MAKEFILE) $(CONFIG) touch $@ $(TARGDIR)/%.o : source/%.cpp $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@ $(TARGDIR)/%.do : source/%.cpp $(CXX) -c $(CFLAGS_D) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@ $(TARGDIR)/%.to : source/%.cpp $(CXX) -c $(CFLAGS) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@ $(TARGDIR)/%.tdo : source/%.cpp $(CXX) -c $(CFLAGS_D) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -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 $@ $^ .PHONY: clean install clean: rm -f $(TARGDIR)/*.{o,do,to,tdo} $(TARGET) $(TARGET_D) $(TARGET_T) $(TARGET_TD) ifdef INSTDIR $(INSTDIR): -mkdir $(INSTDIR) install:: $(INSTDIR) endif install:: $(TARGET) $(TARGET_D) $(TARGET_T) $(TARGET_TD) $(patsubst %,source/%,$(_HDRS)) cp $^ $(INSTDIR) ranlib $(INSTDIR)/*.a # have to rerun ranlib at install dir ?! # chmod 755 $(patsubst %,$(INSTDIR)/%,$(notdir $^)) # chgrp admin $(patsubst %,$(INSTDIR)/%,$(notdir $^))