/[ascend]/trunk/jam/Jamrules_general.in
ViewVC logotype

Contents of /trunk/jam/Jamrules_general.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 47 - (show annotations) (download)
Thu Apr 7 23:59:22 2005 UTC (19 years, 7 months ago) by jds
File size: 7543 byte(s)
Updated jam build files:
-Added support for -DTIMESTAMP builder credit.
- Renamed Tcl/Tk/TkTable libs for MinGW to match common gcc names.
- Corrected Linux ref in tcltk98 Jamfile.
- Added ascPrintTcl.c to list of interface sources.
- Fixed default CP definition in Jambase.
- Reworked gcc warning options in Jamrules_general.

utilities/ascConfig.h
- Added UNREFERENCED_PARAMETER() macro to standardize handling of unreferenced parameters.
-__WIN32__ macros for isnan(), isinf(), finite() not redefined if the plain versions exist (underscore not added in all __WIN32__ compiler systems, e.g. MinGW)

interface/ascPrintTcl.[ch]
- Added return value to Asc_PrintInit_TclVtable().
- Modified doxygen comments to describe function return values.

interface/Driver.c
- Added #include "interface/tkConsole.h" for __WIN32__ to pull in console functions.
- Added UNREFERENCED_PARAMETER() for WinMain() parameters.
1 #
2 # General Jamrules support file for building Ascend4
3 # (see http://www.freetype.org/jam/index.html)
4 #
5 # This file is part of the Ascend Build System.
6 #
7 # Copyright (C) 2005 Jerry D. St.Clair
8 #
9 # The Ascend Build System is free software; you can redistribute
10 # it and/or modify it under the terms of the GNU General Public
11 # License as published by the Free Software Foundation; either
12 # version 2 of the License, or (at your option) any later version.
13 #
14 # This program is distributed in hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 # GNU General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with the program; if not, write to the Free Software
21 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139 USA.
22 # Check the file named COPYING.
23 #---------------------------------------------------------------------------
24 #
25 # UNDER CONSTRUCTION
26 #
27 # This is a template Jamrules file which supports building the
28 # Ascend libraries and executables. It contains general variable
29 # and rule definitions required for execution of jam in any of the
30 # source subdirectories. The Ascend jam build system currently
31 # supports the MSVC, Borland, MinGW, and Watcom compilers
32 # (extension to gcc on Linux is on the TODO: list).
33 #
34 # This file is not currently customized by the configure mechanism,
35 # although this may be implemented in the future.
36 #
37 # Users should copy/rename this file to 'Jamrules', then modify
38 # the settings manually for their particular system. Ascend
39 # cannot be built by jam unless the Jamrules file is present.
40 #
41 # User-customized Jamrules files should not be placed in version
42 # control. Only the Jamrules.in template should be versioned.
43 #
44 #---------------------------------------------------------------------------
45
46 # Comment to compile with debugging & assertions enabled
47 #NODEBUG = 1 ;
48
49 # Comment to compile without using the Epperly malloc debugger
50 #DEBUG_MALLOC = -DMALLOC_DEBUG ;
51
52 #---------------------------------------------------------------------------
53 # Options from here on should not require routine tweaking
54
55 # Tools required for complete build (comment out if not present).
56 # The build system works around their absence if necessary.
57 # Note that they are available for Windows, for example:
58 # http://sourceforge.net/projects/gnuWin32
59 SED = sed ;
60 YACC = yacc ;
61 YACCFLAGS = -d ;
62 YACCFILES = y.tab ;
63 LEX = flex ;
64
65 # Ascend base library names
66 ASC_COMPILER_LIBNAME = libasc_compiler ;
67 ASC_GENERAL_LIBNAME = libasc_general ;
68 ASC_SOLVER_LIBNAME = libasc_solver ;
69 ASC_UTILITIES_LIBNAME = libasc_utilities ;
70 ASC_PACKAGES_LIBNAME = libasc_packages ;
71
72 ASC_COMPILER_LIB = $(ASC_COMPILER_LIBNAME)$(SUFLIB) ;
73 ASC_GENERAL_LIB = $(ASC_GENERAL_LIBNAME)$(SUFLIB) ;
74 ASC_SOLVER_LIB = $(ASC_SOLVER_LIBNAME)$(SUFLIB) ;
75 ASC_UTILITIES_LIB = $(ASC_UTILITIES_LIBNAME)$(SUFLIB) ;
76 ASC_PACKAGES_LIB = $(ASC_PACKAGES_LIBNAME)$(SUFLIB) ;
77
78 ASC_BASE_LIBS =
79 $(ASC_COMPILER_LIB)
80 $(ASC_GENERAL_LIB)
81 $(ASC_SOLVER_LIB)
82 $(ASC_UTILITIES_LIB)
83 $(ASC_PACKAGES_LIB)
84 ;
85
86 # FORTRAN support library names
87 ASC_BLAS_LIBNAME = libblas ;
88 ASC_LINPACK_LIBNAME = liblinpack ;
89
90 ASC_BLAS_LIB = $(ASC_BLAS_LIBNAME)$(SUFLIB) ;
91 ASC_LINPACK_LIB = $(ASC_LINPACK_LIBNAME)$(SUFLIB) ;
92
93 # Build directory - - will be qualified for compiler & build type
94 BUILD_DIR_ROOT = $(DOT) ;
95
96 # Comment for normal jam deletion of object files after building targets
97 KEEPOBJS = true ;
98
99 if $(NODEBUG)
100 {
101 CCFLAGS += -DNDEBUG ;
102 BUILD_SUBDIR = $(SLASH)Release ;
103 }
104 else
105 {
106 BUILD_SUBDIR = $(SLASH)Debug ;
107 }
108
109 # platform- & complier-specific options
110 if $(NT)
111 {
112 # Windows-specific defines
113 CCFLAGS += -D_X86_=1 -DWIN32 -D_WIN32 ;
114 SUFSHR = .dll ;
115
116 if $(BCCROOT) || ($(TOOLSET) = BORLANDC)
117 {
118 FORTRAN = ;
119 CCFLAGS += -q -d -g0 -j0 -K -DMOD_ASCMALLOC ;
120 CCWARN = -w ;
121 if $(NODEBUG)
122 {
123 CCDEBUG = -v- -O2 ;
124 }
125 else
126 {
127 CCDEBUG = -v -y -Od ;
128 }
129 C++FLAGS = $(CCFLAGS) ;
130 COFF2OMF = coff2omf ; # add location if not in path
131 BUILD_SUBDIR = $(BUILD_SUBDIR)$(SLASH)bcc ;
132 }
133
134 else if $(MSVCNT) || $(TOOLSET) = VISUALC)
135 {
136 FORTRAN = ;
137 CCFLAGS += /Ze ;
138 CCWARN = /W4 ;
139 if $(NODEBUG)
140 {
141 CCDEBUG = /O2 ;
142 }
143 else
144 {
145 CCDEBUG = /Zi /Od ;
146 }
147 # Libraries are in different paths depending on VC version
148 LINKFLAGS += /LIBPATH:$(VISUALC)\\lib /LIBPATH:$(VISUALC)\\PlatformSDK\\lib\\ ;
149 LINKLIBS = advapi32.lib
150 libc.lib
151 oldnames.lib
152 gdi32.lib
153 user32.lib
154 kernel32.lib ;
155 BUILD_SUBDIR = $(BUILD_SUBDIR)$(SLASH)msvc ;
156 }
157
158 else if $(MINGW) || $(TOOLSET) = MINGW)
159 {
160 FORTRANFLAGS = -c -I4 -O ;
161 F77_LIBS += $(MINGW)$(SLASH)lib$(SLASH)libg2c.a ;
162
163 # uncomment to select desired warning level and ansi-strictness
164 CCWARN += -Wall ;
165 CCWARN += -W ;
166 CCWARN += -pedantic ;
167 #CCWARN += -Wshadow ;
168 #CCWARN += -ansi ;
169
170 if $(NODEBUG)
171 {
172 CCDEBUG = -O3 ;
173 }
174 else
175 {
176 CCDEBUG = -g -O0 ;
177 }
178 C++FLAGS = $(CCFLAGS) ;
179 BUILD_SUBDIR = $(BUILD_SUBDIR)$(SLASH)mingw ;
180 }
181
182 else if $(WATCOM) || $(TOOLSET) = WATCOM)
183 {
184 FORTRANFLAGS = /NOER ;
185 CCFLAGS += /fr /dMOD_ASCMALLOC ;
186 CCWARN = /wx ;
187 if $(NODEBUG)
188 {
189 CCDEBUG = /ox ;
190 FORTRANFLAGS += /OX ;
191 }
192 else
193 {
194 CCDEBUG = /od /d2 ;
195 FORTRANFLAGS += /OD /D2 ;
196 }
197 BUILD_SUBDIR = $(BUILD_SUBDIR)$(SLASH)watcom ;
198 }
199 }
200
201 else if $(OS) = LINUX
202 {
203 SUFSHR = .so ;
204 FORTRANFLAGS = -c -I4 -O -lg2c ;
205
206 # uncomment to select desired warning level and ansi-strictness
207 CCWARN += -Wall ;
208 CCWARN += -W ;
209 CCWARN += -pedantic ;
210 #CCWARN += -Wshadow ;
211 #CCWARN += -ansi ;
212
213 if $(NODEBUG)
214 {
215 CCDEBUG = -O3 ;
216 }
217 else
218 {
219 CCDEBUG = -g -O0 ;
220 }
221 BUILD_SUBDIR = $(BUILD_SUBDIR)$(SLASH)linux ;
222 }
223
224 CCFLAGS += $(CCWARN) $(CCDEBUG) $(DEBUG_MALLOC) ;
225 C++FLAGS = $(CCFLAGS) ;
226 BUILD_DIR = $(BUILD_DIR_ROOT)$(BUILD_SUBDIR) ;
227
228 #======================================================================
229 # Ascend-specific jam instructions
230 #======================================================================
231
232 #----------------------------------------------------------------------
233 # LEX_or_copy
234 #
235 # Generates a c source file using the lexer defined by $(LEX),
236 # or by copying a specified file if $(LEX) is not defined.
237 # The following parameters are used:
238 #
239 # 1 source file to generate
240 # 2 lex/flex definition file
241 # 3 pre-generated source file to copy if $(LEX) is empty
242 # 4 header file associated with the source file, if any
243 #----------------------------------------------------------------------
244 rule LEX_or_copy
245 {
246 if $(LEX)
247 {
248 Echo Generating $(1) from $(LEX) ;
249 DEPENDS $(1) : $(2) ;
250 Lex_with_options $(1) : $(2) ;
251 }
252 else
253 {
254 Echo Copying $(1) from $(4) ;
255 File $(1) : $(3) ;
256 }
257
258 # make the header dependent
259 if $(4)
260 {
261 INCLUDES $(1) : $(4) ;
262 }
263
264 Clean clean : $(1) ;
265 }
266
267 # run LEX using options specified in LEXOPTS
268 actions Lex_with_options
269 {
270 $(LEX) $(LEXOPTS) -o$(1) $(2)
271 }

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