initial
[prop.git] / INSTALL
blob3a43749d93a4767a855113d7cc5126060f7a29ed
1 To install Prop, just perform the following steps.
3 (0)  You'll need the following gzip'ed and tar'ed file:
4  
5          prop-XXX.tar.gz  (around 800+ kbytes)
7      Unzip and untar the file with 
9          gzip -d <prop-XXX.tar.gz | tar -xvf - 
11      in an appropriate directory.
13      The directories are:
15      include/          The include files for the libraries
16      lib-src/          The source files for the libraries
17      prop-src/         The source files for the Prop translator 
18      tools/            The source files for related tools
20 (1)  Run ``make config''
22 (2)  Edit the file lib-src/Makefile and change the options to your liking.
23      The default assumes GNU's g++ is used and it compiles everything with 
24      debugging info off.  You may want to turn this on if debugging
25      is needed.   This makefile affects the library.
27      If you don't want/need to use the library for your own development
28      then it really doesn't matter much which options you choose, since    
29      the code generated by Prop will only use a tiny part of the library
30      for support.   
32 (3)  Edit the file prop-src/Makefile to do the same customizing.
33      This affects only the Prop compiler itself.
35 (4)  Now run ``make build'' from this directory.   This will proceed
36      to create the library, then the prop compiler.  This may take a while.
37      You'll need gnumake for this.
39 (5)  If compilation succeeds, you can now run the testing procedure by
40      typing ``make test.''  This will proceed to regenerate the prop
41      generated files within the release with your new compiler and test
42      if they match.  
44 (6)  The next step is to compile and run the test programs.
45      Simply run ``make testall'' to compile the test programs.
46      WARNING: unless garbage collection works on your platform, you
47      will get segmentation faults.
49 (7)  Assuming nothing goes wrong.  You can now complete the final installation
50      step.   Edit the top level Makefile and change the variables
51      TARGET_BIN_DIR, TARGET_LIB_DIR and TARGET_INCLUDE_DIR if needed.
53      Run ``make install'' or ``make full-install''.   
54      By default, the executables, libraries
55      and include files will go to /usr/local/{bin,lib,include}.
57      'Full install' differs from install in that the entire include
58      directory hierarchy will be copied to $(TARGET_INCLUDE_DIR).
59      With 'install', only a symbolic link will be created; so with 'install'
60      you cannot delete the distribution after installation.
62 (8)  Run ``make spotless'' to remove all object files and other
63      intermediate files.  WARNING!!!  If you do this, you will not be able to
64      rebuild the system if installation is not successful.
66 (9)  Now tell your friends and family about this great tool :-)
68 (10) The included ``documentation'' is incomplete and misleading.
70 Allen Leung
71 Jan 1997  
73 ------------------------------------------------------------------------------
74 Important for g++ users
76 There is a problem with template instantiation in releases 2.6.1 - 2.6.3
77 of g++.  If you get multiple template instantiations during link time,
78 then you have the bug/misfeature.
80 To get around this problem, try adding 
82     -fno-implicit-templates 
84 as an extra command line argument to g++.
86 If you have already built the library, try deleting all the .o files
87 and recompile.
88 ------------------------------------------------------------------------------
89 Problems with garbage collection classes in <AD/gc>
91    Reconfiguration may be required to get these classes to work since
92 garbage collection is intimately tied with the OS and the architecture.
93 You can edit the file <AD/gc/gcconfig.h> to customize the parameters.
95    If garbage collection is not needed then you may skip over this
96 area by commenting out the appropriate lines in the file src/Makefile.
98 ------------------------------------------------------------------------------
99 2/26/97.
101 Thanks to Paul Dietz at dietz@mothost.mot.com GC now appears to work
102 on Solaris.