Update of /cvsroot/pure-data/externals/grill/flext In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12682
Modified Files: AUTHORS INSTALL NEWS build.bat build.sh changes.txt configure.ac flext.doxy license.txt package.txt readme.txt Added Files: build.txt Log Message: made default configurations generic two more flext tutorials fixes for Max headers cleanups updated build system updated tutorials revised the documentation updated for OSX upgraded version number
Index: changes.txt =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/changes.txt,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** changes.txt 3 Jan 2005 05:00:25 -0000 1.66 --- changes.txt 5 Jan 2005 05:04:07 -0000 1.67 *************** *** 14,18 **** Version history:
! 0.4.8: - fixes for 64 bit builds (size_t is integer type of pointer size) - finally added a autoconf system (many many thanks to Tim Blechmann) --- 14,18 ---- Version history:
! 0.5.0: - fixes for 64 bit builds (size_t is integer type of pointer size) - finally added a autoconf system (many many thanks to Tim Blechmann) *************** *** 322,335 **** TODO list:
- for 0.4.8: - - SIMD for gcc - - Max/MSP MachO support - - for 0.5.0: - optimizations for object initialization and messaging
bugs: - - recreation of object with different argument line forgets about eventually present attributes - - can't use MFC libraries because of global new and delete overloadings
--- 322,329 ---- TODO list:
- optimizations for object initialization and messaging + - SIMD for gcc
bugs: - can't use MFC libraries because of global new and delete overloadings
Index: build.bat =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/build.bat,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** build.bat 4 Jan 2005 04:58:46 -0000 1.3 --- build.bat 5 Jan 2005 05:04:07 -0000 1.4 *************** *** 1,40 **** ! @set flext=%~dp0
! @rem Arguments: ! @rem %1 - platform (win/lnx/mac) ! @rem %2 - system (pd/max) ! @rem %3 - compiler (msvc/gcc/mingw/cygwin/bcc/icc) ! @rem %4 - target (build/clean/install)
! @set platform=%1 ! @set rtsys=%2 ! @set compiler=%3 ! @set target=%4
! @rem --- The subbatch knowns which make utility to use --- ! @set subbatch=%flext%buildsys\build-%compiler%.bat
! @if "%platform%"=="" goto syntax ! @if "%rtsys%"=="" goto syntax ! @if "%compiler%"=="" goto syntax
! @if not exist %subbatch% goto syntax
! @call %subpatch% %subbatch% %platform% %rtsys% %target% %5 %6 %7 %8 %9
! @goto end
! @rem ----------------------------------------- :syntax
! @echo . ! @echo SYNTAX: build [platform] [system] [compiler] {target} ! @echo platform ... win / lnx / mac ! @echo system ... pd / max ! @echo compiler ... msvc / gcc / mingw / cygwin / bcc / icc ! @echo target ... all (default) / clean / install ! @echo . ! @echo Please make sure that your make program and compiler can be accessed with the ! @echo system path and that all relevant environment variables are properly set.
:end --- 1,58 ---- ! @echo off
! rem ! rem flext - C++ layer for Max/MSP and pd (pure data) externals ! rem ! rem Copyright (c) 2001-2005 Thomas Grill (gr@grrrr.org) ! rem For information on usage and redistribution, and for a DISCLAIMER OF ALL ! rem WARRANTIES, see the file, "license.txt," in this distribution. ! rem ! rem more information on http://grrrr.org/ext ! rem ------------------------------------------------------------------------ ! rem ! rem To build flext or flext-based externals simply run this script. ! rem Running it without arguments will print some help to the console. ! rem ! rem ------------------------------------------------------------------------
! set flext=%~dp0
! rem Arguments: ! rem %1 - platform (win/lnx/mac) ! rem %2 - system (pd/max) ! rem %3 - compiler (msvc/gcc/mingw/cygwin/bcc/icc) ! rem %4 - target (build/clean/install)
! set platform=%1 ! set rtsys=%2 ! set compiler=%3 ! set target=%4
! rem --- The subbatch knowns which make utility to use --- ! set subbatch=%flext%buildsys\build-%compiler%.bat
! if "%platform%"=="" goto syntax ! if "%rtsys%"=="" goto syntax ! if "%compiler%"=="" goto syntax
! if not exist %subbatch% goto syntax
! call %subpatch% %subbatch% %platform% %rtsys% %target% %5 %6 %7 %8 %9 ! ! goto end ! ! rem ----------------------------------------- :syntax
! echo . ! echo SYNTAX: build [platform] [system] [compiler] {target} ! echo platform ... win / lnx / mac ! echo system ... pd / max ! echo compiler ... msvc / gcc / mingw / cygwin / bcc / icc ! echo target ... all (default) / clean / install ! echo . ! echo Please make sure that your make program and compiler can be accessed with the ! echo system path and that all relevant environment variables are properly set. ! echo .
:end
--- NEW FILE: build.txt --- 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.
- 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.
Index: AUTHORS =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/AUTHORS,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AUTHORS 28 Oct 2004 04:01:37 -0000 1.1 --- AUTHORS 5 Jan 2005 05:04:07 -0000 1.2 *************** *** 1 **** ! Thomas Grill \ No newline at end of file --- 1 ---- ! Thomas Grill (gr@grrrr.org)
Index: flext.doxy =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/flext.doxy,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** flext.doxy 26 Sep 2004 22:55:14 -0000 1.11 --- flext.doxy 5 Jan 2005 05:04:07 -0000 1.12 *************** *** 5,10 **** #--------------------------------------------------------------------------- PROJECT_NAME = flext ! PROJECT_NUMBER = "version 0.4.7" ! OUTPUT_DIRECTORY = c:/data/prog/max/flext/doc/ OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = YES --- 5,10 ---- #--------------------------------------------------------------------------- PROJECT_NAME = flext ! PROJECT_NUMBER = "version 0.5.0" ! OUTPUT_DIRECTORY = c:/data/pdmax/flext/doc/ OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = YES *************** *** 63,67 **** # configuration options related to the input files #--------------------------------------------------------------------------- ! INPUT = F:/prog/max/flext/source/ FILE_PATTERNS = RECURSIVE = NO --- 63,67 ---- # configuration options related to the input files #--------------------------------------------------------------------------- ! INPUT = c:/data/pdmax/flext/source/ FILE_PATTERNS = RECURSIVE = NO
Index: configure.ac =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/configure.ac,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** configure.ac 28 Oct 2004 04:01:37 -0000 1.2 --- configure.ac 5 Jan 2005 05:04:07 -0000 1.3 *************** *** 7,11 **** API_VERSION=0:0:0
! AC_INIT([flext],[0.4.7],[gr@grrrr.org],[flext]) AM_INIT_AUTOMAKE(1.8)
--- 7,11 ---- API_VERSION=0:0:0
! AC_INIT([flext],[0.5.0],[gr@grrrr.org],[flext]) AM_INIT_AUTOMAKE(1.8)
Index: INSTALL =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/INSTALL,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** INSTALL 28 Oct 2004 04:01:37 -0000 1.1 --- INSTALL 5 Jan 2005 05:04:07 -0000 1.2 *************** *** 1,2 **** --- 1,7 ---- + These are instructions for the autoconf building system. + For the native flext build system, please see the build.txt document. + + ----------------------------------------------------------------------- + Basic Installation ==================
Index: package.txt =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/package.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** package.txt 4 Jan 2005 04:58:51 -0000 1.3 --- package.txt 5 Jan 2005 05:04:07 -0000 1.4 *************** *** 1,29 **** ! NAME=flext ! ! BUILDCLASS=flext ! BUILDMODE=all ! BUILDTYPE=all
SRCDIR=source
! PRECOMPILE=flext.h ! ! SRCS= \ ! flbase.cpp flext.cpp flbuf.cpp fldsp.cpp fllib.cpp \ ! flxlet.cpp flattr.cpp flattr_ed.cpp flsupport.cpp \ ! flutil.cpp flatom.cpp flatom_pr.cpp flthr.cpp fltimer.cpp flsimd.cpp flout.cpp \ ! flatom_app.cpp flatom_part.cpp flitem.cpp flmeth.cpp flmsg.cpp \ ! flproxy.cpp flqueue.cpp flbind.cpp ! HDRS= \ ! flprefix.h flstdc.h flbase.h flclass.h flext.h flsupport.h flmap.h fldsp.h flinternal.h \ ! fldefs.h fldefs_hdr.h fldefs_setup.h \ ! fldefs_methcb.h fldefs_meththr.h fldefs_methadd.h fldefs_methbind.h fldefs_methcall.h \ ! fldefs_attrcb.h fldefs_attrvar.h fldefs_attradd.h ! ! ! SRCS_SNDOBJ=flsndobj.cpp ! HDRS_SNDOBJ=flsndobj.h ! ! SRCS_STK=flstk.cpp ! ! HDRS_STK=flstk.h --- 1,45 ---- ! # ! # 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. ! # ! # more information on http://grrrr.org/ext ! # ------------------------------------------------------------------------ ! # ! # This file contains information for the building process ! # ! # DO NOT EDIT!! ! # ! # ------------------------------------------------------------------------ ! ! NAME=flext ! ! BUILDCLASS=flext ! BUILDMODE=all ! BUILDTYPE=all
SRCDIR=source
! PRECOMPILE=flext.h ! ! SRCS= \ ! flbase.cpp flext.cpp flbuf.cpp fldsp.cpp fllib.cpp \ ! flxlet.cpp flattr.cpp flattr_ed.cpp flsupport.cpp \ ! flutil.cpp flatom.cpp flatom_pr.cpp flthr.cpp fltimer.cpp flsimd.cpp flout.cpp \ ! flatom_app.cpp flatom_part.cpp flitem.cpp flmeth.cpp flmsg.cpp \ ! flproxy.cpp flqueue.cpp flbind.cpp ! HDRS= \ ! flprefix.h flstdc.h flbase.h flclass.h flext.h flsupport.h flmap.h fldsp.h flinternal.h \ ! fldefs.h fldefs_hdr.h fldefs_setup.h \ ! fldefs_methcb.h fldefs_meththr.h fldefs_methadd.h fldefs_methbind.h fldefs_methcall.h \ ! fldefs_attrcb.h fldefs_attrvar.h fldefs_attradd.h ! ! ! SRCS_SNDOBJ=flsndobj.cpp ! HDRS_SNDOBJ=flsndobj.h ! ! SRCS_STK=flstk.cpp ! ! HDRS_STK=flstk.h
Index: NEWS =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/NEWS,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NEWS 28 Oct 2004 04:01:37 -0000 1.1 --- NEWS 5 Jan 2005 05:04:07 -0000 1.2 *************** *** 0 **** --- 1 ---- + see changes.txt
Index: build.sh =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/build.sh,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** build.sh 3 Jan 2005 05:00:25 -0000 1.2 --- build.sh 5 Jan 2005 05:04:07 -0000 1.3 *************** *** 1,2 **** --- 1,18 ---- + #! /bin/bash + + # 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. + # + # more information on http://grrrr.org/ext + # ------------------------------------------------------------------------ + # + # To build flext or flext-based externals simply run this script. + # Running it without arguments will print some help to the console. + # + # ------------------------------------------------------------------------ + flext=${0%/*}/ if [ "$flext" = "$0"/ ]; then flext=./ ; fi *************** *** 19,23 **** [ -n "$platform" -a -n "$rtsys" -a -n "$compiler" -a -f $subbatch ] then ! sh $subbatch $platform $rtsys $target $5 $6 $7 $8 $9 else echo --- 35,39 ---- [ -n "$platform" -a -n "$rtsys" -a -n "$compiler" -a -f $subbatch ] then ! bash $subbatch $platform $rtsys $target $5 $6 $7 $8 $9 else echo *************** *** 30,33 **** --- 46,50 ---- echo Please make sure that your make program and compiler can be accessed with the echo system path and that all relevant environment variables are properly set. + echo fi
Index: license.txt =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/license.txt,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** license.txt 1 Jan 2003 04:32:04 -0000 1.2 --- license.txt 5 Jan 2005 05:04:07 -0000 1.3 *************** *** 1,4 **** flext - C++ layer for Max/MSP and pd (pure data) externals ! Copyright (C) 2001-2003 Thomas Grill
This program is free software; you can redistribute it and/or --- 1,4 ---- flext - C++ layer for Max/MSP and pd (pure data) externals ! Copyright (C) 2001-2005 Thomas Grill
This program is free software; you can redistribute it and/or *************** *** 17,49 ****
In the official flext distribution, the GNU General Public License is ! in the file gpl.txt ! ! --------------------------------------------------------- ! ! OTHER COPYRIGHT NOTICES ! ! --------------------------------------------------------- ! This package uses a lot of code from GEM by Mark Danks ! See the license text below: ! ! --- GEM -------------------------------------- ! GEM - Graphics Environment for Multimedia ! Copyright (C) 1997-2000 Mark Danks ! ! This program is free software; you can redistribute it and/or ! modify it under the terms of the GNU General Public License ! as published by the Free Software Foundation; either version 2 ! of the License, or (at your option) any later version. ! ! This program is distributed in the hope that it will be useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! GNU General Public License for more details. ! ! You should have received a copy of the GNU General Public License ! along with this program; if not, write to the Free Software ! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! ! In the official GEM distribution, the GNU General Public License is ! in the file GnuGPL.LICENSE ! --- 17,19 ----
In the official flext distribution, the GNU General Public License is ! in the file gpl.txt \ No newline at end of file
Index: readme.txt =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/readme.txt,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** readme.txt 24 Aug 2004 02:34:30 -0000 1.47 --- readme.txt 5 Jan 2005 05:04:07 -0000 1.48 *************** *** 1,5 **** flext - C++ layer for Max/MSP and pd (pure data) externals
! Copyright (c) 2001-2004 Thomas Grill (xovo@gmx.net) For information on usage and redistribution, and for a DISCLAIMER OF ALL WARRANTIES, see the file, "license.txt," in this distribution. --- 1,5 ---- 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. *************** *** 9,150 ****
Donations for further development of the package are highly appreciated. ! Visit https://www.paypal.com/xclick/business=t.grill%40gmx.net&item_name=flext...
----------------------------------------------------------------------------
! o for PD you need the pd source code (which is most likely part of the distribution) ! download from: http://www-crca.ucsd.edu/~msp/software.html
! o for Max/MSP you will also need the Max/MSP SDK for OS9 (http://www.cycling74.com/products/dlmaxmsp.html) ! or OSX (http://www.cycling74.com/products/dlxmax.html) ! and for threading the Multiprocessing library (download at http://developer.apple.com/sdk/)
! o 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 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 & INSTALLING: ! ====================== ! ! ! pd - Windows: ! ------------- ! o Microsoft Visual C++ 6 or 7: ! edit "config-pd-msvc.txt" ! start a dos-shell (cmd.exe) and set the compiler environment (vcvars32.bat) ! run "build-pd-msvc.bat" ! ! o Borland C++ 5.5 (free): ! edit "config-pd-bcc.txt" and run "build-pd-bcc.bat" ! BCC++ currently supports non-threaded static flext libraries only ! ! o Cygwin: edit "config-pd-cygwin.txt" & run "sh build-pd-cygwin.sh" ! additional settings (e.g. target processor, compiler flags) can be made in makefile.pd-cygwin ! ! o MinGW: edit "config-pd-mingw.txt" & run "build-pd-mingw.bat" ! the MinGW binaries have to be in the PATH ! additional settings (e.g. target processor, compiler flags) can be made in makefile.pd-mingw ! MinGW currently supports non-threaded static flext libraries only ! ! ! With your project using flext, be sure to define "FLEXT_SYS=2". ! ! ! pd - linux: ! ----------- ! o GCC,ICC: edit "config-pd-linux.txt" & run "sh build-pd-linux.sh" ! additional settings (e.g. target processor, compiler flags) can be made in makefile.pd-linux ! ! Several variations of the flext library will be built: release and debug version of single-threaded and multi-threaded static libraries and of a multi-threaded shared library, respectively. ! These will be installed into the flext directory given in config-pd-linux.txt. For the shared libraries to be found, be sure to specify the flext folder in the /etc/ld.so.conf. ! ! ! With your project using flext, be sure to define "FLEXT_SYS=2". ! ! ! pd - MacOSX: ! ----------- ! o GCC: edit "config-pd-darwin.txt" & run "sh build-pd-darwin.sh" ! additional settings (e.g. target processor, compiler flags) can be made in makefile.pd-darwin ! ! ! With your project using flext, be sure to define "FLEXT_SYS=2". ! ! ! Max/MSP - Windows: ! ------------------ ! o Microsoft Visual C++ 6 or 7: edit "config-max-msvc.txt" & run "build-max-msvc.bat" ! ! ! With your project using flext, be sure to define "FLEXT_SYS=1". ! ! ! Max/MSP - MacOS 9: ! ------------------ ! o Metrowerks CodeWarrior: edit & use the "flext.cw" project file ! ! You must 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, be sure to define "FLEXT_SYS=1" ! - alternatively use the prefix file "flcwmax.h" or "flcwmax-thr.h" for threading support. ! ! ! Max/MSP - MacOSX: ! ------------------ ! o Metrowerks CodeWarrior: edit & use the "flext.cw" project file
! Be sure to have the latest Max/MSK SDK downloadable from http://www.cycling74.com ! You should use "version 4.5 headers" rather than "version 4.3 headers".
! You must 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 ! "MP SDK" - Pointing to the Multiprocessing SDK (for threading support)
! Note: Some parts of the Max/MSP SDK may not be compliant to the C standard. ! If you get errors for lines like ! #endif _MOTO_ ! You should changes all of these to ! #endif /* _MOTO_ */
! o GCC: edit "config-max-darwin.txt" & run "sh build-max-darwin.sh" ! additional settings (e.g. target processor, compiler flags) can be made in makefile.max-darwin
! With your project using flext, be sure to define "FLEXT_SYS=1" ! - alternatively use the prefix file "flcwmax-x.h" or "flcwmax-x-thr.h" for threading support.
----------------------------------------------------------------------------
! Goals/features of the package:
! pros: ! - better readability of code compared to straight C externals ! - faster development, more robust coding ! - sharing of common methods and data by using base classes ! - any input to any inlet (with the exception of signal streams) ! - transparent use of threads for methods ! - libraries of externals in MaxMSP ! - more than 3 typed creation arguments possible for MaxMSP
! cons: ! - introduces a small overhead to speed of message handling ! - overhead in object size (due to possibly unneeded code)
! see flext.h, fldefs.h and flclass.h for the documented base definitions and classes
--- 9,85 ----
Donations for further development of the package are highly appreciated. ! https://www.paypal.com/xclick/business=t.grill%40gmx.net&item_name=flext...
----------------------------------------------------------------------------
! Abstract:
! flext seeks to represent a uniform programming interface for extending the most common ! modular real-time audio systems Max/MSP and Pure Data (PD) with external modules, or ! short externals. These modules provide a way to tailor such a system for ones ! special needs and supply additional functionality.
! Source code based on flext is able to exploit nearly all features of the ! respective real-time framework while staying completely independent of the ! actual host system and platform (hardware and operating system).
! flext currently supports development for PD under Linux, Windows and OSX as well as ! Max/MSP under OS9, OSX and Windows with various programming environments.
----------------------------------------------------------------------------
+ Goals/features of the package:
! pros: ! - better readability of code compared to straight C externals ! - faster development, more robust coding ! - sharing of common methods and data by using base classes ! - any input to any inlet (with the exception of signal streams) ! - transparent use of threads for methods ! - libraries of externals in Max/MSP ! - more than 3 typed creation arguments possible for Max/MSP
! cons: ! - introduces a small overhead to speed of message and signal handling ! - overhead in object size (due to possibly unneeded code)
! ----------------------------------------------------------------------------
! 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"
----------------------------------------------------------------------------
! Building and installing of flext and flext-based externals:
! Read the build.txt document
! ----------------------------------------------------------------------------
! History of changes:
+ Read the changes.txt document