bsd.lib.mk revision 28945
11844Swollman# from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91 228945Speter# $Id: bsd.lib.mk,v 1.60 1997/08/05 03:49:48 asami 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 1128945Speter.if ${BINFORMAT} == aout 121844SwollmanSHLIB_MINOR != . ${.CURDIR}/shlib_version ; echo $$minor 131844Swollman.endif 1428945Speter.endif 151844Swollman 161844Swollman.if defined(DESTDIR) 171844SwollmanCFLAGS+= -I${DESTDIR}/usr/include 1826051SasamiCXXINCLUDES+= -I${DESTDIR}/usr/include/g++ 191844Swollman.endif 202353Sbde 212827Sjkh.if defined(DEBUG_FLAGS) 222827SjkhCFLAGS+= ${DEBUG_FLAGS} 232827Sjkh.endif 242827Sjkh 252827Sjkh.if !defined(DEBUG_FLAGS) 261638SrgrimesSTRIP?= -s 272827Sjkh.endif 281638Srgrimes 2918529Sbde.include <bsd.libnames.mk> 3018529Sbde 311638Srgrimes.MAIN: all 321638Srgrimes 331638Srgrimes# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries 341844Swollman# .so used for PIC object files 351638Srgrimes.SUFFIXES: 361844Swollman.SUFFIXES: .out .o .po .so .s .S .c .cc .cxx .m .C .f .y .l 371638Srgrimes 381638Srgrimes.c.o: 391844Swollman ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 4015959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 411638Srgrimes 421638Srgrimes.c.po: 4324761Sjdp ${CC} -pg ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 4415959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 451638Srgrimes 461844Swollman.c.so: 471844Swollman ${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 4815959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 491844Swollman 5016097Sjfieber.cc.o .C.o .cxx.o: 511844Swollman ${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 5215959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 531844Swollman 5416097Sjfieber.cc.po .C.po .cxx.po: 5524761Sjdp ${CXX} -pg ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 5615959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 571844Swollman 5816097Sjfieber.cc.so .C.so .cxx.so: 591844Swollman ${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 6015959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 611844Swollman 621844Swollman.f.o: 631844Swollman ${FC} ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 6415959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 651844Swollman 661844Swollman.f.po: 6724761Sjdp ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 6815959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 691844Swollman 701844Swollman.f.so: 711844Swollman ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 7215959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 731844Swollman 741638Srgrimes.s.o: 7526715Sasami ${CC} -x assembler-with-cpp ${CFLAGS:M-[BID]*} ${AINC} -c \ 7617510Speter ${.IMPSRC} -o ${.TARGET} 7715959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 781638Srgrimes 791638Srgrimes.s.po: 8026715Sasami ${CC} -x assembler-with-cpp -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c \ 8117510Speter ${.IMPSRC} -o ${.TARGET} 8215959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 831638Srgrimes 841844Swollman.s.so: 8526715Sasami ${CC} -x assembler-with-cpp -fpic -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c \ 8617510Speter ${.IMPSRC} -o ${.TARGET} 8715959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 881638Srgrimes 891844Swollman.S.o: 9026715Sasami ${CC} ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 9125104Sbde @${LD} -O ${.TARGET} -x -r ${.TARGET} 921844Swollman 931844Swollman.S.po: 9426715Sasami ${CC} -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 9525104Sbde @${LD} -O ${.TARGET} -X -r ${.TARGET} 961844Swollman 971844Swollman.S.so: 9826715Sasami ${CC} -fpic -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 9915959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 1001844Swollman 10125104Sbde.m.o: 10225104Sbde ${CC} ${CFLAGS} -fgnu-runtime -c ${.IMPSRC} -o ${.TARGET} 10325104Sbde @${LD} -O ${.TARGET} -x -r ${.TARGET} 10425104Sbde 1051844Swollman.m.po: 10624761Sjdp ${CC} ${CFLAGS} -fgnu-runtime -pg -c ${.IMPSRC} -o ${.TARGET} 10715959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 1081844Swollman 1092870Swollman.if !defined(INTERNALLIB) || defined(INTERNALSTATICLIB) 1102868Swollman.if !defined(NOPROFILE) && !defined(INTERNALLIB) 1111638Srgrimes_LIBS=lib${LIB}.a lib${LIB}_p.a 1121638Srgrimes.else 1131638Srgrimes_LIBS=lib${LIB}.a 1141638Srgrimes.endif 1152870Swollman.endif 1161638Srgrimes 1171844Swollman.if !defined(NOPIC) 11828945Speter.if ${BINFORMAT} == aout 1191844Swollman.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 1201844Swollman_LIBS+=lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 1211638Srgrimes.endif 12228945Speter.else 12328945Speter.if defined(SHLIB_MAJOR) 12428945Speter_LIBS+=lib${LIB}.so.${SHLIB_MAJOR} 12528945Speter.endif 12628945Speter.endif 1271844Swollman.if defined(INSTALL_PIC_ARCHIVE) 1281844Swollman_LIBS+=lib${LIB}_pic.a 1291844Swollman.endif 1301844Swollman.endif 1311638Srgrimes 1321844Swollman.if !defined(PICFLAG) 1331844SwollmanPICFLAG=-fpic 1341844Swollman.endif 1351638Srgrimes 13618340Sswallaceall: objwarn ${_LIBS} all-man _SUBDIR # llib-l${LIB}.ln 1371844Swollman 1381844SwollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 1391844Swollman 1401638Srgrimeslib${LIB}.a:: ${OBJS} 1412353Sbde @${ECHO} building standard ${LIB} library 1421638Srgrimes @rm -f lib${LIB}.a 14317400Sjkh @${AR} cq lib${LIB}.a `lorder ${OBJS} | tsort -q` ${ARADD} 1441844Swollman ${RANLIB} lib${LIB}.a 1451638Srgrimes 1463859Sbde.if !defined(NOPROFILE) 1471638SrgrimesPOBJS+= ${OBJS:.o=.po} 1481638Srgrimeslib${LIB}_p.a:: ${POBJS} 1492353Sbde @${ECHO} building profiled ${LIB} library 1501638Srgrimes @rm -f lib${LIB}_p.a 15117400Sjkh @${AR} cq lib${LIB}_p.a `lorder ${POBJS} | tsort -q` ${ARADD} 1521844Swollman ${RANLIB} lib${LIB}_p.a 1533859Sbde.endif 1541638Srgrimes 1551844Swollman.if defined(DESTDIR) 15625468SjdpLDDESTDIRENV?= LIBRARY_PATH=${DESTDIR}${SHLIBDIR}:${DESTDIR}/usr/lib 1571844Swollman.endif 1581844Swollman 1593859Sbde.if !defined(NOPIC) 1601844SwollmanSOBJS+= ${OBJS:.o=.so} 16128945Speter 16228945Speter.if ${BINFORMAT} == aout 1631844Swollmanlib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: ${SOBJS} 1642353Sbde @${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\) 1651844Swollman @rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 16626073Sdfr @${LDDESTDIRENV} ${CC} -shared -Wl,-x -Wl,-assert -Wl,pure-text \ 1671844Swollman -o lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 16817400Sjkh `lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD} 16928945Speter.else 17028945Speterlib${LIB}.so.${SHLIB_MAJOR}: ${SOBJS} 17128945Speter @${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}\) 17228945Speter @rm -f lib${LIB}.so.${SHLIB_MAJOR} 17328945Speter @${LDDESTDIRENV} ${CC} -shared -Wl,-x \ 17428945Speter -o lib${LIB}.so.${SHLIB_MAJOR} \ 17528945Speter -Wl,-soname,lib${LIB}.so.${SHLIB_MAJOR} \ 17628945Speter `lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD} 17728945Speter.endif 1781844Swollman 1791844Swollmanlib${LIB}_pic.a:: ${SOBJS} 1802353Sbde @${ECHO} building special pic ${LIB} library 1811844Swollman @rm -f lib${LIB}_pic.a 1825253Sache @${AR} cq lib${LIB}_pic.a ${SOBJS} ${ARADD} 1831844Swollman ${RANLIB} lib${LIB}_pic.a 1843859Sbde.endif 1851844Swollman 1861638Srgrimesllib-l${LIB}.ln: ${SRCS} 1871638Srgrimes ${LINT} -C${LIB} ${CFLAGS} ${.ALLSRC:M*.c} 1881638Srgrimes 1891638Srgrimes.if !target(clean) 19016663Sjkhclean: _SUBDIR 1911844Swollman rm -f a.out Errs errs mklog ${CLEANFILES} ${OBJS} 1921844Swollman rm -f lib${LIB}.a llib-l${LIB}.ln 1931844Swollman rm -f ${POBJS} profiled/*.o lib${LIB}_p.a 1941844Swollman rm -f ${SOBJS} shared/*.o 1951844Swollman rm -f lib${LIB}.so.*.* lib${LIB}_pic.a 19616826Sphk.if defined(CLEANDIRS) && !empty(CLEANDIRS) 19716437Sphk rm -rf ${CLEANDIRS} 1981638Srgrimes.endif 19916437Sphk.endif 2001638Srgrimes 2011844Swollman.if defined(SRCS) 20224750Sbde_EXTRADEPEND:: 20324750Sbde @TMP=_depend$$$$; \ 20424750Sbde sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so:/' < ${DEPENDFILE} \ 20524750Sbde > $$TMP; \ 20624750Sbde mv $$TMP ${DEPENDFILE} 2071638Srgrimes.endif 20827910Sasami.if !defined(NOEXTRADEPEND) 20924750Sbde_EXTRADEPEND:: 21028945Speter.if ${BINFORMAT} == aout 21124750Sbde echo lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: \ 21225468Sjdp `${LDDESTDIRENV} ${CC} -shared -Wl,-f ${LDDESTDIR} ${LDADD}` \ 21325468Sjdp >> ${DEPENDFILE} 21428945Speter.else 21528945Speter.if defined(DPADD) && ${DPADD} != "" 21628945Speter echo lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: \ 21728945Speter ${DPADD} >> ${DEPENDFILE} 21827910Sasami.endif 21928945Speter.endif 22028945Speter.endif 2211638Srgrimes 2221638Srgrimes.if !target(install) 2231638Srgrimes.if !target(beforeinstall) 2241638Srgrimesbeforeinstall: 2251638Srgrimes.endif 2261638Srgrimes 2272298Swollman.if defined(PRECIOUSLIB) 2282298SwollmanSHLINSTALLFLAGS+= -fschg 2292298Swollman.endif 2302298Swollman 2311638Srgrimesrealinstall: beforeinstall 2322298Swollman.if !defined(INTERNALLIB) 2331996Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2341996Swollman ${INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR} 2351638Srgrimes.if !defined(NOPROFILE) 2361844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2371996Swollman ${INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR} 2381638Srgrimes.endif 2392298Swollman.endif 2401844Swollman.if !defined(NOPIC) 24128945Speter.if ${BINFORMAT} == aout 2421844Swollman.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 2431844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2442298Swollman ${INSTALLFLAGS} ${SHLINSTALLFLAGS} \ 2452298Swollman lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 2464450Sbde ${DESTDIR}${SHLIBDIR} 2471844Swollman.endif 24828945Speter.else 24928945Speter.if defined(SHLIB_MAJOR) 25028945Speter ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 25128945Speter ${INSTALLFLAGS} ${SHLINSTALLFLAGS} \ 25228945Speter lib${LIB}.so.${SHLIB_MAJOR} \ 25328945Speter ${DESTDIR}${SHLIBDIR} 25428945Speter ln ${LN_FLAGS} -sf lib${LIB}.so.${SHLIB_MAJOR} \ 25528945Speter ${DESTDIR}${SHLIBDIR}/lib${LIB}.so 25628945Speter.endif 25728945Speter.endif 2581844Swollman.if defined(INSTALL_PIC_ARCHIVE) 2591844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2601996Swollman ${INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR} 2611844Swollman.endif 2621844Swollman.endif 2631638Srgrimes.if defined(LINKS) && !empty(LINKS) 2641638Srgrimes @set ${LINKS}; \ 2651638Srgrimes while test $$# -ge 2; do \ 2661638Srgrimes l=${DESTDIR}$$1; \ 2671638Srgrimes shift; \ 2681638Srgrimes t=${DESTDIR}$$1; \ 2691638Srgrimes shift; \ 2702353Sbde ${ECHO} $$t -\> $$l; \ 2711638Srgrimes rm -f $$t; \ 2726032Sjkh ln ${LN_FLAGS} $$l $$t; \ 2731638Srgrimes done; true 2741638Srgrimes.endif 2751638Srgrimes 27616663Sjkhinstall: afterinstall _SUBDIR 2771844Swollman.if !defined(NOMAN) 2781844Swollmanafterinstall: realinstall maninstall 2791844Swollman.else 2801638Srgrimesafterinstall: realinstall 2811638Srgrimes.endif 2821638Srgrimes.endif 2831638Srgrimes 2845585SjkhDISTRIBUTION?= bin 2854442Sphk.if !target(distribute) 28616663Sjkhdistribute: _SUBDIR 28726760Sjkh.for dist in ${DISTRIBUTION} 28826760Sjkh cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${dist} SHARED=copies 28926760Sjkh.endfor 2904442Sphk.endif 2914442Sphk 2921638Srgrimes.if !target(lint) 2931638Srgrimeslint: 2941638Srgrimes.endif 2951638Srgrimes 29624861Sjkh.if defined(NOTAGS) 29724861Sjkhtags: 29824861Sjkh.endif 29924861Sjkh 3001638Srgrimes.if !target(tags) 30116663Sjkhtags: ${SRCS} _SUBDIR 30224861Sjkh @cd ${.CURDIR} && gtags ${GTAGSFLAGS} 30324861Sjkh.if defined(HTML) 30424861Sjkh @cd ${.CURDIR} && htags ${HTAGSFLAGS} 3051638Srgrimes.endif 30624861Sjkh.endif 3071638Srgrimes 3081844Swollman.if !defined(NOMAN) 3091638Srgrimes.include <bsd.man.mk> 3101844Swollman.elif !target(maninstall) 3111844Swollmanmaninstall: 31211136Swollmanall-man: 3131844Swollman.endif 3141844Swollman 3151844Swollman.include <bsd.dep.mk> 31616663Sjkh.include <bsd.obj.mk> 317