diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2005-01-13 04:59:11 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2005-01-13 04:59:11 +0000 |
commit | 12dd4dd914b26ef48f6d6b7f49077d62b63be217 (patch) | |
tree | 40455f88c69fa072c1120dbd4f644510cb6fba56 | |
parent | e39ca045a8ef5c6f2e6f1fbd3aba8bd2641296b2 (diff) |
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
27 files changed, 491 insertions, 241 deletions
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++? |