/[ascend]/trunk/jam/ReadMe.txt
ViewVC logotype

Diff of /trunk/jam/ReadMe.txt

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 79 by johnpye, Tue Dec 6 08:30:16 2005 UTC revision 129 by jds, Tue Dec 20 20:22:56 2005 UTC
# Line 1  Line 1 
1    
2  BUILDING ASCEND with JAM  BUILDING ASCEND WITH JAM
3  ------------------------  ------------------------
4    
5  The files in this directory support building the Ascend  The files in this directory support building the ASCEND
6  libraries and executables using the jam* build tool.  libraries and executables using the jam* build tool.
7    
8  The following files are included:  The following files are included:
9    
10    Jamrules_general.in - configuration & custom build rules used    Jamfile     - top-level Jamfile for building ASCEND
11                          by Jamfiles  
12    Jambase             - lightly customized version of standard    Jamrules.in - configuration & custom build rules used by Jamfiles
13                          build rules (primarily to shore up support  
14                          for different compilers)    Jambase     - lightly customized version of standard build rules
15                  - primarily to shore up support for different compilers
16  The Ascend jam build system currently supports building under Windows                - optional in most cases
17  using the MSVC, Borland, MinGW, and Watcom** compilers, and under  
18  Linux using gcc/g77.  With use of the included Jambase file, it should  Other subdirectories of the source trees contain additional files used
19  work with both the original and ftjam variants of jam. However, the  to build ASCEND with jam:
20  system was developed primarily using ftjam.  
21      ../base/generic/Jamfile    - builds the ASCEND base libraries
22  Automatic processing of Jamrules_general.in to Jamrules_general by    ../blas/Jamfile            - builds the blas library
23  configure is not currently implemented.  A skeleton script    ../linpack/Jamfile         - builds the linpack library
24  'configure' is provided which will copy the 'Jamrules_general.in' file    ../lsod/Jamfile            - builds the LSODE library
25  to 'Jamrules_general'. This file then needs to be hand-editied for    ../tcltk98/generic/Jamfile - builds the tcltk98 executable
26  your local preferences and configuration.    ../tcltk98/generic/Jamrules_tcltk98.in
27                                 - configuration & custom build rules used
28                                   build the tcltk98 executable
29  Build Instructions - Linux  
30  --------------------------  
31    The ASCEND jam build system intends to support building under Windows
32  You can build the Jam static libraries on Linux at present:  using the MinGW/gcc, MSVC, Borland, and Watcom** compilers, and under
33    unix/linux using gcc/g77.  With use of the included custom Jambase file,
34    it should work with both the original and ftjam variants of jam.
35    However, the system was developed primarily using ftjam.  For best
36    results using your default Jambase, use of ftjam is recommended and
37    probably required.
38    
39    Automatic processing of Jamrules.in and ../tcltk98/generic/Jamrules_tcltk98.in
40    by configure has now been implemented for systems supporting autoconf.
41    Configure should automatically set most necessary build options, although
42    some manual tweaking may still be necessary.  The configure.in file is
43    currently housed in ../base/unixAC213.  This may be relocated to a more
44    general location in the future.  For now, it is necessary to run autoconf &
45    configure from that directory, and then come back here to run jam.
46    
47    Building ASCEND requires compatible C and FORTRAN compilers.  The official
48    distributions are built using gcc, which provides both of these.
49    
50    
51    Build Instructions - Linux/Unix
52    -------------------------------
53    
54    You can build the Jam static libraries on Linux at present:
55    
56  1. jam must be installed and configured for the compiler in use.  1. jam must be installed and configured for the compiler in use.
57    
58  2. Run ./configure  2. (a) If using autoconf, perform the following steps:
59     See above comments -- this script is just a skeleton at the moment  
60          - cd ../base/unixAC213
61          - autoconf (if necessary)
62          - ./configure {using the usual options such as --enable-gcc,
63                         --with-tcl, --with-tk, --with-tktable}
64          - cd ../../jam
65    
66       (b) If NOT using autoconf, manually copy the following files:
67      
68          - ./Jamrules.in  -->  ./Jamrules
69          - ../tcltk98/generic/Jamrules_tcltk98.in  -->
70                        ../tcltk98/generic/Jamrules_tcltk98
71    
72  3. Manually edit Jamrules_general to set configuration and local  3. If necessary or desired, manually edit the generated ./Jamrules and
73       ../tcltk98/generic/Jamrules_tcltk98 files to set configuration and local
74     directory options.  These settings are used by all the Jamfiles     directory options.  These settings are used by all the Jamfiles
75     in the Ascend source tree.     in the ASCEND source tree.
76    
77    4. Run jam to generate the desired output:
78    
79           jam all       builds all libraries, executable, test suite
80           jam libs      builds base, blas, linpack, and lsode static libs
81           jam ascend    builds the ASCEND executable (will build libs as needed)
82           jam test      builds the test suite (will build libs as needed)
83           jam blas      builds the blas library
84           jam linpack   builds the linpack library
85           jam lsode     builds the lsode library
86    
87       NOTE - if there is a problem with jam setting basic options (e.g. CC = gcc),
88              there are 2 possible workarounds.  First, use the custom Jambase
89              file (jam -f Jambase ...) which more reliably sets these basic
90              compilation options.  Or, explicitly specify the symbol in
91              question (jam -sCC=gcc ...).  We have not quite figured out how
92              to make sure these get set when defined in other than Jambase.
93    
94       All built files will be placed in ./CONFIGTYPE/PLATFORM where
95              CONFIGTYPE = Debug, Release
96              PLATFORM   = linux, mingw, bcc, msvc, mingw, watcom
97    
98    
99    Installation of the executables, libraries and headers is under development.
100    Installation should be assumed not to work at this time.
101    
102    
103    Build Instructions - Windows
104    ----------------------------
105    
106    Same as for Linux/Unix above, except you will need to follow 2b since
107    the autotools are not generally available.
108    
 4. Change directory to base/generic/jam, type 'jam libs'  
   
 The static libraries will end up in base/generic/jam/Release/linux  
   
 Build Instructions - Windows  
 ----------------------------  
   
 As above, but instead of steam (2.) you need to manualy copy the  
 Jamrules_general.in file to Jamrules_general.  
   
109    
110  Notes  Notes
111  -----  -----
112    
113  * jam is an open source, multi-platform build tool  * jam is an open source, multi-platform build tool
114    which is available in several flavors.  These include    which is available in several flavors.  These include
# Line 60  Notes Line 116  Notes
116    (http://www.freetype.org/jam/index.html) variants,    (http://www.freetype.org/jam/index.html) variants,
117    among others.    among others.
118    
119  ** Currently, Open Watcom 1.3 can compile the Ascend sources  ** Currently, Open Watcom 1.3 can compile the ASCEND sources
120    and build the libraries.  However, it does not supply the required    and build the libraries.  However, it does not supply the required
121    IEEE math functions isnan() and copysign().  At present, Ascend does    IEEE math functions isnan() and copysign().  At present, ASCEND does
122    not supply these, so the user must provide these functions to use    not supply these, so the user must provide these functions to use
123    the libraries under Watcom.    the libraries under Watcom.
124    
125  Updated Dec 6 2005 -- johnpye  
126    For more information on building ASCEND using JAM
127    please see the Wiki document at
128    https://pse.cheme.cmu.edu/wiki/view/Ascend/Jam
129    

Legend:
Removed from v.79  
changed lines
  Added in v.129

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22