lib/stream/README

 lib/stream directory exists for creating iostream library linkage file
src/libstrm.cxx and src/libstrm.h. These files contain interface methods
for iostream library. You can create those by doing 'make' under this 
directory. Usually nobody but only author should do this. User doesn't
need to recognize this.

 Just in case, your environment has special iostream implementation that
prevent you from using src/libstrm.cxx, here is an outline of how you can
create src/libstrm.cxx. You can refer to the files in lib/stream directory
as example.


 1) Compile cint using src/fakestrm.cxx

   First, you need to compile cint object. 

   To do this without src/libstrm.cxx copy src/fakestrm.cxx and 
   src/fakestrm.h to src/libstrm.cxx and src/libstrm.h. 

   Small modification is needed in src/newlink.c. There is a macro
   #define G__N_EXPLICITDESTRUCTOR defined at the beginning of newlink.c.
   Please comment this out. This may not be necessary, but just in case to
   avoid g++ compiler bug. If you do not use g++, it may be OK to keep
   G__N_EXPLICITDESTRUCTOR alive.

   You can follow regular installation procedure after this.

 2) Create directory

   Create lib/XXstream to create src/libstrm.cxx of your own.

 3) Copy iostream.h

   Copy iostream.h and other files that is needed for iostream library 
   from compiler's include directory to lib/XXstream directory. Create a
   header file that includes all of them. For example,

     // iostr.h
     #include "iostream.h"
     #include "stream.h"
     #include "fstream.h"
     #include "strm.h"

 4) Try and Error

   The header files you copied may contain the compiler's system dependent
   keywords and special features. Or cint's syntax limitation or bug may
   cause problems. Please try following command to create libstrm.cxx and
   libstrm.h.  You will find many problems here that you need to corp with.
   Modify header files until this goes well.

    $ cint -nlibstrm.cxx -NG__stream -D__MAKECINT__ -c-1 -I. iostr.h


 5) Copy libstrm.cxx, libstrm.h to src directory

   Copy libstrm.cxx and libstrm.h to src directory and try compiling them.
   If you find problems there, go back to step 3).


 6) Restore src/newlink.c and recompile cint

   If you commented out #define G__N_EXPLICITDESTRUCTOR in step 1)
   restore it and recompile cint.

