1 |
# |
2 |
# Jamfile to build Ascend Tcl/Tk98 interface |
3 |
# (see http://www.freetype.org/jam/index.html) |
4 |
# |
5 |
# This file is part of the Ascend Build System. |
6 |
# |
7 |
# Copyright (C) 2004, 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 Jamfile builds the Tcl/Tk interface static library and executable |
28 |
# subsets of ASCEND using the jam build tool. |
29 |
# |
30 |
# This file is part of the ASCEND jam build system rooted at ../../jam. |
31 |
# See ../../jam/ReadMe.txt for more information. |
32 |
# |
33 |
# The jam build depends on a specialized Jamrules_tcltk98 file. |
34 |
# This file is currently maintained in the same directory as this |
35 |
# Jamfile. See Jamrules_tcltk98.in for more information. |
36 |
# |
37 |
#------------------------------------------------------------------------- |
38 |
# |
39 |
# File-specific Build Instructions |
40 |
# |
41 |
# 1. Follow the general instructions in ../../jam/ReadMe.txt for your platform. |
42 |
# |
43 |
# 2. Run: |
44 |
# jam ascend |
45 |
# |
46 |
#--------------------------------------------------------------------------- |
47 |
|
48 |
SubDir TOP tcltk98 generic ; |
49 |
if ! $(JAMRULES_ALREADY_SEEN) |
50 |
{ |
51 |
include $(TOP)$(SLASH)jam$(SLASH)Jamrules ; |
52 |
} |
53 |
if ! $(JAMRULES_TCLTK98_ALREADY_SEEN) |
54 |
{ |
55 |
include $(TOP)$(SLASH)tcltk98$(SLASH)generic$(SLASH)Jamrules_tcltk98 ; |
56 |
} |
57 |
|
58 |
srcdir = $(TOP)$(SLASH)tcltk98$(SLASH)generic ; |
59 |
|
60 |
ASC_INTERFACE_DIR = $(srcdir)$(SLASH)interface ; |
61 |
|
62 |
HDRS += $(srcdir) ; |
63 |
|
64 |
# symbolic targets to build Ascend executable |
65 |
DEPENDS all : ascend ; |
66 |
NOTFILE ascend ; |
67 |
|
68 |
#========================================================================= |
69 |
# Tcl/Tk Interface |
70 |
#========================================================================= |
71 |
|
72 |
ASC_TCLTK98_SOURCES = |
73 |
AscBitmaps.c |
74 |
AscPrintTcl.c |
75 |
BrowLogRel_io.c |
76 |
BrowWhen_io.c |
77 |
BrowserMethod.c |
78 |
BrowserProc.c |
79 |
BrowserQuery.c |
80 |
BrowserRel_io.c |
81 |
Commands.c |
82 |
DebugProc.c |
83 |
DisplayProc.c |
84 |
EnvVarProc.c |
85 |
HelpProc.c |
86 |
Integrators.c |
87 |
LibraryProc.c |
88 |
Lsode.c |
89 |
MtxProc.c |
90 |
ProbeProc.c |
91 |
Qlfdid.c |
92 |
ScriptProc.c |
93 |
Sensitivity.c |
94 |
SimsProc.c |
95 |
SlvProc.c |
96 |
SolverProc.c |
97 |
UnitsProc.c |
98 |
UserData.c |
99 |
tkConsole.c |
100 |
typelex.c |
101 |
old_utils.c |
102 |
; |
103 |
|
104 |
# set temporary file location |
105 |
LOCATE_TARGET = $(BUILD_DIR)$(SLASH)interface ; |
106 |
SEARCH_SOURCE = $(ASC_INTERFACE_DIR) ; |
107 |
|
108 |
# Build the static libary of interface functions |
109 |
Library $(ASC_TCLTK98_LIBROOT) : $(ASC_TCLTK98_SOURCES) ; |
110 |
#MakeLocate $(ASC_TCLTK98_LIB) : $(BUILD_DIR) ; |
111 |
|
112 |
# Build the Ascend executable |
113 |
Main $(EXE_NAME) : Driver.c ; |
114 |
|
115 |
ObjectCcFlags $(ASC_TCLTK98_SOURCES) Driver.c : |
116 |
$(SOLVER_DEFS) |
117 |
-DTIMESTAMP="\"\\\"by $(BUILD_CREDIT)\\\"\"" |
118 |
; |
119 |
|
120 |
ObjectHdrs $(ASC_TCLTK98_SOURCES) Driver.c : |
121 |
$(JAM_GENERAL_DIR)$(SLASH)$(ASC_BASE_SOURCE_RELPATH) |
122 |
$(TK_HDRS) |
123 |
; |
124 |
|
125 |
LinkLibraries $(EXE_NAME) : $(ASC_TCLTK98_LIB) $(ASC_BASE_LIBS) $(PACKAGE_LIBS) ; |
126 |
LINKLIBS on $(EXE_NAME)$(SUFEXE) += |
127 |
$(FOR_LIBS) |
128 |
$(TK_LIBS) |
129 |
$(TKTABLE_LIB) |
130 |
$(X11_LIBS) |
131 |
$(PC_LIBS) |
132 |
$(MATH_LIBS) |
133 |
$(DL_LIBS) |
134 |
$(DEBUG_LIBS) |
135 |
; |
136 |
|
137 |
DEPENDS ascend : $(EXE_NAME)$(SUFEXE) ; |
138 |
|
139 |
if $(BUILD_BLAS) != FALSE |
140 |
{ Depends $(EXE_NAME)$(SUFEXE) : $(ASC_BLAS_LIB) ; } |
141 |
if $(BUILD_LPAK) != FALSE |
142 |
{ Depends $(EXE_NAME)$(SUFEXE) : $(ASC_LINPACK_LIB) ; } |
143 |
if $(BUILD_LSODE) != FALSE |
144 |
{ Depends $(EXE_NAME)$(SUFEXE) : $(ASC_LSOD_LIB) ; } |
145 |
|
146 |
#Depends $(EXE_NAME)$(SUFEXE) : |
147 |
# $(FOR_LIBS) |
148 |
# $(TK_LIBS) |
149 |
# $(TKTABLE_LIB) |
150 |
# $(X11_LIBS) |
151 |
# $(PC_LIBS) |
152 |
# $(MATH_LIBS) |
153 |
# $(DEBUG_LIBS) ; |
154 |
|
155 |
# set executable build location |
156 |
MakeLocate $(EXE_NAME)$(SUFEXE) : $(BUILD_DIR) ; |
157 |
|
158 |
if $(NT) |
159 |
{ |
160 |
if ($(BCCROOT) || ($(TOOLSET) = BORLANDC)) |
161 |
{ |
162 |
# need to fix Borland to include standard libraries location |
163 |
LINKFLAGS on $(EXE_NAME)$(SUFEXE) += |
164 |
-L$(STDLIBPATH) -tW |
165 |
-L$(TCL_LIB_DIR) |
166 |
-L$(TK_LIB_DIR) |
167 |
-L$(TKTABLE_LIB_DIR) |
168 |
; |
169 |
if ! $(NODEBUG) |
170 |
{ LINKFLAGS on $(EXE_NAME)$(SUFEXE) += -v ; } |
171 |
} |
172 |
else if $(MSVCNT) || $(TOOLSET) = VISUALC) |
173 |
{ |
174 |
LINKFLAGS on $(EXE_NAME)$(SUFEXE) += |
175 |
/L$(TCL_LIB_DIR) |
176 |
/L$(TK_LIB_DIR) |
177 |
/L$(TKTABLE_LIB_DIR) |
178 |
; |
179 |
} |
180 |
else if $(MINGW) || $(TOOLSET) = MINGW) |
181 |
{ |
182 |
LINKFLAGS on $(EXE_NAME)$(SUFEXE) += |
183 |
-L$(TCL_LIB_DIR) |
184 |
-L$(TK_LIB_DIR) |
185 |
-L$(TKTABLE_LIB_DIR) |
186 |
-mwindows |
187 |
; |
188 |
} |
189 |
else if $(WATCOM) || $(TOOLSET) = WATCOM) |
190 |
{ |
191 |
LINKFLAGS on $(EXE_NAME)$(SUFEXE) += |
192 |
-\"LIBPATH $(TCL_LIB_DIR)\" |
193 |
-\"LIBPATH $(TK_LIB_DIR)\" |
194 |
-\"LIBPATH $(TKTABLE_LIB_DIR)\" |
195 |
; |
196 |
} |
197 |
} |
198 |
else if $(UNIX) || $(OS) = LINUX |
199 |
{ |
200 |
LINKFLAGS on $(EXE_NAME)$(SUFEXE) += |
201 |
-L$(TCL_LIB_DIR) |
202 |
-L$(TK_LIB_DIR) |
203 |
-L$(TKTABLE_LIB_DIR) |
204 |
; |
205 |
} |
206 |
|
207 |
#====================================================================== |
208 |
# Directory-specific Build Instructions |
209 |
#====================================================================== |
210 |
|
211 |
#---------------------------------------------------------------------- |
212 |
# typelex.c |
213 |
# |
214 |
# typelex.c implements the Ascend lexical typer. It is |
215 |
# generated by lex/flex if available in the build environment |
216 |
# (i.e. $(LEX) is non-null in jam). If lex/flex is not available, |
217 |
# a copy of a pre-generated file is used instead. |
218 |
#---------------------------------------------------------------------- |
219 |
|
220 |
# typelex.c needs a special define (Watcom requires the '=""'. ) |
221 |
ObjectCcFlags typelex.c : -DYY_USE_CONST="" ; |
222 |
|
223 |
typelex_c = [ FGristSourceFiles typelex.c ] ; |
224 |
typelex_h = typelex.h ; |
225 |
typelex_l = typelex.l ; |
226 |
LEXOPTS on $(typelex_c) = -Ptyp_ ; |
227 |
|
228 |
LOCATE on $(typelex_c) = $(SEARCH_SOURCE) ; |
229 |
LOCATE on $(typelex_h) = $(SEARCH_SOURCE) ; |
230 |
LOCATE on $(typelex_l) = $(SEARCH_SOURCE) ; |
231 |
|
232 |
LEX_or_copy $(typelex_c) : $(typelex_l) : typelex_c_no_flex : $(typelex_h) ; |
233 |
|
234 |
#====================================================================== |
235 |
# Install directives |
236 |
#====================================================================== |
237 |
if $(INSTALL_BIN_DIR) |
238 |
{ |
239 |
InstallBin $(INSTALL_BIN_DIR) : $(EXE_NAME)$(SUFEXE) ; |
240 |
|
241 |
if $(INSTALL_TCLTK_LIBS) |
242 |
{ |
243 |
if $(NT) |
244 |
{ |
245 |
SUFDLIB = .dll ; |
246 |
} |
247 |
else |
248 |
{ |
249 |
SUFDLIB = .a ; |
250 |
} |
251 |
LOCATE on $(TCL_LIBS_TO_INSTALL)$(SUFDLIB) = $(TCL_DIR)$(SLASH)bin ; |
252 |
LOCATE on $(TK_LIBS_TO_INSTALL)$(SUFDLIB) = $(TK_DIR)$(SLASH)bin ; |
253 |
|
254 |
InstallFile $(INSTALL_BIN_DIR) : $(TCL_LIBS_TO_INSTALL)$(SUFDLIB) ; |
255 |
InstallFile $(INSTALL_BIN_DIR) : $(TK_LIBS_TO_INSTALL)$(SUFDLIB) ; |
256 |
} |
257 |
} |
258 |
|
259 |
if $(INSTALL_MODELS_DIR) |
260 |
{ |
261 |
INSTALL_MODELS_FILES = |
262 |
Guthrie_costs.a4l |
263 |
KenPendings.a4l |
264 |
README |
265 |
README.html |
266 |
README.txt |
267 |
abc_flowsheet.a4l |
268 |
atoms.a4l |
269 |
basemodel.a4l |
270 |
bvp.a4l |
271 |
casestudy.a4s |
272 |
collocation.a4l |
273 |
collocation.a4s |
274 |
collocation_tests.a4s |
275 |
column.a4l |
276 |
components.a4l |
277 |
cost_column.a4l |
278 |
distance_calc.a4c |
279 |
dyn_column.a4l |
280 |
dyn_flash.a4l |
281 |
dyn_separation_demos.a4s |
282 |
dyn_tank.a4c |
283 |
dyn_tank.a4s |
284 |
flash.a4l |
285 |
force1d.a4c |
286 |
force1d.a4s |
287 |
heatex.a4c |
288 |
heatex.a4s |
289 |
ivpsystem.a4l |
290 |
kinetics.a4l |
291 |
kinetics.a4s |
292 |
linear_balance.a4c |
293 |
linear_balance.a4s |
294 |
measures.a4l |
295 |
mix.a4l |
296 |
mix.a4s |
297 |
old_separation_demos.a4s |
298 |
phaseq.a4c |
299 |
phaseq.a4s |
300 |
phaseq_comp.a4c |
301 |
phaseq_comp.a4s |
302 |
phases.a4l |
303 |
pipeline.a4c |
304 |
pipeline.a4s |
305 |
plot.a4l |
306 |
plotbvp.a4c |
307 |
plotbvp.a4s |
308 |
plotcol.a4c |
309 |
rachford.a4c |
310 |
rachford.a4s |
311 |
ratelaws.a4c |
312 |
reactor.a4l |
313 |
reactor.a4s |
314 |
roots_of_poly.a4c |
315 |
separation_demos.a4s |
316 |
set_intervals.tcl |
317 |
simple_fs.a4c |
318 |
simple_fs.a4s |
319 |
simple_fs_cost.a4c |
320 |
simple_fs_cost.a4s |
321 |
simple_fs_ext.a4c |
322 |
sonic.a4c |
323 |
sonic.a4s |
324 |
splitter.a4l |
325 |
splitter.a4s |
326 |
stream_holdup.a4l |
327 |
system.a4l |
328 |
ternary_plot.a4l |
329 |
thermodynamics.a4l |
330 |
vessel.a4c |
331 |
vessel.a4s |
332 |
vesselMethods.a4c |
333 |
vesselNotes.a4c |
334 |
vesselParams.a4c |
335 |
vesselPlain.a4c |
336 |
vesselPlot.a4c |
337 |
vesselPlot.a4s |
338 |
vesselStudy.a4s |
339 |
vesselTabulated.a4c |
340 |
vesselTabulated.a4s |
341 |
when_demo.a4c |
342 |
when_demo.a4s |
343 |
z-addmethod.a4c |
344 |
z-align.a4c |
345 |
z-alike.a4c |
346 |
z-anontype.a4c |
347 |
z-arsubs.a4c |
348 |
z-context.a4c |
349 |
z-emptyarg.a4c |
350 |
z-emptyfor.a4c |
351 |
z-iflogic.a4c |
352 |
z-indirect.a4c |
353 |
z-isawhere.a4c |
354 |
z-relname.a4c |
355 |
z-suite.a4s |
356 |
; |
357 |
|
358 |
INSTALL_MODELS_BEN_FILES = |
359 |
benHGthermo.a4l |
360 |
bencolumn.a4l |
361 |
bencomponents.a4l |
362 |
benflash.a4l |
363 |
benplot.a4l |
364 |
benplotcol.a4c |
365 |
benpropertyoptions.a4l |
366 |
benstream.a4l |
367 |
test_components.a4s |
368 |
; |
369 |
|
370 |
LOCATE on $(INSTALL_MODELS_FILES) = $(ASC_MODELS_DIR) ; |
371 |
InstallFile $(INSTALL_MODELS_DIR) : $(INSTALL_MODELS_FILES) ; |
372 |
|
373 |
LOCATE on $(INSTALL_MODELS_BEN_FILES) = $(ASC_MODELS_DIR)$(SLASH)ben ; |
374 |
InstallFile $(INSTALL_MODELS_DIR)$(SLASH)ben : $(INSTALL_MODELS_BEN_FILES) ; |
375 |
} |
376 |
|
377 |
if $(INSTALL_ASC_TK_DIR) |
378 |
{ |
379 |
INSTALL_TK_FILES = |
380 |
AscendRC |
381 |
BrowserProc.tcl |
382 |
CallbackProc.tcl |
383 |
DebugProc.tcl |
384 |
DisplayProc.tcl |
385 |
GlobalProc.tcl |
386 |
HubProc.tcl |
387 |
LibraryProc.tcl |
388 |
License-Warranty.tcl |
389 |
MtxProc.tcl |
390 |
NoteboxProc.tcl |
391 |
ProbeProc.tcl |
392 |
ScriptProc.tcl |
393 |
SolverProc.tcl |
394 |
ToolboxProc.tcl |
395 |
TypetreeProc.tcl |
396 |
UnitsProc.tcl |
397 |
UtilProc.tcl |
398 |
View.tcl |
399 |
WWWHelpProc.tcl |
400 |
WhoDunnit.tcl |
401 |
ascStudy.tcl |
402 |
ascend.ad |
403 |
ascend.tcl |
404 |
ascplot.tcl |
405 |
ascplotproc.tcl |
406 |
baatest.tcl |
407 |
browser.tcl |
408 |
callback.tcl |
409 |
debug.tcl |
410 |
display.tcl |
411 |
generalk.tcl |
412 |
library.tcl |
413 |
main.tcl |
414 |
mergedat.tcl |
415 |
methods.tcl |
416 |
mps.tcl |
417 |
mtx.tcl |
418 |
notebox.tcl |
419 |
pane.tcl |
420 |
probe.tcl |
421 |
script.tcl |
422 |
solver.tcl |
423 |
tclIndex |
424 |
toolbox.tcl |
425 |
typetree.tcl |
426 |
units.tcl |
427 |
util.tcl |
428 |
; |
429 |
|
430 |
INSTALL_TK_BITMAPS_FILES = |
431 |
a4c.xbm |
432 |
a4l.xbm |
433 |
a4s.xbm |
434 |
c.xbm |
435 |
cpp.xbm |
436 |
crash.xbm |
437 |
cut.xf.xbm |
438 |
delete.xf.xbm |
439 |
emacs.xbm |
440 |
error |
441 |
feet.xbm |
442 |
folder |
443 |
global.xf.xbm |
444 |
gnu-ascend.xbm |
445 |
gnu.xbm |
446 |
grablock.xbm |
447 |
gray25 |
448 |
gray33 |
449 |
gray50 |
450 |
graybar |
451 |
grill |
452 |
h.xbm |
453 |
hourglass |
454 |
info |
455 |
opt.xbm |
456 |
place.xf.xbm |
457 |
questhead |
458 |
question |
459 |
stop.xbm |
460 |
text |
461 |
time.xbm |
462 |
toolAttributes.xbm |
463 |
tree.xf.xbm |
464 |
warning.xf.xbm |
465 |
wfeet.xbm |
466 |
; |
467 |
|
468 |
INSTALL_TK_TEMPLATES_FILES = |
469 |
AscConfirm.t |
470 |
AscMonoEntry1.t |
471 |
AscMonoEntry2.t |
472 |
AscMonoEntry4.t |
473 |
amlscroll.tcl |
474 |
ascKeepOnTop.tcl |
475 |
ascListSelect.tcl |
476 |
ascListSelectB1.tcl |
477 |
ascMsgBox.tcl |
478 |
ascdialog.tcl |
479 |
ascfontsel.tcl |
480 |
ascparm.tcl |
481 |
balloon.tcl |
482 |
asctkfbox.tcl |
483 |
; |
484 |
|
485 |
LOCATE on $(INSTALL_TK_FILES) = $(ASC_TK_DIR) ; |
486 |
InstallFile $(INSTALL_ASC_TK_DIR) : $(INSTALL_TK_FILES) ; |
487 |
|
488 |
LOCATE on $(INSTALL_TK_BITMAPS_FILES) = $(ASC_TK_DIR)$(SLASH)bitmaps ; |
489 |
InstallFile $(INSTALL_ASC_TK_DIR)$(SLASH)bitmaps : $(INSTALL_TK_BITMAPS_FILES) ; |
490 |
|
491 |
LOCATE on $(INSTALL_TK_TEMPLATES_FILES) = $(ASC_TK_DIR)$(SLASH)templates ; |
492 |
InstallFile $(INSTALL_ASC_TK_DIR)$(SLASH)templates : $(INSTALL_TK_TEMPLATES_FILES) ; |
493 |
} |