xref: /dflybsd-src/contrib/bmake/mk/posix.mk (revision 9e7ae5a0527a977cab412aede3a532cfe2903bbb)
1*6eef5f0cSAntonio Huete Jimenez# $Id: posix.mk,v 1.2 2022/03/25 23:55:37 sjg Exp $
2*6eef5f0cSAntonio Huete Jimenez#
3*6eef5f0cSAntonio Huete Jimenez#	@(#) Copyright (c) 2022, Simon J. Gerraty
4*6eef5f0cSAntonio Huete Jimenez#
5*6eef5f0cSAntonio Huete Jimenez#	This file is provided in the hope that it will
6*6eef5f0cSAntonio Huete Jimenez#	be of use.  There is absolutely NO WARRANTY.
7*6eef5f0cSAntonio Huete Jimenez#	Permission to copy, redistribute or otherwise
8*6eef5f0cSAntonio Huete Jimenez#	use this file is hereby granted provided that
9*6eef5f0cSAntonio Huete Jimenez#	the above copyright notice and this notice are
10*6eef5f0cSAntonio Huete Jimenez#	left intact.
11*6eef5f0cSAntonio Huete Jimenez#
12*6eef5f0cSAntonio Huete Jimenez#	Please send copies of changes and bug-fixes to:
13*6eef5f0cSAntonio Huete Jimenez#	sjg@crufty.net
14*6eef5f0cSAntonio Huete Jimenez#
15*6eef5f0cSAntonio Huete Jimenez
16*6eef5f0cSAntonio Huete Jimenez# The minimal set of rules required by POSIX
17*6eef5f0cSAntonio Huete Jimenez
18*6eef5f0cSAntonio Huete Jimenez.if !defined(%POSIX)
19*6eef5f0cSAntonio Huete Jimenez.error ${.newline}Do not inlcude this directly, put .POSIX: at start of Makefile
20*6eef5f0cSAntonio Huete Jimenez.endif
21*6eef5f0cSAntonio Huete Jimenez
22*6eef5f0cSAntonio Huete Jimenez.if ${.MAKEFLAGS:M-r} == ""
23*6eef5f0cSAntonio Huete Jimenez# undo some work done by sys.mk
24*6eef5f0cSAntonio Huete Jimenez.SUFFIXES:
25*6eef5f0cSAntonio Huete Jimenez.undef ARFLAGS
26*6eef5f0cSAntonio Huete Jimenez.undef CC CFLAGS
27*6eef5f0cSAntonio Huete Jimenez.undef FC FFLAGS
28*6eef5f0cSAntonio Huete Jimenez.undef LDFLAGS LFLAGS
29*6eef5f0cSAntonio Huete Jimenez.undef RANLIBFLAGS
30*6eef5f0cSAntonio Huete Jimenez.undef YFLAGS
31*6eef5f0cSAntonio Huete Jimenez.endif
32*6eef5f0cSAntonio Huete Jimenez
33*6eef5f0cSAntonio Huete Jimenez.SUFFIXES: .o .c .y .l .a .sh .f
34*6eef5f0cSAntonio Huete Jimenez
35*6eef5f0cSAntonio Huete Jimenez# these can still be set via environment
36*6eef5f0cSAntonio Huete JimenezAR ?= ar
37*6eef5f0cSAntonio Huete JimenezARFLAGS ?= -rv
38*6eef5f0cSAntonio Huete JimenezCC ?= c99
39*6eef5f0cSAntonio Huete JimenezCFLAGS ?= -O
40*6eef5f0cSAntonio Huete JimenezFC ?= fort77
41*6eef5f0cSAntonio Huete JimenezFFLAGS ?= -O 1
42*6eef5f0cSAntonio Huete JimenezLDFLAGS ?=
43*6eef5f0cSAntonio Huete JimenezLEX ?= lex
44*6eef5f0cSAntonio Huete JimenezLFLAGS ?=
45*6eef5f0cSAntonio Huete JimenezRANLIBFLAGS ?= -D
46*6eef5f0cSAntonio Huete JimenezYACC ?= yacc
47*6eef5f0cSAntonio Huete JimenezYFLAGS ?=
48*6eef5f0cSAntonio Huete Jimenez
49*6eef5f0cSAntonio Huete Jimenez.c:
50*6eef5f0cSAntonio Huete Jimenez	${CC} ${CFLAGS} ${LDFLAGS} -o $@ $<
51*6eef5f0cSAntonio Huete Jimenez
52*6eef5f0cSAntonio Huete Jimenez
53*6eef5f0cSAntonio Huete Jimenez.f:
54*6eef5f0cSAntonio Huete Jimenez	${FC} ${FFLAGS} ${LDFLAGS} -o $@ $<
55*6eef5f0cSAntonio Huete Jimenez
56*6eef5f0cSAntonio Huete Jimenez
57*6eef5f0cSAntonio Huete Jimenez.sh:
58*6eef5f0cSAntonio Huete Jimenez	cp $< $@
59*6eef5f0cSAntonio Huete Jimenez	chmod a+x $@
60*6eef5f0cSAntonio Huete Jimenez
61*6eef5f0cSAntonio Huete Jimenez
62*6eef5f0cSAntonio Huete Jimenez.c.o:
63*6eef5f0cSAntonio Huete Jimenez	${CC} ${CFLAGS} -c $<
64*6eef5f0cSAntonio Huete Jimenez
65*6eef5f0cSAntonio Huete Jimenez
66*6eef5f0cSAntonio Huete Jimenez.f.o:
67*6eef5f0cSAntonio Huete Jimenez	${FC} ${FFLAGS} -c $<
68*6eef5f0cSAntonio Huete Jimenez
69*6eef5f0cSAntonio Huete Jimenez
70*6eef5f0cSAntonio Huete Jimenez.y.o:
71*6eef5f0cSAntonio Huete Jimenez	${YACC} ${YFLAGS} $<
72*6eef5f0cSAntonio Huete Jimenez	${CC} ${CFLAGS} -c y.tab.c
73*6eef5f0cSAntonio Huete Jimenez	rm -f y.tab.c
74*6eef5f0cSAntonio Huete Jimenez	mv y.tab.o $@
75*6eef5f0cSAntonio Huete Jimenez
76*6eef5f0cSAntonio Huete Jimenez
77*6eef5f0cSAntonio Huete Jimenez.l.o:
78*6eef5f0cSAntonio Huete Jimenez	${LEX} ${LFLAGS} $<
79*6eef5f0cSAntonio Huete Jimenez	${CC} ${CFLAGS} -c lex.yy.c
80*6eef5f0cSAntonio Huete Jimenez	rm -f lex.yy.c
81*6eef5f0cSAntonio Huete Jimenez	mv lex.yy.o $@
82*6eef5f0cSAntonio Huete Jimenez
83*6eef5f0cSAntonio Huete Jimenez
84*6eef5f0cSAntonio Huete Jimenez.y.c:
85*6eef5f0cSAntonio Huete Jimenez	${YACC} ${YFLAGS} $<
86*6eef5f0cSAntonio Huete Jimenez	mv y.tab.c $@
87*6eef5f0cSAntonio Huete Jimenez
88*6eef5f0cSAntonio Huete Jimenez
89*6eef5f0cSAntonio Huete Jimenez.l.c:
90*6eef5f0cSAntonio Huete Jimenez	${LEX} ${LFLAGS} $<
91*6eef5f0cSAntonio Huete Jimenez	mv lex.yy.c $@
92*6eef5f0cSAntonio Huete Jimenez
93*6eef5f0cSAntonio Huete Jimenez
94*6eef5f0cSAntonio Huete Jimenez.c.a:
95*6eef5f0cSAntonio Huete Jimenez	${CC} -c ${CFLAGS} $<
96*6eef5f0cSAntonio Huete Jimenez	${AR} ${ARFLAGS} $@ $*.o
97*6eef5f0cSAntonio Huete Jimenez	rm -f $*.o
98*6eef5f0cSAntonio Huete Jimenez
99*6eef5f0cSAntonio Huete Jimenez
100*6eef5f0cSAntonio Huete Jimenez.f.a:
101*6eef5f0cSAntonio Huete Jimenez	${FC} -c ${FFLAGS} $<
102*6eef5f0cSAntonio Huete Jimenez	${AR} ${ARFLAGS} $@ $*.o
103*6eef5f0cSAntonio Huete Jimenez	rm -f $*.o
104*6eef5f0cSAntonio Huete Jimenez
105