source: git/factory/INSTALL @ 9189ab6

fieker-DuValspielwiese
Last change on this file since 9189ab6 was b7ef56, checked in by Jens Schmidt <schmidt@…>, 26 years ago
* INSTALL, README: doc fixes for the Windows NT port git-svn-id: file:///usr/local/Singular/svn/trunk@950 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 11.0 KB
Line 
1
2
3      --- This `INSTALL' file corresponds to Factory version 1.3b ---
4
5
6                         INSTALL file for Factory
7                         ========================
8
9NOTE: The copyright state of Factory is still unclear.  Sooner or later it
10will be free software, but by now please do *not* distribute the sources.
11
12
13Overview                                Installation for the impatient
14========                                ==============================
151. Configuring Factory                  ./configure
162. Building Factory                     make all
173. Creating GF(q) Tables                make gftables
184. Installing Factory                   make install
195. Installing GF(q) Tables              make installgftables
206. Testing Installation of Factory      make installtest
21
22
231. Configuring Factory
24======================
25  The `configure' shell script attempts to guess correct values for various
26system-dependent variables used during compilation.  It uses those values
27to create a `GNUmakefile' and a `config.h' file containing system-dependent
28definitions.  Finally, it creates a shell script `config.status' that you
29can run in the future to recreate the current configuration, a file
30`config.cache' that saves the results of its tests to speed up
31reconfiguring, and a file `config.log' containing compiler output (useful
32mainly for debugging `configure').
33
34  If you need to do unusual things to compile the package, please try to
35figure out how `configure' could check whether to do them, and mail diffs
36or instructions to the address given in the `README' file so they can be
37considered for the next release.  If at some point `config.cache' contains
38results you don't want to keep, you may remove or edit it.
39
40  The file `configure.in' is used to create `configure' by a program called
41`autoconf'.  You only need `configure.in' if you want to change it or
42regenerate `configure' using a newer version of `autoconf'.
43
44  Normally, `configure's guesses are correct.  However, you may want to
45check the values it came up with.  Especially the way `configure' tries to
46figure out the path to the GF(q) tables (`GFTABLEDIR') may be fooled in
47some circumstances.  See the marked sections in the files `config.h' and
48`GNUmakefile' which configure created.  See also the description of the
49`GNUmakefile' target `installtest', which, among others, tests the
50installation of the GF(q) tables.
51
52Compiler options
53----------------
54  Some systems require unusual options for compilation or linking that the
55`configure' script does not know about.  You can give `configure' initial
56values for variables by setting them in the environment.  Using a
57Bourne-compatible shell, you can do that on the command line like this:
58
59  CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
60
61Or on systems that have the `env' program, you can do it like this:
62
63  env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
64
65  In contrast to the GNU-world, Factory is translated with `CFLAGS=-O2
66-fomit-frame-pointer' `CXXFLAGS=-O2 -fomit-frame-pointer' by default.  If
67you do not like this, run `configure' with
68
69  CFLAGS='-g -O' CXXFLAGS='-g -O' ./configure
70
71Specifying source and installation directories
72----------------------------------------------
73  `configure' recognizes the `--srcdir=<srcdir>' option and looks in
74<srcdir> for the source files when building Factory.  This is useful if you
75want to translate Factory with different configurations (see the
76corresponding section).
77
78  By default, `make install' will install the package's files in
79`/usr/local/lib', `/usr/local/include', etc.  You can specify an
80installation prefix other than `/usr/local' by giving `configure' the
81option `--prefix=<path>'.
82  You can specify separate installation prefixes for architecture-specific
83files and architecture-independent files.  If you give configure the option
84`--exec-prefix=<path>' the package will use <path> as the prefix for
85installing the libraries.  The other data files will still use the regular
86prefix.
87
88Configuring and building Factory for different configurations
89-------------------------------------------------------------
90  The configure script that comes with Factory recognizes a number of
91additional options.  Here is a list of them which you can get entering
92`./configure --help':
93
94  --with-memman(=<memman>) specify Factory memory manager.
95                          <memman> is either `old' (default), `new', or `no'.
96  --with-gmp(=<gmp_inc_path>(,<gmp_lib_path>))
97                          specify where to find gmp library.
98  --with-Singular         build for use with computer algebra system Singular.
99  --disable-streamio      build Factory without stream IO
100  --enable-memdebug=<level> switch on memory management debugging.  Meaningful
101                          with `--with-memman=new' only.  <level> may be either
102                          `no' (default), `normal', or `full'.
103  --enable-assertions     build Factory with assertions activated
104  --enable-timing         build Factory so it will print timing information
105  --enable-debugoutput    build Factory so it will print debugging information
106  --enable-gmp            together with `--with-Singular' means: installation
107                          in process, be graceful when there is no `gmp.h'
108
109  For more detailed information, see the `README' file.  Note that not all
110possible combinations of the `--with's and `--enable's are meaningful.  The
111dependencies between them are described in the `README' file, too.
112
113  You can compile the package for more than one configuration at the same
114time.  I recommend to build an optimized and a debug version.  The debug
115version is much slower but includes many assertions that will show you a
116probable misuse or malfunction of the library.  Here is the sequence of
117commands necessary to do that:
118
119  # debug version
120  cd factory-<version>
121  mkdir DEBUGDIR
122  cd DEBUGDIR
123  CFLAGS=-g CXXFLAGS=-g ../configure \
124    --srcdir=.. --prefix=/usr/local/factory.dbg --enable-assertions
125  make install
126  make installgftables
127  cd ../..
128
129  # optimized version
130  cd factory-<version>
131  mkdir OPTDIR
132  cd OPTDIR
133  ../configure --srcdir=.. --prefix=/usr/local/factory.opt
134  make install
135  # Better set a symbolic link from one $(gftabledir) to the other.  The
136  # GF(q) tables are the same for all configurations.
137  make installgftables
138 
139
140Configuring for Microsoft Windows NT
141------------------------------------
142  Factory compiles on Microsoft Windows NT 4.0 with the Microsoft Visual
143C++ 5.0 compiler.  There is a preconfigured environment contained in the
144folder `winnt/' which includes `config.h', `factoryconf.h', `factory.h' and
145a Makefile `nt.mak', suitable for use under MS VC++ 5.0.  There is also a
146file called `INSTALL.nt' which contains information about how to build
147under Windows NT.
148
149Configuring for Macintosh or other non-Unix platforms
150-----------------------------------------------------
151  Factory translates on Macintosh with the Metroworks CodeWarrior compiler
152now.  If you want to build Factory on this or other non-Unix platforms you
153either have to configure `config.h' and `GNUmakefile' by hand or you have
154to create a suitable `config.cache' file and run `configure' on a machine
155that supports it.  Furthermore, you have to create the files `factory.h'
156and `factoryconf.h'.
157
158
1592. Building Factory
160===================
161  Targets/commands for building Factory:
162
163`make all'
164----------
165  Builds Factory.  According to configuration, `make all' builds only
166Factory (`make cf') or Factory and the Factory memory manager (`make cf;
167make mem').
168
169`make clean', `make mostlyclean', `make distclean'
170--------------------------------------------------
171  Deletes all files from the current directory that have been created by
172building Factory.  In addition, `make mostlyclean' deletes the GF(q) tables
173if they have been created by `make gftables'.  `make distclean' is like
174`make mostlyclean', but also deletes all files from the current directory
175that have been created by configuring.  If you have unpacked the source and
176built the program without creating any other files, `make distclean' leaves
177only the files that were in the distribution.
178
179`make TAGS'
180-----------
181  Updates a tags table for Factory.
182
183`make depend'
184-------------
185  Creates dependencies.  Once created, they will be automatically updated as
186source files change.  Intended to be used by developers.
187
188`make ftmpl_inst.o'
189-------------------
190  Creates the Factory template instantiations.  Necessary when linking
191Factory with your application.
192
193
1943. Creating GF(q) Tables
195========================
196
197NOTE: Since the format of the GF(q) tables changed from Factory Version
1981.2b to Factory Version 1.3a you should get/create them by new!
199
200There are two possibilities to get the tables:
201o Get them from the net where you got Factory from.  Unpack the archive
202  `factory-gftables.tgz' in the source directory (`factory-<version>.tgz')
203  or in the directory in which you are going to build Factory.
204o Create them using Factory itself.  Since this process does not require
205  arithmetics in GF(q) there are not any bootstrapping problems.  There
206  are two targets which accomplish this, the second depending from the
207  first:
208
209   `make gengftables'
210   ------------------
211     Creates the executable `gengftables' necessary to build the tables.
212
213   `make gftables'
214   ---------------
215     Creates a directory `gftables/' and executes `gengftables'.  This is a
216   rather time consuming process, so you may want to start it in the
217   background using `nohup' (`nohup make gftables &').
218
219
2204. Installing Factory
221=====================
222  Targets/commands for installing Factory:
223
224`make install'
225--------------
226  Builds and installs Factory.  This target also creates the directories
227in which Factory will be installed if they do not already exist.
228The files are installed in the following directories:
229
230File            Symb.Name       (Default) physical location
231------------------------------------------------------------------------
232libcf.a         $(libdir)       = /usr/local/lib
233  (Factory itself)
234libcfmem.a      $(libdir)       = /usr/local/lib
235  (Factory memory manager)
236
237factory.h       $(includedir)   = /usr/local/include
238  (Factory user interface header file)
239factoryconf.h   $(includedir)   = /usr/local/include
240  (Factory template configuration header)
241
242templates/*     $(templatedir)  = /usr/local/include/templates
243  (Factory templates)
244ftmpl_inst.cc   $(templatedir)  = /usr/local/include/templates
245  (Factory template instantiation)
246
247gftables/*      $(gftabledir)   = /usr/local/share/factory/gftables
248  (Factory GF(q) tables, installed by `make installgftables')
249
250`make uninstall'
251----------------
252  Deletes all the installed files that the install target created.  Also
253attempts to delete the directories created by the installation process.
254
255
2565. Installing GF(q) Tables
257==========================
258  Targets/commands for installing the GF(q) tables.
259
260`make installgftables'
261----------------------
262  Installs the GF(q) tables in `$(gftabledir)' ( by default this is
263`/usr/local/share/factory/gftables').
264
265`make unistallgftables'
266-----------------------
267  Uninstalls the GF(q) tables and attempts to delete the directories created
268by the installation process.
269
270
2716. Testing Installation of Factory
272==================================
273`make installtest'
274------------------
275  Builds and runs the small executable `test_install' which tests whether
276Factory and the GF(q) tables have been configured, built, and installed
277correctly.
Note: See TracBrowser for help on using the repository browser.