Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

libs/filesystem/build/Jamfile

# Boost Filesystem Library Build Jamfile

# (C) Copyright Beman Dawes 2002
# Use, modification, and distribution is subject to the Boost Software
# License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)

# See library home page at http://www.boost.org/libs/filesystem

subproject libs/filesystem/build ;

SOURCES = exception operations_posix_windows path_posix_windows convenience ;

lib boost_filesystem
     : ../src/$(SOURCES).cpp
     : # build requirements
       <define>BOOST_FILESYSTEM_STATIC_LINK
       <include>$(BOOST_ROOT) <sysinclude>$(BOOST_ROOT)
       <no-warn>exception.cpp <no-warn>operations_posix_windows.cpp
      # common-variant-tag ensures that the library will
      # be named according to the rules used by the install
      # and auto-link features:
      common-variant-tag 
     : debug release  # build variants
     ;

dll boost_filesystem
     : ../src/$(SOURCES).cpp
     : # build requirements
       <define>BOOST_FILESYSTEM_DYN_LINK=1  # tell source we're building dll's
       <runtime-link>dynamic  # build only for dynamic runtimes
       <include>$(BOOST_ROOT) <sysinclude>$(BOOST_ROOT)
       <no-warn>exception.cpp <no-warn>operations_posix_windows.cpp
      # common-variant-tag ensures that the library will
      # be named according to the rules used by the install
      # and auto-link features:
      common-variant-tag 
     : debug release  # build variants
     ;

install filesystem lib
     : <lib>boost_filesystem <dll>boost_filesystem
     ;

stage stage/lib : <lib>boost_filesystem <dll>boost_filesystem
    :
        # copy to a path rooted at BOOST_ROOT:
        <locate>$(BOOST_ROOT)
        # make sure the names of the libraries are correctly named:
        common-variant-tag
        # add this target to the "stage" and "all" psuedo-targets:
        <target>stage
        <target>all
    :
        debug release
    ;

# end