## noinstall: Don't setup a default installation target.
## independent: The target will not be made a dependency of the apps and
## all target.
+## linkerfile: Store a list of objects in a file and link using that
+## file. Use this to get around Jam's 10240 character argument limit.
rule Application
{
# check options
- CheckOptions noinstall console independent : $(3) : $(<) ;
+ CheckOptions noinstall console independent linkerfile : $(3) : $(<) ;
local target = [ ConstructApplicationTarget $(<) : $(3) ] ;
- local sources = [ DoSourceGrist $(>) ] ;
+ local sources = [ SearchSource $(>) ] ;
local objects = [ CompileObjects $(sources) ] ;
$(<)_TYPE = application ;
SystemLinkApplication $(<) : $(objects) : $(3) ;
# Import default flags
- CppFlags $(<) : $(CPPFLAGS) $(APPLICTION_CPPFLAGS) ;
- CFlags $(<) : $(CFLAGS) $(APPLICATION_CFLAGS) ;
- C++Flags $(<) : $(C++FLAGS) $(APPLICATION_C++FLAGS) ;
- LFlags $(<) : $(LFLAGS) $(APPLICATION_LFLAGS) ;
+ CppFlags $(<) : $(APPLICTION_CPPFLAGS) ;
+ CFlags $(<) : $(APPLICATION_CFLAGS) ;
+ C++Flags $(<) : $(APPLICATION_CXXFLAGS) ;
+ LFlags $(<) : $(APPLICATION_LIBS) ;
# Sources are part of the package
if ! [ IsElem nopackage : $(3) ]
{
Package $(sources) ;
}
+
+ return $(target) ;
}
#----------------------------------------------------------------------------