# flext - C++ layer for Max/MSP and pd (pure data) externals # Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net) # # ----- for internal use ---------------------- # !include config-pd-msvc.txt NAME=flext # source files SOURCE=source # includes INCPATH=/I$(PDPATH)\src /I$(SOURCE) !ifdef MSVCPATH INCPATH=$(INCPATH) /I$(MSVCPATH)\include !endif !ifdef PTHREADS INCPATH=$(INCPATH) /I$(PTHREADS) !endif LDFLAGS=/LIBPATH:$(MSVCPATH)\lib # compiler definitions and flags DEFS=/DFLEXT_SYS=2 $(UFLAGS) CFLAGS=/GX /GD OFLAGS=/Ox DFLAGS=/Od /Zi TARGET=pdwin # appendix to lib name !ifdef FLEXT_SHARED DEFS=$(DEFS) /DFLEXT_SHARED /DFLEXT_EXPORTS EXT=dll !ifndef _DEBUG CFLAGS=$(CFLAGS) $(OFLAGS) /MT /LD OBJPATH=l !else CFLAGS=$(CFLAGS) $(DFLAGS) /MTd /LDd OBJPATH=ld !endif LIBS=$(PDPATH)\bin\pd.lib !ifdef PTHREADS LIBS=$(LIBS) $(PTHREADS)\pthreadVC.lib !else LIBS=$(LIBS) $(PDPATH)\bin\pthreadVC.lib !endif !else EXT=lib !ifdef FLEXT_THREADS DEFS=$(DEFS) /DFLEXT_THREADS !ifndef _DEBUG CFLAGS=$(CFLAGS) $(OFLAGS) /MT OBJPATH=t !else CFLAGS=$(CFLAGS) $(DFLAGS) /MTd OBJPATH=td !endif !else !ifndef _DEBUG CFLAGS=$(CFLAGS) $(OFLAGS) /ML OBJPATH=s !else CFLAGS=$(CFLAGS) $(DFLAGS) /MLd OBJPATH=sd !endif !endif # FLEXT_THREADS !endif # FLEXT_SHARED # the rest can stay untouched # ---------------------------------------------- # all the source files from the package !include make-files.txt !ifdef SNDOBJ SRCS=$(SRCS) $(SRCS_SNDOBJ) HDRS=$(HDRS) $(HDRS_SNDOBJ) INCPATH=$(INCPATH) /I$(SNDOBJ)\include LIBS=$(LIBS) $(SNDOBJ)\lib\sndobj.lib !endif !ifdef STK SRCS=$(SRCS) $(SRCS_STK) HDRS=$(HDRS) $(HDRS_STK) INCPATH=$(INCPATH) /I$(STK)\include LIBS=$(LIBS) $(STK)\lib\stk.lib !endif #default target all: $(OUTPATH)\$(NAME)-$(TARGET).$(EXT) # remove build clean: -cd $(OUTPATH) -del /s /q $(OBJPATH) > nul -rmdir $(OBJPATH) -cd .. -del /q $(OUTPATH)\$(NAME)-$(TARGET).$(EXT) > nul -rmdir $(OUTPATH) # ----------------------------------------------- OBJS= $(SRCS:.cpp=.obj) {$(SOURCE)\}.cpp.obj: @-if not exist $(OUTPATH) mkdir $(OUTPATH) @cd $(OUTPATH) @-if not exist $(OBJPATH) mkdir $(OBJPATH) @cd .. cl /c $(CFLAGS) $(DEFS) $(INCPATH) /Fo$(OUTPATH)\$(OBJPATH)\$(@F) $< $(OUTPATH)\$(NAME)-$(TARGET).lib: $(OBJS) @cd $(OUTPATH)\$(OBJPATH) lib /OUT:..\$(NAME)-$(TARGET).lib $(OBJS) @cd ..\.. !ifdef INSTDIR @-if not exist $(OBJPATH) mkdir $(INSTDIR) copy $(OUTPATH)\$(NAME)-$(TARGET).lib $(INSTDIR) > nul copy $(SOURCE)\*.h $(INSTDIR) > nul !endif $(OUTPATH)\$(NAME)-$(TARGET).dll: $(OBJS) @cd $(OUTPATH)\$(OBJPATH) link /DLL /NOLOGO $(LDFLAGS) /OUT:..\$(NAME)-$(TARGET).dll $(LIBS) $(OBJS) @cd ..\.. !ifdef INSTDIR @-if not exist $(OBJPATH) mkdir $(INSTDIR) copy $(OUTPATH)\$(NAME)-$(TARGET).dll $(INSTDIR) > nul copy $(SOURCE)\*.h $(INSTDIR) > nul !endif