From 12dd4dd914b26ef48f6d6b7f49077d62b63be217 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Thu, 13 Jan 2005 04:59:11 +0000 Subject: various fixes to build system fixes for build system better templates, some minor changes build system: added profiler mode, more fixes added ICC/linux support small optimizations svn path=/trunk/; revision=2498 --- externals/grill/flext/build.txt | 373 +++++++++++---------- externals/grill/flext/build/gnumake-lnx-gcc.inc | 34 +- externals/grill/flext/build/gnumake-lnx-icc.inc | 17 + externals/grill/flext/buildsys/build-icc.sh | 5 + externals/grill/flext/buildsys/gnumake.mak | 21 ++ .../grill/flext/buildsys/lnx/gnumake-gcc-ext.inc | 4 + .../grill/flext/buildsys/lnx/gnumake-gcc-flext.inc | 4 + externals/grill/flext/buildsys/lnx/gnumake-gcc.inc | 5 +- .../grill/flext/buildsys/lnx/gnumake-icc-ext.inc | 46 +++ .../grill/flext/buildsys/lnx/gnumake-icc-flext.inc | 56 ++++ externals/grill/flext/buildsys/lnx/gnumake-icc.inc | 31 ++ .../grill/flext/buildsys/lnx/pd/config-gcc.def | 3 +- .../grill/flext/buildsys/lnx/pd/config-icc.def | 34 ++ .../flext/buildsys/lnx/pd/gnumake-icc-ext.inc | 1 + .../flext/buildsys/lnx/pd/gnumake-icc-flext.inc | 6 + .../grill/flext/buildsys/lnx/pd/gnumake-icc.inc | 4 + .../grill/flext/buildsys/mac/pd/config-gcc.def | 1 + externals/grill/flext/buildsys/win/bmake-bcc.inc | 8 +- .../grill/flext/buildsys/win/gnumake-cygwin.inc | 4 +- .../grill/flext/buildsys/win/gnumake-mingw-ext.inc | 22 +- .../flext/buildsys/win/gnumake-mingw-flext.inc | 29 +- .../grill/flext/buildsys/win/gnumake-mingw.inc | 4 +- .../grill/flext/buildsys/win/max/config-mingw.def | 2 +- .../grill/flext/buildsys/win/pd/config-bcc.def | 3 +- .../grill/flext/buildsys/win/pd/config-cygwin.def | 7 +- .../grill/flext/buildsys/win/pd/config-mingw.def | 5 +- .../grill/flext/buildsys/win/pd/config-msvc.def | 3 +- 27 files changed, 491 insertions(+), 241 deletions(-) create mode 100644 externals/grill/flext/build/gnumake-lnx-icc.inc create mode 100644 externals/grill/flext/buildsys/build-icc.sh create mode 100644 externals/grill/flext/buildsys/lnx/gnumake-icc-ext.inc create mode 100644 externals/grill/flext/buildsys/lnx/gnumake-icc-flext.inc create mode 100644 externals/grill/flext/buildsys/lnx/gnumake-icc.inc create mode 100644 externals/grill/flext/buildsys/lnx/pd/config-icc.def create mode 100644 externals/grill/flext/buildsys/lnx/pd/gnumake-icc-ext.inc create mode 100644 externals/grill/flext/buildsys/lnx/pd/gnumake-icc-flext.inc create mode 100644 externals/grill/flext/buildsys/lnx/pd/gnumake-icc.inc diff --git a/externals/grill/flext/build.txt b/externals/grill/flext/build.txt index e1c2b1a4..56762948 100644 --- a/externals/grill/flext/build.txt +++ b/externals/grill/flext/build.txt @@ -1,174 +1,199 @@ -flext - C++ layer for Max/MSP and pd (pure data) externals - -Copyright (c) 2001-2005 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. - ----------------------------------------------------------------------------- - -This document consists of the following parts: - -1) Using the flext build system -1.1) Building flext -1.2) Building externals - -2) Using autoconf - -3) Other ways to compile flext and flext-based externals - ----------------------------------------------------------------------------- - -1) Using the flext build system -=============================== - -flext provides a universal build system which supports - -- various operating systems - Windows (win) - Linux (lnx) - MacOSX (mac) -- various real-time systems - Pure Data (pd) - Max/MSP (max) -- various make programs - GNU make (gnumake) - Microsoft nmake (nmake) - Borland make (bmake) -- various compilers - Microsoft Visual C/C++ 6.0 or .NET 2002/2003 (msvc) - GNU gcc 2.95 and above (gcc,cygwin,mingw) - Borland bcc32 (bcc) - -Useful combinations of the above are - -win pd msvc, using nmake -win pd cygwin, using gnumake -win pd mingw, using gnumake -win max msvc, using nmake -win pd bcc, using bmake -mac pd gcc, using gnumake -mac max gcc, using gnumake - Mach-O externals only (Max 4.5 upwards) - - -There are two central scripts in the flext folder which invoke the building process: -- build.sh for bash shells (Linux, MacOSX, cygwin) -- build.bat for the Windows command prompt - -A project needs to provide some information in order to be built properly. -By default, this resides in a file called package.txt - - -Please note, that the build system is shell-oriented, which means, that you'll have -to launch a command prompt (cmd.exe under Windows) and probably also set some -environment variables for your development system (e.g. run vcvars32.bat for Microsoft Visual Studio) - -By invoking one of the build scripts (e.g. with "bash build.sh" under unix, -or just "build" unter Windows) you'll get some lines of help. -Operating System, real-time system and compiler need to be provided as arguments. - - -See buildsys/readme.txt for developer-centered information. - - -1.1) Building flext -=================== - -Flext can build itself using the build system. -From the flext main directory, run the build script - -e.g. under Windows - build win pd msvc -or under unix with - bash build.sh lnx pd gcc - -When you run it for the first time, one or more configuration files will be created -from templates - you will get a message on the console. -You should edit the files to adapt it to your system. - -Then install flext with (under Windows) - build win pd msvc install -or (under unix) - bash build.sh lnx pd gcc install - - -1.2) Building externals -======================= - -The flext build system can be used to compile flext-based externals or also -native PD and Max/MSP externals, provided there is a package.txt file in the project folder. - -In the shell, change to the project folder. -Then, simply run the flext build script, - -e.g. under Windows - ..\flext\build win pd msvc -Then install your newly built external with - ..\flext\build win pd msvc install - -or under unix with - bash ../flext/build.sh lnx pd gcc -Then install your external with - bash ../flext/build.sh lnx pd gcc install - - ----------------------------------------------------------------------------- - -2) Using autoconf -================= - -Thanks to Tim Blechmann, flext can also be built using autoconf. -This only works under unix shells. - -When starting from a fresh cvs-based copy of flext first run -./bootstrap.sh - -then you can run -./configure --help -to get a page of options. - -You need to pass the path to the PD source files to the ./configure script, e.g. with -./configure --with-sysdir=/usr/local/src/pd/src - -Then build flext with -make -and install it with -su -c "make install" - ----------------------------------------------------------------------------- - -3) Other ways to compile flext and flext-based externals -======================================================== - -- Windows - Microsoft Visual Studio projects (.vcproj files) - - Please have a look at the projects delivered with flext and flext-based externals. - -- MacOSX - Apple Xcode projects (.xcode bundles) - - Please have a look at the projects delivered with flext and flext-based externals. - - Xcode projects often use some Source Trees (definable in the Xcode Preferences). - - Flext - the flext main folder - - PD - the PD installation - - Max SDK - the Max SDK (path ending with "c74support") - - Max Common - Max common files (normally /Library/Application\ Support/Cycling\ \'74 ) - -- MacOSX - Metrowerks Codewarrior (.mcp files) - - You should have the following "Source Trees" (CW preferences, not project specific!) defined: - "OS X Volume" - Pointing to your OSX boot drive - "flext" - Pointing to the flext main directory - "Cycling74 OSX" - Pointing to the SDK for Max/MSP - the path should end with /c74support - - With your project using flext use the prefix file "flcwmax-x.h" or, - alternatively "flcwmax-x-thr.h" for threading support. - -- MacOS9 - Metrowerks Codewarrior (.mcp files) - - You should have the following "Source Trees" (CW preferences, not project specific!) defined: - "flext" - Pointing to the flext main directory - "Cycling74" - Pointing to the Cycling 74 SDK - "MP SDK" - Pointing to the Multiprocessing SDK (for threading support) - - With your project using flext use the prefix file "flcwmax.h" or, - alternatively "flcwmax-thr.h" for threading support. +flext - C++ layer for Max/MSP and pd (pure data) externals + +Copyright (c) 2001-2005 Thomas Grill (gr@grrrr.org) +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "license.txt," in this distribution. + +---------------------------------------------------------------------------- + +This document consists of the following parts: + +1) Using the flext build system +1.1) Building flext +1.2) Building externals +1.3) Tested configurations + +2) Using autoconf + +3) Other ways to compile flext and flext-based externals + +---------------------------------------------------------------------------- + +1) Using the flext build system +=============================== + +flext provides a universal build system which supports + +- various operating systems + Windows (win) + Linux (lnx) + MacOSX (mac) +- various real-time systems + Pure Data (pd) + Max/MSP (max) +- various make programs + GNU make (gnumake) + Microsoft nmake (nmake) + Borland make (bmake) +- various compilers + Microsoft Visual C/C++ 6.0 or .NET 2002/2003 (msvc) + GNU gcc 2.95 and above (gcc,cygwin,mingw) + Borland bcc32 (bcc) + +Useful combinations of the above are + +win pd msvc, using nmake +win pd cygwin, using gnumake +win pd mingw, using gnumake +win max msvc, using nmake +win pd bcc, using bmake +mac pd gcc, using gnumake +mac max gcc, using gnumake - Mach-O externals only (Max 4.5 upwards) + + +There are two central scripts in the flext folder which invoke the building process: +- build.sh for bash shells (Linux, MacOSX, cygwin) +- build.bat for the Windows command prompt + +A project needs to provide some information in order to be built properly. +By default, this resides in a file called package.txt + + +Please note, that the build system is shell-oriented, which means, that you'll have +to launch a command prompt (cmd.exe under Windows) and probably also set some +environment variables for your development system (e.g. run vcvars32.bat for Microsoft Visual Studio) + +By invoking one of the build scripts (e.g. with "bash build.sh" under unix, +or just "build" unter Windows) you'll get some lines of help. +Operating System, real-time system and compiler need to be provided as arguments. + + +See buildsys/readme.txt for developer-centered information. + + + +1.1) Building flext +=================== + +Flext can build itself using the build system. +From the flext main directory, run the build script + +e.g. under Windows + build win pd msvc +or under unix with + bash build.sh lnx pd gcc + +When you run it for the first time, one or more configuration files will be created +from templates - you will get a message on the console. +You should edit the files to adapt it to your system. + +Then install flext with (under Windows) + build win pd msvc install +or (under unix) + bash build.sh lnx pd gcc install + + +1.2) Building externals +======================= + +The flext build system can be used to compile flext-based externals or also +native PD and Max/MSP externals, provided there is a package.txt file in the project folder. + +In the shell, change to the project folder. +Then, simply run the flext build script, + +e.g. under Windows + ..\flext\build win pd msvc +Then install your newly built external with + ..\flext\build win pd msvc install +You can clean up the intermediate build folders with + ..\flext\build win pd msvc clean + +or under unix with + bash ../flext/build.sh lnx pd gcc +Then install your external with + bash ../flext/build.sh lnx pd gcc install +You can clean up the intermediate build folders with + bash ../flext/build.sh lnx pd gcc clean + + +1.3) Building externals +======================= + +Both flext and flext-based externals have been successfully built with the +following combination of platform-system-compiler, build type. +A missing combination does not necessarily mean that it won't work. + +win-pd-msvc, single/multi/shared +win-pd-bcc, single/multi/shared +win-pd-mingw, single/multi/shared +win-pd-cygwin, +win-max-msvc, single/multi/shared + + +mac-pd-gcc, single/multi/shared +mac-max-gcc, single/multi/shared + +lnx-pd-gcc, single/multi/shared + +---------------------------------------------------------------------------- + +2) Using autoconf +================= + +Thanks to Tim Blechmann, flext can also be built using autoconf. +This only works under unix shells. + +When starting from a fresh cvs-based copy of flext first run +./bootstrap.sh + +then you can run +./configure --help +to get a page of options. + +You need to pass the path to the PD source files to the ./configure script, e.g. with +./configure --with-sysdir=/usr/local/src/pd/src + +Then build flext with +make +and install it with +su -c "make install" + +---------------------------------------------------------------------------- + +3) Other ways to compile flext and flext-based externals +======================================================== + +- Windows - Microsoft Visual Studio projects (.vcproj files) + + Please have a look at the projects delivered with flext and flext-based externals. + +- MacOSX - Apple Xcode projects (.xcode bundles) + + Please have a look at the projects delivered with flext and flext-based externals. + + Xcode projects often use some Source Trees (definable in the Xcode Preferences). + - Flext - the flext main folder + - PD - the PD installation + - Max SDK - the Max SDK (path ending with "c74support") + - Max Common - Max common files (normally /Library/Application\ Support/Cycling\ \'74 ) + +- MacOSX - Metrowerks Codewarrior (.mcp files) + + You should have the following "Source Trees" (CW preferences, not project specific!) defined: + "OS X Volume" - Pointing to your OSX boot drive + "flext" - Pointing to the flext main directory + "Cycling74 OSX" - Pointing to the SDK for Max/MSP - the path should end with /c74support + + With your project using flext use the prefix file "flcwmax-x.h" or, + alternatively "flcwmax-x-thr.h" for threading support. + +- MacOS9 - Metrowerks Codewarrior (.mcp files) + + You should have the following "Source Trees" (CW preferences, not project specific!) defined: + "flext" - Pointing to the flext main directory + "Cycling74" - Pointing to the Cycling 74 SDK + "MP SDK" - Pointing to the Multiprocessing SDK (for threading support) + + With your project using flext use the prefix file "flcwmax.h" or, + alternatively "flcwmax-thr.h" for threading support. diff --git a/externals/grill/flext/build/gnumake-lnx-gcc.inc b/externals/grill/flext/build/gnumake-lnx-gcc.inc index 9cd5ac8f..1eb1ce77 100644 --- a/externals/grill/flext/build/gnumake-lnx-gcc.inc +++ b/externals/grill/flext/build/gnumake-lnx-gcc.inc @@ -1,17 +1,17 @@ -ifdef SIMD -DEFS += -DFLEXT_USE_SIMD -endif - -ifdef SNDOBJ -SRCS+=$(SRCS_SNDOBJ) -HDRS+=$(HDRS_SNDOBJ) -INCPATH+=-I$(SNDOBJ) -LIBS+=-lsndobj -endif - -ifdef STK -SRCS+=$(SRCS_STK) -HDRS+=$(HDRS_STK) -INCPATH+=-I$(STK) -LIBS+=-lstk -endif +ifdef SIMD +DEFS += -DFLEXT_USE_SIMD +endif + +ifdef SNDOBJ +SRCS+=$(SRCS_SNDOBJ) +HDRS+=$(HDRS_SNDOBJ) +INCPATH+=-I$(SNDOBJ) +LIBS+=-lsndobj +endif + +ifdef STK +SRCS+=$(SRCS_STK) +HDRS+=$(HDRS_STK) +INCPATH+=-I$(STK) +LIBS+=-lstk +endif diff --git a/externals/grill/flext/build/gnumake-lnx-icc.inc b/externals/grill/flext/build/gnumake-lnx-icc.inc new file mode 100644 index 00000000..1eb1ce77 --- /dev/null +++ b/externals/grill/flext/build/gnumake-lnx-icc.inc @@ -0,0 +1,17 @@ +ifdef SIMD +DEFS += -DFLEXT_USE_SIMD +endif + +ifdef SNDOBJ +SRCS+=$(SRCS_SNDOBJ) +HDRS+=$(HDRS_SNDOBJ) +INCPATH+=-I$(SNDOBJ) +LIBS+=-lsndobj +endif + +ifdef STK +SRCS+=$(SRCS_STK) +HDRS+=$(HDRS_STK) +INCPATH+=-I$(STK) +LIBS+=-lstk +endif diff --git a/externals/grill/flext/buildsys/build-icc.sh b/externals/grill/flext/buildsys/build-icc.sh new file mode 100644 index 00000000..d110da66 --- /dev/null +++ b/externals/grill/flext/buildsys/build-icc.sh @@ -0,0 +1,5 @@ +#! /bin/bash + +build=${0%/*}/ + +make -f ${build}gnumake.mak PLATFORM=$1 RTSYS=$2 COMPILER=icc BUILDPATH=${build} $3 $4 $5 $6 $7 $8 $9 diff --git a/externals/grill/flext/buildsys/gnumake.mak b/externals/grill/flext/buildsys/gnumake.mak index 4f9ca055..85559e13 100644 --- a/externals/grill/flext/buildsys/gnumake.mak +++ b/externals/grill/flext/buildsys/gnumake.mak @@ -84,22 +84,38 @@ include $(BUILDPATH)targets-$(BUILDCLASS).inc .PRECIOUS: $(SYSCONFIG) $(USRCONFIG) $(SYSCONFIG): $(SYSDEFAULT) +ifeq ($(COMPILER),mingw) + @copy $(subst /,\,$<) $(subst /,\,$@) +else @cp $< $@ +endif @echo ------------------------------------------------------------------------- @echo A default system configuration file has been created. @echo Please edit $(SYSCONFIG) @echo to match your platform, then start again. @echo ------------------------------------------------------------------------- +ifeq ($(COMPILER),mingw) + @exit 1 +else @false +endif ifdef BUILDDIR $(USRCONFIG): $(USRDEFAULT) +ifeq ($(COMPILER),mingw) + @copy $(subst /,\,$<) $(subst /,\,$@) +else @cp $< $@ +endif @echo ------------------------------------------------------------------------- @echo A default package configuration file has been created. @echo Please edit $(USRCONFIG), then start again. @echo ------------------------------------------------------------------------- +ifeq ($(COMPILER),mingw) + @exit 1 +else @false +endif $(USRDEFAULT) $(USRMAKE): @echo ------------------------------------------------------------------------- @@ -109,5 +125,10 @@ $(USRDEFAULT) $(USRMAKE): @echo and @echo $(USRMAKE) @echo ------------------------------------------------------------------------- +ifeq ($(COMPILER),mingw) + @exit 1 +else @false endif + +endif diff --git a/externals/grill/flext/buildsys/lnx/gnumake-gcc-ext.inc b/externals/grill/flext/buildsys/lnx/gnumake-gcc-ext.inc index 1e2d61d3..22314356 100644 --- a/externals/grill/flext/buildsys/lnx/gnumake-gcc-ext.inc +++ b/externals/grill/flext/buildsys/lnx/gnumake-gcc-ext.inc @@ -26,7 +26,11 @@ $(TARGET):: $(TARGETPATH) $(TARGET):: $(COBJS) $(CPPOBJS) $(CXX) $(LDFLAGS) $(LIBPATH) -o $@ $(COBJS) $(CPPOBJS) $(LIBS) chmod 755 $@ +ifndef DEBUG +ifndef PROFILE strip --strip-unneeded $@ +endif +endif ############################################## diff --git a/externals/grill/flext/buildsys/lnx/gnumake-gcc-flext.inc b/externals/grill/flext/buildsys/lnx/gnumake-gcc-flext.inc index ae9b4a48..9f587cfc 100644 --- a/externals/grill/flext/buildsys/lnx/gnumake-gcc-flext.inc +++ b/externals/grill/flext/buildsys/lnx/gnumake-gcc-flext.inc @@ -23,7 +23,11 @@ $(TARGET) :: $(COBJS) $(CPPOBJS) ifdef SHARED $(CXX) $(LDFLAGS) $(LIBPATH) -o $@ $(COBJS) $(CPPOBJS) $(LIBS) chmod 755 $@ +ifndef DEBUG +ifndef PROFILE strip --strip-unneeded $@ +endif +endif else $(AR) rc $@ $(COBJS) $(CPPOBJS) endif diff --git a/externals/grill/flext/buildsys/lnx/gnumake-gcc.inc b/externals/grill/flext/buildsys/lnx/gnumake-gcc.inc index 9927fb1a..4be5953d 100644 --- a/externals/grill/flext/buildsys/lnx/gnumake-gcc.inc +++ b/externals/grill/flext/buildsys/lnx/gnumake-gcc.inc @@ -7,16 +7,17 @@ TARGET=$(TARGETPATH)/$(OUTNAME).$(EXT) ############################################## CFLAGS += -pthread -LDFLAGS += -pthread -shared -Wl,-x +LDFLAGS += -pthread -shared -Wl,-x ############################################## ifdef DEBUG CFLAGS += -g +LDFLAGS += -g else ifdef PROFILE CFLAGS += -g -pg -LDFLAGS += -pg +LDFLAGS += -g -pg else LDFLAGS += -Wl,-S endif diff --git a/externals/grill/flext/buildsys/lnx/gnumake-icc-ext.inc b/externals/grill/flext/buildsys/lnx/gnumake-icc-ext.inc new file mode 100644 index 00000000..4ce1c1da --- /dev/null +++ b/externals/grill/flext/buildsys/lnx/gnumake-icc-ext.inc @@ -0,0 +1,46 @@ +# build class specific settings + +INCPATH += -I$(FLEXTINC) +LIBPATH += -L$(FLEXTLIB) -L$(FLEXTSHLIB) +LIBS += -l$(FLEXTNAME) + +############################################## + +# default target +_build_: $(TARGET) + +$(CSRCS) $(CPPSRCS): $(patsubst %,$(SRCDIR)/%,$(HDRS)) + touch $@ + +$(TARGETPATH): + mkdir -p $@ + +$(TARGETPATH)/%.opp : $(SRCDIR)/%.cpp + icc -c $(CFLAGS) $(DEFS) $(INCPATH) $< -o $@ + +$(TARGETPATH)/%.o : $(SRCDIR)/%.c + icc -c $(CFLAGS) $(DEFS) $(INCPATH) $< -o $@ + +$(TARGET):: $(TARGETPATH) + +$(TARGET):: $(COBJS) $(CPPOBJS) + icc $(LDFLAGS) $(LIBPATH) -o $@ $(COBJS) $(CPPOBJS) $(LIBS) + chmod 755 $@ +ifndef DEBUG +ifndef PROFILE + strip --strip-unneeded $@ +endif +endif + +############################################## + +_clean_: + -rm -r $(TARGETPATH) + +############################################## + +$(INSTPATH): + -mkdir -p $@ + +_install_: $(INSTPATH) + install $(TARGET) $(INSTPATH) diff --git a/externals/grill/flext/buildsys/lnx/gnumake-icc-flext.inc b/externals/grill/flext/buildsys/lnx/gnumake-icc-flext.inc new file mode 100644 index 00000000..ed06f9cf --- /dev/null +++ b/externals/grill/flext/buildsys/lnx/gnumake-icc-flext.inc @@ -0,0 +1,56 @@ +# build class specific settings + +############################################## + +# default target +_build_: $(TARGET) + +$(CSRCS) $(CPPSRCS): $(patsubst %,$(SRCDIR)/%,$(HDRS)) + touch $@ + +$(TARGETPATH): + -mkdir -p $@ + +$(TARGETPATH)/%.opp : $(SRCDIR)/%.cpp + icc -c $(CFLAGS) $(DEFS) $(INCPATH) $< -o $@ + +$(TARGETPATH)/%.o : $(SRCDIR)/%.c + icc -c $(CFLAGS) $(DEFS) $(INCPATH) $< -o $@ + +$(TARGET) :: $(TARGETPATH) + +$(TARGET) :: $(COBJS) $(CPPOBJS) +ifdef SHARED + icc $(LDFLAGS) $(LIBPATH) -o $@ $(COBJS) $(CPPOBJS) $(LIBS) + chmod 755 $@ +ifndef DEBUG +ifndef PROFILE + strip --strip-unneeded $@ +endif +endif +else + $(AR) rc $@ $(COBJS) $(CPPOBJS) +endif + +############################################## + +_clean_: + -rm -r $(TARGETPATH) + +############################################## + +ifdef SHARED +FLEXTLIBINST=$(FLEXTSHLIB) +else +FLEXTLIBINST=$(FLEXTLIB) +endif + +$(FLEXTINC): + -mkdir -p $@ + +$(FLEXTLIBINST): + -mkdir -p $@ + +_install_: $(FLEXTINC) $(FLEXTLIBINST) + install $(TARGET) $(FLEXTLIBINST) + install $(patsubst %,$(SRCDIR)/%,$(HDRS)) $(FLEXTINC) diff --git a/externals/grill/flext/buildsys/lnx/gnumake-icc.inc b/externals/grill/flext/buildsys/lnx/gnumake-icc.inc new file mode 100644 index 00000000..2797e882 --- /dev/null +++ b/externals/grill/flext/buildsys/lnx/gnumake-icc.inc @@ -0,0 +1,31 @@ +############################################## + +OBJPATH=$(OUTPATH)/$(OUTSUB) +TARGETPATH=$(OBJPATH) +TARGET=$(TARGETPATH)/$(OUTNAME).$(EXT) + +############################################## + +CFLAGS += +LDFLAGS += -shared -Wl,-x + +############################################## + +ifdef DEBUG +CFLAGS += -g +LDFLAGS += -g +else +ifdef PROFILE +CFLAGS += -g -qp +LDFLAGS += -g -qp +else +LDFLAGS += -Wl,-S +endif +endif + +############################################## + +CSRCS=$(patsubst %.c,$(SRCDIR)/%.c,$(filter %.c,$(SRCS))) +CPPSRCS=$(patsubst %.cpp,$(SRCDIR)/%.cpp,$(filter %.cpp,$(SRCS))) +COBJS=$(patsubst %.c,$(OBJPATH)/%.o,$(filter %.c,$(SRCS))) +CPPOBJS=$(patsubst %.cpp,$(OBJPATH)/%.opp,$(filter %.cpp,$(SRCS))) diff --git a/externals/grill/flext/buildsys/lnx/pd/config-gcc.def b/externals/grill/flext/buildsys/lnx/pd/config-gcc.def index bf0ff666..aaff3340 100644 --- a/externals/grill/flext/buildsys/lnx/pd/config-gcc.def +++ b/externals/grill/flext/buildsys/lnx/pd/config-gcc.def @@ -1,4 +1,5 @@ # where is the PD source package? +# (this should point to the main folder, which has a "src" subfolder) PDPATH=/usr/local/src/pd ############################################################### @@ -24,7 +25,7 @@ INSTPATH=/usr/local/lib/pd/extra # user defined compiler flags # (check if they match your system!) -UFLAGS=-msse +UFLAGS=-msse -mfpmath=sse -ffast-math # user defined optimization flags # (check if they match your system!) diff --git a/externals/grill/flext/buildsys/lnx/pd/config-icc.def b/externals/grill/flext/buildsys/lnx/pd/config-icc.def new file mode 100644 index 00000000..b6d6169e --- /dev/null +++ b/externals/grill/flext/buildsys/lnx/pd/config-icc.def @@ -0,0 +1,34 @@ +# where is the PD source package? +# (this should point to the main folder, which has a "src" subfolder) +PDPATH=/usr/local/src/pd + +############################################################### + +# where do/should the flext headers reside/be built? +FLEXTINC=/usr/local/include/flext + +# where do/should the flext static libraries reside/be built? +FLEXTLIB=/usr/local/lib + +# where do/should the flext shared libraries reside/be built? +FLEXTSHLIB=$(FLEXTLIB) + +############################################################### + +# where should the external be built? +OUTPATH=pd-linux + +# where should the external be installed? +INSTPATH=/usr/local/lib/pd/extra + +############################################################### + +# user defined compiler flags +# (check if they match your system!) +UFLAGS= + +# user defined optimization flags +# (check if they match your system!) +OFLAGS=-O3 -Ob2 -ip +# optimizations for Pentium 4 +OFLAGS+=-mcpu=pentium4 -march=pentium4 -xMKW diff --git a/externals/grill/flext/buildsys/lnx/pd/gnumake-icc-ext.inc b/externals/grill/flext/buildsys/lnx/pd/gnumake-icc-ext.inc new file mode 100644 index 00000000..88feb249 --- /dev/null +++ b/externals/grill/flext/buildsys/lnx/pd/gnumake-icc-ext.inc @@ -0,0 +1 @@ +EXT=pd_linux diff --git a/externals/grill/flext/buildsys/lnx/pd/gnumake-icc-flext.inc b/externals/grill/flext/buildsys/lnx/pd/gnumake-icc-flext.inc new file mode 100644 index 00000000..cecaa37a --- /dev/null +++ b/externals/grill/flext/buildsys/lnx/pd/gnumake-icc-flext.inc @@ -0,0 +1,6 @@ +ifdef SHARED +EXT=so +else +EXT=a +endif + diff --git a/externals/grill/flext/buildsys/lnx/pd/gnumake-icc.inc b/externals/grill/flext/buildsys/lnx/pd/gnumake-icc.inc new file mode 100644 index 00000000..2b27b02f --- /dev/null +++ b/externals/grill/flext/buildsys/lnx/pd/gnumake-icc.inc @@ -0,0 +1,4 @@ +DEFS += -DFLEXT_SYS=2 + +INCPATH += -I$(PDPATH)/src +LIBPATH += -L$(PDPATH)/bin diff --git a/externals/grill/flext/buildsys/mac/pd/config-gcc.def b/externals/grill/flext/buildsys/mac/pd/config-gcc.def index 58f903ed..c9ff54dc 100644 --- a/externals/grill/flext/buildsys/mac/pd/config-gcc.def +++ b/externals/grill/flext/buildsys/mac/pd/config-gcc.def @@ -1,4 +1,5 @@ # where is the PD installation including source code? +# (this should point to the main folder, which has a "src" subfolder) PDPATH=/Applications/Pd-0.38-0.app/Contents/Resources # where is the PD executable? diff --git a/externals/grill/flext/buildsys/win/bmake-bcc.inc b/externals/grill/flext/buildsys/win/bmake-bcc.inc index 6e9e142b..67ce16f0 100644 --- a/externals/grill/flext/buildsys/win/bmake-bcc.inc +++ b/externals/grill/flext/buildsys/win/bmake-bcc.inc @@ -12,13 +12,9 @@ TARGET=$(TARGETPATH)\$(OUTNAME).$(EXT) ############################################## # use precompiled headers -!ifndef PRECOMPILE -CFLAGS=$(CFLAGS) -Hh=flext.h -!else -CFLAGS=$(CFLAGS) -Hh=$(PRECOMPILE) +!ifdef PRECOMPILE +CFLAGS=$(CFLAGS) -Hh=$(PRECOMPILE) -H=$(OBJPATH)\precompiled.pch !endif -# location of precompiled file -CFLAGS=$(CFLAGS) -H=$(OBJPATH)\precompiled.pch ############################################## diff --git a/externals/grill/flext/buildsys/win/gnumake-cygwin.inc b/externals/grill/flext/buildsys/win/gnumake-cygwin.inc index 51866686..e98de396 100644 --- a/externals/grill/flext/buildsys/win/gnumake-cygwin.inc +++ b/externals/grill/flext/buildsys/win/gnumake-cygwin.inc @@ -6,8 +6,8 @@ TARGET=$(TARGETPATH)/$(OUTNAME).$(EXT) ############################################## -CFLAGS += -pthread -LDFLAGS += -pthread -shared +CFLAGS += +LDFLAGS += -shared ############################################## diff --git a/externals/grill/flext/buildsys/win/gnumake-mingw-ext.inc b/externals/grill/flext/buildsys/win/gnumake-mingw-ext.inc index f8eea4ac..8044d19b 100644 --- a/externals/grill/flext/buildsys/win/gnumake-mingw-ext.inc +++ b/externals/grill/flext/buildsys/win/gnumake-mingw-ext.inc @@ -18,33 +18,31 @@ _build_: $(TARGET) # touch $@ $(OUTPATH): - -cmd /c "mkdir $(subst /,\,$@)" + -mkdir $(subst /,\,$@) $(TARGETPATH): $(OUTPATH) - -cmd /c "mkdir $(subst /,\,$@)" + -mkdir $(subst /,\,$@) $(TARGETPATH)/%.opp : $(SRCDIR)/%.cpp - $(CXX) -c $(CFLAGS) $(DEFS) $(INCPATH) $< -o $@ + $(CXX) -c $(CFLAGS) $(DEFS) $(subst \,/,$(INCPATH)) $< -o $(subst /,\,$@) $(TARGETPATH)/%.o : $(SRCDIR)/%.c - $(CC) -c $(CFLAGS) $(DEFS) $(INCPATH) $< -o $@ + $(CC) -c $(CFLAGS) $(DEFS) $(subst \,/,$(INCPATH)) $< -o $(subst /,\,$@) $(TARGET) :: $(TARGETPATH) $(TARGET) :: $(COBJS) $(CPPOBJS) - $(CXX) $(LDFLAGS) $(LIBPATH) -o $@ $(COBJS) $(CPPOBJS) $(LIBS) + $(CXX) $(LDFLAGS) $(subst \,/,$(LIBPATH)) -o $(subst /,\,$@) $(subst /,\,$(COBJS) $(CPPOBJS) $(LIBS)) -strip --strip-unneeded $@ ############################################## _clean_: - -cmd /c "del /q $(subst /,\,$(TARGETPATH)/*.*)" > nul - -cmd /c "rmdir /q $(subst /,\,$(TARGETPATH))" > nul + -del /q $(subst /,\,$(TARGETPATH)/*.*) > nul + -rmdir /q $(subst /,\,$(TARGETPATH)) > nul ############################################## -$(INSTPATH): - -cmd /c "mkdir $(subst /,\,$@)" - -_install_: $(INSTPATH) - cmd /c "copy $(subst /,\,$(TARGET) $(INSTPATH))" +_install_: + @if not exist $(subst /,\,$(INSTPATH)) -mkdir $(subst /,\,$(INSTPATH)) + copy $(subst /,\,$(TARGET) $(INSTPATH)) diff --git a/externals/grill/flext/buildsys/win/gnumake-mingw-flext.inc b/externals/grill/flext/buildsys/win/gnumake-mingw-flext.inc index 69b8afac..8cd51720 100644 --- a/externals/grill/flext/buildsys/win/gnumake-mingw-flext.inc +++ b/externals/grill/flext/buildsys/win/gnumake-mingw-flext.inc @@ -9,22 +9,22 @@ _build_: $(TARGET) # touch $@ $(OUTPATH): - -cmd /c "mkdir $(subst /,\,$@)" + -mkdir $(subst /,\,$@) $(TARGETPATH): $(OUTPATH) - -cmd /c "mkdir $(subst /,\,$@)" + -mkdir $(subst /,\,$@) $(TARGETPATH)/%.opp : $(SRCDIR)/%.cpp - $(CXX) -c $(CFLAGS) $(DEFS) $(INCPATH) $< -o $@ + $(CXX) -c $(CFLAGS) $(DEFS) $(subst \,/,$(INCPATH)) $< -o $(subst /,\,$@) $(TARGETPATH)/%.o : $(SRCDIR)/%.c - $(CC) -c $(CFLAGS) $(DEFS) $(INCPATH) $< -o $@ + $(CC) -c $(CFLAGS) $(DEFS) $(subst \,/,$(INCPATH)) $< -o $(subst /,\,$@) $(TARGET) :: $(TARGETPATH) $(TARGET) :: $(COBJS) $(CPPOBJS) ifdef SHARED - $(CXX) $(LDFLAGS) $(LIBPATH) -o $@ $(COBJS) $(CPPOBJS) $(LIBS) + $(CXX) $(LDFLAGS) $(LIBPATH) -o $(subst /,\,$@) $(subst /,\,$(COBJS) $(CPPOBJS) $(LIBS)) -strip --strip-unneeded $@ else $(AR) rc $@ $(COBJS) $(CPPOBJS) @@ -33,8 +33,8 @@ endif ############################################## _clean_: - -cmd /c "del /q $(subst /,\,$(TARGETPATH)/*.*)" > nul - -cmd /c "rmdir /q $(subst /,\,$(TARGETPATH))" > nul + -del /q $(subst /,\,$(TARGETPATH)/*.*) > nul + -rmdir /q $(subst /,\,$(TARGETPATH)) > nul ############################################## @@ -44,14 +44,9 @@ else FLEXTLIBINST=$(FLEXTLIB) endif -$(FLEXTINC): - -cmd /c "mkdir $(subst /,\,$@)" - -$(FLEXTLIBINST): - -cmd /c "mkdir $(subst /,\,$@)" - -_install_:: $(FLEXTINC) $(FLEXTLIBINST) - _install_:: - cmd /c "copy $(subst /,\,$(TARGET) $(FLEXTLIBINST))" - -cmd /c "for %i in ($(HDRS)) do @cmd /c copy $(SRCDIR)\%i $(subst /,\,$(FLEXTPATH))" > nul + @if not exist $(subst /,\,$(FLEXTINC)) -mkdir $(subst /,\,$(FLEXTINC)) + @if not exist $(subst /,\,$(FLEXTLIBINST)) -mkdir $(subst /,\,$(FLEXTLIBINST)) + + copy $(subst /,\,$(TARGET) $(FLEXTLIBINST)) + -for %%i in ($(HDRS)) do @copy $(SRCDIR)\%%i $(subst /,\,$(FLEXTINC)) > nul diff --git a/externals/grill/flext/buildsys/win/gnumake-mingw.inc b/externals/grill/flext/buildsys/win/gnumake-mingw.inc index 35ffc3a4..43884e15 100644 --- a/externals/grill/flext/buildsys/win/gnumake-mingw.inc +++ b/externals/grill/flext/buildsys/win/gnumake-mingw.inc @@ -6,8 +6,8 @@ TARGET=$(TARGETPATH)\$(OUTNAME).$(EXT) ############################################## -CFLAGS += -pthread -LDFLAGS += -pthread -shared +CFLAGS += +LDFLAGS += -shared ############################################## diff --git a/externals/grill/flext/buildsys/win/max/config-mingw.def b/externals/grill/flext/buildsys/win/max/config-mingw.def index d3deb574..9c9e3d4a 100644 --- a/externals/grill/flext/buildsys/win/max/config-mingw.def +++ b/externals/grill/flext/buildsys/win/max/config-mingw.def @@ -33,7 +33,7 @@ HELPPATH="%ProgramFiles%/MaxMSP 4.5/max-help/flext" # user defined compiler flags # (check if they match your system!) -UFLAGS=-msse +UFLAGS=-msse -ffast-math # user defined optimization flags # (check if they match your system!) diff --git a/externals/grill/flext/buildsys/win/pd/config-bcc.def b/externals/grill/flext/buildsys/win/pd/config-bcc.def index 97553013..e9d97eb8 100644 --- a/externals/grill/flext/buildsys/win/pd/config-bcc.def +++ b/externals/grill/flext/buildsys/win/pd/config-bcc.def @@ -1,4 +1,5 @@ -# where is PD? +# where is the PD installation? +# (this should point to the main folder, which has a "src" subfolder) PDPATH="c:\program files\pd" # where is BorlandC++? diff --git a/externals/grill/flext/buildsys/win/pd/config-cygwin.def b/externals/grill/flext/buildsys/win/pd/config-cygwin.def index 3a7098ee..d7c319e0 100644 --- a/externals/grill/flext/buildsys/win/pd/config-cygwin.def +++ b/externals/grill/flext/buildsys/win/pd/config-cygwin.def @@ -1,4 +1,5 @@ -# where is PD? +# where is the PD installation? +# (this should point to the main folder, which has a "src" subfolder) PDPATH=/cygdrive/c/programme/pd ############################################################### @@ -24,10 +25,10 @@ INSTPATH=$(PDPATH)/extra # user defined compiler flags # (check if they match your system!) -UFLAGS=-msse +UFLAGS=-msse -mfpmath=sse -ffast-math # user defined optimization flags # (check if they match your system!) OFLAGS=-O3 # optimizations for Pentium 4 -OFLAGS+=-march=pentium4 +OFLAGS+=-march=pentium4 diff --git a/externals/grill/flext/buildsys/win/pd/config-mingw.def b/externals/grill/flext/buildsys/win/pd/config-mingw.def index 6bd5b718..a4ae2f2a 100644 --- a/externals/grill/flext/buildsys/win/pd/config-mingw.def +++ b/externals/grill/flext/buildsys/win/pd/config-mingw.def @@ -1,4 +1,5 @@ -# where is PD? +# where is the PD installation? +# (this should point to the main folder, which has a "src" subfolder) PDPATH="%ProgramFiles%\pd" ############################################################### @@ -24,7 +25,7 @@ INSTPATH=$(PDPATH)\extra # user defined compiler flags # (check if they match your system!) -UFLAGS=-msse +UFLAGS=-msse -mfpmath=sse -ffast-math # user defined optimization flags # (check if they match your system!) diff --git a/externals/grill/flext/buildsys/win/pd/config-msvc.def b/externals/grill/flext/buildsys/win/pd/config-msvc.def index 830eead3..9db081e4 100644 --- a/externals/grill/flext/buildsys/win/pd/config-msvc.def +++ b/externals/grill/flext/buildsys/win/pd/config-msvc.def @@ -1,4 +1,5 @@ -# where is PD? +# where is the PD installation? +# (this should point to the main folder, which has a "src" subfolder) PDPATH="%ProgramFiles%\pd" # where is MS VC++? -- cgit v1.2.1