Merge branch 'master' of git://github.com/illumos/illumos-gate
[unleashed.git] / bin / make / mk / sys / illumos.mk
blob1ea5f3d68e866d760282bcf07036312f8c356a5c
1 .SUFFIXES: .out .a .o .s .S .c ${CXX_SUFFIXES} .F .f .r .y .l .cl .p .h .sh .m4
3 OS?= illumos
4 unix?= We run ${OS}.
6 MANTARGET?= man
7 # MANTARGET=man causes MANDIR to contain share/man/man with mk-20160802
8 MANDIR?= /usr/share/man
9 BINGRP?= bin
10 STRIP_FLAG?=
12 .LIBS: .a
13 AR?= ar
14 ARFLAGS?= rl
15 LORDER?= lorder
16 RANLIB?= :
17 TSORT?= tsort
19 DBG?= -g
20 PIPE?= -pipe
21 STATIC?= -Bstatic
23 AS?= gas
24 AFLAGS?= ${DBG}
25 COMPILE.s?= ${CC} ${AFLAGS} -c
26 LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS}
27 COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c
28 LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
30 CC?= gcc
31 CPP?= gcpp
32 .if defined(DESTDIR)
33 CPPFLAGS+= -isysroot ${DESTDIR}
34 .endif
35 CFLAGS?= -O2 ${PIPE} ${DBG}
36 COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c
37 LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
39 CXX?= g++
40 CXXFLAGS?= ${CFLAGS}
41 COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
42 LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
44 FC?= gfortran
45 FFLAGS?= -O
46 RFLAGS?=
47 COMPILE.f?= ${FC} ${FFLAGS} -c
48 LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS}
49 COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c
50 LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
51 COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c
52 LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
54 LEX?= lex
55 LFLAGS?=
56 LEX.l?= ${LEX} ${LFLAGS}
58 LD?= ld
59 LDFLAGS?=
60 LD_X?=
61 LD_x?=
63 MAKE?= ${.MAKE}
65 NM?= nm
67 PC?= pc
68 PFLAGS?=
69 COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c
70 LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
72 SHELL?= sh
74 SIZE?= size
76 YACC?= yacc
77 YFLAGS?= -d
78 YACC.y?= ${YACC} ${YFLAGS}
80 # C
81 .c:
82 ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
83 .c.o:
84 ${COMPILE.c} ${.IMPSRC}
85 .c.a:
86 ${COMPILE.c} ${.IMPSRC}
87 ${AR} ${ARFLAGS} $@ $*.o
88 rm -f $*.o
90 # C++
91 ${CXX_SUFFIXES}:
92 ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
93 ${CXX_SUFFIXES:%=%.o}:
94 ${COMPILE.cc} ${.IMPSRC}
95 ${CXX_SUFFIXES:%=%.a}:
96 ${COMPILE.cc} ${.IMPSRC}
97 ${AR} ${ARFLAGS} $@ $*.o
98 rm -f $*.o
100 # Fortran/Ratfor
102 ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
103 .f.o:
104 ${COMPILE.f} ${.IMPSRC}
105 .f.a:
106 ${COMPILE.f} ${.IMPSRC}
107 ${AR} ${ARFLAGS} $@ $*.o
108 rm -f $*.o
111 ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
112 .F.o:
113 ${COMPILE.F} ${.IMPSRC}
114 .F.a:
115 ${COMPILE.F} ${.IMPSRC}
116 ${AR} ${ARFLAGS} $@ $*.o
117 rm -f $*.o
120 ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
121 .r.o:
122 ${COMPILE.r} ${.IMPSRC}
123 .r.a:
124 ${COMPILE.r} ${.IMPSRC}
125 ${AR} ${ARFLAGS} $@ $*.o
126 rm -f $*.o
128 # Pascal
130 ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
131 .p.o:
132 ${COMPILE.p} ${.IMPSRC}
133 .p.a:
134 ${COMPILE.p} ${.IMPSRC}
135 ${AR} ${ARFLAGS} $@ $*.o
136 rm -f $*.o
138 # Assembly
140 ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
141 .s.o:
142 ${COMPILE.s} ${.IMPSRC}
143 .s.a:
144 ${COMPILE.s} ${.IMPSRC}
145 ${AR} ${ARFLAGS} $@ $*.o
146 rm -f $*.o
148 ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
149 .S.o:
150 ${COMPILE.S} ${.IMPSRC}
151 .S.a:
152 ${COMPILE.S} ${.IMPSRC}
153 ${AR} ${ARFLAGS} $@ $*.o
154 rm -f $*.o
156 # Lex
158 ${LEX.l} ${.IMPSRC}
159 ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
160 rm -f lex.yy.c
161 .l.c:
162 ${LEX.l} ${.IMPSRC}
163 mv lex.yy.c ${.TARGET}
164 .l.o:
165 ${LEX.l} ${.IMPSRC}
166 ${COMPILE.c} -o ${.TARGET} lex.yy.c
167 rm -f lex.yy.c
169 # Yacc
171 ${YACC.y} ${.IMPSRC}
172 ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
173 rm -f y.tab.c
174 .y.c:
175 ${YACC.y} ${.IMPSRC}
176 mv y.tab.c ${.TARGET}
177 .y.o:
178 ${YACC.y} ${.IMPSRC}
179 ${COMPILE.c} -o ${.TARGET} y.tab.c
180 rm -f y.tab.c
182 # Shell
183 .sh:
184 rm -f ${.TARGET}
185 cp ${.IMPSRC} ${.TARGET}