summaryrefslogtreecommitdiffstats
path: root/ast/Notes
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2016-10-17 15:22:52 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2016-10-17 15:22:52 (GMT)
commit7dd9b970cec6832b8f6118dc2dd91a08d2836648 (patch)
tree4b3c86596ab87f35a3c6213397da07afe1e24d3e /ast/Notes
parentd7bf7c61e8507e3cf51f195392c0f41f27ae18d8 (diff)
parent7fde2daeed593684120d75de07598154f3ddaf2c (diff)
downloadblt-7dd9b970cec6832b8f6118dc2dd91a08d2836648.zip
blt-7dd9b970cec6832b8f6118dc2dd91a08d2836648.tar.gz
blt-7dd9b970cec6832b8f6118dc2dd91a08d2836648.tar.bz2
Merge commit '7fde2daeed593684120d75de07598154f3ddaf2c' as 'ast'
Diffstat (limited to 'ast/Notes')
-rw-r--r--ast/Notes105
1 files changed, 105 insertions, 0 deletions
diff --git a/ast/Notes b/ast/Notes
new file mode 100644
index 0000000..bb4ac0e
--- /dev/null
+++ b/ast/Notes
@@ -0,0 +1,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).