1# $NetBSD: Darwin.sys.mk,v 1.3 2003/02/16 09:44:41 grant Exp $ 2# @(#)sys.mk 8.2 (Berkeley) 3/21/94 3 4OS= Darwin 5unix?= We run ${OS}. 6 7.SUFFIXES: .out .a .ln .o .s .S .c .m ${CXX_SUFFIXES} .F .f .r .y .l .cl .p .h 8.SUFFIXES: .sh .m4 .dylib 9 10.LIBS: .a .dylib 11 12SHLIBEXT = .dylib 13HOST_LIBEXT = .dylib 14DSHLIBEXT = .dylib 15 16AR?= ar 17ARFLAGS?= rl 18RANLIB = 19 20AS?= as 21AFLAGS?= 22COMPILE.s?= ${AS} ${AFLAGS} 23LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS} 24COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c 25LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} 26 27PIPE?= -pipe 28 29.if exists(/usr/bin/clang) 30CC?= cc ${PIPE} 31CXX?= c++ 32.elif exists(/usr/bin/gcc) 33CC?= gcc ${PIPE} 34.else 35CC?= cc ${PIPE} 36.endif 37DBG?= -O2 38CFLAGS?= ${DBG} 39COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c 40LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} 41 42.if exists(/usr/bin/g++) 43CXX?= g++ 44.else 45CXX?= c++ 46.endif 47CXXFLAGS?= ${CFLAGS} 48COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c 49LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} 50 51OBJC?= ${CC} 52OBJCFLAGS?= ${CFLAGS} 53COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c 54LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} 55 56CPP?= cpp 57NOLINT= 1 58CPPFLAGS?= 59 60MK_DEP?= mkdep 61 62FC?= f77 63FFLAGS?= -O 64RFLAGS?= 65COMPILE.f?= ${FC} ${FFLAGS} -c 66LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} 67COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c 68LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} 69COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c 70LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} 71 72INSTALL?= install 73 74LEX?= lex 75LFLAGS?= 76LEX.l?= ${LEX} ${LFLAGS} 77 78LD?= ld 79LDFLAGS?= 80 81SHLIB_TEENY = 0 82SHLIB_MINOR = 0 83 84MKPICLIB = no 85LIBEXT = .dylib 86 87LINT?= lint 88LINTFLAGS?= -chapbx 89 90LORDER?= lorder 91 92NM?= nm 93 94PC?= pc 95PFLAGS?= 96COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c 97LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} 98 99SIZE?= size 100 101TSORT?= tsort -q 102 103YACC?= bison -y 104YFLAGS?= -d 105YACC.y?= ${YACC} ${YFLAGS} 106 107# C 108.c: 109 ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 110.c.o: 111 ${COMPILE.c} ${.IMPSRC} 112.c.a: 113 ${COMPILE.c} ${.IMPSRC} 114 ${AR} ${ARFLAGS} $@ $*.o 115 rm -f $*.o 116 117# C++ 118${CXX_SUFFIXES}: 119 ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 120${CXX_SUFFIXES:%=%.o}: 121 ${COMPILE.cc} ${.IMPSRC} 122${CXX_SUFFIXES:%=%.a}: 123 ${COMPILE.cc} ${.IMPSRC} 124 ${AR} ${ARFLAGS} $@ $*.o 125 rm -f $*.o 126 127# Objective-C 128.m: 129 ${LINK.m} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 130.m.o: 131 ${COMPILE.m} ${.IMPSRC} 132.m.a: 133 ${COMPILE.m} ${.IMPSRC} 134 ${AR} ${ARFLAGS} $@ $*.o 135 rm -f $*.o 136 137# Fortran/Ratfor 138.f: 139 ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 140.f.o: 141 ${COMPILE.f} ${.IMPSRC} 142.f.a: 143 ${COMPILE.f} ${.IMPSRC} 144 ${AR} ${ARFLAGS} $@ $*.o 145 rm -f $*.o 146 147.F: 148 ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 149.F.o: 150 ${COMPILE.F} ${.IMPSRC} 151.F.a: 152 ${COMPILE.F} ${.IMPSRC} 153 ${AR} ${ARFLAGS} $@ $*.o 154 rm -f $*.o 155 156.r: 157 ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 158.r.o: 159 ${COMPILE.r} ${.IMPSRC} 160.r.a: 161 ${COMPILE.r} ${.IMPSRC} 162 ${AR} ${ARFLAGS} $@ $*.o 163 rm -f $*.o 164 165# Pascal 166.p: 167 ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 168.p.o: 169 ${COMPILE.p} ${.IMPSRC} 170.p.a: 171 ${COMPILE.p} ${.IMPSRC} 172 ${AR} ${ARFLAGS} $@ $*.o 173 rm -f $*.o 174 175# Assembly 176.s: 177 ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 178.s.o: 179 ${COMPILE.s} -o ${.TARGET} ${.IMPSRC} 180.s.a: 181 ${COMPILE.s} ${.IMPSRC} 182 ${AR} ${ARFLAGS} $@ $*.o 183 rm -f $*.o 184.S: 185 ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 186.S.o: 187 ${COMPILE.S} ${.IMPSRC} 188.S.a: 189 ${COMPILE.S} ${.IMPSRC} 190 ${AR} ${ARFLAGS} $@ $*.o 191 rm -f $*.o 192 193# Lex 194.l: 195 ${LEX.l} ${.IMPSRC} 196 ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll 197 rm -f lex.yy.c 198.l.c: 199 ${LEX.l} ${.IMPSRC} 200 mv lex.yy.c ${.TARGET} 201.l.o: 202 ${LEX.l} ${.IMPSRC} 203 ${COMPILE.c} -o ${.TARGET} lex.yy.c 204 rm -f lex.yy.c 205 206# Yacc 207.y: 208 ${YACC.y} ${.IMPSRC} 209 ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} 210 rm -f y.tab.c 211.y.c: 212 ${YACC.y} ${.IMPSRC} 213 mv y.tab.c ${.TARGET} 214.y.o: 215 ${YACC.y} ${.IMPSRC} 216 ${COMPILE.c} -o ${.TARGET} y.tab.c 217 rm -f y.tab.c 218 219# Shell 220.sh: 221 rm -f ${.TARGET} 222 cp ${.IMPSRC} ${.TARGET} 223