# # 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 $(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 $(MINGW) { 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 ; } # For jam profiling/debugging. if $(PROFILE) { CCFLAGS += -pg ; LINKFLAGS += -pg ; LOCATE_TARGET = $(LOCATE_TARGET)/pg ; } if $(DEBUG) { CCFLAGS += -g ; LINKFLAGS += -g ; LOCATE_TARGET = $(LOCATE_TARGET)/g ; } # We have to signal jam.h for these if $(OS) = NT { CCFLAGS += /DNT ; } # Do we know yacc? if $(YACC) { code += jamgram.y ; } else { code += jamgram.c ; } # # Build the jamgram.y from the jamgram.yy # yyacc is a slippery script that makes grammars a little # easier to read/maintain. # if $(YACC) && $(SUFEXE) = "" { GenFile jamgram.y jamgramtab.h : yyacc jamgram.yy ; } # # How to build the compiled in jambase. # Main mkjambase : mkjambase.c ; if $(VMS) { CC = cxx ; LINK = cxxlink ; CCFLAGS += /define=VMS ; } # # The guts of the Jamfile: how to build Jam # Main jam : jam.c jambase.c ; LinkLibraries jam : libjam.a ; GenFile jambase.c : mkjambase Jambase ; Library libjam.a : builtins.c 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 ; if $(BINDIR) { InstallBin $(BINDIR) : jam ; } # # Distribution making from here on out. # ALLSOURCE = Build.com Build.mpw Jam.html Jambase Jambase.html Jamfile Jamfile.html Makefile Porting README RELNOTES builtins.c builtins.h command.c command.h compile.c compile.h execcmd.h execmac.c execunix.c execvms.c expand.c expand.h filemac.c filent.c fileos2.c filesys.h fileunix.c filevms.c glob.c hash.c hash.h headers.c headers.h jam.c jam.h jambase.c jambase.h jamgram.c jamgram.h jamgram.y jamgram.yy jamgramtab.h lists.c lists.h make.c make.h make1.c mkjambase.c newstr.c newstr.h option.c option.h parse.c parse.h patchlevel.h pathmac.c pathsys.h pathunix.c pathvms.c regexp.c regexp.h rules.c rules.h scan.c scan.h search.c search.h timestamp.c timestamp.h variable.c variable.h yyacc ; rule Ball { NotFile balls ; Depends balls : $(<) ; DEPENDS $(<) : $(>) ; switch $(<) { case *.tar : Tar $(<) : $(>) ; case *.shar : Shar $(<) : $(>) ; case *.zip : Zip $(<) : $(>) ; } } VERSION = jam-2.4 ; actions Tar { ln -s . $(VERSION) tar cvhf $(<) $(VERSION)/$(>) rm $(VERSION) } actions Shar { shar $(>) > $(<) } actions Zip { zip $(<) $(>) } Ball $(VERSION).shar : $(ALLSOURCE) ; Ball $(VERSION).tar : $(ALLSOURCE) ; Ball $(VERSION).zip : $(ALLSOURCE) ;
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 1903 | Perforce staff | Pull changes from the public jam. | ||
#1 | 1619 | Perforce staff | Branch of jam 2.4 rc2 for further work. | ||
//guest/perforce_software/jam/src/Jamfile | |||||
#11 | 1617 | rmg | Branding 2.4rc2 | ||
#10 | 1593 | rmg | Branding this "2.4rc1". | ||
#9 | 1580 | rmg |
Changes for 2.4beta. Yes, Christopher, I brashly said "2.4-dev WAS the beta" at tea yesterday, but I've since come to my better instincts (got chicken?), so this one will say rmg $ jam -v Jam 2.4beta. OS=LINUX. Copyright 1993-2002 Christopher Seiwald. for a week or two, at least. |
||
#8 | 1571 | Perforce staff |
MINGW port by Max Blagai. Porting change documented in RELNOTES. |
||
#7 | 1355 | rmg |
Record integration of Change 281 by john_belmonte. (This was actually dropped in as part of the Jam 2.3 release; the present change serves to record the fact in the integration history, only.) |
||
#6 | 1352 | rmg |
Integrates Change 350 by grant_glouser Change 352 by grant_glouser Resolved -ay, since the changes were already present in Jam 2.3 from other sources. (This change is for the benefit of the integration history, only.) |
||
#5 | 1319 | rmg |
Jam 2.3 + Perforce's internal changes. This change is a drop of the Perforce internal Jam changes since the 2.3 public release. The individual changes represented herein are preserved in the //guest/richard_geiger/intjam/ branch. The intent of this drop is to provide a base, from which other contributors' Jam branches may be integrated into. It is not intended to become a packaged release in this state. We will be integrating changes from other users prior to creating the next packaged release. Please refer to the src/RELNOTES file for an overview of the changes present in this integration. - Richard Geiger Open Source Engineer at Perforce |
||
#4 | 556 | Perforce staff |
Patch release jam 2.3.2: reverse NOCARE change. NOCARE once again applies to targets with source and/or actions, so that buildable header files get built. |
||
#3 | 486 | Perforce staff |
Jam 2.3. See RELNOTES for a list of changes from 2.2.x. Just about every source file was touched when jam got ANSI-fied. |
||
#2 | 3 | Perforce maintenance | Jam/MR 2.2.1 (fix for NT handle leak) | ||
#1 | 2 | laura | Add Jam/MR 2.2 source |