Jamfile #1

  • //
  • guest/
  • chris_comparini/
  • jam_sample/
  • sample/
  • simple/
  • Jamfile
  • View
  • Commits
  • Open Download .zip Download (2 KB)
#
#  A very simple example Jam project.  Compiles a variant of the timeless
#  classic, "hello world".  Illustrates one way in which you can use jam
#  to (a) compile a simple executable (b) place generated files in 
#  separate subdirectories and (c) use the InstallBin rule to install
#  the executable.
#

#
#  Tell Jam to place the output of compilation in the "obj" directory.
#  This keeps our source directory relatively clean.
#
LOCATE_TARGET = obj ;

#
#  Tell Jam that the executable "hello" is made from the file "hello.c".
#  This is what causes the actual compilation.
#
#  Note that on Windows NT the executable is actually "hello.exe";  on
#  Unix-ish operating systems it will be simply "hello",  etc.  Jam will
#  figure out the appropriate suffix.
#
Main hello : hello.c ;

#
#  For the sake of illustration, we do something slightly more sophisticated
#  for the "install" target: We install the "hello" executable into a
#  directory specified by the variable $(INSTALL_DIR).
#
#  INSTALL_DIR may be set in the user's environment, or on the jam command
#  line (using the -s option).  
#
#  If INSTALL_DIR is not set, we cause it to be set to a default by using
#  the "?=" operator.  Also (for the sake of illustration), we base the
#  default name of the install directory on the $(OS) variable, which is
#  set by Jam to the name of the operating system on which we are compiling.
#  In this example, we use it with the ":L" modifier, which returns an
#  all-lowercase version of the contents of $(OS).
#
#  See the Jam manual at http://public.perforce.com/public/jam/src/Jam.html 
#  under the topic "Variables" for more information on varibles and modifiers.
#
#  Finally, we use the FDirName rule to construct a directory name in a
#  portable way.  The square braces ('[' and ']') tell Jam to use the result
#  of calling the FDirName rule, rather than treating "FDirName" as the
#  name of the directory.
#
INSTALL_DIR ?= shipit $(OS:L) ;
InstallBin [ FDirName $(INSTALL_DIR) ] : hello ;


# Change User Description Committed
#1 4438 Chris Comparini Sample jam projects.
 "rootless" documentation still needs work.