-
Notifications
You must be signed in to change notification settings - Fork 11
/
Notes
105 lines (81 loc) · 4.5 KB
/
Notes
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
Random notes about the autoconfing of AST
Initial version imported from a tarball supplied by DSB. The tarball
contained David's RCS repository plus the development directory (dev/)
and the `reference' directory (ref/) which contains a checkout of the
RCS repository. The development directory contains working versions
of the files in the reference directory, plus miscellaneous test files
and notes, plus copies of sdt.tar.Z (the RCS wrapper which has long
been used for AST development) and sst_source.tar.Z (the documentation
builder).
The RCS repository was dropped into the CVS repository on 14 November
2003, and tagged with ast-3-1-0-import. After thinking a bit about
tagging policies (and writing these up on the wiki and posting to the
stardev group), I tagged this same point as
bp-dev-nxg-20031121-autoconfing and created a branch
dev-nxg-20031121-autoconfing (21 November -- busy week since the
14th...). That's the one I'll work on.
I've created configure.ac, and I've developed the build system using
reasonably current versions of the autotools (namely autoconf-2.57,
automake versions 1.6.3 or 1.7.5, and libtool versions 1.4.2 or 1.5).
There's no point jumping through hoops to use random obsolete versions
(reading old documentation, and trying to keep things forwards
compatible, untestably) simply because they're installed on RH7.3. If
anyone plans to install these newer versions, I recall that autoconf,
libtool, automake was the order that worked (it matters), and you need
to install GNU m4 first on Solaris or Alpha
Created starlink.m4, which includes macro STAR_FACILITY_CODE which
facilitates declaring the `err' facility code which has been allocated
to this library. This also AC_SUBSTs the variable ERR_FACILITY_CODE,
and I've moved ast_err.msg and error.h to the corresponding .in files,
modified them to have that code inserted, and put them in
AC_CONFIG_FILES. This file should be moved to a central location when
I work out where such a central location should be. At that point,
./bootstrap should be edited to contain that location.
The two files in grp.make's F_ROUTINES group, object.f and frame.f,
don't appear to be used anywhere. I've omitted them in Makefile.am
Building AST
------------
To build AST directly from the repository, you need reasonably current
versions of the autotools (as noted above). If anyone plans to
install these newer versions, I recall that autoconf, libtool,
automake was the order that worked (it matters), and you need to
install GNU m4 first on Solaris or Alpha.
Recall the discussion we had on stardev about autotools and generated
files. I have now checked in the generated files configure,
config.h.in and Makefile.in. Later, I'll either add the fixes I added
to autoastrom to make the `missing' script work, or see if there's a
more supported way to do that. With those fixes and additions, it
_will_not_matter_ which autotools versions you have, as long as you
don't have to alter Makefile.am or configure.ac, and in any case it
the autotools are completely unneeded for building from the
distribution tarball.
To build from the repository, do
./bootstrap
./configure
make
Conventions and facilities so far
---------------------------------
The version number is set in the AC_INIT line in configure.ac, and
propagated from there to the locations where it's needed.
The string @STAR_BOILERPLATE@ must be in Makefile.{am,in}. All this
does at present is include boilerplate for calling messgen _if_
STAR_FACILITY_CODE is present (which it is, for AST).
configure.ac should have STAR_DEFAULTS near the beginning (sets the
default installation location to be /star rather than GNU default
/usr/local, ensures that the STARLINK environment variable is set).
STAR_FACILITY_CODE declares the error-reporting system facility code
which has been allocated to this library.
Modifications to AST files
--------------------------
ast_err.msg is now created from ast_err.msg.in, and has the facility
code declared in STAR_FACILITY_CODE edited into it at that point.
Same for error.h and error.h.in.
ast_cpp generated from ast_cpp.in with the CC edited in
makeh now calls ast_cpp through /bin/sh (avoids having to worry about
execute bits)
Versioning: The version number (as mentioned above, set in
configure.ac) is now substituted into version.h.in, broken into
major.minor-release, and version.h is included in ast.h. File
object.c now includes version.h to implement the astVersion_
function. AST_MAJOR_VERS and co removed from makeh (since they're now
included in ast.h inside version.h).