# flext - C++ layer for Max/MSP and pd (pure data) externals # Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net) # # Makefile for gcc @ linux # # usage: # to build run "make -f makefile.pd-linux" # to install (as root), do "make -f makefile.pd-linux install" # CONFIG=config-pd-linux.txt include ${CONFIG} # compiler+linker stuff INCLUDES=${PDPATH} # general compiler flags FLAGS=-DFLEXT_SYS=2 ${UFLAGS} # compiler flags for optimized build CFLAGS=-O6 # compiler flags for debug build CFLAGS_D=-g # additional flags for threading CFLAGS_T=-DFLEXT_THREADS # libraries LIBS= # ---------------------------------------------- # 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.pd-linux 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 %,$(SRCDIR)/%,$(SRCS)): $(patsubst %,$(SRCDIR)/%,$(HDRS)) $(patsubst %,$(SRCDIR)/%,$(IHDRS)) $(MAKEFILE) $(CONFIG) touch $@ $(TARGDIR)/%.o : $(SRCDIR)/%.cpp $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@ $(TARGDIR)/%.do : $(SRCDIR)/%.cpp $(CXX) -c $(CFLAGS_D) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@ $(TARGDIR)/%.to : $(SRCDIR)/%.cpp $(CXX) -c $(CFLAGS) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@ $(TARGDIR)/%.tdo : $(SRCDIR)/%.cpp $(CXX) -c $(CFLAGS_D) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@ $(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS)) ar rc $@ $^ chmod 755 $@ $(TARGET_D) : $(patsubst %.cpp,$(TARGDIR)/%.do,$(SRCS)) ar rc $@ $^ chmod 755 $@ $(TARGET_T) : $(patsubst %.cpp,$(TARGDIR)/%.to,$(SRCS)) ar rc $@ $^ chmod 755 $@ $(TARGET_TD) : $(patsubst %.cpp,$(TARGDIR)/%.tdo,$(SRCS)) ar rc $@ $^ chmod 755 $@ .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 %,$(SRCDIR)/%,$(HDRS)) cp $^ $(INSTDIR) chmod 755 $(patsubst %,$(INSTDIR)/%,$(notdir $^)) chown root.users $(patsubst %,$(INSTDIR)/%,$(notdir $^))