bsd.lib.mk revision 29141
11844Swollman# from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91 229141Speter# $Id: bsd.lib.mk,v 1.62 1997/09/05 09:09:55 peter Exp $ 31844Swollman# 41638Srgrimes 51638Srgrimes.if exists(${.CURDIR}/../Makefile.inc) 61638Srgrimes.include "${.CURDIR}/../Makefile.inc" 71638Srgrimes.endif 81638Srgrimes 929129Speter# Default executable format 1029129SpeterBINFORMAT?= aout 1129129Speter 121844Swollman.if exists(${.CURDIR}/shlib_version) 131844SwollmanSHLIB_MAJOR != . ${.CURDIR}/shlib_version ; echo $$major 1428945Speter.if ${BINFORMAT} == aout 151844SwollmanSHLIB_MINOR != . ${.CURDIR}/shlib_version ; echo $$minor 161844Swollman.endif 1728945Speter.endif 181844Swollman 1929141Speter.if !defined(NOPIC) && ${BINFORMAT} == elf 2029141SpeterSONAME?= lib${LIB}.so.${SHLIB_MAJOR} 2129141Speter.endif 2229141Speter 231844Swollman.if defined(DESTDIR) 241844SwollmanCFLAGS+= -I${DESTDIR}/usr/include 2526051SasamiCXXINCLUDES+= -I${DESTDIR}/usr/include/g++ 261844Swollman.endif 272353Sbde 282827Sjkh.if defined(DEBUG_FLAGS) 292827SjkhCFLAGS+= ${DEBUG_FLAGS} 302827Sjkh.endif 312827Sjkh 322827Sjkh.if !defined(DEBUG_FLAGS) 331638SrgrimesSTRIP?= -s 342827Sjkh.endif 351638Srgrimes 3618529Sbde.include <bsd.libnames.mk> 3718529Sbde 381638Srgrimes.MAIN: all 391638Srgrimes 401638Srgrimes# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries 411844Swollman# .so used for PIC object files 421638Srgrimes.SUFFIXES: 431844Swollman.SUFFIXES: .out .o .po .so .s .S .c .cc .cxx .m .C .f .y .l 441638Srgrimes 451638Srgrimes.c.o: 461844Swollman ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 4715959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 481638Srgrimes 491638Srgrimes.c.po: 5024761Sjdp ${CC} -pg ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 5115959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 521638Srgrimes 531844Swollman.c.so: 541844Swollman ${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 5515959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 561844Swollman 5716097Sjfieber.cc.o .C.o .cxx.o: 581844Swollman ${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 5915959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 601844Swollman 6116097Sjfieber.cc.po .C.po .cxx.po: 6224761Sjdp ${CXX} -pg ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 6315959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 641844Swollman 6516097Sjfieber.cc.so .C.so .cxx.so: 661844Swollman ${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 6715959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 681844Swollman 691844Swollman.f.o: 701844Swollman ${FC} ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 7115959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 721844Swollman 731844Swollman.f.po: 7424761Sjdp ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 7515959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 761844Swollman 771844Swollman.f.so: 781844Swollman ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 7915959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 801844Swollman 811638Srgrimes.s.o: 8226715Sasami ${CC} -x assembler-with-cpp ${CFLAGS:M-[BID]*} ${AINC} -c \ 8317510Speter ${.IMPSRC} -o ${.TARGET} 8415959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 851638Srgrimes 861638Srgrimes.s.po: 8726715Sasami ${CC} -x assembler-with-cpp -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c \ 8817510Speter ${.IMPSRC} -o ${.TARGET} 8915959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 901638Srgrimes 911844Swollman.s.so: 9226715Sasami ${CC} -x assembler-with-cpp -fpic -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c \ 9317510Speter ${.IMPSRC} -o ${.TARGET} 9415959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 951638Srgrimes 961844Swollman.S.o: 9726715Sasami ${CC} ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 9825104Sbde @${LD} -O ${.TARGET} -x -r ${.TARGET} 991844Swollman 1001844Swollman.S.po: 10126715Sasami ${CC} -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 10225104Sbde @${LD} -O ${.TARGET} -X -r ${.TARGET} 1031844Swollman 1041844Swollman.S.so: 10526715Sasami ${CC} -fpic -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 10615959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 1071844Swollman 10825104Sbde.m.o: 10925104Sbde ${CC} ${CFLAGS} -fgnu-runtime -c ${.IMPSRC} -o ${.TARGET} 11025104Sbde @${LD} -O ${.TARGET} -x -r ${.TARGET} 11125104Sbde 1121844Swollman.m.po: 11324761Sjdp ${CC} ${CFLAGS} -fgnu-runtime -pg -c ${.IMPSRC} -o ${.TARGET} 11415959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 1151844Swollman 1162870Swollman.if !defined(INTERNALLIB) || defined(INTERNALSTATICLIB) 1172868Swollman.if !defined(NOPROFILE) && !defined(INTERNALLIB) 1181638Srgrimes_LIBS=lib${LIB}.a lib${LIB}_p.a 1191638Srgrimes.else 1201638Srgrimes_LIBS=lib${LIB}.a 1211638Srgrimes.endif 1222870Swollman.endif 1231638Srgrimes 1241844Swollman.if !defined(NOPIC) 12528945Speter.if ${BINFORMAT} == aout 1261844Swollman.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 1271844Swollman_LIBS+=lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 1281638Srgrimes.endif 12928945Speter.else 13028945Speter.if defined(SHLIB_MAJOR) 13128945Speter_LIBS+=lib${LIB}.so.${SHLIB_MAJOR} 13228945Speter.endif 13328945Speter.endif 1341844Swollman.if defined(INSTALL_PIC_ARCHIVE) 1351844Swollman_LIBS+=lib${LIB}_pic.a 1361844Swollman.endif 1371844Swollman.endif 1381638Srgrimes 1391844Swollman.if !defined(PICFLAG) 1401844SwollmanPICFLAG=-fpic 1411844Swollman.endif 1421638Srgrimes 14318340Sswallaceall: objwarn ${_LIBS} all-man _SUBDIR # llib-l${LIB}.ln 1441844Swollman 1451844SwollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 1461844Swollman 1471638Srgrimeslib${LIB}.a:: ${OBJS} 1482353Sbde @${ECHO} building standard ${LIB} library 1491638Srgrimes @rm -f lib${LIB}.a 15017400Sjkh @${AR} cq lib${LIB}.a `lorder ${OBJS} | tsort -q` ${ARADD} 1511844Swollman ${RANLIB} lib${LIB}.a 1521638Srgrimes 1533859Sbde.if !defined(NOPROFILE) 1541638SrgrimesPOBJS+= ${OBJS:.o=.po} 1551638Srgrimeslib${LIB}_p.a:: ${POBJS} 1562353Sbde @${ECHO} building profiled ${LIB} library 1571638Srgrimes @rm -f lib${LIB}_p.a 15817400Sjkh @${AR} cq lib${LIB}_p.a `lorder ${POBJS} | tsort -q` ${ARADD} 1591844Swollman ${RANLIB} lib${LIB}_p.a 1603859Sbde.endif 1611638Srgrimes 1621844Swollman.if defined(DESTDIR) 16325468SjdpLDDESTDIRENV?= LIBRARY_PATH=${DESTDIR}${SHLIBDIR}:${DESTDIR}/usr/lib 1641844Swollman.endif 1651844Swollman 1663859Sbde.if !defined(NOPIC) 1671844SwollmanSOBJS+= ${OBJS:.o=.so} 16828945Speter 16928945Speter.if ${BINFORMAT} == aout 1701844Swollmanlib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: ${SOBJS} 1712353Sbde @${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\) 1721844Swollman @rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 17326073Sdfr @${LDDESTDIRENV} ${CC} -shared -Wl,-x -Wl,-assert -Wl,pure-text \ 1741844Swollman -o lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 17517400Sjkh `lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD} 17628945Speter.else 17728945Speterlib${LIB}.so.${SHLIB_MAJOR}: ${SOBJS} 17828945Speter @${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}\) 17928945Speter @rm -f lib${LIB}.so.${SHLIB_MAJOR} 18028945Speter @${LDDESTDIRENV} ${CC} -shared -Wl,-x \ 18129141Speter -o lib${LIB}.so.${SHLIB_MAJOR} -Wl,-soname,${SONAME} \ 18228945Speter `lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD} 18328945Speter.endif 1841844Swollman 1851844Swollmanlib${LIB}_pic.a:: ${SOBJS} 1862353Sbde @${ECHO} building special pic ${LIB} library 1871844Swollman @rm -f lib${LIB}_pic.a 1885253Sache @${AR} cq lib${LIB}_pic.a ${SOBJS} ${ARADD} 1891844Swollman ${RANLIB} lib${LIB}_pic.a 1903859Sbde.endif 1911844Swollman 1921638Srgrimesllib-l${LIB}.ln: ${SRCS} 1931638Srgrimes ${LINT} -C${LIB} ${CFLAGS} ${.ALLSRC:M*.c} 1941638Srgrimes 1951638Srgrimes.if !target(clean) 19616663Sjkhclean: _SUBDIR 1971844Swollman rm -f a.out Errs errs mklog ${CLEANFILES} ${OBJS} 1981844Swollman rm -f lib${LIB}.a llib-l${LIB}.ln 1991844Swollman rm -f ${POBJS} profiled/*.o lib${LIB}_p.a 2001844Swollman rm -f ${SOBJS} shared/*.o 2011844Swollman rm -f lib${LIB}.so.*.* lib${LIB}_pic.a 20216826Sphk.if defined(CLEANDIRS) && !empty(CLEANDIRS) 20316437Sphk rm -rf ${CLEANDIRS} 2041638Srgrimes.endif 20516437Sphk.endif 2061638Srgrimes 2071844Swollman.if defined(SRCS) 20824750Sbde_EXTRADEPEND:: 20924750Sbde @TMP=_depend$$$$; \ 21024750Sbde sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so:/' < ${DEPENDFILE} \ 21124750Sbde > $$TMP; \ 21224750Sbde mv $$TMP ${DEPENDFILE} 2131638Srgrimes.endif 21427910Sasami.if !defined(NOEXTRADEPEND) 21524750Sbde_EXTRADEPEND:: 21628945Speter.if ${BINFORMAT} == aout 21724750Sbde echo lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: \ 21825468Sjdp `${LDDESTDIRENV} ${CC} -shared -Wl,-f ${LDDESTDIR} ${LDADD}` \ 21925468Sjdp >> ${DEPENDFILE} 22028945Speter.else 22128945Speter.if defined(DPADD) && ${DPADD} != "" 22228945Speter echo lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: \ 22328945Speter ${DPADD} >> ${DEPENDFILE} 22427910Sasami.endif 22528945Speter.endif 22628945Speter.endif 2271638Srgrimes 2281638Srgrimes.if !target(install) 2291638Srgrimes.if !target(beforeinstall) 2301638Srgrimesbeforeinstall: 2311638Srgrimes.endif 2321638Srgrimes 2332298Swollman.if defined(PRECIOUSLIB) 2342298SwollmanSHLINSTALLFLAGS+= -fschg 2352298Swollman.endif 2362298Swollman 2371638Srgrimesrealinstall: beforeinstall 2382298Swollman.if !defined(INTERNALLIB) 2391996Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2401996Swollman ${INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR} 2411638Srgrimes.if !defined(NOPROFILE) 2421844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2431996Swollman ${INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR} 2441638Srgrimes.endif 2452298Swollman.endif 2461844Swollman.if !defined(NOPIC) 24728945Speter.if ${BINFORMAT} == aout 2481844Swollman.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 2491844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2502298Swollman ${INSTALLFLAGS} ${SHLINSTALLFLAGS} \ 2512298Swollman lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 2524450Sbde ${DESTDIR}${SHLIBDIR} 2531844Swollman.endif 25428945Speter.else 25528945Speter.if defined(SHLIB_MAJOR) 25628945Speter ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 25728945Speter ${INSTALLFLAGS} ${SHLINSTALLFLAGS} \ 25828945Speter lib${LIB}.so.${SHLIB_MAJOR} \ 25928945Speter ${DESTDIR}${SHLIBDIR} 26028945Speter ln ${LN_FLAGS} -sf lib${LIB}.so.${SHLIB_MAJOR} \ 26128945Speter ${DESTDIR}${SHLIBDIR}/lib${LIB}.so 26228945Speter.endif 26328945Speter.endif 2641844Swollman.if defined(INSTALL_PIC_ARCHIVE) 2651844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2661996Swollman ${INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR} 2671844Swollman.endif 2681844Swollman.endif 2691638Srgrimes.if defined(LINKS) && !empty(LINKS) 2701638Srgrimes @set ${LINKS}; \ 2711638Srgrimes while test $$# -ge 2; do \ 2721638Srgrimes l=${DESTDIR}$$1; \ 2731638Srgrimes shift; \ 2741638Srgrimes t=${DESTDIR}$$1; \ 2751638Srgrimes shift; \ 2762353Sbde ${ECHO} $$t -\> $$l; \ 2771638Srgrimes rm -f $$t; \ 2786032Sjkh ln ${LN_FLAGS} $$l $$t; \ 2791638Srgrimes done; true 2801638Srgrimes.endif 2811638Srgrimes 28216663Sjkhinstall: afterinstall _SUBDIR 2831844Swollman.if !defined(NOMAN) 2841844Swollmanafterinstall: realinstall maninstall 2851844Swollman.else 2861638Srgrimesafterinstall: realinstall 2871638Srgrimes.endif 2881638Srgrimes.endif 2891638Srgrimes 2905585SjkhDISTRIBUTION?= bin 2914442Sphk.if !target(distribute) 29216663Sjkhdistribute: _SUBDIR 29326760Sjkh.for dist in ${DISTRIBUTION} 29426760Sjkh cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${dist} SHARED=copies 29526760Sjkh.endfor 2964442Sphk.endif 2974442Sphk 2981638Srgrimes.if !target(lint) 2991638Srgrimeslint: 3001638Srgrimes.endif 3011638Srgrimes 30224861Sjkh.if defined(NOTAGS) 30324861Sjkhtags: 30424861Sjkh.endif 30524861Sjkh 3061638Srgrimes.if !target(tags) 30716663Sjkhtags: ${SRCS} _SUBDIR 30824861Sjkh @cd ${.CURDIR} && gtags ${GTAGSFLAGS} 30924861Sjkh.if defined(HTML) 31024861Sjkh @cd ${.CURDIR} && htags ${HTAGSFLAGS} 3111638Srgrimes.endif 31224861Sjkh.endif 3131638Srgrimes 3141844Swollman.if !defined(NOMAN) 3151638Srgrimes.include <bsd.man.mk> 3161844Swollman.elif !target(maninstall) 3171844Swollmanmaninstall: 31811136Swollmanall-man: 3191844Swollman.endif 3201844Swollman 3211844Swollman.include <bsd.dep.mk> 32216663Sjkh.include <bsd.obj.mk> 323