diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2016-10-17 15:22:52 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2016-10-17 15:22:52 (GMT) |
commit | 7dd9b970cec6832b8f6118dc2dd91a08d2836648 (patch) | |
tree | 4b3c86596ab87f35a3c6213397da07afe1e24d3e /ast/Notes | |
parent | d7bf7c61e8507e3cf51f195392c0f41f27ae18d8 (diff) | |
parent | 7fde2daeed593684120d75de07598154f3ddaf2c (diff) | |
download | blt-7dd9b970cec6832b8f6118dc2dd91a08d2836648.zip blt-7dd9b970cec6832b8f6118dc2dd91a08d2836648.tar.gz blt-7dd9b970cec6832b8f6118dc2dd91a08d2836648.tar.bz2 |
Merge commit '7fde2daeed593684120d75de07598154f3ddaf2c' as 'ast'
Diffstat (limited to 'ast/Notes')
-rw-r--r-- | ast/Notes | 105 |
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). |