buildtools/jam/Makefile
Jessica Hamilton 360fe2fd07 jam: mirror Jamfile in Makefile.
Without these changes, `jam0` is different to `bin.*/jam`, a subtle
difference that was triggering errors in CI due to use of `jam0`.
In particular, the omission of `OPT_JAM_TARGETS_VARIABLE_EXT`
results in a `jam0` that cannot build Haiku, as `$(JAM_TARGETS)`
will not be defined, and is required by Haiku's build system.
2025-01-01 09:19:56 +00:00

75 lines
1.7 KiB
Makefile

# Makefile for jam
CC = cc
CFLAGS = -O -DOPT_HEADER_CACHE_EXT -DOPT_JAMFILE_CACHE_EXT -DOPT_JAM_TARGETS_VARIABLE_EXT
EXENAME = ./jam0
TARGET = -o $(EXENAME)
HOST_SYSTEM=$(shell uname)
# 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
# BeOS (R5 only, actually, but who cares)
ifeq ($(HOST_SYSTEM), BeOS)
ifeq ($(shell sh -c "strings /system/lib/libroot.so | grep uname"), )
LINKLIBS = -lnet
endif
endif
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 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 \
jcache.c hcache.c
all: $(EXENAME)
LINKLIBS=$(LINKLIBS) $(EXENAME)
$(EXENAME):
$(CC) $(TARGET) $(CFLAGS) $(SOURCES) $(LINKLIBS)