Update of /cvsroot/pure-data/externals/build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15090
Modified Files: README TODO Log Message: updated docs to discuss multiple files and including libs
Index: README =================================================================== RCS file: /cvsroot/pure-data/externals/build/README,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** README 25 Oct 2002 17:04:46 -0000 1.3 --- README 11 Apr 2005 23:35:55 -0000 1.4 *************** *** 22,42 ****
Every external (the source code) is linked into the "src" directory. ! In order to be platform independent this is done via c-includes.
Then the build system just tries to build every external that it finds in "src".
- Problems with this approach: - - it can't be applied to externals that use additional libraries. - - it might be hard for externals that use several source files - (not always, look at src/ann.c) - - I could not find a way how this should work on windows with nmake .. - for now I just put the windows links in build/win/*.c ...
! Guenter
--- 22,72 ----
Every external (the source code) is linked into the "src" directory. ! In order for the paths to be platform independent, this is done via c-includes.
Then the build system just tries to build every external that it finds in "src".
! Externals That Need Libraries ! ============================= ! ! In order to add an external that needs libraries to this build system, create ! a "libs" file with the exact same name as the source file (i.e. oggread~.c and ! oggread~.libs). If the .libs file has cross-platforms library options, it ! should go into externals/build/src. .libs files for platform-specific library ! options go in externals/build/PLATFORM (see TODO, this is totally implemented). ! ! ! Externals That Are Built From Multiple Files ! ============================================ ! ! In the externals/build/src/*. file, #include the other files that need to be ! compiled and linked in. See how the chaos externals are included: ! ! attract1.c:#include "../../bbogart/chaos/lyapunov.c" ! attract1.c:#include "../../bbogart/chaos/attract1.c" ! ! base.c:#include "../../bbogart/chaos/lyapunov.c" ! base.c:#include "../../bbogart/chaos/base.c" ! ! base3.c:#include "../../bbogart/chaos/lyapunov.c" ! base3.c:#include "../../bbogart/chaos/base3.c"
+ dejong.c:#include "../../bbogart/chaos/lyapunov.c" + dejong.c:#include "../../bbogart/chaos/dejong.c"
+ Problems with this approach + =========================== + - no way to use autoconf/automake + + - it might be hard for externals that use several source files + + - I could not find a way how this should work on windows with nmake .. + for now I just put the windows links in build/win/*.c. This should be + converted to a MinGW GNU Makefile, then it would work the same as on the + other platforms. +
Index: TODO =================================================================== RCS file: /cvsroot/pure-data/externals/build/TODO,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TODO 7 Oct 2004 20:35:05 -0000 1.1 --- TODO 11 Apr 2005 23:35:57 -0000 1.2 *************** *** 2,3 **** --- 2,19 ---- - include mp3 externals from iem_mp3 and unauthorized and make mp3*.libs files
+ - put objects with conflicting names into a directory namespace + + maxlib/scale + Gem/scale + iem/prepend + cxc/prepend + flext/prepend + + - move .libs files to externals/build/src from externals/build/PLATFORM. The + platform-specific makefiles copy them before compiling. If a + platform-specific .libs file is needed, create it in the + externals/build/PLATFORM directory. The makefiles will use both: + `test -f $*.libs && cat $*.libs` `test -f ../src/$*.libs && cat ../src/$*.libs` + + - make MinGW makefile for "win" so that the GNU Makefile method will be + standard on all platforms.