bsd.lib.mk revision 31809
11844Swollman# from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91 231809Sbde# $Id: bsd.lib.mk,v 1.63 1997/09/05 11:45:12 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 3631809Sbde.if ${BINFORMAT} != aout || make(checkdpadd) 3718529Sbde.include <bsd.libnames.mk> 3831809Sbde.endif 3918529Sbde 401638Srgrimes.MAIN: all 411638Srgrimes 421638Srgrimes# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries 431844Swollman# .so used for PIC object files 441638Srgrimes.SUFFIXES: 451844Swollman.SUFFIXES: .out .o .po .so .s .S .c .cc .cxx .m .C .f .y .l 461638Srgrimes 471638Srgrimes.c.o: 481844Swollman ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 4915959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 501638Srgrimes 511638Srgrimes.c.po: 5224761Sjdp ${CC} -pg ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 5315959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 541638Srgrimes 551844Swollman.c.so: 561844Swollman ${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 5715959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 581844Swollman 5916097Sjfieber.cc.o .C.o .cxx.o: 601844Swollman ${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 6115959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 621844Swollman 6316097Sjfieber.cc.po .C.po .cxx.po: 6424761Sjdp ${CXX} -pg ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 6515959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 661844Swollman 6716097Sjfieber.cc.so .C.so .cxx.so: 681844Swollman ${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 6915959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 701844Swollman 711844Swollman.f.o: 721844Swollman ${FC} ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 7315959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 741844Swollman 751844Swollman.f.po: 7624761Sjdp ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 7715959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 781844Swollman 791844Swollman.f.so: 801844Swollman ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 8115959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 821844Swollman 831638Srgrimes.s.o: 8426715Sasami ${CC} -x assembler-with-cpp ${CFLAGS:M-[BID]*} ${AINC} -c \ 8517510Speter ${.IMPSRC} -o ${.TARGET} 8615959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 871638Srgrimes 881638Srgrimes.s.po: 8926715Sasami ${CC} -x assembler-with-cpp -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c \ 9017510Speter ${.IMPSRC} -o ${.TARGET} 9115959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 921638Srgrimes 931844Swollman.s.so: 9426715Sasami ${CC} -x assembler-with-cpp -fpic -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c \ 9517510Speter ${.IMPSRC} -o ${.TARGET} 9615959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 971638Srgrimes 981844Swollman.S.o: 9926715Sasami ${CC} ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 10025104Sbde @${LD} -O ${.TARGET} -x -r ${.TARGET} 1011844Swollman 1021844Swollman.S.po: 10326715Sasami ${CC} -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 10425104Sbde @${LD} -O ${.TARGET} -X -r ${.TARGET} 1051844Swollman 1061844Swollman.S.so: 10726715Sasami ${CC} -fpic -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 10815959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 1091844Swollman 11025104Sbde.m.o: 11125104Sbde ${CC} ${CFLAGS} -fgnu-runtime -c ${.IMPSRC} -o ${.TARGET} 11225104Sbde @${LD} -O ${.TARGET} -x -r ${.TARGET} 11325104Sbde 1141844Swollman.m.po: 11524761Sjdp ${CC} ${CFLAGS} -fgnu-runtime -pg -c ${.IMPSRC} -o ${.TARGET} 11615959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 1171844Swollman 1182870Swollman.if !defined(INTERNALLIB) || defined(INTERNALSTATICLIB) 1192868Swollman.if !defined(NOPROFILE) && !defined(INTERNALLIB) 1201638Srgrimes_LIBS=lib${LIB}.a lib${LIB}_p.a 1211638Srgrimes.else 1221638Srgrimes_LIBS=lib${LIB}.a 1231638Srgrimes.endif 1242870Swollman.endif 1251638Srgrimes 1261844Swollman.if !defined(NOPIC) 12728945Speter.if ${BINFORMAT} == aout 1281844Swollman.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 1291844Swollman_LIBS+=lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 1301638Srgrimes.endif 13128945Speter.else 13228945Speter.if defined(SHLIB_MAJOR) 13328945Speter_LIBS+=lib${LIB}.so.${SHLIB_MAJOR} 13428945Speter.endif 13528945Speter.endif 1361844Swollman.if defined(INSTALL_PIC_ARCHIVE) 1371844Swollman_LIBS+=lib${LIB}_pic.a 1381844Swollman.endif 1391844Swollman.endif 1401638Srgrimes 1411844Swollman.if !defined(PICFLAG) 1421844SwollmanPICFLAG=-fpic 1431844Swollman.endif 1441638Srgrimes 14518340Sswallaceall: objwarn ${_LIBS} all-man _SUBDIR # llib-l${LIB}.ln 1461844Swollman 1471844SwollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 1481844Swollman 1491638Srgrimeslib${LIB}.a:: ${OBJS} 1502353Sbde @${ECHO} building standard ${LIB} library 1511638Srgrimes @rm -f lib${LIB}.a 15217400Sjkh @${AR} cq lib${LIB}.a `lorder ${OBJS} | tsort -q` ${ARADD} 1531844Swollman ${RANLIB} lib${LIB}.a 1541638Srgrimes 1553859Sbde.if !defined(NOPROFILE) 1561638SrgrimesPOBJS+= ${OBJS:.o=.po} 1571638Srgrimeslib${LIB}_p.a:: ${POBJS} 1582353Sbde @${ECHO} building profiled ${LIB} library 1591638Srgrimes @rm -f lib${LIB}_p.a 16017400Sjkh @${AR} cq lib${LIB}_p.a `lorder ${POBJS} | tsort -q` ${ARADD} 1611844Swollman ${RANLIB} lib${LIB}_p.a 1623859Sbde.endif 1631638Srgrimes 1641844Swollman.if defined(DESTDIR) 16525468SjdpLDDESTDIRENV?= LIBRARY_PATH=${DESTDIR}${SHLIBDIR}:${DESTDIR}/usr/lib 1661844Swollman.endif 1671844Swollman 1683859Sbde.if !defined(NOPIC) 1691844SwollmanSOBJS+= ${OBJS:.o=.so} 17028945Speter 17128945Speter.if ${BINFORMAT} == aout 1721844Swollmanlib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: ${SOBJS} 1732353Sbde @${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\) 1741844Swollman @rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 17526073Sdfr @${LDDESTDIRENV} ${CC} -shared -Wl,-x -Wl,-assert -Wl,pure-text \ 1761844Swollman -o lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 17717400Sjkh `lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD} 17828945Speter.else 17928945Speterlib${LIB}.so.${SHLIB_MAJOR}: ${SOBJS} 18028945Speter @${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}\) 18128945Speter @rm -f lib${LIB}.so.${SHLIB_MAJOR} 18228945Speter @${LDDESTDIRENV} ${CC} -shared -Wl,-x \ 18329141Speter -o lib${LIB}.so.${SHLIB_MAJOR} -Wl,-soname,${SONAME} \ 18428945Speter `lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD} 18528945Speter.endif 1861844Swollman 1871844Swollmanlib${LIB}_pic.a:: ${SOBJS} 1882353Sbde @${ECHO} building special pic ${LIB} library 1891844Swollman @rm -f lib${LIB}_pic.a 1905253Sache @${AR} cq lib${LIB}_pic.a ${SOBJS} ${ARADD} 1911844Swollman ${RANLIB} lib${LIB}_pic.a 1923859Sbde.endif 1931844Swollman 1941638Srgrimesllib-l${LIB}.ln: ${SRCS} 1951638Srgrimes ${LINT} -C${LIB} ${CFLAGS} ${.ALLSRC:M*.c} 1961638Srgrimes 1971638Srgrimes.if !target(clean) 19816663Sjkhclean: _SUBDIR 19931809Sbde rm -f a.out ${OBJS} ${CLEANFILES} 20031809Sbde rm -f lib${LIB}.a # llib-l${LIB}.ln 20131809Sbde rm -f ${POBJS} lib${LIB}_p.a 20231809Sbde rm -f ${SOBJS} 2031844Swollman rm -f lib${LIB}.so.*.* lib${LIB}_pic.a 20416826Sphk.if defined(CLEANDIRS) && !empty(CLEANDIRS) 20516437Sphk rm -rf ${CLEANDIRS} 2061638Srgrimes.endif 20716437Sphk.endif 2081638Srgrimes 2091844Swollman.if defined(SRCS) 21024750Sbde_EXTRADEPEND:: 21124750Sbde @TMP=_depend$$$$; \ 21224750Sbde sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so:/' < ${DEPENDFILE} \ 21324750Sbde > $$TMP; \ 21424750Sbde mv $$TMP ${DEPENDFILE} 2151638Srgrimes.endif 21627910Sasami.if !defined(NOEXTRADEPEND) 21724750Sbde_EXTRADEPEND:: 21828945Speter.if ${BINFORMAT} == aout 21924750Sbde echo lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: \ 22025468Sjdp `${LDDESTDIRENV} ${CC} -shared -Wl,-f ${LDDESTDIR} ${LDADD}` \ 22125468Sjdp >> ${DEPENDFILE} 22228945Speter.else 22331809Sbde.if defined(DPADD) && !empty(DPADD) 22428945Speter echo lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: \ 22528945Speter ${DPADD} >> ${DEPENDFILE} 22627910Sasami.endif 22728945Speter.endif 22828945Speter.endif 2291638Srgrimes 2301638Srgrimes.if !target(install) 2311638Srgrimes.if !target(beforeinstall) 2321638Srgrimesbeforeinstall: 2331638Srgrimes.endif 2341638Srgrimes 2352298Swollman.if defined(PRECIOUSLIB) 2362298SwollmanSHLINSTALLFLAGS+= -fschg 2372298Swollman.endif 2382298Swollman 2391638Srgrimesrealinstall: beforeinstall 2402298Swollman.if !defined(INTERNALLIB) 2411996Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2421996Swollman ${INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR} 2431638Srgrimes.if !defined(NOPROFILE) 2441844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2451996Swollman ${INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR} 2461638Srgrimes.endif 2472298Swollman.endif 2481844Swollman.if !defined(NOPIC) 24928945Speter.if ${BINFORMAT} == aout 2501844Swollman.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 2511844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2522298Swollman ${INSTALLFLAGS} ${SHLINSTALLFLAGS} \ 2532298Swollman lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 2544450Sbde ${DESTDIR}${SHLIBDIR} 2551844Swollman.endif 25628945Speter.else 25728945Speter.if defined(SHLIB_MAJOR) 25828945Speter ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 25928945Speter ${INSTALLFLAGS} ${SHLINSTALLFLAGS} \ 26028945Speter lib${LIB}.so.${SHLIB_MAJOR} \ 26128945Speter ${DESTDIR}${SHLIBDIR} 26228945Speter ln ${LN_FLAGS} -sf lib${LIB}.so.${SHLIB_MAJOR} \ 26328945Speter ${DESTDIR}${SHLIBDIR}/lib${LIB}.so 26428945Speter.endif 26528945Speter.endif 2661844Swollman.if defined(INSTALL_PIC_ARCHIVE) 2671844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2681996Swollman ${INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR} 2691844Swollman.endif 2701844Swollman.endif 2711638Srgrimes.if defined(LINKS) && !empty(LINKS) 2721638Srgrimes @set ${LINKS}; \ 2731638Srgrimes while test $$# -ge 2; do \ 2741638Srgrimes l=${DESTDIR}$$1; \ 2751638Srgrimes shift; \ 2761638Srgrimes t=${DESTDIR}$$1; \ 2771638Srgrimes shift; \ 2782353Sbde ${ECHO} $$t -\> $$l; \ 2791638Srgrimes rm -f $$t; \ 2806032Sjkh ln ${LN_FLAGS} $$l $$t; \ 2811638Srgrimes done; true 2821638Srgrimes.endif 2831638Srgrimes 28416663Sjkhinstall: afterinstall _SUBDIR 2851844Swollman.if !defined(NOMAN) 2861844Swollmanafterinstall: realinstall maninstall 2871844Swollman.else 2881638Srgrimesafterinstall: realinstall 2891638Srgrimes.endif 2901638Srgrimes.endif 2911638Srgrimes 2925585SjkhDISTRIBUTION?= bin 2934442Sphk.if !target(distribute) 29416663Sjkhdistribute: _SUBDIR 29526760Sjkh.for dist in ${DISTRIBUTION} 29626760Sjkh cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${dist} SHARED=copies 29726760Sjkh.endfor 2984442Sphk.endif 2994442Sphk 3001638Srgrimes.if !target(lint) 3011638Srgrimeslint: 3021638Srgrimes.endif 3031638Srgrimes 30424861Sjkh.if defined(NOTAGS) 30524861Sjkhtags: 30624861Sjkh.endif 30724861Sjkh 3081638Srgrimes.if !target(tags) 30916663Sjkhtags: ${SRCS} _SUBDIR 31024861Sjkh @cd ${.CURDIR} && gtags ${GTAGSFLAGS} 31124861Sjkh.if defined(HTML) 31224861Sjkh @cd ${.CURDIR} && htags ${HTAGSFLAGS} 3131638Srgrimes.endif 31424861Sjkh.endif 3151638Srgrimes 3161844Swollman.if !defined(NOMAN) 3171638Srgrimes.include <bsd.man.mk> 3181844Swollman.elif !target(maninstall) 3191844Swollmanmaninstall: 32011136Swollmanall-man: 3211844Swollman.endif 3221844Swollman 3231844Swollman.include <bsd.dep.mk> 32416663Sjkh.include <bsd.obj.mk> 325