$Id$ README JILIO 12/13/05 D. Lawrence This directory contains source and script to implement object I/O using the JIL package. Since the information used to make the serializers is obtained from executables that have already been compiled and linked, a more complicated build scheme is used here. In order to minimize redundant information in the respository, the serializer methods and headers are not kept there at all and must be generated from the header files in ../include. Here is a description of the build process for JILIO: 1. The default Makefile is used to do two things 1.) run the make_serializers script found in this directory and 2.) invoke gmake using Makefile.bms. It also has a "clean" target that removes all generated files and then inokes "make clean" using Makefile.bms. It is done this way because "make_serializers" may or may not update the hd_serializers.xml file. In order for gmake to use the date to determine whether or not to re-generate the actual serializer methods, this must be done in two stages (i.e. two Makefiles). 2. The make_serializers script builds a temporary executable and then mines the class information from it. It does this in a tricky way so as to avoid having to compile the entire Hall-D source tree. See the notes at the top of the make_serializers script for more details. 3. The Makefile.bms is the standard library-generating makefile, but with one extra rule that is used to generated hd_serializers.cc from hd_serializers.xml (if needed). It will also copy the hd_serializers.h and hd_classes.h headers into ../include.