1 #============================================================================
2 # Jam configuration and actions for Linux/Unix
3 #============================================================================
6 #----------------------------------------------------------------------------
7 # platform specific rules
9 ## ConstructApplicationTarget target : options
10 ## Constructs the application atrget name (ie. foo.exe for foo)
11 rule ConstructApplicationTarget
15 rule ConstructLibraryTarget
17 if [ IsElem shared : $(2) ] {
23 rule ConstructPluginTarget
28 # SystemLinkApplication target : objects : options
29 # do system specific actions needed for linking the application and construct
30 # correct clean targets.
31 rule SystemLinkApplication
33 local target = $($(<)_TARGET) ;
35 Depends $(target) : $(>) ;
39 WHOLE_ARCH_BEGIN on $(target) = -Wl,--whole-archive ;
40 WHOLE_ARCH_END on $(target) = -Wl,--no-whole-archive ;
43 LinkApplication $(target) : $(>) ;
44 LIBS on $(target) = $(LIBS) ;
46 Clean clean : $(target) ;
47 Clean $(<)clean : $(target) ;
50 actions LinkApplication bind NEEDLIBS bind NEEDLIBS_WHOLE bind EXTRAOBJECTS
52 $(LINK) -o $(<) $(>) $(EXTRAOBJECTS) $(NEEDLIBS) $(WHOLE_ARCH_BEGIN) \
53 $(NEEDLIBS_WHOLE) $(WHOLE_ARCH_END) $(LIBS)