1 #============================================================================
2 # Jam configuration and actions for MacOS/X
3 # Copyright (C) 2003 by Eric Sunshine <sunshine@sunshineco.com>
4 # Copyright (C) 2006 by Ondrej Hosek <ondra.hosek@gmail.com>
5 #============================================================================
9 # Experience seems to indicate that library scanning misbehaves on MacOS/X with
10 # Jam 2.4, consequently we disable it.
11 MACLIBTOOL = "libtool" ;
16 $(MACLIBTOOL) -static -o $(<) $(>)
19 #------------------------------------------------------------------------------
21 #------------------------------------------------------------------------------
23 # ConstructApplicationTarget target : options
24 # Constructs the application target name (ie. foo.app for foo)
25 rule ConstructApplicationTarget
30 # ConstructLibraryTarget target : options
31 rule ConstructLibraryTarget
36 # SystemLinkApplication target : objects : options
37 rule SystemLinkApplication
39 local target = $($(<)_TARGET) ;
40 Depends $(target) : $(>) ;
42 if [ IsElem linkerfile : $(3) ]
44 RemoveLinkerInputFile $(target) ;
46 for i in $(>) { AppendLinkerInputFile $(target) : $(i) ; }
47 LinkApplicationFromFile $(target) : $(target) ;
48 RemoveLinkerInputFile $(target) ;
52 LinkApplication $(target) : $(>) ;
55 LIBS on $(target) = $(LIBS) ;
56 Clean clean : $(target) ;
57 Clean $(<)clean : $(target) ;
60 # LinkApplicationConsole exe : objects
61 # Link a console (non-GUI) appliation from a set of object files.
62 actions LinkApplication bind NEEDLIBS bind EXTRAOBJECTS
65 $(LINK) -o $(<) $(>) $(EXTRAOBJECTS) $(NEEDLIBS) $(LIBS)
68 actions quietly RemoveLinkerInputFile
73 actions quietly together piecemeal AppendLinkerInputFile
78 actions LinkApplicationFromFile bind NEEDLIBS bind EXTRAOBJECTS
81 $(LINK) -o $(<) `cat $(>).opt` $(EXTRAOBJECTS) $(NEEDLIBS) $(LIBS)
82 # $(LINK) -o $(<) -Xlinker @$(>).opt $(EXTRAOBJECTS) $(NEEDLIBS) $(LIBS)
85 # Fix a Bison quirk... headers for ".cpp" are made ".cpp.h" (not ".hpp")
91 $(BISON) -d $(BISON_FLAGS) -o $(<[1]) $(>)
92 test -f $(<[1]).h && $(MV) $(<[1]).h $(<[2])