/[ascend]/trunk/tcltk98/generic/Jamfile
ViewVC logotype

Annotation of /trunk/tcltk98/generic/Jamfile

Parent Directory Parent Directory | Revision Log Revision Log


Revision 216 - (hide annotations) (download)
Wed Jan 25 02:12:20 2006 UTC (18 years, 6 months ago) by jds
File size: 11266 byte(s)
Minor rework of jam system to stop relinking of libraries when sources not modified.
Minor tweaks to stem the tide of compiler warnings.
1 jds 129 #
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 jds 216 #MakeLocate $(ASC_TCLTK98_LIB) : $(BUILD_DIR) ;
111 jds 129
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 jds 216 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 jds 129 #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     }

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