aboutsummaryrefslogtreecommitdiff
path: root/externals/build/README
blob: 250e69189900c6e4d1953db807b172592885e88b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
PD externals build system
=========================

To build, cd to the platform directory:

cd linux
cd win
cd darwin
cd irix

and type make.





Build System Internals
======================

The build system is actually on top of the  different externals packages
that are in the CVS.

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"


Externals That Are Built From Multiple Files
============================================

In your "externals/build/src/OBJECT.c" 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"


Help Files
==========

The help files are copied to "externals/build/doc" by the makefile that is in
that directory.  To add yours, create a line that copies your help files to
"externals/build/doc".  Currently the list of help files to be added in this
makefile is in alphabetical order by directory name.


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.