petit: make argument of Write const
[omega.git] / INSTALL
blobab388f001a8ef1dae93d7ce47343218b45a207e4
2 These are the installation instructions for release 1.0 of the Omega
3 Library, Omega Calculator, and Petit.
8 GETTING IT
10 All files are available in the directory ftp://ftp.cs.umd.edu/pub/omega.
12 There are a number of different things you can make.
14   Executables:
15      oc: The Omega Calculator.  Text interface to the Omega library and the
16          code generation library.
17         DEMO: omega_calc_sparc_demo.tar.gz
18         SOURCE NEEDED: omega_calc.tar.gz, omega_library.tar.gz, code_gen.tar.gz
19   
20      Petit: Our extended version of Michael Wolfe's Tiny tool.  A research
21             tool for dependence analysis and program transformations.  
22         DEMO: petit_sparc_demo.tar.gz
23         SOURCE NEEDED: petit.tar.gz, omega_library.tar.gz,
24                        code_gen.tar.gz, uniform.tar.gz
25         
27   Libraries:
28     libomega.a: The Omega library, contains relation operations and presburger
29                 arithmetic code. 
30         SOURCE NEEDED: omega_library.tar.gz
31     libcode_gen.a: Library for generating code to scan the solutions of a set.
32         SOURCE NEEDED: code_gen.tar.gz, omega_library.tar.gz
33     libuniform.a: The Uniform library, a source to source parallelizing 
34       transformation system, described in Wayne Kelly's Ph.D. dissertation.
35         SOURCE NEEDED: uniform.tar.gz, omega_library.tar.gz, optionally petit
37 UNPACKING 
39 You should unpack all tar files in the same directory; they will unpack as:  
41 omega/  Root of the Omega system, contains makefiles, information files.
42      omega_lib/    The Omega Library.
43      basic/        Data structures for the library; included in
44                    the omega_library.tar file.
45      omega_calc/   The Omega Calculator.
46      petit/        The Petit tool.
47      code_gen/     Code generation library
48      uniform/      Uniform library
50 Each library or executable's directory will have subdirectories of
51 src/, include/, and obj/.
53 Users with code that uses previous versions of the Omega library may
54 need to make some changes to their code in order to comply with the new
55 functions for checking subsets, satisfiability, and tautologies.
60 BUILDING 
62 Requirements: 
63     C++ compiler: You will need a C++ compiler; G++ and SunPro CC
64            are currently the only ones known to work, but others may work
65            as well.
66     Make:  If you have GNU Make (gmake), you should use it; other
67            makes may work, but may have trouble either with the include
68            syntax, or with the pattern-match rules in the Makefiles.
69     Motif: If you want to build petit, then you will need to have the 
70            Motif libraries and include files.  You can build a
71            command-line version by specifying -DBATCH_ONLY_PETIT in
72            COMPILER_CFLAGS.
73     Flex and Bison: flex and bison are required if you want to modify
74            the grammars, but not otherwise.
76 1. Edit omega/Makefile.config.  This has a few things to edit,
77 such as location of system-specific files, and options for different
78 operating systems. 
80 2. Do "make depend" in the omega directory.
82 3. Choose a target, and make it.  
83    Targets are: oc, petit, libomega.a, and libcode_gen.a.
85    You can also change to the target's obj/ subdirectory, for example
86    omega/omega_calc/obj/, and do a "make" there.
88 4. You can use the items in place (they will be left in their respective
89    obj/ directories), move them someplace you want, or use the install
90    procedure in the INSTALLATION section.
95 TROUBLESHOTING
97 Make trouble:
98   You may run into trouble if your make does not support % rules or 
99   the particular include syntax in our makefiles.  The easiest
100   solution is to switch to GNU make (gmake).  If that is not an
101   option, the first problem can be overcome by making symbolic links
102   to all ../src files from each obj/ directory.  The second can be
103   overcome by editing each Makefile and Makefile.rules to change 
104   the include syntax to one your make supports.
106 Warnings from g++272
107   We are aware of the large number of warnings, which result from changes
108   made to the C++ language by the ANSI committee.  The resulting object
109   files are correct.  We're working on this problem and hope to address
110   it in a future release.
112 Other trouble
113   We haven't anticipated any other problems you might have, so for any
114   other problems you have, write to omega@cs.umd.edu.
119 INSTALLATION
121 If you want to install the library in a public directory, you need to
122 set a DESTDIR in Makefile.config.  The files will be installed as:
124 DESTDIR/    Installation root      
125   lib/      All library files go here (libomega.a, libcode_gen.a)
126   include/  
127     omega.h         Main omega include file.
128     omega/          Omega library includes.
129     basic/          Basic includes.
130     code_gen/       Code generation includes.
131   bin/      Binaries (oc, petit)
133 You can change the relative layout of these files by editing the other
134 destination variables in Makefile.config.
139 DOCUMENTATION AND QUESTIONS
141 Documentation for the Omega calculator is in omega/omega_calc/doc;
142 Omega library are docs in omega/omega_lib/doc; documentation for petit
143 is in omega/petit/doc.  There are also README files in the omega_calc/
144 and petit/ directories.
146 You can also visit our web site at:
147   <URL: http://www.cs.umd.edu/projects/omega/>.
149 If you have any problems, questions, or comments about installation,
150 please send us email at omega@cs.umd.edu.  We'd like to fix any
151 problems you run into for future releases.