1 |
*** NOTE: this file is largely outdated. Consult the ASCEND Wiki for |
2 |
more up-to-date information. |
3 |
*** |
4 |
|
5 |
Ok, so here's the assumptions and goals. |
6 |
|
7 |
0) source directory layout:" |
8 |
blas |
9 |
linpack |
10 |
lsod |
11 |
base |
12 |
base/generic |
13 |
base/generic/[compiler, etc] |
14 |
base/unixac213 |
15 |
|
16 |
1) configure and its auxiliaries will exist in unixac213 for the 2.13 autoconf build. |
17 |
2) relative to unixac213, the source code is in ../generic. |
18 |
3) unixac213/configure may be run from *anywhere* |
19 |
and therefore the makefiles must be structured accordingly. |
20 |
4) We will require gnu make in the autoconf-based builds. |
21 |
gmake is available on all but windows now, and windows users |
22 |
generally want to use a Visual tool or jam or something other |
23 |
than autoconf anyway. |
24 |
|
25 |
Let's assume we're going to build in /tmp/ascend |
26 |
and the subversion source is in $HOME/newcmu. |
27 |
This means $HOME/newcmu/code/trunk/base/unixAC213 exists and is the home |
28 |
of the configure source for ac213 purposes. |
29 |
|
30 |
The implications of 3) are-- |
31 |
|
32 |
a) generated files will all be under /tmp/ascend, including: |
33 |
makefiles from configure, parser from yacc, .o from compiler, etc. |
34 |
b) The source is never touched by the build process, just read. |
35 |
c) If we want to blow away the build mess and start over, it's easy. |
36 |
d) configure has to have a clue or be given one. The autotools standard |
37 |
says the clue is given: --srcdir=where-the-configure-is-dir |
38 |
e) VPATH must *always* be present in the generated makefiles, |
39 |
not just when --srcdir is passed to configure. Note autoconf 2.13 |
40 |
gets rid of VPATH lines in makefiles whenever it can, as it isn't |
41 |
portable to solaris make, so we force VPATH lines to be left in |
42 |
by using a gmake-ism (VPATH := or VPATH += rather than VPATH=). |
43 |
|
44 |
|
45 |
So the build example cases that must work are: |
46 |
|
47 |
A) (build in place -- this is what we should never do, btw.) |
48 |
cd $HOME/newcmu/code/trunk/base/unixAC213; ./configure {stuff}; make; make install |
49 |
|
50 |
B) (srcdir build) |
51 |
cd /tmp/ascend; ../../home/baallan/newcmu/code/trunk/base/unixAC213/configure --srcdir=$HOME/newcmu/code/trunk/base/unixAC213 {stuff}; make; make install |
52 |
|
53 |
(B) is what Mark had working almost forever while we were at CMU, |
54 |
but under the old directory layout. When (B) works, A is the trivial |
55 |
case, so the challenge is to make B work and to use --src-dir as |
56 |
required when configuring ascend. |