bsd.lib.mk revision 18529
11844Swollman# from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91 218529Sbde# $Id: bsd.lib.mk,v 1.45 1996/09/19 07:01:45 peter 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 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: 411638Srgrimes ${CC} -p ${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: 531844Swollman ${CXX} -p ${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: 651844Swollman ${FC} -p ${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: 7317510Speter ${CC} -x asssembler-with-cpp ${CFLAGS:M-[ID]*} ${AINC} -c \ 7417510Speter ${.IMPSRC} -o ${.TARGET} 7515959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 761638Srgrimes 771638Srgrimes.s.po: 7817510Speter ${CC} -x assembler-with-cpp -DPROF ${CFLAGS:M-[ID]*} ${AINC} -c \ 7917510Speter ${.IMPSRC} -o ${.TARGET} 8015959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 811638Srgrimes 821844Swollman.s.so: 8317510Speter ${CC} -x assembler-with-cpp -fpic -DPIC ${CFLAGS:M-[ID]*} ${AINC} -c \ 8417510Speter ${.IMPSRC} -o ${.TARGET} 8515959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 861638Srgrimes 871844Swollman.S.o: 8817510Speter ${CC} ${CFLAGS:M-[ID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 891844Swollman 901844Swollman.S.po: 9117510Speter ${CC} -DPROF ${CFLAGS:M-[ID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 921844Swollman 931844Swollman.S.so: 9417510Speter ${CC} -fpic -DPIC ${CFLAGS:M-[ID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 9515959Sphk @${LD} -O ${.TARGET} -x -r ${.TARGET} 961844Swollman 971844Swollman.m.po: 9818374Speter ${CC} ${CFLAGS} -fgnu-runtime -p -c ${.IMPSRC} -o ${.TARGET} 9915959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 1001844Swollman 1011844Swollman.m.o: 10218374Speter ${CC} ${CFLAGS} -fgnu-runtime -c ${.IMPSRC} -o ${.TARGET} 10315959Sphk @${LD} -O ${.TARGET} -X -r ${.TARGET} 1041844Swollman 1052870Swollman.if !defined(INTERNALLIB) || defined(INTERNALSTATICLIB) 1062868Swollman.if !defined(NOPROFILE) && !defined(INTERNALLIB) 1071638Srgrimes_LIBS=lib${LIB}.a lib${LIB}_p.a 1081638Srgrimes.else 1091638Srgrimes_LIBS=lib${LIB}.a 1101638Srgrimes.endif 1112870Swollman.endif 1121638Srgrimes 1131844Swollman.if !defined(NOPIC) 1141844Swollman.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 1151844Swollman_LIBS+=lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 1161638Srgrimes.endif 1171844Swollman.if defined(INSTALL_PIC_ARCHIVE) 1181844Swollman_LIBS+=lib${LIB}_pic.a 1191844Swollman.endif 1201844Swollman.endif 1211638Srgrimes 1221844Swollman.if !defined(PICFLAG) 1231844SwollmanPICFLAG=-fpic 1241844Swollman.endif 1251638Srgrimes 12618340Sswallaceall: objwarn ${_LIBS} all-man _SUBDIR # llib-l${LIB}.ln 1271844Swollman 1281844SwollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 1291844Swollman 1301638Srgrimeslib${LIB}.a:: ${OBJS} 1312353Sbde @${ECHO} building standard ${LIB} library 1321638Srgrimes @rm -f lib${LIB}.a 13317400Sjkh @${AR} cq lib${LIB}.a `lorder ${OBJS} | tsort -q` ${ARADD} 1341844Swollman ${RANLIB} lib${LIB}.a 1351638Srgrimes 1363859Sbde.if !defined(NOPROFILE) 1371638SrgrimesPOBJS+= ${OBJS:.o=.po} 1381638Srgrimeslib${LIB}_p.a:: ${POBJS} 1392353Sbde @${ECHO} building profiled ${LIB} library 1401638Srgrimes @rm -f lib${LIB}_p.a 14117400Sjkh @${AR} cq lib${LIB}_p.a `lorder ${POBJS} | tsort -q` ${ARADD} 1421844Swollman ${RANLIB} lib${LIB}_p.a 1433859Sbde.endif 1441638Srgrimes 1451844Swollman.if defined(DESTDIR) 1461844SwollmanLDDESTDIR?= -L${DESTDIR}/usr/lib 1471844Swollman.endif 1481844Swollman 1493859Sbde.if !defined(NOPIC) 15013535Sjdp.if defined(CPLUSPLUSLIB) && !make(clean) && !make(cleandir) 1511844SwollmanSOBJS+= ${DESTDIR}/usr/lib/c++rt0.o 1521844Swollman.endif 1531844Swollman 1541844SwollmanSOBJS+= ${OBJS:.o=.so} 1551844Swollmanlib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: ${SOBJS} 1562353Sbde @${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\) 1571844Swollman @rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 15815336Sjdp @${LD} -Bshareable -x \ 1591844Swollman -o lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 16017400Sjkh `lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD} 1611844Swollman 1621844Swollmanlib${LIB}_pic.a:: ${SOBJS} 1632353Sbde @${ECHO} building special pic ${LIB} library 1641844Swollman @rm -f lib${LIB}_pic.a 1655253Sache @${AR} cq lib${LIB}_pic.a ${SOBJS} ${ARADD} 1661844Swollman ${RANLIB} lib${LIB}_pic.a 1673859Sbde.endif 1681844Swollman 1691638Srgrimesllib-l${LIB}.ln: ${SRCS} 1701638Srgrimes ${LINT} -C${LIB} ${CFLAGS} ${.ALLSRC:M*.c} 1711638Srgrimes 1721638Srgrimes.if !target(clean) 17316663Sjkhclean: _SUBDIR 1741844Swollman rm -f a.out Errs errs mklog ${CLEANFILES} ${OBJS} 1751844Swollman rm -f lib${LIB}.a llib-l${LIB}.ln 1761844Swollman rm -f ${POBJS} profiled/*.o lib${LIB}_p.a 1771844Swollman rm -f ${SOBJS} shared/*.o 1781844Swollman rm -f lib${LIB}.so.*.* lib${LIB}_pic.a 17916826Sphk.if defined(CLEANDIRS) && !empty(CLEANDIRS) 18016437Sphk rm -rf ${CLEANDIRS} 1811638Srgrimes.endif 18216437Sphk.endif 1831638Srgrimes 1841844Swollman.if defined(SRCS) 1851844Swollmanafterdepend: 1861638Srgrimes @(TMP=/tmp/_depend$$$$; \ 1871844Swollman sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so:/' < .depend > $$TMP; \ 1881844Swollman mv $$TMP .depend) 1891638Srgrimes.endif 1901638Srgrimes 1911638Srgrimes.if !target(install) 1921638Srgrimes.if !target(beforeinstall) 1931638Srgrimesbeforeinstall: 1941638Srgrimes.endif 1951638Srgrimes 1962298Swollman.if defined(PRECIOUSLIB) 1972298SwollmanSHLINSTALLFLAGS+= -fschg 1982298Swollman.endif 1992298Swollman 2001638Srgrimesrealinstall: beforeinstall 2012298Swollman.if !defined(INTERNALLIB) 2021996Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2031996Swollman ${INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR} 2041638Srgrimes.if !defined(NOPROFILE) 2051844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2061996Swollman ${INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR} 2071638Srgrimes.endif 2082298Swollman.endif 2091844Swollman.if !defined(NOPIC) 2101844Swollman.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 2111844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2122298Swollman ${INSTALLFLAGS} ${SHLINSTALLFLAGS} \ 2132298Swollman lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 2144450Sbde ${DESTDIR}${SHLIBDIR} 2151844Swollman.endif 2161844Swollman.if defined(INSTALL_PIC_ARCHIVE) 2171844Swollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 2181996Swollman ${INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR} 2191844Swollman.endif 2201844Swollman.endif 2211638Srgrimes.if defined(LINKS) && !empty(LINKS) 2221638Srgrimes @set ${LINKS}; \ 2231638Srgrimes while test $$# -ge 2; do \ 2241638Srgrimes l=${DESTDIR}$$1; \ 2251638Srgrimes shift; \ 2261638Srgrimes t=${DESTDIR}$$1; \ 2271638Srgrimes shift; \ 2282353Sbde ${ECHO} $$t -\> $$l; \ 2291638Srgrimes rm -f $$t; \ 2306032Sjkh ln ${LN_FLAGS} $$l $$t; \ 2311638Srgrimes done; true 2321638Srgrimes.endif 2331638Srgrimes 23416663Sjkhinstall: afterinstall _SUBDIR 2351844Swollman.if !defined(NOMAN) 2361844Swollmanafterinstall: realinstall maninstall 2371844Swollman.else 2381638Srgrimesafterinstall: realinstall 2391638Srgrimes.endif 2401638Srgrimes.endif 2411638Srgrimes 2425585SjkhDISTRIBUTION?= bin 2434442Sphk.if !target(distribute) 24416663Sjkhdistribute: _SUBDIR 2456716Sphk cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${DISTRIBUTION} SHARED=copies 2464442Sphk.endif 2474442Sphk 2481638Srgrimes.if !target(lint) 2491638Srgrimeslint: 2501638Srgrimes.endif 2511638Srgrimes 2521638Srgrimes.if !target(tags) 25316663Sjkhtags: ${SRCS} _SUBDIR 2541844Swollman -cd ${.CURDIR}; ctags -f /dev/stdout ${.ALLSRC:M*.c} | \ 2551844Swollman sed "s;\${.CURDIR}/;;" > tags 2561638Srgrimes.endif 2571638Srgrimes 2581844Swollman.if !defined(NOMAN) 2591638Srgrimes.include <bsd.man.mk> 2601844Swollman.elif !target(maninstall) 2611844Swollmanmaninstall: 26211136Swollmanall-man: 2631844Swollman.endif 2641844Swollman 2651844Swollman.include <bsd.dep.mk> 26616663Sjkh.include <bsd.obj.mk> 267