bsd.lib.mk revision 16663
11844Swollman# from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91 216663Sjkh# $Id: bsd.lib.mk,v 1.35 1996/06/17 15:59:51 phk Exp $ 31844Swollman# 41638Srgrimes 51638Srgrimes.if exists(${.CURDIR}/../Makefile.inc) 61638Srgrimes.include "${.CURDIR}/../Makefile.inc" 71638Srgrimes.endif 81638Srgrimes 91844Swollman.if exists(${.CURDIR}/shlib_version) 101844SwollmanSHLIB_MAJOR != . ${.CURDIR}/shlib_version ; echo $$major 111844SwollmanSHLIB_MINOR != . ${.CURDIR}/shlib_version ; echo $$minor 121844Swollman.endif 131844Swollman 141844Swollman.if defined(DESTDIR) 151844SwollmanCFLAGS+= -I${DESTDIR}/usr/include 161844SwollmanCXXINCLUDES+= -I${DESTDIR}/usr/include/${CXX} 171844Swollman.endif 182353Sbde 192827Sjkh.if defined(DEBUG_FLAGS) 202827SjkhCFLAGS+= ${DEBUG_FLAGS} 212827Sjkh.endif 222827Sjkh 232827Sjkh.if !defined(DEBUG_FLAGS) 241638SrgrimesSTRIP?= -s 252827Sjkh.endif 261638Srgrimes 271638Srgrimes.MAIN: all 281638Srgrimes 291638Srgrimes# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries 301844Swollman# .so used for PIC object files 311638Srgrimes.SUFFIXES: 321844Swollman.SUFFIXES: .out .o .po .so .s .S .c .cc .cxx .m .C .f .y .l 331638Srgrimes 341638Srgrimes.c.o: 351844Swollman ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 3615959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 371638Srgrimes 381638Srgrimes.c.po: 391638Srgrimes ${CC} -p ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 4015959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 411638Srgrimes 421844Swollman.c.so: 431844Swollman ${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 4415959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 451844Swollman 4616097Sjfieber.cc.o .C.o .cxx.o: 471844Swollman ${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 4815959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 491844Swollman 5016097Sjfieber.cc.po .C.po .cxx.po: 511844Swollman ${CXX} -p ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 5215959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 531844Swollman 5416097Sjfieber.cc.so .C.so .cxx.so: 551844Swollman ${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 5615959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 571844Swollman 581844Swollman.f.o: 591844Swollman ${FC} ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 6015959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 611844Swollman 621844Swollman.f.po: 631844Swollman ${FC} -p ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 6415959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 651844Swollman 661844Swollman.f.so: 671844Swollman ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 6815959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 691844Swollman 701638Srgrimes.s.o: 711638Srgrimes ${CPP} -E ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ 721638Srgrimes ${AS} -o ${.TARGET} 7315959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 741638Srgrimes 751638Srgrimes.s.po: 761638Srgrimes ${CPP} -E -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ 771638Srgrimes ${AS} -o ${.TARGET} 7815959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 791638Srgrimes 801844Swollman.s.so: 811844Swollman ${CPP} -E -DPIC ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ 821844Swollman ${AS} -k -o ${.TARGET} 8315959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 841638Srgrimes 851844Swollman.S.o: 861844Swollman ${CPP} -E ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ 871844Swollman ${AS} -o ${.TARGET} 881844Swollman 891844Swollman.S.po: 901844Swollman ${CPP} -E -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ 911844Swollman ${AS} -o ${.TARGET} 921844Swollman 931844Swollman.S.so: 941844Swollman ${CPP} -E -DPIC ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ 951844Swollman ${AS} -k -o ${.TARGET} 9615959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 971844Swollman 981844Swollman.m.po: 991844Swollman ${CC} ${CFLAGS} -p -c ${.IMPSRC} -o ${.TARGET} 10015959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 1011844Swollman 1021844Swollman.m.o: 1031844Swollman ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 10415959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 1051844Swollman 1062870Swollman.if !defined(INTERNALLIB) || defined(INTERNALSTATICLIB) 1072868Swollman.if !defined(NOPROFILE) && !defined(INTERNALLIB) 1081638Srgrimes_LIBS=lib${LIB}.a lib${LIB}_p.a 1091638Srgrimes.else 1101638Srgrimes_LIBS=lib${LIB}.a 1111638Srgrimes.endif 1122870Swollman.endif 1131638Srgrimes 1141844Swollman.if !defined(NOPIC) 1151844Swollman.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 1161844Swollman_LIBS+=lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 1171638Srgrimes.endif 1181844Swollman.if defined(INSTALL_PIC_ARCHIVE) 1191844Swollman_LIBS+=lib${LIB}_pic.a 1201844Swollman.endif 1211844Swollman.endif 1221638Srgrimes 1231844Swollman.if !defined(PICFLAG) 1241844SwollmanPICFLAG=-fpic 1251844Swollman.endif 1261638Srgrimes 12716663Sjkhall: ${_LIBS} all-man _SUBDIR # llib-l${LIB}.ln 1281844Swollman 1291844SwollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 1301844Swollman 1311638Srgrimeslib${LIB}.a:: ${OBJS} 1322353Sbde @${ECHO} building standard ${LIB} library 1331638Srgrimes @rm -f lib${LIB}.a 1345253Sache @${AR} cq lib${LIB}.a `lorder ${OBJS} | tsort` ${ARADD} 1351844Swollman ${RANLIB} lib${LIB}.a 1361638Srgrimes 1373859Sbde.if !defined(NOPROFILE) 1381638SrgrimesPOBJS+= ${OBJS:.o=.po} 1391638Srgrimeslib${LIB}_p.a:: ${POBJS} 1402353Sbde @${ECHO} building profiled ${LIB} library 1411638Srgrimes @rm -f lib${LIB}_p.a 1425253Sache @${AR} cq lib${LIB}_p.a `lorder ${POBJS} | tsort` ${ARADD} 1431844Swollman ${RANLIB} lib${LIB}_p.a 1443859Sbde.endif 1451638Srgrimes 1461844Swollman.if defined(DESTDIR) 1471844SwollmanLDDESTDIR?= -L${DESTDIR}/usr/lib 1481844Swollman.endif 1491844Swollman 1503859Sbde.if !defined(NOPIC) 15113535Sjdp.if defined(CPLUSPLUSLIB) && !make(clean) && !make(cleandir) 1521844SwollmanSOBJS+= ${DESTDIR}/usr/lib/c++rt0.o 1531844Swollman.endif 1541844Swollman 1551844SwollmanSOBJS+= ${OBJS:.o=.so} 1561844Swollmanlib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: ${SOBJS} 1572353Sbde @${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\) 1581844Swollman @rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 15915336Sjdp @${LD} -Bshareable -x \ 1601844Swollman -o lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 1619870Sdg `lorder ${SOBJS} | tsort` ${LDDESTDIR} ${LDADD} 1621844Swollman 1631844Swollmanlib${LIB}_pic.a:: ${SOBJS} 1642353Sbde @${ECHO} building special pic ${LIB} library 1651844Swollman @rm -f lib${LIB}_pic.a 1665253Sache @${AR} cq lib${LIB}_pic.a ${SOBJS} ${ARADD} 1671844Swollman ${RANLIB} lib${LIB}_pic.a 1683859Sbde.endif 1691844Swollman 1701638Srgrimesllib-l${LIB}.ln: ${SRCS} 1711638Srgrimes ${LINT} -C${LIB} ${CFLAGS} ${.ALLSRC:M*.c} 1721638Srgrimes 1731638Srgrimes.if !target(clean) 17416663Sjkhclean: _SUBDIR 1751844Swollman rm -f a.out Errs errs mklog ${CLEANFILES} ${OBJS} 1761844Swollman rm -f lib${LIB}.a llib-l${LIB}.ln 1771844Swollman rm -f ${POBJS} profiled/*.o lib${LIB}_p.a 1781844Swollman rm -f ${SOBJS} shared/*.o 1791844Swollman rm -f lib${LIB}.so.*.* lib${LIB}_pic.a 18016437Sphk.if defined(CLEANDIRS) 18116437Sphk rm -rf ${CLEANDIRS} 1821638Srgrimes.endif 18316437Sphk.endif 1841638Srgrimes 1851844Swollman.if defined(SRCS) 1861844Swollmanafterdepend: 1871638Srgrimes @(TMP=/tmp/_depend$$$$; \ 1881844Swollman sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so:/' < .depend > $$TMP; \ 1891844Swollman mv $$TMP .depend) 1901638Srgrimes.endif 1911638Srgrimes 1921638Srgrimes.if !target(install) 1931638Srgrimes.if !target(beforeinstall) 1941638Srgrimesbeforeinstall: 1951638Srgrimes.endif 1961638Srgrimes 1972298Swollman.if defined(PRECIOUSLIB) 1982298SwollmanSHLINSTALLFLAGS+= -fschg 1992298Swollman.endif 2002298Swollman 2011638Srgrimesrealinstall: beforeinstall 2022298Swollman.if !defined(INTERNALLIB) 2031996Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2041996Swollman ${INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR} 2051638Srgrimes.if !defined(NOPROFILE) 2061844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2071996Swollman ${INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR} 2081638Srgrimes.endif 2092298Swollman.endif 2101844Swollman.if !defined(NOPIC) 2111844Swollman.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 2121844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2132298Swollman ${INSTALLFLAGS} ${SHLINSTALLFLAGS} \ 2142298Swollman lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 2154450Sbde ${DESTDIR}${SHLIBDIR} 2161844Swollman.endif 2171844Swollman.if defined(INSTALL_PIC_ARCHIVE) 2181844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2191996Swollman ${INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR} 2201844Swollman.endif 2211844Swollman.endif 2221638Srgrimes.if defined(LINKS) && !empty(LINKS) 2231638Srgrimes @set ${LINKS}; \ 2241638Srgrimes while test $$# -ge 2; do \ 2251638Srgrimes l=${DESTDIR}$$1; \ 2261638Srgrimes shift; \ 2271638Srgrimes t=${DESTDIR}$$1; \ 2281638Srgrimes shift; \ 2292353Sbde ${ECHO} $$t -\> $$l; \ 2301638Srgrimes rm -f $$t; \ 2316032Sjkh ln ${LN_FLAGS} $$l $$t; \ 2321638Srgrimes done; true 2331638Srgrimes.endif 2341638Srgrimes 23516663Sjkhinstall: afterinstall _SUBDIR 2361844Swollman.if !defined(NOMAN) 2371844Swollmanafterinstall: realinstall maninstall 2381844Swollman.else 2391638Srgrimesafterinstall: realinstall 2401638Srgrimes.endif 2411638Srgrimes.endif 2421638Srgrimes 2435585SjkhDISTRIBUTION?= bin 2444442Sphk.if !target(distribute) 24516663Sjkhdistribute: _SUBDIR 2466716Sphk cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${DISTRIBUTION} SHARED=copies 2474442Sphk.endif 2484442Sphk 2491638Srgrimes.if !target(lint) 2501638Srgrimeslint: 2511638Srgrimes.endif 2521638Srgrimes 2531638Srgrimes.if !target(tags) 25416663Sjkhtags: ${SRCS} _SUBDIR 2551844Swollman -cd ${.CURDIR}; ctags -f /dev/stdout ${.ALLSRC:M*.c} | \ 2561844Swollman sed "s;\${.CURDIR}/;;" > tags 2571638Srgrimes.endif 2581638Srgrimes 2591844Swollman.if !defined(NOMAN) 2601638Srgrimes.include <bsd.man.mk> 2611844Swollman.elif !target(maninstall) 2621844Swollmanmaninstall: 26311136Swollmanall-man: 2641844Swollman.endif 2651844Swollman 2661844Swollman.include <bsd.dep.mk> 26716663Sjkh.include <bsd.obj.mk> 268