From ed4ce25dc69fd6361f7655a3ab5d05186754316c Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Thu, 6 Jan 2005 04:59:21 +0000 Subject: build system for flext-based externals reconsidered flext::buffer:Update improved buffer handling added object construction and destruction flags updated autoconf system updated documentation updated build system svn path=/trunk/; revision=2467 --- externals/grill/flext/NEWS | 2 +- externals/grill/flext/build.txt | 35 +++-- externals/grill/flext/changes.txt | 68 +------- externals/grill/flext/configure.ac | 21 +-- externals/grill/flext/notes.txt | 65 ++++++++ externals/grill/flext/readme.txt | 58 ++++--- externals/grill/flext/source/Makefile.am | 61 +++---- externals/grill/flext/source/flbuf.cpp | 175 ++++++++++++--------- externals/grill/flext/source/flstdc.h | 6 +- externals/grill/flext/source/flsupport.h | 43 ++++- externals/grill/flext/tutorial/Makefile.am | 1 - externals/grill/flext/tutorial/adv1/Makefile.am | 12 +- externals/grill/flext/tutorial/adv2/Makefile.am | 12 +- externals/grill/flext/tutorial/adv3/Makefile.am | 12 +- externals/grill/flext/tutorial/attr1/Makefile.am | 12 +- externals/grill/flext/tutorial/attr2/Makefile.am | 12 +- externals/grill/flext/tutorial/attr3/Makefile.am | 12 +- externals/grill/flext/tutorial/bind1/Makefile.am | 12 +- externals/grill/flext/tutorial/buffer1/Makefile.am | 12 +- externals/grill/flext/tutorial/lib1/Makefile.am | 12 +- externals/grill/flext/tutorial/signal1/Makefile.am | 12 +- externals/grill/flext/tutorial/signal2/Makefile.am | 12 +- externals/grill/flext/tutorial/simple1/Makefile.am | 12 +- externals/grill/flext/tutorial/simple2/Makefile.am | 12 +- externals/grill/flext/tutorial/simple3/Makefile.am | 12 +- externals/grill/flext/tutorial/sndobj1/Makefile.am | 12 +- externals/grill/flext/tutorial/stk1/Makefile.am | 11 +- externals/grill/flext/tutorial/stk2/Makefile.am | 11 +- externals/grill/flext/tutorial/thread1/Makefile.am | 12 +- externals/grill/flext/tutorial/thread2/Makefile.am | 12 +- externals/grill/flext/tutorial/timer1/Makefile.am | 12 +- 31 files changed, 420 insertions(+), 353 deletions(-) create mode 100644 externals/grill/flext/notes.txt (limited to 'externals/grill') diff --git a/externals/grill/flext/NEWS b/externals/grill/flext/NEWS index 74b4ae7f..88a522b9 100644 --- a/externals/grill/flext/NEWS +++ b/externals/grill/flext/NEWS @@ -1 +1 @@ -see changes.txt +see notes.txt and changes.txt diff --git a/externals/grill/flext/build.txt b/externals/grill/flext/build.txt index 9cce87af..e1c2b1a4 100644 --- a/externals/grill/flext/build.txt +++ b/externals/grill/flext/build.txt @@ -141,31 +141,34 @@ su -c "make install" - Windows - Microsoft Visual Studio projects (.vcproj files) -Please have a look at the projects delivered with flext and flext-based externals. - + 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. + 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. + 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) + 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. + 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/changes.txt b/externals/grill/flext/changes.txt index e6f28711..0f8979e0 100644 --- a/externals/grill/flext/changes.txt +++ b/externals/grill/flext/changes.txt @@ -4,11 +4,6 @@ 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 package seeks to encourage the development of open source software -for the pd and Max/MSP platforms. - -Donations for further development of the package are highly appreciated. - ---------------------------------------------------------------------------- Version history: @@ -26,6 +21,8 @@ Version history: - new build system for flext and flext-based externals - flags for object construction and destruction phase (Initing() and Exiting()) - reconsidered flext::buffer::Update +- enhanced buffer handling +- support for buffer locking (flext::buffer::Lock() and Unlock()) - it's a must for Max/MSP at least 0.4.7: - added flext::GetBool (just because flext::GetInt has been there for a while) @@ -299,66 +296,5 @@ Version history: - heavy usage of unchanged GEM code ----------------------------------------------------------------------------- - -Notes: -- no support for default object arguments (A_DEFFLOAT, A_DEFSYMBOL) -> use variable argument lists instead - -Platform specific: -- PD does not allow signal and message to go into the same inlet (except leftmost inlet) - -Restrictions in compatibility mode: -- Max allows only 9 float/int inlets - -Porting to new compilers/platforms: -- enums must be int-sized!!! -- compiler must support bool type -- an STL implementation must exist -- no need of C++ exceptions or RTTI (RTTI only for GUI objects) - BUT: some libraries could use RTTI and then need run-time type information from the library! (this is known for gcc compiles) - ----------------------------------------------------------------------------- - -TODO list: - -- optimizations for object initialization and messaging -- SIMD for gcc - -bugs: -- can't use MFC libraries because of global new and delete overloadings - -TEST: -- PD: problems with timed buffer redrawing (takes a lot of cpu time) -- hard thread termination upon object destruction doesn't seem to work properly -> crash -- Max rounding bug ... buffer resize could be one sample less! -- flext_dsp: Max/MSP doesn't correctly report in/out channel counts - - -general: -- documentation -- add log messages for debugging version -- use PD's t_float and t_int types (or comparable for 32-bit safety) - -- add double handlers -- add signal in/out connection query function - -- support for Max qelem style - -- PD: with DSP objects all float messages to left input are currently converted to signal - there should be a way to avoid this - -- flext::post and flext::error should print via a worker thread (and should be unlimited in characters) - -tests: -- PD: figure out what "pointer" messages do and where they occur -- buffer resize: flext_base::buffer::Frames(): should we use buffer or system sample rate? - -- check whether m_dsp gets called upon deletion of a used buffer (PD and MaxMSP may behave differently). - - -features: -- manage running threads individually (stop, isrunning?, priority etc.) - - diff --git a/externals/grill/flext/configure.ac b/externals/grill/flext/configure.ac index bd811b23..83c6e309 100755 --- a/externals/grill/flext/configure.ac +++ b/externals/grill/flext/configure.ac @@ -7,7 +7,7 @@ dnl flext API version (current:release:age) API_VERSION=0:0:0 AC_INIT([flext],[0.5.0],[gr@grrrr.org],[flext]) -AM_INIT_AUTOMAKE(1.8) +AM_INIT_AUTOMAKE(1.6) dnl configure options @@ -70,10 +70,10 @@ AC_ARG_ENABLE(optimize, [ --enable-optimize enables optimized builds for: OPT_FLAGS="-mtune=$enableval -march=$enableval -mmmx -msse -msse2 -mfpmath=sse"; AC_DEFINE(FLEXT_USE_SIMD);; G5 | G4) - OPT_FLAGS="-mtune=$enableval -march=$enableval -maltivec -faltivec -malign-natural"; + OPT_FLAGS="-mtune=$enableval --maltivec -faltivec -malign-natural"; AC_DEFINE(FLEXT_USE_SIMD);; G3) - OPT_FLAGS="-mtune=$enableval -march=$enableval -malign-natural";; + OPT_FLAGS="-mtune=$enableval --malign-natural";; *) ;; esac @@ -101,21 +101,23 @@ dnl Checks for library functions. dnl system specific if test `uname -s` == Linux; then - DYNAMIC_LDFLAGS="-Wl,-Bdynamic" + DYNAMIC_LDFLAGS="-Wl,-Bdynamic -shared" EXTENSION=pd_linux SOEXT=so fi if test `uname -s` == Darwin; then - DYNAMIC_LDFLAGS = "-version-info $API_VERSION -release $AC_PACKAGE_VERSION -dylib -dynamic -flat_namespace -undefined suppress" +# DYNAMIC_LDFLAGS="-version-info $API_VERSION -release $AC_PACKAGE_VERSION -dynamiclib -dynamic -flat_namespace -undefined suppress" - if test $system = max; then - echo "what's the name in max???" #EXEEXT = ??? + DYNAMIC_LDFLAGS="-dynamiclib -dynamic -flat_namespace -undefined suppress" + if test $system == max; then + EXTENSION=mxo else EXTENSION=pd_darwin - SOEXT=dylib - FRAMEWORKS=??? fi + + SOEXT=dylib + FRAMEWORKS="ApplicationServices vecLib" fi dnl todo: mingw / cygwin @@ -155,3 +157,4 @@ AC_OUTPUT([ tutorial/pd/Makefile tutorial/maxmsp/Makefile source/Makefile]) + diff --git a/externals/grill/flext/notes.txt b/externals/grill/flext/notes.txt new file mode 100644 index 00000000..a1f5ab44 --- /dev/null +++ b/externals/grill/flext/notes.txt @@ -0,0 +1,65 @@ +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. + +---------------------------------------------------------------------------- + +VARIOUS NOTES: + +Platform specific: +- PD does not allow signal and message to go into the same inlet (except leftmost inlet) +- PD: with DSP objects all float messages to the leftmost inlet are converted to signal + +Restrictions in compatibility mode: +- Max allows only 9 float/int inlets + +Porting to new compilers/platforms: +- enums must be int-sized!!! +- compiler must support bool type +- an STL implementation must exist +- C++ exceptions and RTTI must be enabled + +---------------------------------------------------------------------------- + +KNOWN BUGS: +- can't use MFC libraries because of global new and delete overloadings +- MaxMSP Mach-O DSP externals cannot be the first externals loaded (e.g. in Max Runtime) + there must be a CFM signal external loaded beforehand!!! (Max will crash otherwise) + +---------------------------------------------------------------------------- + +TODO LIST: + +- optimizations for object initialization and messaging +- SIMD for gcc + +- update documentation +- add log messages for debugging version +- use PD's t_float and t_int types (or comparable for 32-bit safety) + +- add double handlers +- add signal in/out connection query function + +- support for Max qelem style + +- flext::post and flext::error should print via a worker thread (and should be unlimited in characters) + +- manage running threads individually (stop, isrunning?, priority etc.) + +---------------------------------------------------------------------------- + +TESTS TO DO: + +- PD: problems with timed buffer redrawing (takes a lot of cpu time) +- hard thread termination upon object destruction doesn't seem to work properly -> crash +- Max rounding bug ... buffer resize could be one sample less! +- flext_dsp: Max/MSP doesn't correctly report in/out channel counts + +- PD: figure out what "pointer" messages do and whether they are correctly implemented in flext + +- Max buffer~ resize: flext_base::buffer::Frames(): must we use buffer or system sample rate? + +- check whether m_dsp gets called upon deletion of a used buffer (PD and MaxMSP may behave differently). + -> PD does call m_dsp diff --git a/externals/grill/flext/readme.txt b/externals/grill/flext/readme.txt index e0baf10c..fb6b21c5 100644 --- a/externals/grill/flext/readme.txt +++ b/externals/grill/flext/readme.txt @@ -47,39 +47,45 @@ cons: Prerequisites: -o --- PD --- - You need the pd source code which is most likely part of the distribution. - Otherwise download from: http://www-crca.ucsd.edu/~msp/software.html - -o --- Max/MSP --- - You will need the latest Max/MSP SDK - for Windows (http://synthesisters.com/pluggo3/downloadMaxWinSDK.php) - for OSX (http://www.synthesisters.com/sdk/max.php) - or for OS9 (ask Cycling'74 where to find that) - - For OS9 threading support you'll also need the Multiprocessing library - (download at http://developer.apple.com/sdk/) - -o --- SndObj --- - If you choose to compile with SndObj support you will need the respective library - download from: http://www.may.ie/academic/music/musictec/SndObj/main.html - -o --- STK --- - If you choose to compile with STK support you will need the respective package - and build a library. - download from: http://ccrma-www.stanford.edu/software/stk/ - For linking it may preferable to use a library of all the STK objects. - Under linux you can create one from the STK directory with something like - "g++ -c -pipe -I include -D __LINUX_OSS__ src/*.cpp && ar r libstk.a *.o && rm -f *.o" +--- PD --- + You need the pd source code which is most likely part of the distribution. + Otherwise download from: http://www-crca.ucsd.edu/~msp/software.html + +--- Max/MSP --- + You will need the latest Max/MSP SDK + for Windows (http://synthesisters.com/pluggo3/downloadMaxWinSDK.php) + for OSX (http://www.synthesisters.com/sdk/max.php) + or for OS9 (ask Cycling'74 where to find that) + + For OS9 threading support you'll also need the Multiprocessing library + (download at http://developer.apple.com/sdk/) + +--- SndObj --- + If you choose to compile with SndObj support you will need the respective library + download from: http://www.may.ie/academic/music/musictec/SndObj/main.html + +--- STK --- + If you choose to compile with STK support you will need the respective package + and build a library. + download from: http://ccrma-www.stanford.edu/software/stk/ + For linking it may preferable to use a library of all the STK objects. + Under linux you can create one from the STK directory with something like + "g++ -c -pipe -I include -D __LINUX_OSS__ src/*.cpp && ar r libstk.a *.o && rm -f *.o" ---------------------------------------------------------------------------- Building and installing of flext and flext-based externals: - Read the build.txt document + See the build.txt document ---------------------------------------------------------------------------- +Various notes / limitations / bug list: + + Read the notes.txt document + +---------------------------------------------------------------------------- + History of changes: - Read the changes.txt document + Read the changes.txt document diff --git a/externals/grill/flext/source/Makefile.am b/externals/grill/flext/source/Makefile.am index 0429724f..e4ffe27e 100755 --- a/externals/grill/flext/source/Makefile.am +++ b/externals/grill/flext/source/Makefile.am @@ -3,7 +3,7 @@ # added by tim blechmann # -lib_LIBRARIES = libflext.a libflext_d.a libflext_t.a libflext_td.a +lib_LIBRARIES = libflext-pd_s.a libflext-pd_sd.a libflext-pd_t.a libflext-pd_td.a SRCS_FLEXT = \ flbase.cpp \ @@ -76,52 +76,53 @@ endif FRAMEWORKS = @FRAMEWORKS@ # for static libraries we can use automake -libflext_a_SOURCES = $(SRCS_FLEXT) -libflext_d_a_SOURCES = $(SRCS_FLEXT) -libflext_t_a_SOURCES = $(SRCS_FLEXT) -libflext_td_a_SOURCES = $(SRCS_FLEXT) +libflext_pd_s_a_SOURCES = $(SRCS_FLEXT) +libflext_pd_sd_a_SOURCES = $(SRCS_FLEXT) +libflext_pd_t_a_SOURCES = $(SRCS_FLEXT) +libflext_pd_td_a_SOURCES = $(SRCS_FLEXT) -libflext_a_CXXFLAGS = @OPT_FLAGS@ @INCLUDEDIR@ -libflext_d_a_CXXFLAGS = @INCLUDEDIR@ -g -DFLEXT_DEBUG -libflext_t_a_CXXFLAGS = @OPT_FLAGS@ @INCLUDEDIR@ -DFLEXT_THREADS -libflext_td_a_CXXFLAGS = @INCLUDEDIR@ -g -DFLEXT_DEBUG -DFLEXT_THREADS +libflext_pd_s_a_CXXFLAGS = @OPT_FLAGS@ @INCLUDEDIR@ +libflext_pd_sd_a_CXXFLAGS = @INCLUDEDIR@ -g -DFLEXT_DEBUG +libflext_pd_t_a_CXXFLAGS = @OPT_FLAGS@ @INCLUDEDIR@ -DFLEXT_THREADS +libflext_pd_td_a_CXXFLAGS = @INCLUDEDIR@ -g -DFLEXT_DEBUG -DFLEXT_THREADS -libflext_a_LDFLAGS = @OPT_FLAGS@ @INCLUDEDIR@ \ +libflext_pd_s_a_LDFLAGS = @OPT_FLAGS@ @INCLUDEDIR@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -libflext_d_a_LDFLAGS = @INCLUDEDIR@ -g -DFLEXT_DEBUG \ +libflext_pd_sd_a_LDFLAGS = @INCLUDEDIR@ -g -DFLEXT_DEBUG \ $(patsubst %,-framework %,$(FRAMEWORKS)) -libflext_t_a_LDFLAGS = @OPT_FLAGS@ @INCLUDEDIR@ -DFLEXT_THREADS \ +libflext_pd_t_a_LDFLAGS = @OPT_FLAGS@ @INCLUDEDIR@ -DFLEXT_THREADS \ $(patsubst %,-framework %,$(FRAMEWORKS)) -libflext_td_a_LDFLAGS = @INCLUDEDIR@ -g -DFLEXT_DEBUG -DFLEXT_THREADS \ +libflext_pd_td_a_LDFLAGS = @INCLUDEDIR@ -g -DFLEXT_DEBUG -DFLEXT_THREADS \ $(patsubst %,-framework %,$(FRAMEWORKS)) # for shared libraries, we can't ... -libflext_la_CXXFLAGS = @OPT_FLAGS@ @INCLUDEDIR@ -DFLEXT_SHARED \ +libflext_pd_la_CXXFLAGS = @OPT_FLAGS@ @INCLUDEDIR@ -DFLEXT_SHARED \ -DFLEXT_EXPORTS $(DEFS) -libflext_d_la_CXXFLAGS = @INCLUDEDIR@ -g -DFLEXT_DEBUG -DFLEXT_SHARED \ +libflext_pd_d_la_CXXFLAGS = @INCLUDEDIR@ -g -DFLEXT_DEBUG -DFLEXT_SHARED \ -DFLEXT_EXPORTS $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) -libflext_la_LDFLAGS = @DYNAMIC_LDFLAGS@ $(LIB_STK) $(LIB_SNDOBJ) $(LDFLAGS) \ +libflext_pd_la_LDFLAGS = @DYNAMIC_LDFLAGS@ $(LIB_STK) $(LIB_SNDOBJ) $(LDFLAGS) \ $(patsubst %,-framework %,$(FRAMEWORKS)) -libflext_d_la_LDFLAGS = @DYNAMIC_LDFLAGS@ $(LIB_STK) $(LIB_SNDOBJ) $(LDFLAGS) +libflext_pd_d_la_LDFLAGS = @DYNAMIC_LDFLAGS@ $(LIB_STK) $(LIB_SNDOBJ) $(LDFLAGS) $(patsubst %,-framework %,$(FRAMEWORKS)) -libflext_la_NAME = libflext.@SOEXT@ -libflext_d_la_NAME = libflext_d.@SOEXT@ +libflext_pd_la_NAME = libflext-pd.@SOEXT@ +libflext_pd_d_la_NAME = libflext-pd_d.@SOEXT@ -all-local: $(libflext_la_NAME) $(libflext_d_la_NAME) +all-local: $(libflext_pd_la_NAME) $(libflext_pd_d_la_NAME) -$(libflext_la_NAME): $(patsubst %.cpp,libflext_la-%.o,$(SRCS_FLEXT)) - $(CXX) -shared $(libflext_la_LDFLAGS) $(LIBS) -o $(libflext_la_NAME) $^ +$(libflext_pd_la_NAME): $(patsubst %.cpp,libflext_pd_la-%.o,$(SRCS_FLEXT)) + $(CXX) $(libflext_pd_la_LDFLAGS) $(LIBS) -o $(libflext_pd_la_NAME) $^ -libflext_la-%.o : %.cpp - $(CXX) -shared -c $(libflext_la_CXXFLAGS) $< -o $@ +libflext_pd_la-%.o : %.cpp + $(CXX) -c $(libflext_pd_la_CXXFLAGS) $< -o $@ -$(libflext_d_la_NAME): $(patsubst %.cpp,libflext_d_la-%.o,$(SRCS_FLEXT)) - $(CXX) -shared $(libflext_d_la_LDFLAGS) $(LIBS) -o $(libflext_d_la_NAME) $^ +$(libflext_pd_d_la_NAME): $(patsubst %.cpp,libflext_pd_d_la-%.o,$(SRCS_FLEXT)) + $(CXX) $(libflext_pd_d_la_LDFLAGS) $(LIBS) -o $(libflext_pd_d_la_NAME) $^ -libflext_d_la-%.o: %.cpp - $(CXX) -shared -c $(libflext_d_la_CXXFLAGS) $< -o $@ +libflext_pd_d_la-%.o: %.cpp + $(CXX) -c $(libflext_pd_d_la_CXXFLAGS) $< -o $@ install-exec-local: - $(libLIBRARIES_INSTALL) $(libflext_la_NAME) $(DESTDIR)$(libdir) - $(libLIBRARIES_INSTALL) $(libflext_d_la_NAME) $(DESTDIR)$(libdir) \ No newline at end of file + $(libLIBRARIES_INSTALL) $(libflext_pd_la_NAME) $(DESTDIR)$(libdir) + $(libLIBRARIES_INSTALL) $(libflext_pd_d_la_NAME) $(DESTDIR)$(libdir) + diff --git a/externals/grill/flext/source/flbuf.cpp b/externals/grill/flext/source/flbuf.cpp index 649e1b8d..83ee3ebb 100644 --- a/externals/grill/flext/source/flbuf.cpp +++ b/externals/grill/flext/source/flbuf.cpp @@ -2,7 +2,7 @@ flext - C++ layer for Max/MSP and pd (pure data) externals -Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net) +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. @@ -16,10 +16,6 @@ WARRANTIES, see the file, "license.txt," in this distribution. #if FLEXT_SYS != FLEXT_SYS_JMAX -#if FLEXT_SYS == FLEXT_SYS_MAX -#include "flmspbuffer.h" // include inofficial buffer.h -#endif - #if FLEXT_SYS == FLEXT_SYS_PD #define DIRTY_INTERVAL 0 // buffer dirty check in msec #endif @@ -31,6 +27,11 @@ WARRANTIES, see the file, "license.txt," in this distribution. #endif #endif +#if FLEXT_SYS == FLEXT_SYS_MAX +static const t_symbol *sym_buffer = flext::MakeSymbol("buffer~"); +static const t_symbol *sym_size = flext::MakeSymbol("size"); +#endif + flext::buffer::buffer(const t_symbol *bn,bool delayed): sym(NULL),data(NULL), chns(0),frames(0) @@ -100,10 +101,12 @@ int flext::buffer::Set(const t_symbol *s,bool nameonly) } #elif FLEXT_SYS == FLEXT_SYS_MAX if(sym->s_thing) { - const _buffer *p = (const _buffer *)sym->s_thing; + const t_buffer *p = (const t_buffer *)sym->s_thing; + + FLEXT_ASSERT(!NOGOOD(p)); - if(NOGOOD(p) || !p->b_valid) { - post("buffer: buffer object '%s' no good",GetString(sym)); + if(ob_sym(p) != sym_buffer) { + post("buffer: object '%s' not valid",GetString(sym)); if(valid) ret = -2; } else { @@ -127,66 +130,101 @@ int flext::buffer::Set(const t_symbol *s,bool nameonly) return ret; } -bool flext::buffer::Valid() const -{ - if(sym) { -#if FLEXT_SYS == FLEXT_SYS_PD - int frames1; - t_sample *data1; - return arr && garray_getfloatarray(arr, &frames1, &data1) != 0; -#elif FLEXT_SYS == FLEXT_SYS_MAX - const _buffer *p = (const _buffer *)sym->s_thing; - return p && p->b_valid; -#else -#error -#endif - } - else return false; -} - - bool flext::buffer::Update() { -// if(!Ok()) return false; + FLEXT_ASSERT(sym); - bool ok = false; + bool upd = false; #if FLEXT_SYS == FLEXT_SYS_PD - if(!sym || !arr) return data == NULL; + if(!arr) return data == NULL; int frames1; t_sample *data1; if(!garray_getfloatarray(arr, &frames1, &data1)) { - frames = 0; data = NULL; chns = 0; - ok = true; + frames = 0; + upd = true; } else if(data != data1 || frames != frames1) { - frames = frames1; data = data1; - ok = true; + frames = frames1; + upd = true; } #elif FLEXT_SYS == FLEXT_SYS_MAX - if(!sym) return data == NULL; - - if(sym->s_thing) { - const _buffer *p = (const _buffer *)sym->s_thing; + const t_buffer *p = (const t_buffer *)sym->s_thing; + if(p) { + FLEXT_ASSERT(!NOGOOD(p) && ob_sym(p) == sym_buffer); + if(data != p->b_samples || chns != p->b_nchans || frames != p->b_frames) { data = p->b_samples; chns = p->b_nchans; frames = p->b_frames; - ok = true; + upd = true; } } + else { + // buffer~ has e.g. been renamed + data = NULL; + chns = 0; + frames = 0; + upd = true; + } +#else +#error not implemented +#endif + return upd; +} + +flext::buffer::lock_t flext::buffer::Lock() +{ + FLEXT_ASSERT(sym); +#if FLEXT_SYS == FLEXT_SYS_PD + FLEXT_ASSERT(arr); +#if PD_MINOR_VERSION >= 38 && defined(PD_DEVEL_VERSION) + garray_lock(arr); +#endif + return false; +#elif FLEXT_SYS == FLEXT_SYS_MAX + t_buffer *p = (t_buffer *)sym->s_thing; + FLEXT_ASSERT(p); +#if defined(MAC_VERSION) || defined(WIN_VERSION) + long old = p->b_inuse; + p->b_inuse = 1; + return old; +#else + // undefined for OS9 + return 0; +#endif +#else +#error not implemented +#endif +} + +void flext::buffer::Unlock(flext::buffer::lock_t prv) +{ + FLEXT_ASSERT(sym); +#if FLEXT_SYS == FLEXT_SYS_PD + FLEXT_ASSERT(arr); +#if PD_MINOR_VERSION >= 38 && defined(PD_DEVEL_VERSION) + garray_unlock(arr); +#endif +#elif FLEXT_SYS == FLEXT_SYS_MAX + t_buffer *p = (t_buffer *)sym->s_thing; + FLEXT_ASSERT(p); +#if defined(MAC_VERSION) || defined(WIN_VERSION) + // not for OS9 + p->b_inuse = prv; +#endif #else #error not implemented #endif - return ok; } void flext::buffer::Frames(int fr,bool keep,bool zero) { + FLEXT_ASSERT(sym); #if FLEXT_SYS == FLEXT_SYS_PD // is this function guaranteed to keep memory and set rest to zero? ::garray_resize(arr,(float)fr); @@ -199,20 +237,18 @@ void flext::buffer::Frames(int fr,bool keep,bool zero) if(keep) { // copy buffer data to tmp storage tmp = (t_sample *)NewAligned(sz*sizeof(t_sample)); - if(tmp) - CopySamples(tmp,data,sz); - else - error("flext::buffer - not enough memory for keeping buffer~ contents"); + FLEXT_ASSERT(tmp); + CopySamples(tmp,data,sz); } t_atom msg; - _buffer *buf = (_buffer *)sym->s_thing; + t_buffer *buf = (t_buffer *)sym->s_thing; // b_msr reflects buffer sample rate... is this what we want? // Max bug: adding half a sample to prevent roundoff errors.... float ms = (fr+0.5)/buf->b_msr; SetFloat(msg,ms); - ::typedmess((object *)buf,gensym("size"),1,&msg); + ::typedmess((object *)buf,(t_symbol *)sym_size,1,&msg); Update(); @@ -248,34 +284,23 @@ void flext::buffer::SetRefrIntv(float) {} void flext::buffer::Dirty(bool force) { - if(sym) { + FLEXT_ASSERT(sym); #if FLEXT_SYS == FLEXT_SYS_PD - if((!ticking) && (interval || force)) { - ticking = true; - cb_tick(this); // immediately redraw - } - else { - if(force) clock_delay(tick,0); - isdirty = true; - } + if((!ticking) && (interval || force)) { + ticking = true; + cb_tick(this); // immediately redraw + } + else { + if(force) clock_delay(tick,0); + isdirty = true; + } #elif FLEXT_SYS == FLEXT_SYS_MAX - if(sym->s_thing) { - _buffer *p = (_buffer *)sym->s_thing; - - if(NOGOOD(p)) { - post("buffer: buffer object '%s' no good",sym->s_name); - } - else { - p->b_modtime = gettime(); - } - } - else { - FLEXT_LOG1("buffer: symbol '%s' not defined",sym->s_name); - } + t_buffer *p = (t_buffer *)sym->s_thing; + FLEXT_ASSERT(p && !NOGOOD(p)); + p->b_modtime = gettime(); #else #error Not implemented #endif - } } #if FLEXT_SYS == FLEXT_SYS_PD @@ -309,8 +334,9 @@ void flext::buffer::ClearDirty() bool flext::buffer::IsDirty() const { + FLEXT_ASSERT(sym); #if FLEXT_SYS == FLEXT_SYS_PD - if(!arr) return false; + FLEXT_ASSERT(arr); #ifdef FLEXT_PDBUFDIRTYTIME return isdirty || garray_updatetime(arr) > cleantime; #else @@ -318,15 +344,8 @@ bool flext::buffer::IsDirty() const return true; #endif #elif FLEXT_SYS == FLEXT_SYS_MAX - if(!sym->s_thing) return false; - - _buffer *p = (_buffer *)sym->s_thing; -#ifdef FLEXT_DEBUG - if(NOGOOD(p)) { - post("buffer: buffer object '%s' no good",sym->s_name); - return false; - } -#endif + t_buffer *p = (t_buffer *)sym->s_thing; + FLEXT_ASSERT(p && !NOGOOD(p)); return p->b_modtime > cleantime; #else #error Not implemented diff --git a/externals/grill/flext/source/flstdc.h b/externals/grill/flext/source/flstdc.h index d12b31b0..7d912090 100644 --- a/externals/grill/flext/source/flstdc.h +++ b/externals/grill/flext/source/flstdc.h @@ -2,7 +2,7 @@ flext - C++ layer for Max/MSP and pd (pure data) externals -Copyright (c) 2001-2004 Thomas Grill (xovo@gmx.net) +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. @@ -121,6 +121,10 @@ extern "C" { #if FLEXT_OS != FLEXT_OS_MAC || defined(MAC_VERSION) // doesn't exist for OS9 #include "ext_critical.h" +#include "buffer.h" +#else +// for OS9 include "inofficial" header file +#include "flmspbuffer.h" #endif #include "z_dsp.h" diff --git a/externals/grill/flext/source/flsupport.h b/externals/grill/flext/source/flsupport.h index 31b64f2a..e7e284c4 100644 --- a/externals/grill/flext/source/flsupport.h +++ b/externals/grill/flext/source/flsupport.h @@ -148,6 +148,15 @@ public: public flext_root { public: + +#if FLEXT_SYS == FLEXT_SYS_PD + typedef bool lock_t; +#elif FLEXT_SYS == FLEXT_SYS_MAX + typedef long lock_t; +#else +#error Not implemented +#endif + /*! \brief Construct buffer. \param s: symbol name, can be NULL \param delayed = true: only sets name, needs another Set(NULL) to really initialize the buffer @@ -158,17 +167,43 @@ public: //! Destroy buffer ~buffer(); - /*! \brief Check if the data is valid + /*! \brief Check if the buffer is valid for use + \note This must be true to use any of the other functions except set */ - bool Ok() const { return sym != NULL && data != NULL; } + bool Ok() const { return sym && data; } - /*! \brief Check if buffer is valid + /*! \brief Check if buffer content is valid (not in state of content change) + \note buffer must be Ok() */ - bool Valid() const; + bool Valid() const + { + FLEXT_ASSERT(sym); +#if FLEXT_SYS == FLEXT_SYS_PD + return true; +#elif FLEXT_SYS == FLEXT_SYS_MAX + const t_buffer *p = (const t_buffer *)sym->s_thing; + return p && p->b_valid; +#else +#error not implemented +#endif + } /*! \brief Check and update if the buffer has been changed (e.g. resized) + \note buffer must be Ok() */ bool Update(); + + /*! \brief Lock buffer + \return previous state (needed for Unlock) + \note buffer must be Ok() + */ + lock_t Lock(); + + /*! \brief Unlock buffer + \param prv: Previous state is returned by Lock() + \note buffer must be Ok() + */ + void Unlock(lock_t prv); /*! \brief Set to specified buffer. \param nameonly: if true sets name only, but doesn't look at buffer actually diff --git a/externals/grill/flext/tutorial/Makefile.am b/externals/grill/flext/tutorial/Makefile.am index 0a119998..f3247e81 100644 --- a/externals/grill/flext/tutorial/Makefile.am +++ b/externals/grill/flext/tutorial/Makefile.am @@ -29,7 +29,6 @@ SUBDIRS = \ EXTRA_DIST = \ readme.txt \ gpl.txt \ - tutorial.dsw \ tutorial.sln DIST_SUBDIRS = pd \ diff --git a/externals/grill/flext/tutorial/adv1/Makefile.am b/externals/grill/flext/tutorial/adv1/Makefile.am index 4bfe72f6..ba556deb 100644 --- a/externals/grill/flext/tutorial/adv1/Makefile.am +++ b/externals/grill/flext/tutorial/adv1/Makefile.am @@ -8,20 +8,20 @@ NAME = adv1 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/adv2/Makefile.am b/externals/grill/flext/tutorial/adv2/Makefile.am index 17ba9d45..efd61012 100644 --- a/externals/grill/flext/tutorial/adv2/Makefile.am +++ b/externals/grill/flext/tutorial/adv2/Makefile.am @@ -8,20 +8,20 @@ NAME = adv2 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/adv3/Makefile.am b/externals/grill/flext/tutorial/adv3/Makefile.am index e069be64..5eadc6aa 100644 --- a/externals/grill/flext/tutorial/adv3/Makefile.am +++ b/externals/grill/flext/tutorial/adv3/Makefile.am @@ -8,20 +8,20 @@ NAME = adv3 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/attr1/Makefile.am b/externals/grill/flext/tutorial/attr1/Makefile.am index d8242700..531eace6 100644 --- a/externals/grill/flext/tutorial/attr1/Makefile.am +++ b/externals/grill/flext/tutorial/attr1/Makefile.am @@ -8,20 +8,20 @@ NAME = attr1 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/attr2/Makefile.am b/externals/grill/flext/tutorial/attr2/Makefile.am index e0fe461e..f1a6a347 100644 --- a/externals/grill/flext/tutorial/attr2/Makefile.am +++ b/externals/grill/flext/tutorial/attr2/Makefile.am @@ -8,20 +8,20 @@ NAME = attr2 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/attr3/Makefile.am b/externals/grill/flext/tutorial/attr3/Makefile.am index c25aa864..a94ce0f8 100644 --- a/externals/grill/flext/tutorial/attr3/Makefile.am +++ b/externals/grill/flext/tutorial/attr3/Makefile.am @@ -8,20 +8,20 @@ NAME = attr3 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/bind1/Makefile.am b/externals/grill/flext/tutorial/bind1/Makefile.am index a338451c..8e360f2f 100644 --- a/externals/grill/flext/tutorial/bind1/Makefile.am +++ b/externals/grill/flext/tutorial/bind1/Makefile.am @@ -8,20 +8,20 @@ NAME = bind1 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/buffer1/Makefile.am b/externals/grill/flext/tutorial/buffer1/Makefile.am index 76d31298..a11d11be 100644 --- a/externals/grill/flext/tutorial/buffer1/Makefile.am +++ b/externals/grill/flext/tutorial/buffer1/Makefile.am @@ -8,20 +8,20 @@ NAME = buffer1 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/lib1/Makefile.am b/externals/grill/flext/tutorial/lib1/Makefile.am index 990a7ff3..e9865545 100644 --- a/externals/grill/flext/tutorial/lib1/Makefile.am +++ b/externals/grill/flext/tutorial/lib1/Makefile.am @@ -8,20 +8,20 @@ NAME = lib1 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/signal1/Makefile.am b/externals/grill/flext/tutorial/signal1/Makefile.am index 8d0b9ef5..98c237c0 100644 --- a/externals/grill/flext/tutorial/signal1/Makefile.am +++ b/externals/grill/flext/tutorial/signal1/Makefile.am @@ -8,20 +8,20 @@ NAME = signal1 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/signal2/Makefile.am b/externals/grill/flext/tutorial/signal2/Makefile.am index 6f246497..30ccfda0 100644 --- a/externals/grill/flext/tutorial/signal2/Makefile.am +++ b/externals/grill/flext/tutorial/signal2/Makefile.am @@ -8,20 +8,20 @@ NAME = signal2 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/simple1/Makefile.am b/externals/grill/flext/tutorial/simple1/Makefile.am index 2d19d7ea..f7cb220e 100644 --- a/externals/grill/flext/tutorial/simple1/Makefile.am +++ b/externals/grill/flext/tutorial/simple1/Makefile.am @@ -8,20 +8,20 @@ NAME = simple1 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/simple2/Makefile.am b/externals/grill/flext/tutorial/simple2/Makefile.am index 777d2c95..60a3fde4 100644 --- a/externals/grill/flext/tutorial/simple2/Makefile.am +++ b/externals/grill/flext/tutorial/simple2/Makefile.am @@ -8,20 +8,20 @@ NAME = simple2 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/simple3/Makefile.am b/externals/grill/flext/tutorial/simple3/Makefile.am index 41df9488..9c610387 100644 --- a/externals/grill/flext/tutorial/simple3/Makefile.am +++ b/externals/grill/flext/tutorial/simple3/Makefile.am @@ -8,20 +8,20 @@ NAME = simple3 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/sndobj1/Makefile.am b/externals/grill/flext/tutorial/sndobj1/Makefile.am index eb7ac446..2c9b1436 100644 --- a/externals/grill/flext/tutorial/sndobj1/Makefile.am +++ b/externals/grill/flext/tutorial/sndobj1/Makefile.am @@ -8,20 +8,20 @@ NAME = sndobj1 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -36,9 +36,8 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- -if SNDOBJ all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -50,4 +49,3 @@ clean-local: install-exec-local: install ../$(TARGET) $(SYSDIR)extra -endif \ No newline at end of file diff --git a/externals/grill/flext/tutorial/stk1/Makefile.am b/externals/grill/flext/tutorial/stk1/Makefile.am index ea6e881a..dd6c86d1 100644 --- a/externals/grill/flext/tutorial/stk1/Makefile.am +++ b/externals/grill/flext/tutorial/stk1/Makefile.am @@ -8,19 +8,20 @@ NAME = stk1 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -35,9 +36,8 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- -if STK all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -49,4 +49,3 @@ clean-local: install-exec-local: install ../$(TARGET) $(SYSDIR)extra -endif \ No newline at end of file diff --git a/externals/grill/flext/tutorial/stk2/Makefile.am b/externals/grill/flext/tutorial/stk2/Makefile.am index a5293c67..93c7b6b9 100644 --- a/externals/grill/flext/tutorial/stk2/Makefile.am +++ b/externals/grill/flext/tutorial/stk2/Makefile.am @@ -8,19 +8,20 @@ NAME = stk2 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -35,9 +36,8 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- -if STK all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -49,4 +49,3 @@ clean-local: install-exec-local: install ../$(TARGET) $(SYSDIR)extra -endif \ No newline at end of file diff --git a/externals/grill/flext/tutorial/thread1/Makefile.am b/externals/grill/flext/tutorial/thread1/Makefile.am index fd5fd540..268b3625 100644 --- a/externals/grill/flext/tutorial/thread1/Makefile.am +++ b/externals/grill/flext/tutorial/thread1/Makefile.am @@ -8,20 +8,20 @@ NAME = thread1 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/thread2/Makefile.am b/externals/grill/flext/tutorial/thread2/Makefile.am index c361a450..2e5c4e09 100644 --- a/externals/grill/flext/tutorial/thread2/Makefile.am +++ b/externals/grill/flext/tutorial/thread2/Makefile.am @@ -8,20 +8,20 @@ NAME = thread2 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra diff --git a/externals/grill/flext/tutorial/timer1/Makefile.am b/externals/grill/flext/tutorial/timer1/Makefile.am index b2ba30c1..25db9868 100644 --- a/externals/grill/flext/tutorial/timer1/Makefile.am +++ b/externals/grill/flext/tutorial/timer1/Makefile.am @@ -8,20 +8,20 @@ NAME = timer1 BUILT_SOURCES = main.cpp EXTRA_DIST = main.cpp \ - $(NAME).cw \ - $(NAME).dsp \ + $(NAME).mcp \ $(NAME).vcproj CXXFLAGS = @CXXFLAGS@ \ @OPT_FLAGS@ \ @INCLUDEDIR@ \ -I../../source \ - $(DEFS) + $(DEFS) \ + -DFLEXT_SHARED LDFLAGS = @LDFLAGS@ \ $(patsubst %,-framework %,$(FRAMEWORKS)) -LIBS = @LIBS@ +LIBS = @LIBS@ -lflext FRAMEWORKS = @FRAMEWORKS@ @@ -37,7 +37,7 @@ SYSDIR = @SYSDIR@ # ----------------------------- targets -------------------------------- all-local: $(OBJECTS) - $(CXX) $(LDFLAGS) -shared ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) + $(CXX) $(LDFLAGS) ./*.@OBJEXT@ $(LIBS) -o ../$(TARGETDIR)/$(TARGET) strip --strip-unneeded ../$(TARGETDIR)/$(TARGET) ./%.@OBJEXT@ : %.cpp @@ -48,4 +48,4 @@ clean-local: rm -f ./$(OBJECTS) install-exec-local: - install ../$(TARGET) $(SYSDIR)extra \ No newline at end of file + install ../$(TARGET) $(SYSDIR)extra -- cgit v1.2.1