Add command handling to module control.
[tairent.git] / Jamrules
bloba980f7739d36adc5d80d572c83793ebe94009e5d
1 BINDIR = $(TOP)/bin ;
2 MODDIR = $(TOP)/modules ;
4 AR = "ar cr" ;
5 C++ = g++ ;
6 CC = $(C++) ;
7 LINK = g++ ;
8 PYTHON = python ;
10 C++FLAGS = $(CCFLAGS) ;
11 LINKFLAGS = -Wl,--export-dynamic $(LDFLAGS) ;
13 LIBSDIR = "/usr/local/lib/tairon" ;
15 if $(NODEBUG) {
16         C++FLAGS += -Wall -pipe -fPIC ;
17         OPTIM = -O2 ;
18         LOGLEVEL = 0 ;
19 } else {
20         C++FLAGS += -Wall -pipe -g -fPIC ;
21         OPTIM = ;
22         LOGLEVEL = 3 ;
25 DEFINES = _REENTRANT LOGLEVEL=$(LOGLEVEL) TIXML_USE_STL ;
26 SHAREDFLAG = -shared ;
28 rule BuildLibrary
30         BuildLibraryObjects $(<) : $(>:S=$(SUFOBJ)) ;
31         Objects $(>) ;
34 rule BuildLibraryObjects
36         local s ;
37         s = [ FGristFiles $(>) ] ;
38         l = $(<:S=$(SUFLIB)) ;
40         Depends $(l) : $(s) ;
42         if ! $(l:D) {
43                 MakeLocate $(l) $(l)$($(s:BS)) : $(LOCATE_TARGET) ;
44         }
46         Clean clean : $(l) ;
48         Archive $(l) : $(s) ;
50         if $(RANLIB) {
51                 Ranlib $(l) ;
52         }
55 rule C++
57         Depends $(<) : $(>) ;
59         if $(RELOCATE)
60         {
61                 CcMv $(<) : $(>) ;
62         }
64         C++FLAGS on $(<) += $(C++FLAGS) $(OPTIM) ;
66         # Include only specified headers.
67         CCHDRS on $(<) += [ on $(<) FIncludes $(HEADERS) ] ;
68         CCDEFS on $(<) += [ on $(<) FDefines $(DEFINES) ] ;
71 rule Main
73         # This ensures that flags used to link this target also uses the ones from
74         # above
75         LINKFLAGS on $(<) += $(LINKFLAGS) ;
76         LINKFLAGS on $(<) += [ on $(<) FLibrariesDir $(LIBSDIR) ] ;
77         LINKFLAGS on $(<) += [ on $(<) FLibraries $(SHAREDLIBS) ] ;
78         MainFromObjects $(<) : $(>:S=$(SUFOBJ)) ;
79         Objects $(>) ;
82 rule Python
84         Clean clean : $(<) ;
86         SEARCH on $(>) = $(SEARCH_SOURCE) ;
87         MakeLocate $(<) : $(LOCATE_TARGET) ;
88         Depends $(<) : $(>) ;
91 rule Shared
93         LINKFLAGS on $(<) += $(SHAREDFLAG) ;
94         Main $(<) : $(>) ;
97 rule FLibraries
99         return -l$(<) ;
102 rule FLibrariesDir
104         return -L$(<) ;
107 actions Python
109         $(PYTHON) $(>) $(<)
112 # vim: syntax=jam ai sw=4 ts=4 noet fdm=marker