Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_33_1/tools/build/v1/dmc-tools.jam @ 12

Last change on this file since 12 was 12, checked in by landauf, 17 years ago

added boost

File size: 3.2 KB
Line 
1# Digital Mars C++
2
3# (C) Copyright Christof Meerwald 2003.
4# (C) Copyright Aleksey Gurtovoy 2004.
5#
6# Distributed under the Boost Software License, Version 1.0. (See
7# accompanying file LICENSE_1_0.txt or copy at
8# http://www.boost.org/LICENSE_1_0.txt)
9
10# The following #// line will be used by the regression test table generation
11# program as the column heading for HTML tables. Must not include version number.
12#//<a href="http://www.digitalmars.com/">Digital<br>Mars C++</a>
13
14set-as-singleton DMC_ROOT DMC_BIN_DIR ;
15
16DMC_COMPILER = dmc ;
17DMC_LINKER = link ;
18DMC_ARCHIVE = lib ;
19
20DMC_ROOT = $(DMC_ROOT:J=" ") ;
21DMC_BIN_DIR ?= "$(DMC_ROOT)"$(SLASH)bin$(SLASH) ;
22
23flags dmc CFLAGS <debug-symbols>on/<debug-store>object : -g ;
24flags dmc LINKFLAGS <debug-symbols>on : -co ;
25
26flags dmc CFLAGS <optimization>off : -S -o+none ;
27flags dmc CFLAGS <optimization>speed : -o+time ;
28flags dmc CFLAGS <optimization>space : -o+space ;
29flags dmc CFLAGS <exception-handling>on : -Ae ;
30flags dmc CFLAGS <rtti>on : -Ar ;
31
32# Note that these two options actually imply multithreading support on DMC
33# because there is no single-threaded dynamic runtime library. Specifying
34# <threading>multi would be a bad idea, though, because no option would be
35# matched when the build uses the default settings of <runtime-link>dynamic
36# and <threading>single.
37flags dmc CFLAGS <runtime-build>release/<runtime-link>dynamic : -ND ;
38flags dmc CFLAGS <runtime-build>debug/<runtime-link>dynamic : -ND ;
39
40flags dmc CFLAGS <runtime-build>release/<runtime-link>static/<threading>single : ;
41flags dmc CFLAGS <runtime-build>debug/<runtime-link>static/<threading>single : ;
42flags dmc CFLAGS <runtime-build>release/<runtime-link>static/<threading>multi : -D_MT ;
43flags dmc CFLAGS <runtime-build>debug/<runtime-link>static/<threading>multi : -D_MT ;
44
45flags dmc CFLAGS <cflags> ;
46flags dmc C++FLAGS <cxxflags> ;
47flags dmc DEFINES <define> ;
48flags dmc UNDEFS <undef> ;
49flags dmc HDRS <include> ;
50flags dmc SYSHDRS <sysinclude> ;
51flags dmc LINKFLAGS <linkflags> ;
52flags dmc ARFLAGS <arflags> ;
53
54flags dmc LIBPATH <library-path> ;
55flags dmc NEEDLIBS <library-file> ;
56flags dmc FINDLIBS <find-library> ;
57flags dmc LINKFLAGS <target-type>$(SHARED_TYPES) : ;
58
59flags msvc STDHDRS : $(DMC_ROOT)$(SLASH)include ;
60
61
62#### Link ####
63
64rule Link-action ( target implib ? : sources + : target-type ? )
65{
66    dmc-Link-action $(<) : $(sources) $(NEEDLIBS) ;
67}
68
69actions together dmc-Link-action
70{
71    "$(DMC_BIN_DIR)$(DMC_LINKER)" $(LINKFLAGS) -delexecutable -noi -implib:"$(<[2])" "$(>)" , "$(<[1])" , NUL , user32.lib kernel32.lib "$(FINDLIBS:S=.lib)" , "$(<[2]:B).def"
72}
73
74#### Cc #####
75
76rule Cc-action
77{
78    dmc-Cc-action $(<) : $(>) ;
79}
80
81actions dmc-Cc-action
82{
83    "$(DMC_BIN_DIR)$(DMC_COMPILER)" -c -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o"$(<)" "$(>)"
84}
85
86#### C++ ####
87rule C++-action
88{
89    dmc-C++-action $(<) : $(>) ;
90}
91
92actions dmc-C++-action
93{
94    "$(DMC_BIN_DIR)$(DMC_COMPILER)" -cpp -c -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o"$(<)" "$(>)"
95}
96
97#### Archive ####
98rule Archive-action
99{
100    dmc-Archive-action $(<) : $(>) ;
101}
102
103actions together piecemeal dmc-Archive-action
104{
105    "$(DMC_BIN_DIR)$(DMC_ARCHIVE)" $(ARFLAGS) -c -n -p128 "$(<)" "$(>)"
106}
Note: See TracBrowser for help on using the repository browser.