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