Makefile #9

  • //
  • guest/
  • craig_mcpheeters/
  • work/
  • jam/
  • src/
  • Makefile
  • View
  • Commits
  • Open Download .zip Download (2 KB)
# Makefile for jam

CC = cc
CFLAGS =
EXENAME = ./jam0
TARGET = -o $(EXENAME)

# Special flavors - uncomment appropriate lines

# NCR seems to have a broken readdir() -- use gnu
#CC = gcc

# AIX needs -lbsd, and has no identifying cpp symbol
# Use _AIX41 if you're not on 3.2 anymore.
#LINKLIBS = -lbsd
#CFLAGS = -D_AIX

# NT (with Microsoft compiler)
# Use FATFS if building on a DOS FAT file system
#Lib = $(MSVCNT)/lib
#Include = $(MSVCNT)/include
#CC = cl /nologo
#CFLAGS = -I $(Include) -DNT 
#TARGET = /Fejam0
#LINKLIBS = $(Lib)/oldnames.lib $(Lib)/kernel32.lib $(Lib)/libc.lib
#EXENAME = .\jam0.exe

# NT (with Microsoft compiler)
# People with DevStudio settings already in shell environment.
#CC = cl /nologo
#CFLAGS = -DNT 
#TARGET = /Fejam0
#EXENAME = .\jam0.exe

# Interix - gcc
#CC = gcc

# Cygwin - gcc & cygwin
#CC = gcc
#CFLAGS = -D__cygwin__

# MingW32
#CC = gcc
#CFLAGS = -DMINGW

# MPEIX
#CC = gcc
#CFLAGS = -I/usr/include -D_POSIX_SOURCE

# QNX rtp (neutrino)
#CC = gcc

SOURCES = \
	builtins.c \
	command.c compile.c execunix.c execvms.c expand.c \
	filent.c fileos2.c fileunix.c filevms.c glob.c hash.c \
	headers.c hcache.c jam.c jambase.c jamgram.c lists.c make.c make1.c \
	newstr.c option.c parse.c pathunix.c pathvms.c regexp.c \
	rules.c scan.c search.c timestamp.c variable.c w32_getreg.c

all: $(EXENAME)
	$(EXENAME)

$(EXENAME):
	$(CC) $(TARGET) $(CFLAGS) $(SOURCES) $(LINKLIBS)

# Avoid regeneration of jamgram stuff.
#    % p4 edit jamgram\*
#    % make touch
#    % p4 revert jamgram\*
#
touch:
	touch jamgram.yy
	touch jamgram.y
	touch jamgram.h jamgramtab.h
	touch jamgram.c
	touch jambase.c

touch0:
	p4 edit jamgram*
	p4 edit jambase.c

touch1:
	p4 revert jamgram*
	p4 revert jambase.c
# Change User Description Committed
#9 4112 Craig Mcpheeters Small change.
#8 3183 Craig Mcpheeters Integration of my jam mainline branch into my work branch.
#7 3182 Craig Mcpheeters Update of my work branch.
#6 1606 Craig Mcpheeters Integration from my modified jam mainline.
 This is all the mainline
  changes into my work branch.
#5 1477 Craig Mcpheeters Integration from my main jam branch.
 This is 2.4-dev with my extensions.
#4 1085 Craig Mcpheeters Returned some changes to bring this copy in line with our internal
  version
* Added some double quotes in the Jambase so we can compile files with
  spaces in the names
* Updated our Jambase.aw from the Jambase
* Added some debug/optim code to the Jamfile
* Fixed a bug in command.c  In my dynamic command size extension, it
  no longer took into account if a target was marked as piecemeal.  Now
  it does
* Fixed a bug in execunix.c  In jam 2.3 the logic for when to invoke the
  interpreter directly, and when to go through an intermediate .bat file
  was changed.  This was failing for us, as on NT, cmd.exe does not handle
  large lines.  rc.exe was failing when it went through a .bat file.
  Reverted it to the 2.2 logic
#3 785 Craig Mcpheeters Integration from //guest/craig_mcpheeters/jam/src/...
This work area now contains both the Alias|Wavefront changes, and
  the latest integrations from the mainline.  There are some changes
  in this area which shouldn't be merged back into the mainline.
  As I merge this branch back into my jam/src/... branch, I'll
  leave out a few of the changes.
#2 782 Craig Mcpheeters Initial return of the Alias|Wavefront mods to jam 2.2.
 I made a
  stab at a configuration system - see the file Jamfile.config.
  Most of the mods are now enclosed within #ifdef blocks, which
  kind of pollutes the code, but may make it easier to accept
  or reject some of these changes.  Some of these #ifdefs could
  disappear completely if they are accepted into the mainline
This return implements the following extensions:
  * header cache
  * dynamic command block size, allowing for *large* commands
  * slightly improved warnings and errors
  * serial output from jam - nice when working with multiple jobs
  * an extension to variable modifiers:  $(>:/) and $(>:\\)
  * ability to ignore header dependencies for a build (jam -p)
  * new debug level, -d+10, which outputs the dependency graph
  * added no-care support to internal nodes.  if they fail, dependents
    are built anyway
  * time stamps on output
  * a few minor output modifications
  * a fix for nt batch file names conflicing when more than one jam runs
    at a time
Each of the above can be enabled/disabled on the command line.  For
  example, to turn on the HeaderCache code:
    jam -sHeaderCache=1
  that is, build jam first, then use that jam to build a new one with the
  options you want.
Some of these changes may have been made in the mainline already, my next
  step will be to integrate the mainline changes into these ones
This return isn't yet ready for prime-time
#1 777 Craig Mcpheeters Branch of my jam/src/...
area.  This new area establishes the integration
  base for the copy of Jam which has all the changes.
//guest/craig_mcpheeters/jam/src/Makefile
#2 617 Craig Mcpheeters Integration from mainline as of @3
#1 616 Craig Mcpheeters Integration from Jam mainline, as of @2