added "C++FLAGS.all" (and "OBJCFLAGS.all"); "CFLAGS.all" is still in effect
[k8jam.git] / defaults / Jambase
blob6b2438b0d5aa458c6d92bde7d34b1b16b6f7d6d3
1 # Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.
2 # Copyright 2009-2013 Ketmar // Invisible Vector
3 # This file is part of Jam - see jam.c for Copyright information.
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation, version 3 of the License ONLY.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 # JAMBASE - k8jam 2.x ruleset providing make(1)-like functionality
19 # Supports UNIX, NT and maybe other things
21 # Special targets defined in this file:
23 # all       - parent of first, shell, files, lib, exe
24 # first     - first dependent of 'all', for potential initialization
25 # shell     - parent of all Shell targets
26 # files     - parent of all File targets
27 # lib       - parent of all Library targets
28 # exe       - parent of all Main targets
29 # dirs      - parent of all MkDir targets
30 # clean     - removes all Shell, File, Library, and Main targets
31 # uninstall - removes all Install targets
34 # Brief review of the jam language:
36 # Statements:
37 #   rule RULE - statements to process a rule
38 #   actions RULE - system commands to carry out target update
40 # Modifiers on actions:
41 #   together - multiple instances of same rule on target get executed
42 #          once with their sources ($(>)) concatenated
43 #   updated - refers to updated sources ($(>)) only
44 #   ignore - ignore return status of command
45 #   quietly - don't trace its execution unless verbose
46 #   piecemeal - iterate command each time with a small subset of $(>)
47 #   existing - refers to currently existing sources ($(>)) only
48 #   bind vars - subject to binding before expanding in actions
50 # Special rules:
51 #   Always - always build a target
52 #   Depends - builds the dependency graph
53 #   Echo - blurt out targets on stdout
54 #   Exit - blurt out targets and exit
55 #   Includes - marks sources as headers for target (a codependency)
56 #   NoCare - don't panic if the target can't be built
57 #   NoUpdate - create the target if needed but never update it
58 #   NotFile - ignore the timestamp of the target (it's not a file)
59 #   Temporary - target need not be present if sources haven't changed
61 # Special variables set by jam:
62 #   $(<) - targets of a rule (to the left of the :)
63 #   $(>) - sources of a rule (to the right of the :)
64 #   $(xxx) - true on xxx (UNIX, VMS, NT, OS2, MAC)
65 #   $(OS) - name of OS - varies wildly
66 #   $(K8_JAMVERSION) - version number (2.5.xx)
68 # Special variables used by jam:
69 #   SEARCH - where to find something (used during binding and actions)
70 #   LOCATE - where to plop something not found with SEARCH
71 #   HDRRULE - rule to call to handle include files
72 #   HDRSCAN - egrep regex to extract include files
74 # Special targets:
75 #   all - default if none given on command line
78 THIS_IS_K8JAM = 'tan' ; # we are using k8jam
81 # include "pre-setup" Jamfile config.
83 JAM_USER_RC_PRE = tan ;
84 JAM_USER_RC_POST = ;
85 softinclude $(HOME)/.jam.rc ;
87 . Jambase.0fixups
89 . Jambase.vars    # default vars -- compiler and linker name, etc
90 . Jambase.deps    # default targets and dependencies
91 # rules and actions
92 . Jambase.misc    # miscelaneous helpers
94 . Jambase.subdir  # SubDir, SubInclude, etc
95 . Jambase.object  # `Object` rule and company
96 . Jambase.build   # build rules for various languages
97 . Jambase.link    # link rules for various languages
98 . Jambase.main    # link rules for various languages
99 . Jambase.clean   # `clean` target
101 . Jambase.install # install targets (incomplete)
103 . Jambase.profile # `profile` and `set-profile`
104 . Jambase.locs    # `set-target-locations`
106 . Jambase.pkgcfg  # lib-config and pkg-config
108 #. Jambase.gnustep # some utilities for GNUStep
110 . Jambase.fix     # various native specifics
112 . Jambase.windoze # cross-compiling specifics
114 . Jambase.userext # user extension rules
115 . Jambase.help    # 'help*' targets
116 . Jambase.push    # 'push' target
117 . Jambase.boiler  # 'gen-boiler' code
119 . configure/Jambase.configure
122 check-setup-windoze ;
124 # user config
125 JAM_USER_RC_PRE = ;
126 JAM_USER_RC_POST = tan ;
127 softinclude $(HOME)/.jam.rc ;
130 # Now include the user Jamfile.
132 if 'gen-boiler' in $(JAM_TARGETS) {
133   Echo "skipping $(JAMFILE)" ;
134 } else {
135   include $(JAMFILE) ;