# # Jamfile to build Jam (a make(1)-like program) # # There are no user-serviceable parts in this file. # # Put executables in platform-specific subdirectory. # If $(OSVER) isn't set, second value is used. if $(VMS) { LOCATE_TARGET ?= [.binvms] ; } else if $(MAC) { LOCATE_TARGET ?= :bin.mac ; } else { LOCATE_TARGET ?= bin.$(OSFULL[1]:L) ; } # Leave generated source in current directory; it would be nice to use # these lines below to build the source into the platform-specific # directory, but getting scan.c to include the right jambase.h is # hard: with ""'s, it always gets the bootstrap version; with <>'s, # it won't find the bootstrap version. # SEARCH_SOURCE ?= $(LOCATE_TARGET) $(DOT) ; # LOCATE_SOURCE ?= $(LOCATE_TARGET) ; # # We have some different files for UNIX, VMS, and NT. # if $(NT) { code = execunix.c filent.c pathunix.c ; } else if $(OS2) { code = execunix.c fileos2.c pathunix.c ; } else if $(VMS) { code = execvms.c filevms.c pathvms.c ; } else if $(MAC) { code = execmac.c filemac.c pathmac.c ; } else { code = execunix.c fileunix.c pathunix.c ; } if $(UNIX) { code += jamgram.y ; } else { code += jamgram.c ; } if $(OS) = NT { CCFLAGS += /DNT ; } if $(OS) = MVS { CCFLAGS += -DMVS ; } if $(OS)$(OSVER) = AIX41 { CCFLAGS += -D_AIX41 ; } # # How to build the compiled in jambase. # if $(NT) { if $(JAMDEBUG) { OPTIM = /Zi ; LINKFLAGS = /debug ; } else { OPTIM = /O2 ; } } Main mkjambase : mkjambase.c ; # # The guts of the Jamfile: how to build Jam # Main bhbjam : jam.c jambase.c ; LinkLibraries bhbjam : libjam.a ; GenFile jambase.c : mkjambase Jambase ; Library libjam.a : command.c compile.c $(code) expand.c glob.c hash.c headers.c lists.c make.c make1.c newstr.c option.c parse.c regexp.c rules.c scan.c search.c timestamp.c variable.c ; # # On UNIX, we install this stuff for easy use. # if $(UNIX) { # InstallBin $(BINDIR) : jam ; }