# 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 # source files SOURCE=source # includes INCPATH=/I$(MSVCPATH)\include /I$(PDPATH)\src /I$(SOURCE) LDFLAGS=/LIBPATH:$(MSVCPATH)\lib !ifdef SNDOBJ INCPATH=$(INCPATH) /I$(SNDOBJ) !endif !ifdef STK INCPATH=$(INCPATH) /I$(STK) !endif # compiler definitions and flags DEFS=/DFLEXT_SYS=2 $(UFLAGS) CFLAGS=/GX /GD /G6 /arch:SSE OFLAGS=/Ox DFLAGS=/Od /Zi TARGET=pdwin # appendix to lib name !ifdef FLEXT_SHARED DEFS=$(DEFS) /DFLEXT_SHARED /DFLEXT_DLL EXT=dll !ifndef _DEBUG CFLAGS=$(CFLAGS) $(OFLAGS) /MT /LD OBJPATH=l !else CFLAGS=$(CFLAGS) $(DFLAGS) /MTd /LDd OBJPATH=ld !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) !endif !ifdef STK SRCS=$(SRCS) $(SRCS_STK) HDRS=$(HDRS) $(HDRS_STK) !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)\$@ $< $(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 $(PDPATH)\bin\pd.lib $(OBJS) @cd ..\.. !ifdef INSTDIR @-if not exist $(OBJPATH) mkdir $(INSTDIR) copy $(OUTPATH)\$(NAME)-$(TARGET).dll $(INSTDIR) > nul copy $(SOURCE)\*.h $(INSTDIR) > nul !endif