1130b656e5
This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
227 lines
3.8 KiB
Makefile
227 lines
3.8 KiB
Makefile
# from: @(#)sys.mk 8.2 (Berkeley) 3/21/94
|
|
# $FreeBSD$
|
|
|
|
unix ?= We run FreeBSD, not UNIX.
|
|
|
|
# If the special target .POSIX appears (without prerequisites or
|
|
# commands) before the first noncomment line in the makefile, make shall
|
|
# process the makefile as specified by the Posix 1003.2 specification.
|
|
# make(1) sets the special macro %POSIX in this case (to the actual
|
|
# value "1003.2", for what it's worth).
|
|
#
|
|
# The rules below use this macro to distinguish between Posix-compliant
|
|
# and default behaviour.
|
|
|
|
.if defined(%POSIX)
|
|
.SUFFIXES: .o .c .y .l .a .sh .f
|
|
.else
|
|
.SUFFIXES: .out .a .ln .o .c .cc .cxx .C .F .f .e .r .y .l .S .s .cl .p .h .sh
|
|
.endif
|
|
|
|
.LIBS: .a
|
|
|
|
X11BASE ?= /usr/X11R6
|
|
|
|
AR ?= ar
|
|
.if defined(%POSIX)
|
|
ARFLAGS ?= -rv
|
|
.else
|
|
ARFLAGS ?= rl
|
|
.endif
|
|
RANLIB ?= ranlib
|
|
|
|
AS ?= as
|
|
AFLAGS ?=
|
|
|
|
.if defined(%POSIX)
|
|
CC ?= c89
|
|
.else
|
|
CC ?= cc
|
|
.endif
|
|
CFLAGS ?= -O
|
|
|
|
CXX ?= c++
|
|
CXXFLAGS ?= ${CXXINCLUDES} ${CFLAGS}
|
|
|
|
CPP ?= cpp
|
|
|
|
.if ${.MAKEFLAGS:M-s} == ""
|
|
ECHO ?= echo
|
|
ECHODIR ?= echo
|
|
.else
|
|
ECHO ?= true
|
|
.if ${.MAKEFLAGS:M-s} == "-s"
|
|
ECHODIR ?= echo
|
|
.else
|
|
ECHODIR ?= true
|
|
.endif
|
|
.endif
|
|
|
|
.if defined(%POSIX)
|
|
FC ?= fort77
|
|
FFLAGS ?= -O 1
|
|
.else
|
|
FC ?= f77
|
|
FFLAGS ?= -O
|
|
.endif
|
|
EFLAGS ?=
|
|
|
|
INSTALL ?= install
|
|
|
|
LEX ?= lex
|
|
LFLAGS ?=
|
|
|
|
LD ?= ld
|
|
LDFLAGS ?=
|
|
|
|
LINT ?= lint
|
|
LINTFLAGS ?= -chapbx
|
|
|
|
MAKE ?= make
|
|
|
|
PC ?= pc
|
|
PFLAGS ?=
|
|
|
|
RC ?= f77
|
|
RFLAGS ?=
|
|
|
|
SHELL ?= sh
|
|
|
|
YACC ?= yacc
|
|
.if defined(%POSIX)
|
|
YFLAGS ?=
|
|
.else
|
|
YFLAGS ?= -d
|
|
.endif
|
|
|
|
.if defined(%POSIX)
|
|
# Posix 1003.2 mandated rules
|
|
#
|
|
# Quoted directly from the Posix 1003.2 draft, only the macros
|
|
# $@, $< and $* have been replaced by ${.TARGET}, ${.IMPSRC}, and
|
|
# ${.PREFIX}, resp.
|
|
|
|
# SINGLE SUFFIX RULES
|
|
.c:
|
|
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.IMPSRC}
|
|
|
|
.f:
|
|
${FC} ${FFLAGS} ${LDFLAGS} -o ${.TARGET} ${.IMPSRC}
|
|
|
|
.sh:
|
|
cp ${.IMPSRC} ${.TARGET}
|
|
chmod a+x ${.TARGET}
|
|
|
|
# DOUBLE SUFFIX RULES
|
|
|
|
.c.o:
|
|
${CC} ${CFLAGS} -c ${.IMPSRC}
|
|
|
|
.f.o:
|
|
${FC} ${FFLAGS} -c ${.IMPSRC}
|
|
|
|
.y.o:
|
|
${YACC} ${YFLAGS} ${.IMPSRC}
|
|
${CC} ${CFLAGS} -c y.tab.c
|
|
rm -f y.tab.c
|
|
mv y.tab.o ${.TARGET}
|
|
|
|
.l.o:
|
|
${LEX} ${LFLAGS} ${.IMPSRC}
|
|
${CC} ${CFLAGS} -c lex.yy.c
|
|
rm -f lex.yy.c
|
|
mv lex.yy.o ${.TARGET}
|
|
|
|
.y.c:
|
|
${YACC} ${YFLAGS} ${.IMPSRC}
|
|
mv y.tab.c ${.TARGET}
|
|
|
|
.l.c:
|
|
${LEX} ${LFLAGS} ${.IMPSRC}
|
|
mv lex.yy.c ${.TARGET}
|
|
|
|
.c.a:
|
|
${CC} ${CFLAGS} -c ${.IMPSRC}
|
|
${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
|
|
rm -f ${.PREFIX}.o
|
|
|
|
.f.a:
|
|
${FC} ${FFLAGS} -c ${.IMPSRC}
|
|
${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
|
|
rm -f ${.PREFIX}.o
|
|
|
|
.else
|
|
|
|
# non-Posix rule set
|
|
|
|
.c:
|
|
${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
|
|
|
|
.sh:
|
|
cp -p ${.IMPSRC} ${.TARGET}
|
|
chmod a+x ${.TARGET}
|
|
|
|
.c.o:
|
|
${CC} ${CFLAGS} -c ${.IMPSRC}
|
|
|
|
.cc.o .cxx.o .C.o:
|
|
${CXX} ${CXXFLAGS} -c ${.IMPSRC}
|
|
|
|
.p.o:
|
|
${PC} ${PFLAGS} -c ${.IMPSRC}
|
|
|
|
.e.o .r.o .F.o .f.o:
|
|
${FC} ${RFLAGS} ${EFLAGS} ${FFLAGS} -c ${.IMPSRC}
|
|
|
|
.S.o:
|
|
${CC} ${CFLAGS} -c ${.IMPSRC}
|
|
|
|
.s.o:
|
|
${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC}
|
|
|
|
# XXX not -j safe
|
|
.y.o:
|
|
${YACC} ${YFLAGS} ${.IMPSRC}
|
|
${CC} ${CFLAGS} -c y.tab.c -o ${.TARGET}
|
|
rm -f y.tab.c
|
|
|
|
.l.o:
|
|
${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c
|
|
${CC} ${CFLAGS} -c ${.PREFIX}.tmp.c -o ${.TARGET}
|
|
rm -f ${.PREFIX}.tmp.c
|
|
|
|
# XXX not -j safe
|
|
.y.c:
|
|
${YACC} ${YFLAGS} ${.IMPSRC}
|
|
mv y.tab.c ${.TARGET}
|
|
|
|
.l.c:
|
|
${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.TARGET}
|
|
|
|
.s.out .c.out .o.out:
|
|
${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
|
|
|
|
.f.out .F.out .r.out .e.out:
|
|
${FC} ${EFLAGS} ${RFLAGS} ${FFLAGS} ${LDFLAGS} ${.IMPSRC} \
|
|
${LDLIBS} -o ${.TARGET}
|
|
rm -f ${.PREFIX}.o
|
|
|
|
# XXX not -j safe
|
|
.y.out:
|
|
${YACC} ${YFLAGS} ${.IMPSRC}
|
|
${CC} ${CFLAGS} ${LDFLAGS} y.tab.c ${LDLIBS} -ly -o ${.TARGET}
|
|
rm -f y.tab.c
|
|
|
|
.l.out:
|
|
${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c
|
|
${CC} ${CFLAGS} ${LDFLAGS} ${.PREFIX}.tmp.c ${LDLIBS} -ll -o ${.TARGET}
|
|
rm -f ${.PREFIX}.tmp.c
|
|
|
|
.endif
|
|
|
|
.include <bsd.own.mk>
|
|
|
|
.if exists(/etc/make.conf)
|
|
.include </etc/make.conf>
|
|
.endif
|