[PD-cvs] externals/build README,1.3,1.4 TODO,1.1,1.2
Hans-Christoph Steiner
eighthave at users.sourceforge.net
Tue Apr 12 01:35:59 CEST 2005
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.
More information about the Pd-cvs
mailing list