Library and SharedLibrary now understands attributes too
[k8jam.git] / defaults / build / Jambase.build.c
blob87119841f04b0296a0b967d2e9355fc1442a529d
1 # /Cc object : source ;
3 # Compile the file source into object, using the C compiler $(CC), its
4 # flags $(CCFLAGS) and $(OPTIM), and the header file directories $(HDRS).
5 # Called by the @Object rule
7 # Do not call this rule directly, since _object_ and _source_ may have
8 # have platform-specific file extensions
10 rule Cc {
11 Depends $(<) : $(>) ;
12 # Just to clarify here: this sets the per-target CCFLAGS to
13 # be the current value of (global) CCFLAGS and SUBDIRCCFLAGS.
14 # CCHDRS and CCDEFS must be reformatted each time for some
15 # compiles (VMS, NT) that malign multiple -D or -I flags.
16 CCFLAGS on $(<) += $(CCFLAGS) $(SUBDIRCCFLAGS) ;
17 CCHDRS on $(<) = [ on $(<) FIncludes $(HDRS) ] ;
18 CCDEFS on $(<) = [ on $(<) FDefines $(DEFINES) ] ;
19 CCHDRS on $(<) += [ FIncludes $(SUBDIRHDRS) ] ;
20 CCDEFS on $(<) += [ FDefines $(SUBDIRDEFINES) ] ;
21 CC.standard on $(<) += $(CC.standard) ;
25 actions Cc {
26 $(CC) -c -o $(<) $(CC.standard) $(CFLAGS.all) $(CCFLAGS) $(OPTIM.all) $(OPTIM) $(CCDEFS) $(CCHDRS) $(>)