- #
- # 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 $(MINGW64) { 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 $(AS400) { code = execas400.c fileunix.c pathunix.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 += /MT ;
- }
- # 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 ;
- CCFLAGS on jamgram$(SUFOBJ) += /NOOPTIMIZE ;
- }
- #
- # 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.5 ;
- 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 | |
---|---|---|---|---|---|
#19 | 23298 | Nick Poole | Updating Jam source The changes here include a simplified Windows build process: the mak...efile now has 2 MSVC sections, one 32-bit the other 64-bit. « |
7 years ago | |
#18 | 9893 | brett | On a Windows debug build the /MT flag was used in addition to the /MTd flag. Basica...lly harmless except the compiler issued a warning for every file compiled. Removed the use of the /MT flag in the jambase arena. This allows the Jamrules to properly set this flag as required. Also when doing a Smart Heap debug build, duplicate symbols in the Smart Heap library conflicted with the standard Windows CRT library. Adding a /FORCE to the link line solves this problem. This is a very narrow case and should not effect builds without Smart Heap. Jam must be rebuilt to remove the /MT and /MTd warning. p4transfer.py: Transferred from production « |
13 years ago | |
#17 | 9891 | brett | Move the /MT flag for NET 2005 into jam's Jamfile and out of the Jambase file. This... removes the conflict with the various TYPE=dyn, TYPE=dyng and so on, yet compiles jam as multi threaded. p4transfer.py: Transferred from production « |
17 years ago | |
#16 | 9889 | noahf | Jamfile ($(VMS)): Compile jamgram.c without optimization. Follow-on to change 108665. ... p4transfer.py: Transferred from production « |
18 years ago | |
#15 | 9884 | tony | jam and 2004.2 p4 client for AS/400. Built on AS/400 V5R2 with native ILE C/C++ compile...r. Note, this build reports itself as P4/AS400/2004.2/76944 but this change contains porting changes that were required to make the build work so the changelist number is incorrect. This can be resolved with a clean build for 2005.1 at a later date. p4.sav and jam.sav are AS/400 "Save Files" that can be used to install the software on an AS/400 machine. The p4.sav file includes the p4.cmd and p4sync.cmd files we distributed with our older AS/400 builds. These files define a forms-type interface for supplying the parameters to the commands when you run them. Porting change only. No functional change. p4transfer.py: Transferred from production « |
20 years ago | |
#14 | 4409 | Perforce staff | Drop 'rc3' moniker of jam-2.5. Folded rc2 and rc3 RELNOTES into the main part of... the document. Built new tar/zip balls. Only 16 months later. « |
21 years ago | |
#13 | 2513 | rmg | Set the version number and patchlevel for the 2.5rc1 release. In RELNOTES, don't docume...nt the different behavior when a "return" is not the last statement executed in rule definition as a non-backward-compatible change (in the "Compatibility" section). « |
22 years ago | |
#12 | 1658 | rmg | 2.4rc2 becomes 2.4 (final). | 23 years ago | |
#11 | 1617 | rmg | Branding 2.4rc2 | 23 years ago | |
#10 | 1593 | rmg | Branding this "2.4rc1". | 23 years ago | |
#9 | 1580 | rmg | Changes for 2.4beta. Yes, Christopher, I brashly said "2.4-dev WAS the beta" at tea yest...erday, 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. « |
23 years ago | |
#8 | 1571 | Perforce staff |
MINGW port by Max Blagai. Porting change documented in RELNOTES. |
23 years ago | |
#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.) « |
23 years ago | |
#6 | 1352 | rmg | Integrates Change 350 by grant_glouser Change 352 by grant_gl...ouser 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.) « |
23 years ago | |
#5 | 1319 | rmg | Jam 2.3 + Perforce's internal changes. This change is a drop of the Perforce internal J...am 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 « |
23 years ago | |
#4 | 556 | Perforce staff | Patch release jam 2.3.2: reverse NOCARE change. NOCARE once again applies to targ...ets with source and/or actions, so that buildable header files get built. « |
24 years ago | |
#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. « |
24 years ago | |
#2 | 3 | Perforce maintenance | Jam/MR 2.2.1 (fix for NT handle leak) | 26 years ago | |
#1 | 2 | laura | Add Jam/MR 2.2 source | 26 years ago |