bsd.lib.mk revision 27910
11844Swollman# from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91 227910Sasami# $Id: bsd.lib.mk,v 1.59 1997/06/21 15:40:32 jkh 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 1626051SasamiCXXINCLUDES+= -I${DESTDIR}/usr/include/g++ 171844Swollman.endif 182353Sbde 192827Sjkh.if defined(DEBUG_FLAGS) 202827SjkhCFLAGS+= ${DEBUG_FLAGS} 212827Sjkh.endif 222827Sjkh 232827Sjkh.if !defined(DEBUG_FLAGS) 241638SrgrimesSTRIP?= -s 252827Sjkh.endif 261638Srgrimes 2718529Sbde.include <bsd.libnames.mk> 2818529Sbde 291638Srgrimes.MAIN: all 301638Srgrimes 311638Srgrimes# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries 321844Swollman# .so used for PIC object files 331638Srgrimes.SUFFIXES: 341844Swollman.SUFFIXES: .out .o .po .so .s .S .c .cc .cxx .m .C .f .y .l 351638Srgrimes 361638Srgrimes.c.o: 371844Swollman ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 3815959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 391638Srgrimes 401638Srgrimes.c.po: 4124761Sjdp ${CC} -pg ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 4215959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 431638Srgrimes 441844Swollman.c.so: 451844Swollman ${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 4615959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 471844Swollman 4816097Sjfieber.cc.o .C.o .cxx.o: 491844Swollman ${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 5015959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 511844Swollman 5216097Sjfieber.cc.po .C.po .cxx.po: 5324761Sjdp ${CXX} -pg ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 5415959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 551844Swollman 5616097Sjfieber.cc.so .C.so .cxx.so: 571844Swollman ${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 5815959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 591844Swollman 601844Swollman.f.o: 611844Swollman ${FC} ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 6215959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 631844Swollman 641844Swollman.f.po: 6524761Sjdp ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 6615959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 671844Swollman 681844Swollman.f.so: 691844Swollman ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 7015959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 711844Swollman 721638Srgrimes.s.o: 7326715Sasami ${CC} -x assembler-with-cpp ${CFLAGS:M-[BID]*} ${AINC} -c \ 7417510Speter ${.IMPSRC} -o ${.TARGET} 7515959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 761638Srgrimes 771638Srgrimes.s.po: 7826715Sasami ${CC} -x assembler-with-cpp -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c \ 7917510Speter ${.IMPSRC} -o ${.TARGET} 8015959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 811638Srgrimes 821844Swollman.s.so: 8326715Sasami ${CC} -x assembler-with-cpp -fpic -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c \ 8417510Speter ${.IMPSRC} -o ${.TARGET} 8515959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 861638Srgrimes 871844Swollman.S.o: 8826715Sasami ${CC} ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 8925104Sbde @${LD} -O ${.TARGET} -x -r ${.TARGET} 901844Swollman 911844Swollman.S.po: 9226715Sasami ${CC} -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 9325104Sbde @${LD} -O ${.TARGET} -X -r ${.TARGET} 941844Swollman 951844Swollman.S.so: 9626715Sasami ${CC} -fpic -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 9715959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 981844Swollman 9925104Sbde.m.o: 10025104Sbde ${CC} ${CFLAGS} -fgnu-runtime -c ${.IMPSRC} -o ${.TARGET} 10125104Sbde @${LD} -O ${.TARGET} -x -r ${.TARGET} 10225104Sbde 1031844Swollman.m.po: 10424761Sjdp ${CC} ${CFLAGS} -fgnu-runtime -pg -c ${.IMPSRC} -o ${.TARGET} 10515959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 1061844Swollman 1072870Swollman.if !defined(INTERNALLIB) || defined(INTERNALSTATICLIB) 1082868Swollman.if !defined(NOPROFILE) && !defined(INTERNALLIB) 1091638Srgrimes_LIBS=lib${LIB}.a lib${LIB}_p.a 1101638Srgrimes.else 1111638Srgrimes_LIBS=lib${LIB}.a 1121638Srgrimes.endif 1132870Swollman.endif 1141638Srgrimes 1151844Swollman.if !defined(NOPIC) 1161844Swollman.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 1171844Swollman_LIBS+=lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 1181638Srgrimes.endif 1191844Swollman.if defined(INSTALL_PIC_ARCHIVE) 1201844Swollman_LIBS+=lib${LIB}_pic.a 1211844Swollman.endif 1221844Swollman.endif 1231638Srgrimes 1241844Swollman.if !defined(PICFLAG) 1251844SwollmanPICFLAG=-fpic 1261844Swollman.endif 1271638Srgrimes 12818340Sswallaceall: objwarn ${_LIBS} all-man _SUBDIR # llib-l${LIB}.ln 1291844Swollman 1301844SwollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 1311844Swollman 1321638Srgrimeslib${LIB}.a:: ${OBJS} 1332353Sbde @${ECHO} building standard ${LIB} library 1341638Srgrimes @rm -f lib${LIB}.a 13517400Sjkh @${AR} cq lib${LIB}.a `lorder ${OBJS} | tsort -q` ${ARADD} 1361844Swollman ${RANLIB} lib${LIB}.a 1371638Srgrimes 1383859Sbde.if !defined(NOPROFILE) 1391638SrgrimesPOBJS+= ${OBJS:.o=.po} 1401638Srgrimeslib${LIB}_p.a:: ${POBJS} 1412353Sbde @${ECHO} building profiled ${LIB} library 1421638Srgrimes @rm -f lib${LIB}_p.a 14317400Sjkh @${AR} cq lib${LIB}_p.a `lorder ${POBJS} | tsort -q` ${ARADD} 1441844Swollman ${RANLIB} lib${LIB}_p.a 1453859Sbde.endif 1461638Srgrimes 1471844Swollman.if defined(DESTDIR) 14825468SjdpLDDESTDIRENV?= LIBRARY_PATH=${DESTDIR}${SHLIBDIR}:${DESTDIR}/usr/lib 1491844Swollman.endif 1501844Swollman 1513859Sbde.if !defined(NOPIC) 1521844SwollmanSOBJS+= ${OBJS:.o=.so} 1531844Swollmanlib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: ${SOBJS} 1542353Sbde @${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\) 1551844Swollman @rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 15626073Sdfr @${LDDESTDIRENV} ${CC} -shared -Wl,-x -Wl,-assert -Wl,pure-text \ 1571844Swollman -o lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 15817400Sjkh `lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD} 1591844Swollman 1601844Swollmanlib${LIB}_pic.a:: ${SOBJS} 1612353Sbde @${ECHO} building special pic ${LIB} library 1621844Swollman @rm -f lib${LIB}_pic.a 1635253Sache @${AR} cq lib${LIB}_pic.a ${SOBJS} ${ARADD} 1641844Swollman ${RANLIB} lib${LIB}_pic.a 1653859Sbde.endif 1661844Swollman 1671638Srgrimesllib-l${LIB}.ln: ${SRCS} 1681638Srgrimes ${LINT} -C${LIB} ${CFLAGS} ${.ALLSRC:M*.c} 1691638Srgrimes 1701638Srgrimes.if !target(clean) 17116663Sjkhclean: _SUBDIR 1721844Swollman rm -f a.out Errs errs mklog ${CLEANFILES} ${OBJS} 1731844Swollman rm -f lib${LIB}.a llib-l${LIB}.ln 1741844Swollman rm -f ${POBJS} profiled/*.o lib${LIB}_p.a 1751844Swollman rm -f ${SOBJS} shared/*.o 1761844Swollman rm -f lib${LIB}.so.*.* lib${LIB}_pic.a 17716826Sphk.if defined(CLEANDIRS) && !empty(CLEANDIRS) 17816437Sphk rm -rf ${CLEANDIRS} 1791638Srgrimes.endif 18016437Sphk.endif 1811638Srgrimes 1821844Swollman.if defined(SRCS) 18324750Sbde_EXTRADEPEND:: 18424750Sbde @TMP=_depend$$$$; \ 18524750Sbde sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so:/' < ${DEPENDFILE} \ 18624750Sbde > $$TMP; \ 18724750Sbde mv $$TMP ${DEPENDFILE} 1881638Srgrimes.endif 18927910Sasami.if !defined(NOEXTRADEPEND) 19024750Sbde_EXTRADEPEND:: 19124750Sbde echo lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: \ 19225468Sjdp `${LDDESTDIRENV} ${CC} -shared -Wl,-f ${LDDESTDIR} ${LDADD}` \ 19325468Sjdp >> ${DEPENDFILE} 19427910Sasami.endif 1951638Srgrimes 1961638Srgrimes.if !target(install) 1971638Srgrimes.if !target(beforeinstall) 1981638Srgrimesbeforeinstall: 1991638Srgrimes.endif 2001638Srgrimes 2012298Swollman.if defined(PRECIOUSLIB) 2022298SwollmanSHLINSTALLFLAGS+= -fschg 2032298Swollman.endif 2042298Swollman 2051638Srgrimesrealinstall: beforeinstall 2062298Swollman.if !defined(INTERNALLIB) 2071996Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2081996Swollman ${INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR} 2091638Srgrimes.if !defined(NOPROFILE) 2101844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2111996Swollman ${INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR} 2121638Srgrimes.endif 2132298Swollman.endif 2141844Swollman.if !defined(NOPIC) 2151844Swollman.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 2161844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2172298Swollman ${INSTALLFLAGS} ${SHLINSTALLFLAGS} \ 2182298Swollman lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 2194450Sbde ${DESTDIR}${SHLIBDIR} 2201844Swollman.endif 2211844Swollman.if defined(INSTALL_PIC_ARCHIVE) 2221844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2231996Swollman ${INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR} 2241844Swollman.endif 2251844Swollman.endif 2261638Srgrimes.if defined(LINKS) && !empty(LINKS) 2271638Srgrimes @set ${LINKS}; \ 2281638Srgrimes while test $$# -ge 2; do \ 2291638Srgrimes l=${DESTDIR}$$1; \ 2301638Srgrimes shift; \ 2311638Srgrimes t=${DESTDIR}$$1; \ 2321638Srgrimes shift; \ 2332353Sbde ${ECHO} $$t -\> $$l; \ 2341638Srgrimes rm -f $$t; \ 2356032Sjkh ln ${LN_FLAGS} $$l $$t; \ 2361638Srgrimes done; true 2371638Srgrimes.endif 2381638Srgrimes 23916663Sjkhinstall: afterinstall _SUBDIR 2401844Swollman.if !defined(NOMAN) 2411844Swollmanafterinstall: realinstall maninstall 2421844Swollman.else 2431638Srgrimesafterinstall: realinstall 2441638Srgrimes.endif 2451638Srgrimes.endif 2461638Srgrimes 2475585SjkhDISTRIBUTION?= bin 2484442Sphk.if !target(distribute) 24916663Sjkhdistribute: _SUBDIR 25026760Sjkh.for dist in ${DISTRIBUTION} 25126760Sjkh cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${dist} SHARED=copies 25226760Sjkh.endfor 2534442Sphk.endif 2544442Sphk 2551638Srgrimes.if !target(lint) 2561638Srgrimeslint: 2571638Srgrimes.endif 2581638Srgrimes 25924861Sjkh.if defined(NOTAGS) 26024861Sjkhtags: 26124861Sjkh.endif 26224861Sjkh 2631638Srgrimes.if !target(tags) 26416663Sjkhtags: ${SRCS} _SUBDIR 26524861Sjkh @cd ${.CURDIR} && gtags ${GTAGSFLAGS} 26624861Sjkh.if defined(HTML) 26724861Sjkh @cd ${.CURDIR} && htags ${HTAGSFLAGS} 2681638Srgrimes.endif 26924861Sjkh.endif 2701638Srgrimes 2711844Swollman.if !defined(NOMAN) 2721638Srgrimes.include <bsd.man.mk> 2731844Swollman.elif !target(maninstall) 2741844Swollmanmaninstall: 27511136Swollmanall-man: 2761844Swollman.endif 2771844Swollman 2781844Swollman.include <bsd.dep.mk> 27916663Sjkh.include <bsd.obj.mk> 280