bsd.lib.mk revision 41562
1139823Simp# from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91 2189592Sbms# $Id: bsd.lib.mk,v 1.81 1998/11/18 00:48:11 jdp Exp $ 31541Srgrimes# 41541Srgrimes 51541Srgrimes.if !target(__initialized__) 61541Srgrimes__initialized__: 71541Srgrimes.if exists(${.CURDIR}/../Makefile.inc) 81541Srgrimes.include "${.CURDIR}/../Makefile.inc" 91541Srgrimes.endif 101541Srgrimes.endif 111541Srgrimes 121541Srgrimes.if exists(${.CURDIR}/shlib_version) 131541SrgrimesSHLIB_MAJOR != . ${.CURDIR}/shlib_version ; echo $$major 141541Srgrimes.if ${OBJFORMAT} == aout 151541SrgrimesSHLIB_MINOR != . ${.CURDIR}/shlib_version ; echo $$minor 161541Srgrimes.endif 171541Srgrimes.endif 181541Srgrimes 191541Srgrimes.if !defined(NOPIC) && ${OBJFORMAT} == elf 201541SrgrimesSONAME?= lib${LIB}.so.${SHLIB_MAJOR} 211541Srgrimes.endif 221541Srgrimes 231541Srgrimes.if defined(DESTDIR) 241541SrgrimesCFLAGS+= -I${DESTDIR}/usr/include 251541SrgrimesCXXINCLUDES+= -I${DESTDIR}/usr/include/g++ 261541Srgrimes.endif 271541Srgrimes 281541Srgrimes.if defined(DEBUG_FLAGS) 291541SrgrimesCFLAGS+= ${DEBUG_FLAGS} 301541Srgrimes.endif 311541Srgrimes 321541Srgrimes.if !defined(DEBUG_FLAGS) 331541SrgrimesSTRIP?= -s 341541Srgrimes.endif 351541Srgrimes 361541Srgrimes.if ${OBJFORMAT} != aout || make(checkdpadd) 372531Swollman.include <bsd.libnames.mk> 382531Swollman.endif 39189592Sbms 402531Swollman.MAIN: all 412531Swollman 422531Swollman# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries 439209Swollman# .so used for PIC object files 4414622Sfenner.SUFFIXES: 45189592Sbms.SUFFIXES: .out .o .po .so .s .S .c .cc .cpp .cxx .m .C .f .y .l 462531Swollman 4714622Sfenner.c.o: 482531Swollman ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 491541Srgrimes @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 50172467Ssilby @mv ${.TARGET}.tmp ${.TARGET} 51172467Ssilby 52172467Ssilby.c.po: 531541Srgrimes ${CC} -pg ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 541549Srgrimes @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 55189592Sbms @mv ${.TARGET}.tmp ${.TARGET} 5629024Sbde 571541Srgrimes.c.so: 581541Srgrimes ${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 591541Srgrimes @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 6012296Sphk @mv ${.TARGET}.tmp ${.TARGET} 616472Swollman 62181803Sbz.cc.o .C.o .cpp.o .cxx.o: 63189592Sbms ${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 64189592Sbms @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 651541Srgrimes @mv ${.TARGET}.tmp ${.TARGET} 661541Srgrimes 67189592Sbms.cc.po .C.po .cpp.po .cxx.po: 68185571Sbz ${CXX} -pg ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 691541Srgrimes @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 701541Srgrimes @mv ${.TARGET}.tmp ${.TARGET} 711541Srgrimes 721541Srgrimes.cc.so .C.so .cpp.so .cxx.so: 731541Srgrimes ${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 741541Srgrimes @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 75152592Sandre @mv ${.TARGET}.tmp ${.TARGET} 761541Srgrimes 771541Srgrimes.f.o: 78185571Sbz ${FC} ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 791541Srgrimes @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 8060105Sjlemon @mv ${.TARGET}.tmp ${.TARGET} 8160105Sjlemon 82163606Srwatson.f.po: 83163606Srwatson ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 84189592Sbms @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 85191657Sbms @mv ${.TARGET}.tmp ${.TARGET} 86189592Sbms 8730309Sphk.f.so: 88189592Sbms ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 89189592Sbms @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 90189592Sbms @mv ${.TARGET}.tmp ${.TARGET} 91189592Sbms 92189592Sbms.m.o: 93189592Sbms ${OBJC} ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET} 94189592Sbms @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 95189592Sbms @mv ${.TARGET}.tmp ${.TARGET} 96189592Sbms 97193231Sbms.m.po: 98193231Sbms ${OBJC} ${OBJCFLAGS} -pg -c ${.IMPSRC} -o ${.TARGET} 99189592Sbms @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 100189592Sbms @mv ${.TARGET}.tmp ${.TARGET} 101189592Sbms 102189592Sbms.m.so: 103189592Sbms ${OBJC} ${PICFLAG} -DPIC ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET} 104189592Sbms @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 105189592Sbms @mv ${.TARGET}.tmp ${.TARGET} 106189592Sbms 107189592Sbms.s.o: 108189592Sbms ${CC} -x assembler-with-cpp ${CFLAGS:M-[BID]*} ${AINC} -c \ 109189592Sbms ${.IMPSRC} -o ${.TARGET} 110189592Sbms @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 111189592Sbms @mv ${.TARGET}.tmp ${.TARGET} 112189592Sbms 113189592Sbms.s.po: 114189592Sbms ${CC} -x assembler-with-cpp -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c \ 115185088Szec ${.IMPSRC} -o ${.TARGET} 116189592Sbms @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 117189592Sbms @mv ${.TARGET}.tmp ${.TARGET} 118189592Sbms 119189592Sbms.s.so: 120189592Sbms ${CC} -x assembler-with-cpp -fpic -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c \ 121189592Sbms ${.IMPSRC} -o ${.TARGET} 122189592Sbms @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 123189592Sbms @mv ${.TARGET}.tmp ${.TARGET} 124189592Sbms 125189592Sbms.S.o: 126189592Sbms ${CC} ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 127189592Sbms @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 128189592Sbms @mv ${.TARGET}.tmp ${.TARGET} 129189592Sbms 130189592Sbms.S.po: 131189592Sbms ${CC} -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 132189592Sbms @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 133189592Sbms @mv ${.TARGET}.tmp ${.TARGET} 134189592Sbms 135189592Sbms.S.so: 136189592Sbms ${CC} -fpic -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 137189592Sbms @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 138189592Sbms @mv ${.TARGET}.tmp ${.TARGET} 139189592Sbms 1402531Swollman.if !defined(INTERNALLIB) || defined(INTERNALSTATICLIB) 141189592Sbms.if !defined(NOPROFILE) && !defined(INTERNALLIB) 142189592Sbms_LIBS=lib${LIB}.a lib${LIB}_p.a 14312296Sphk.else 144193219Srwatson_LIBS=lib${LIB}.a 145193219Srwatson.endif 146193219Srwatson.endif 147193219Srwatson 148193219Srwatson.if !defined(NOPIC) 149193219Srwatson.if ${OBJFORMAT} == aout 150193219Srwatson.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 151130333Srwatson_LIBS+=lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 152189592Sbms.endif 153189592Sbms.else 154189592Sbms.if defined(SHLIB_MAJOR) 155189592Sbms_LIBS+=lib${LIB}.so.${SHLIB_MAJOR} 156189592Sbms.endif 157189592Sbms.endif 158189592Sbms.if defined(INSTALL_PIC_ARCHIVE) 159189592Sbms_LIBS+=lib${LIB}_pic.a 160189592Sbms.endif 161189592Sbms.endif 162189592Sbms 163191264Sbms.if !defined(PICFLAG) 164191264SbmsPICFLAG=-fpic 165189592Sbms.endif 166189592Sbms 167189592Sbmsall: objwarn ${_LIBS} all-man _SUBDIR # llib-l${LIB}.ln 168189592Sbms 169189592SbmsOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 170189592Sbms 171189592Sbmslib${LIB}.a:: ${OBJS} 172189592Sbms @${ECHO} building standard ${LIB} library 173189592Sbms @rm -f lib${LIB}.a 174189592Sbms @${AR} cq lib${LIB}.a `lorder ${OBJS} | tsort -q` ${ARADD} 175189592Sbms ${RANLIB} lib${LIB}.a 176189592Sbms 177189592SbmsPOBJS+= ${OBJS:.o=.po} 178189592Sbms.if !defined(NOPROFILE) 179189592Sbmslib${LIB}_p.a:: ${POBJS} 180189592Sbms @${ECHO} building profiled ${LIB} library 181189592Sbms @rm -f lib${LIB}_p.a 182189592Sbms @${AR} cq lib${LIB}_p.a `lorder ${POBJS} | tsort -q` ${ARADD} 183189592Sbms ${RANLIB} lib${LIB}_p.a 184189592Sbms.endif 185189931Sbms 186189931Sbms.if defined(DESTDIR) 187189931SbmsLDDESTDIRENV?= LIBRARY_PATH=${DESTDIR}${SHLIBDIR}:${DESTDIR}${LIBDIR} 188189931Sbms.endif 189189931Sbms 190130333SrwatsonSOBJS+= ${OBJS:.o=.so} 191189592Sbms 192189592Sbms.if !defined(NOPIC) 193189592Sbms.if ${OBJFORMAT} == aout 194189592Sbmslib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: ${SOBJS} 195189592Sbms @${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\) 196189592Sbms @rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 197189592Sbms @${LDDESTDIRENV} ${CC} -shared -Wl,-x -Wl,-assert -Wl,pure-text \ 198189592Sbms -o lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 199189592Sbms `lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD} 200189592Sbms.else 201189592Sbmslib${LIB}.so.${SHLIB_MAJOR}: ${SOBJS} 202189592Sbms @${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}\) 203189592Sbms @rm -f lib${LIB}.so.${SHLIB_MAJOR} lib${LIB}.so 204189592Sbms @ln -sf lib${LIB}.so.${SHLIB_MAJOR} lib${LIB}.so 205189592Sbms @${LDDESTDIRENV} ${CC} -shared -Wl,-x \ 206189592Sbms -o lib${LIB}.so.${SHLIB_MAJOR} -Wl,-soname,${SONAME} \ 207189592Sbms `lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD} 208189592Sbms.endif 209189592Sbms 210189592Sbmslib${LIB}_pic.a:: ${SOBJS} 211189592Sbms @${ECHO} building special pic ${LIB} library 212189592Sbms @rm -f lib${LIB}_pic.a 213189592Sbms @${AR} cq lib${LIB}_pic.a ${SOBJS} ${ARADD} 214189592Sbms ${RANLIB} lib${LIB}_pic.a 215185088Szec.endif 216189592Sbms 217189592Sbmsllib-l${LIB}.ln: ${SRCS} 218189592Sbms ${LINT} -C${LIB} ${CFLAGS} ${.ALLSRC:M*.c} 219189592Sbms 220130333Srwatson.if !target(clean) 221189592Sbmsclean: _SUBDIR 222189592Sbms rm -f a.out ${OBJS} ${OBJS:S/$/.tmp/} ${CLEANFILES} 223189592Sbms rm -f lib${LIB}.a # llib-l${LIB}.ln 224189592Sbms rm -f ${POBJS} ${POBJS:S/$/.tmp/} lib${LIB}_p.a 225189592Sbms rm -f ${SOBJS} ${SOBJS:S/$/.tmp/} lib${LIB}.so.* lib${LIB}.so \ 226189592Sbms lib${LIB}_pic.a 227189592Sbms.if defined(CLEANDIRS) && !empty(CLEANDIRS) 228189592Sbms rm -rf ${CLEANDIRS} 229189592Sbms.endif 230189592Sbms.endif 231189592Sbms 232189592Sbms_EXTRADEPEND: 233189592Sbms @TMP=_depend$$$$; \ 234130333Srwatson sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so:/' < ${DEPENDFILE} \ 235189592Sbms > $$TMP; \ 236130333Srwatson mv $$TMP ${DEPENDFILE} 237189592Sbms.if !defined(NOEXTRADEPEND) && !defined(NOPIC) 238189592Sbms.if ${OBJFORMAT} == aout 239189592Sbms echo lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: \ 240189592Sbms `${LDDESTDIRENV} ${CC} -shared -Wl,-f ${LDDESTDIR} ${LDADD}` \ 241189592Sbms >> ${DEPENDFILE} 242189592Sbms.else 243189592Sbms.if defined(DPADD) && !empty(DPADD) 244189592Sbms echo lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: \ 245189592Sbms ${DPADD} >> ${DEPENDFILE} 246189592Sbms.endif 247189592Sbms.endif 248189592Sbms.endif 249189592Sbms 250189592Sbms.if !target(install) 251189592Sbms.if !target(beforeinstall) 252189592Sbmsbeforeinstall: 253189592Sbms.endif 254189592Sbms 255189592Sbms.if defined(PRECIOUSLIB) 256189592SbmsSHLINSTALLFLAGS+= -fschg 257189592Sbms.endif 258189592Sbms 259189592Sbmsrealinstall: beforeinstall 260189592Sbms.if !defined(INTERNALLIB) 261189592Sbms ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 262189592Sbms ${INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR} 263189592Sbms.if !defined(NOPROFILE) 264189592Sbms ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 265130333Srwatson ${INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR} 266189592Sbms.endif 267189592Sbms.endif 268189592Sbms.if !defined(NOPIC) 269189592Sbms.if ${OBJFORMAT} == aout 270189592Sbms.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 2711541Srgrimes ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 272189592Sbms ${INSTALLFLAGS} ${SHLINSTALLFLAGS} \ 273189592Sbms lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 274189592Sbms ${DESTDIR}${SHLIBDIR} 275189592Sbms.endif 276189592Sbms.else 277189592Sbms.if defined(SHLIB_MAJOR) 278189592Sbms ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 279189592Sbms ${INSTALLFLAGS} ${SHLINSTALLFLAGS} \ 280189592Sbms lib${LIB}.so.${SHLIB_MAJOR} \ 281189592Sbms ${DESTDIR}${SHLIBDIR} 282189592Sbms ln ${LN_FLAGS} -sf lib${LIB}.so.${SHLIB_MAJOR} \ 283189592Sbms ${DESTDIR}${SHLIBDIR}/lib${LIB}.so 284189592Sbms.endif 285189592Sbms.endif 286189592Sbms.if defined(INSTALL_PIC_ARCHIVE) 287189592Sbms ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 288189592Sbms ${INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR} 289189592Sbms.endif 290189592Sbms.endif 291189592Sbms.if defined(LINKS) && !empty(LINKS) 292189592Sbms @set ${LINKS}; \ 293189592Sbms while test $$# -ge 2; do \ 294189592Sbms l=${DESTDIR}$$1; \ 295189592Sbms shift; \ 296189592Sbms t=${DESTDIR}$$1; \ 297189592Sbms shift; \ 298189592Sbms ${ECHO} $$t -\> $$l; \ 299119180Srwatson rm -f $$t; \ 300119180Srwatson ln ${LN_FLAGS} $$l $$t; \ 301189592Sbms done; true 302189592Sbms.endif 303189592Sbms 304189592Sbmsinstall: afterinstall _SUBDIR 305189592Sbms.if !defined(NOMAN) 306189592Sbmsafterinstall: realinstall maninstall 307189592Sbms.else 308189592Sbmsafterinstall: realinstall 309189592Sbms.endif 3101541Srgrimes.endif 31114622Sfenner 312189592Sbms.if !target(regress) 313189592Sbmsregress: 314189592Sbms.endif 315189592Sbms 316189592SbmsDISTRIBUTION?= bin 317189592Sbms.if !target(distribute) 318189592Sbmsdistribute: _SUBDIR 319189592Sbms.for dist in ${DISTRIBUTION} 320189592Sbms cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${dist} SHARED=copies 321189592Sbms.endfor 322189592Sbms.endif 323189592Sbms 324189592Sbms.if !target(lint) 325189592Sbmslint: 326189592Sbms.endif 327189592Sbms 328189592Sbms.if !defined(NOMAN) 329189592Sbms.include <bsd.man.mk> 330191548Szec.elif !target(maninstall) 331189592Sbmsmaninstall: 332189592Sbmsall-man: 333189592Sbms.endif 334189592Sbms 335189592Sbms.include <bsd.dep.mk> 336189592Sbms 337189592Sbms.if !exists(${DEPENDFILE}) 338189592Sbms${OBJS} ${POBJS} ${SOBJS}: ${SRCS:M*.h} 339189592Sbms.endif 340189592Sbms 341189592Sbms.include <bsd.obj.mk> 342189592Sbms