version 1.309, 2010/11/08 06:54:52 |
version 1.321, 2012/02/19 23:19:37 |
|
|
##### Basic targets |
##### Basic targets |
.PHONY: checkver libinstall |
.PHONY: checkver libinstall |
realinstall: checkver libinstall |
realinstall: checkver libinstall |
clean: cleanlib |
|
|
|
##### LIB specific flags. |
##### LIB specific flags. |
# XXX: This is needed for programs that link with .a libraries |
# XXX: This is needed for programs that link with .a libraries |
Line 63 DPADD+= ${LIBDO.${_lib}}/lib${_lib}.so |
|
Line 62 DPADD+= ${LIBDO.${_lib}}/lib${_lib}.so |
|
##### Build and install rules |
##### Build and install rules |
MKDEP_SUFFIXES?= .o .po .pico .go .ln |
MKDEP_SUFFIXES?= .o .po .pico .go .ln |
|
|
# Use purely kernel private headers in rump builds |
|
.if !defined(RUMPKERNEL) |
|
.if empty(CPPFLAGS:M-nostdinc) |
|
CPPFLAGS+= ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} |
|
.endif |
|
.if empty(CXXFLAGS:M-nostdinc++) |
|
CXXFLAGS+= ${DESTDIR:D-nostdinc++ ${CPPFLAG_ISYSTEMXX} ${DESTDIR}/usr/include/g++} |
|
.endif |
|
.endif |
|
|
|
.if !defined(SHLIB_MAJOR) && exists(${SHLIB_VERSION_FILE}) # { |
.if !defined(SHLIB_MAJOR) && exists(${SHLIB_VERSION_FILE}) # { |
SHLIB_MAJOR != . ${SHLIB_VERSION_FILE} ; echo $$major |
SHLIB_MAJOR != . ${SHLIB_VERSION_FILE} ; echo $$major |
SHLIB_MINOR != . ${SHLIB_VERSION_FILE} ; echo $$minor |
SHLIB_MINOR != . ${SHLIB_VERSION_FILE} ; echo $$minor |
|
|
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
${OBJCOPY} -x ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
.c.po: |
.c.po: |
|
|
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
${OBJCOPY} -X ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
.c.go: |
.c.go: |
|
|
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${CSHLIBFLAGS} ${.IMPSRC} -o ${.TARGET} |
${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${CSHLIBFLAGS} ${.IMPSRC} -o ${.TARGET} |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
${OBJCOPY} -x ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
.cc.o .cpp.o .cxx.o .C.o: |
.cc.o .cpp.o .cxx.o .C.o: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
${COMPILE.cc} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
${COMPILE.cc} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
${OBJCOPY} -x ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
.cc.po .cpp.po .cxx.po .C.po: |
.cc.po .cpp.po .cxx.po .C.po: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
${COMPILE.cc} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -pg ${.IMPSRC} -o ${.TARGET} |
${COMPILE.cc} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -pg ${.IMPSRC} -o ${.TARGET} |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
${OBJCOPY} -X ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
.cc.go .cpp.go .cxx.go .C.go: |
.cc.go .cpp.go .cxx.go .C.go: |
|
|
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
${COMPILE.cc} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${CSHLIBFLAGS} ${.IMPSRC} -o ${.TARGET} |
${COMPILE.cc} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${CSHLIBFLAGS} ${.IMPSRC} -o ${.TARGET} |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
${OBJCOPY} -x ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
.f.o: |
.f.o: |
|
|
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
.if !defined(FOPTS) || empty(FOPTS:M*-g*) |
.if !defined(FOPTS) || empty(FOPTS:M*-g*) |
${OBJCOPY} -x ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
.f.po: |
.f.po: |
|
|
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
.if !defined(FOPTS) || empty(FOPTS:M*-g*) |
.if !defined(FOPTS) || empty(FOPTS:M*-g*) |
${OBJCOPY} -X ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
.f.go: |
.f.go: |
|
|
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
${COMPILE.f} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET} |
${COMPILE.f} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET} |
.if !defined(FOPTS) || empty(FOPTS:M*-g*) |
.if !defined(FOPTS) || empty(FOPTS:M*-g*) |
${OBJCOPY} -x ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
.f.ln: |
.f.ln: |
|
|
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
.if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*) |
.if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*) |
${OBJCOPY} -x ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
.m.po: |
.m.po: |
|
|
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
.if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*) |
.if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*) |
${OBJCOPY} -X ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
.m.go: |
.m.go: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
${COMPILE.m} ${DEBUGFLAGS} -g ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
${COMPILE.m} ${DEBUGFLAGS} -g ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
.if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*) |
.if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*) |
${OBJCOPY} -X ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
.m.pico: |
.m.pico: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
${COMPILE.m} ${CSHLIBFLAGS} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
${COMPILE.m} ${CSHLIBFLAGS} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
.if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*) |
.if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*) |
${OBJCOPY} -x ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
.s.o: |
.s.o: |
|
|
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
${OBJCOPY} -x ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
|
|
.S.o: |
.S.o: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
|
|
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
${OBJCOPY} -x ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
|
|
.s.po: |
.s.po: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
|
|
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
${OBJCOPY} -X ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
|
|
.S.po: |
.S.po: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
|
|
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
${OBJCOPY} -X ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
|
|
.s.go: |
.s.go: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
|
|
.s.pico: |
.s.pico: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
${COMPILE.s} ${CAPICFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
${COMPILE.s} ${CAPICFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
${OBJCOPY} -x ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
|
|
.S.pico: |
.S.pico: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
${COMPILE.S} ${CAPICFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
${COMPILE.S} ${CAPICFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
${OBJCOPY} -x ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
|
|
.if defined(LIB) # { |
.if defined(LIB) # { |
.if (${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ |
.if (${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ |
Line 401 _LIBS=lib${LIB}.a |
|
Line 390 _LIBS=lib${LIB}.a |
|
_LIBS= |
_LIBS= |
.endif |
.endif |
|
|
|
.if ${LIBISPRIVATE} != "no" \ |
|
&& (defined(USE_COMBINE) && ${USE_COMBINE} == "yes" \ |
|
&& !defined(NOCOMBINE)) # { |
|
.for f in ${SRCS:N*.h:N*.sh:C/\.[yl]$/.c/g} |
|
COMBINEFLAGS.${LIB}.$f := ${CPPFLAGS.$f:D1} ${CPUFLAGS.$f:D2} ${COPTS.$f:D3} ${OBJCOPTS.$f:D4} ${CXXFLAGS.$f:D5} |
|
.if empty(COMBINEFLAGS.${LIB}.${f}) && !defined(NOCOMBINE.$f) |
|
COMBINESRCS+= ${f} |
|
NODPSRCS+= ${f} |
|
.else |
|
OBJS+= ${f:R:S/$/.o/} |
|
.endif |
|
.endfor |
|
|
|
.if !empty(COMBINESRCS) |
|
OBJS+= lib${LIB}_combine.o |
|
lib${LIB}_combine.o: ${COMBINESRCS} |
|
${_MKTARGET_COMPILE} |
|
${COMPILE.c} -MD --combine ${.ALLSRC} -o ${.TARGET} |
|
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
|
${OBJCOPY} -x ${.TARGET} |
|
.endif |
|
|
|
CLEANFILES+= lib${LIB}_combine.d |
|
|
|
.if exists("lib${LIB}_combine.d") |
|
.include "lib${LIB}_combine.d" |
|
.endif |
|
.endif # empty(XSRCS.${LIB}) |
|
.else # } { |
OBJS+=${SRCS:N*.h:N*.sh:R:S/$/.o/g} |
OBJS+=${SRCS:N*.h:N*.sh:R:S/$/.o/g} |
|
.endif # } |
|
|
STOBJS+=${OBJS} |
STOBJS+=${OBJS} |
|
|
Line 521 lib${LIB}_g.a:: ${GOBJS} __archivebuild |
|
Line 540 lib${LIB}_g.a:: ${GOBJS} __archivebuild |
|
|
|
_LIBLDOPTS= |
_LIBLDOPTS= |
.if ${SHLIBDIR} != "/usr/lib" |
.if ${SHLIBDIR} != "/usr/lib" |
_LIBLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBDIR}:${DESTDIR}/usr/lib \ |
_LIBLDOPTS+= -Wl,-rpath,${SHLIBDIR} \ |
-R${SHLIBDIR} \ |
-L=${SHLIBDIR} |
-L${DESTDIR}${SHLIBDIR} |
|
.elif ${SHLIBINSTALLDIR} != "/usr/lib" |
.elif ${SHLIBINSTALLDIR} != "/usr/lib" |
_LIBLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBINSTALLDIR}:${DESTDIR}/usr/lib \ |
_LIBLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBINSTALLDIR} \ |
-L${DESTDIR}${SHLIBINSTALLDIR} |
-L=${SHLIBINSTALLDIR} |
.endif |
.endif |
|
|
# gcc -shared now adds -lc automatically. For libraries other than libc and |
# gcc -shared now adds -lc automatically. For libraries other than libc and |
Line 535 _LIBLDOPTS+= -Wl,-rpath-link,${DESTDIR}$ |
|
Line 553 _LIBLDOPTS+= -Wl,-rpath-link,${DESTDIR}$ |
|
# -Xl,-nostdlib is not enough because we want to tell the compiler-driver not |
# -Xl,-nostdlib is not enough because we want to tell the compiler-driver not |
# to add standard libraries, not the linker. |
# to add standard libraries, not the linker. |
.if !defined(LIB) |
.if !defined(LIB) |
|
.if !empty(LIBC_SO) |
DPLIBC ?= ${DESTDIR}${LIBC_SO} |
DPLIBC ?= ${DESTDIR}${LIBC_SO} |
|
.endif |
.else |
.else |
.if ${LIB} != "c" && ${LIB:Mgcc*} == "" |
.if ${LIB} != "c" && ${LIB:Mgcc*} == "" |
|
.if !empty(LIBC_SO) |
DPLIBC ?= ${DESTDIR}${LIBC_SO} |
DPLIBC ?= ${DESTDIR}${LIBC_SO} |
|
.endif |
.else |
.else |
LDLIBC ?= -nodefaultlibs |
LDLIBC ?= -nodefaultlibs |
.if ${LIB} == "c" |
.if ${LIB} == "c" |
LDADD+= -lgcc_pic |
LDADD+= -lgcc |
.endif |
.endif |
.endif |
.endif |
.endif |
.endif |
Line 560 lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOL |
|
Line 582 lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOL |
|
${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE} |
${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE} |
${_MKTARGET_BUILD} |
${_MKTARGET_BUILD} |
rm -f lib${LIB}.so.${SHLIB_FULLVERSION} |
rm -f lib${LIB}.so.${SHLIB_FULLVERSION} |
.if defined(DESTDIR) |
|
${LIBCC} ${LDLIBC} -Wl,-nostdlib -B${_GCC_CRTDIR}/ -B${DESTDIR}${SHLIBDIR}/ \ |
|
-Wl,-x -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ |
|
-Wl,--whole-archive ${SOLIB} \ |
|
-Wl,--no-whole-archive ${_LDADD.lib${LIB}} \ |
|
${_LIBLDOPTS} ${_LDFLAGS.lib${LIB}} \ |
|
-L${_GCC_LIBGCCDIR} |
|
.else |
|
${LIBCC} ${LDLIBC} -Wl,-x -shared ${SHLIB_SHFLAGS} ${_LDFLAGS.lib${LIB}} \ |
${LIBCC} ${LDLIBC} -Wl,-x -shared ${SHLIB_SHFLAGS} ${_LDFLAGS.lib${LIB}} \ |
-o ${.TARGET} ${_LIBLDOPTS} \ |
-o ${.TARGET} ${_LIBLDOPTS} \ |
-Wl,--whole-archive ${SOLIB} -Wl,--no-whole-archive ${_LDADD.lib${LIB}} |
-Wl,--whole-archive ${SOLIB} -Wl,--no-whole-archive ${_LDADD.lib${LIB}} |
.endif |
|
# We don't use INSTALL_SYMLINK here because this is just |
# We don't use INSTALL_SYMLINK here because this is just |
# happening inside the build directory/objdir. XXX Why does |
# happening inside the build directory/objdir. XXX Why does |
# this spend so much effort on libraries that aren't live??? XXX |
# this spend so much effort on libraries that aren't live??? XXX |
|
|
${LINT} ${LINTFLAGS} ${LOBJS} |
${LINT} ${LINTFLAGS} ${LOBJS} |
.endif |
.endif |
|
|
cleanlib: .PHONY |
# If the number of entries in CLEANFILES is too large, then the |
rm -f a.out [Ee]rrs mklog core *.core ${CLEANFILES} |
# commands in bsd.clean.mk encounter errors like "exec(/bin/sh) |
rm -f lib${LIB}.a ${STOBJS} |
# failed (Argument list too long)". Avoid that by splitting the |
rm -f lib${LIB}_p.a ${POBJS} |
# files to clean into several lists using different variable names. |
rm -f lib${LIB}_g.a ${GOBJS} |
# __cleanuse is an internal target in bsd.clean.mk; the way we |
rm -f lib${LIB}_pic.a lib${LIB}.so.* lib${LIB}.so ${_LIB.debug} ${SOBJS} |
# use it here mimics the way it's used by the clean target in |
rm -f ${STOBJS:=.tmp} ${POBJS:=.tmp} ${SOBJS:=.tmp} ${GOBJS:=.tmp} |
# bsd.clean.mk. |
rm -f llib-l${LIB}.ln ${LOBJS} |
# |
|
clean: libclean1 libclean2 libclean3 libclean4 libclean5 |
|
libclean1: .PHONY .MADE __cleanuse LIBCLEANFILES1 |
|
libclean2: .PHONY .MADE __cleanuse LIBCLEANFILES2 |
|
libclean3: .PHONY .MADE __cleanuse LIBCLEANFILES3 |
|
libclean4: .PHONY .MADE __cleanuse LIBCLEANFILES4 |
|
libclean5: .PHONY .MADE __cleanuse LIBCLEANFILES5 |
|
CLEANFILES+= a.out [Ee]rrs mklog core *.core |
|
LIBCLEANFILES1+= lib${LIB}.a ${STOBJS} ${STOBJS:=.tmp} |
|
LIBCLEANFILES2+= lib${LIB}_p.a ${POBJS} ${POBJS:=.tmp} |
|
LIBCLEANFILES3+= lib${LIB}_g.a ${GOBJS} ${GOBJS:=.tmp} |
|
LIBCLEANFILES4+= lib${LIB}_pic.a lib${LIB}.so.* lib${LIB}.so ${_LIB.debug} |
|
LIBCLEANFILES4+= ${SOBJS} ${SOBJS:=.tmp} |
|
LIBCLEANFILES5+= llib-l${LIB}.ln ${LOBJS} |
|
|
.if !target(libinstall) # { |
.if !target(libinstall) # { |
# Make sure it gets defined, in case MKPIC==no && MKLINKLIB==no |
# Make sure it gets defined, in case MKPIC==no && MKLINKLIB==no |
Line 792 LINKSMODE?= ${LIBMODE} |
|
Line 817 LINKSMODE?= ${LIBMODE} |
|
.include <bsd.inc.mk> |
.include <bsd.inc.mk> |
.include <bsd.links.mk> |
.include <bsd.links.mk> |
.include <bsd.dep.mk> |
.include <bsd.dep.mk> |
|
.include <bsd.clang-analyze.mk> |
|
.include <bsd.clean.mk> |
|
|
${TARGETS}: # ensure existence |
${TARGETS}: # ensure existence |