Add in POSIX 1003.2 mandated rules. NOTE: these
will only be enabled when the first non-comment line of the Makefile contains the .POSIX directive. Submitted by: Joerg Wunsch <joerg@freebsd.org>
This commit is contained in:
parent
2b5209acaa
commit
2be2be749b
@ -1,22 +1,43 @@
|
||||
# from: @(#)sys.mk 8.2 (Berkeley) 3/21/94
|
||||
# $Id: sys.mk,v 1.14 1996/05/28 16:20:13 phk Exp $
|
||||
# $Id: sys.mk,v 1.16 1996/06/02 17:04:08 phk Exp $
|
||||
|
||||
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++
|
||||
@ -36,8 +57,13 @@ ECHODIR ?= true
|
||||
.endif
|
||||
.endif
|
||||
|
||||
.if defined(%POSIX)
|
||||
FC ?= fort77
|
||||
FFLAGS ?= -O 1
|
||||
.else
|
||||
FC ?= f77
|
||||
FFLAGS ?= -O
|
||||
.endif
|
||||
EFLAGS ?=
|
||||
|
||||
INSTALL ?= install
|
||||
@ -62,7 +88,71 @@ 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) -c $(CFLAGS) ${.IMPSRC}
|
||||
$(AR) $(ARFLAGS) ${.TARGET} ${.PREFIX}.o
|
||||
rm -f ${.PREFIX}.o
|
||||
|
||||
.f.a:
|
||||
$(FC) -c $(FFLAGS) ${.IMPSRC}
|
||||
$(AR) $(ARFLAGS) ${.TARGET} ${.PREFIX}.o
|
||||
rm -f ${.PREFIX}.o
|
||||
|
||||
.else
|
||||
|
||||
# non-Posix rule set
|
||||
|
||||
.c:
|
||||
${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
|
||||
@ -127,6 +217,8 @@ YFLAGS ?= -d
|
||||
${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)
|
||||
|
Loading…
Reference in New Issue
Block a user