GenFile searches in '.' first
[k8jam.git] / defaults / Jambase.main
blobd16ea410a89bc7404a78585b46922b8daf0ef074
1 # $(1): image
2 # $(2): target list
3 # returns "_" for 'selftarget'
4 rule --MainNormalizeTargets-- {
5   local _ctt = $(2) ;
6   if ! $(_ctt) { _ctt = exe ; }
7   else if $(_ctt) = $(1) { _ctt = "_" ; }
8   return $(_ctt) ;
12 # /--MainFromObjects-- image : objects : targets : linkrule ;
14 # Links _objects_ into _image_. Dependency of exe.
15 # @MainFromObjects provides a default suffix for _image_
17 rule --MainFromObjects-- {
18   local _s _t _ctt _f ;
19   local _ctt = $(3) ;
21   # Add grist to file names
22   # Add suffix to exe
23   _s = [ FGristFiles $(>) ] ;
24   _t = [ FAppendSuffix $(<) : $(SUFEXE) ] ;
25   # so 'jam foo' works when it's really foo.exe
26   if $(_t) != $(<) {
27     Depends $(<) : $(_t) ;
28     NotFile $(<) ;
29   }
31   #Echo "MainFromObjects: _t:" "$(_t)" "_ctt:" "$(_ctt)" ;
33   # make compiled sources a dependency of target
34   if $(_ctt) != "_" {
35     for _f in $(_ctt) {
36       #Echo "separate target:" "$(_f)" ;
37       Depends $(_f) : $(_t) ;
38       Clean $(_f)_clean : $(_t) ;
39       Depends $(_f)_clean : clean ;
40     }
41   } else {
42     #Echo "separate target:" "$(_t)" ;
43     Clean $(_t)_clean : $(_t) ;
44     Depends $(_t)_clean : clean ;
45   }
46   #Depends exe : $(_t) ;
47   Depends $(_t) : $(_s) ;
48   #k8:MakeLocate $(_t) : $(LOCATE_TARGET) ;
49   MakeLocate $(_t) : $(LOCATE_BIN) ;
50   Clean clean : $(_t) ;
52   # special case for stupid Borland C++, which always generates a
53   # .tds file for executables, even when no debug information is needed
54   #
55   #if $(JAM_TOOLSET) = BORLANDC {
56   #  MakeLocate $(_t:S=.tds) : $(LOCATE_TARGET) ;
57   #  Clean  clean : $(_t:S=.tds) ;
58   #}
60   $(4) $(_t) : $(_s) ;
63 . main/Jambase.main.c
64 . main/Jambase.main.cpp
65 . main/Jambase.main.objc
66 . main/Jambase.main.lib
67 . main/Jambase.main.libso