version 1.332.2.1, 2013/03/26 01:54:23 |
version 1.337, 2013/07/19 11:43:18 |
Line 47 CFLAGS+= ${PIE_CFLAGS} |
|
Line 47 CFLAGS+= ${PIE_CFLAGS} |
|
AFLAGS+= ${PIE_AFLAGS} |
AFLAGS+= ${PIE_AFLAGS} |
.endif |
.endif |
|
|
.if (defined(MKDEBUG) && (${MKDEBUG} != "no")) || \ |
|
(defined(CFLAGS) && !empty(CFLAGS:M*-g*)) |
|
# We only add -g to the shared library objects |
|
# because we don't currently split .a archives. |
|
CSHLIBFLAGS+= -g |
|
.endif |
|
|
|
##### Libraries that this may depend upon. |
##### Libraries that this may depend upon. |
.if defined(LIBDPLIBS) && ${MKPIC} != "no" # { |
.if defined(LIBDPLIBS) && ${MKPIC} != "no" # { |
.for _lib _dir in ${LIBDPLIBS} |
.for _lib _dir in ${LIBDPLIBS} |
Line 200 MKSHLIBOBJS= yes |
|
Line 193 MKSHLIBOBJS= yes |
|
MKSHLIBOBJS= no |
MKSHLIBOBJS= no |
.endif |
.endif |
|
|
|
.if (defined(MKDEBUG) && (${MKDEBUG} != "no")) || \ |
|
(defined(CFLAGS) && !empty(CFLAGS:M*-g*)) |
|
# We only add -g to the shared library objects |
|
# because we don't currently split .a archives. |
|
CSHLIBFLAGS+= -g |
|
.if ${LIBISPRIVATE} == "yes" |
|
CFLAGS+= -g |
|
.endif |
|
.endif |
|
|
# Platform-independent linker flags for ELF shared libraries |
# Platform-independent linker flags for ELF shared libraries |
SHLIB_SOVERSION= ${SHLIB_MAJOR} |
SHLIB_SOVERSION= ${SHLIB_MAJOR} |
SHLIB_SHFLAGS= -Wl,-soname,${_LIB}.so.${SHLIB_SOVERSION} |
SHLIB_SHFLAGS= -Wl,-soname,${_LIB}.so.${SHLIB_SOVERSION} |
SHLIB_SHFLAGS+= -Wl,--warn-shared-textrel |
SHLIB_SHFLAGS+= -Wl,--warn-shared-textrel |
|
.if !defined(SHLIB_MKMAP) || ${SHLIB_MKMAP} != "no" |
|
SHLIB_SHFLAGS+= -Wl,-Map=${_LIB}.so.${SHLIB_SOVERSION}.map |
|
.endif |
|
CLEANFILES+= ${_LIB}.so.${SHLIB_SOVERSION}.map |
SHLIB_LDSTARTFILE?= ${_GCC_CRTI} ${_GCC_CRTBEGINS} |
SHLIB_LDSTARTFILE?= ${_GCC_CRTI} ${_GCC_CRTBEGINS} |
SHLIB_LDENDFILE?= ${_GCC_CRTENDS} ${_GCC_CRTN} |
SHLIB_LDENDFILE?= ${_GCC_CRTENDS} ${_GCC_CRTN} |
|
|
|
|
.endif |
.endif |
.endif |
.endif |
|
|
|
LIBSTRIPAOBJS= yes |
|
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
|
LIBSTRIPCOBJS= yes |
|
.endif |
|
.if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*) |
|
LIBSTRIPOBJCOBJS= yes |
|
.endif |
|
.if !defined(FFLAGS) || empty(FFLAGS:M*-g*) |
|
LIBSTRIPFOBJS= yes |
|
.endif |
|
.if !defined(CSHLIBFLAGS) || empty(CSHLIBFLAGS:M*-g*) |
|
LIBSTRIPSHLIBOBJS= yes |
|
.endif |
|
|
.c.o: |
.c.o: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
.if defined(LIBSTRIPCOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
|
|
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
.if defined(LIBSTRIPCOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
|
|
.c.pico: |
.c.pico: |
${_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(CSHLIBFLAGS) || empty(CSHLIBFLAGS:M*-g*) |
.if defined(LIBSTRIPSHLIBOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.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(LIBSTRIPCOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.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(LIBSTRIPCOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
|
|
.cc.pico .cpp.pico .cxx.pico .C.pico: |
.cc.pico .cpp.pico .cxx.pico .C.pico: |
${_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(CSHLIBFLAGS) || empty(CSHLIBFLAGS:M*-g*) |
.if defined(LIBSTRIPSHLIBOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
|
|
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
.if !defined(FOPTS) || empty(FOPTS:M*-g*) |
.if defined(LIBSTRIPFOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
|
|
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
.if !defined(FOPTS) || empty(FOPTS:M*-g*) |
.if defined(LIBSTRIPFOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
|
|
.f.pico: |
.f.pico: |
${_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(LIBSTRIPFOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
|
|
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
.if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*) |
.if defined(LIBSTRIPOBJCOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
|
|
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
.if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*) |
.if defined(LIBSTRIPOBJCOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.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(LIBSTRIPOBJCOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.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(LIBSTRIPOBJCOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
.endif |
.endif |
|
|
|
|
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
|
.if defined(LIBSTRIPAOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
|
.endif |
|
|
.S.o: |
.S.o: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
|
|
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
|
.if defined(LIBSTRIPAOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
|
.endif |
|
|
.s.po: |
.s.po: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
|
|
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
|
.if defined(LIBSTRIPAOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
|
.endif |
|
|
.S.po: |
.S.po: |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
|
|
.if defined(CTFCONVERT) |
.if defined(CTFCONVERT) |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
.endif |
.endif |
|
.if defined(LIBSTRIPAOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
|
.endif |
|
|
.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} |
|
.if defined(LIBSTRIPAOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
|
.endif |
|
|
.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} |
|
.if defined(LIBSTRIPAOBJS) |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
|
.endif |
|
|
# Declare a few variables to make our life easier later. |
# Declare a few variables to make our life easier later. |
_LIB:=${_LIB_PREFIX}${LIB} |
_LIB:=${_LIB_PREFIX}${LIB} |
Line 414 _DEST.LIB:=${DESTDIR}${LIBDIR} |
|
Line 447 _DEST.LIB:=${DESTDIR}${LIBDIR} |
|
_DEST.OBJ:=${DESTDIR}${_LIBSODIR} |
_DEST.OBJ:=${DESTDIR}${_LIBSODIR} |
_DEST.LINT:=${DESTDIR}${LINTLIBDIR} |
_DEST.LINT:=${DESTDIR}${LINTLIBDIR} |
_DEST.DEBUG:=${DESTDIR}${DEBUGDIR}${LIBDIR} |
_DEST.DEBUG:=${DESTDIR}${DEBUGDIR}${LIBDIR} |
|
_DEST.ODEBUG:=${DESTDIR}${DEBUGDIR}${_LIBSODIR} |
|
|
.if defined(LIB) # { |
.if defined(LIB) # { |
.if (${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ |
.if (${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ |
Line 441 OBJS+= ${_LIB}_combine.o |
|
Line 475 OBJS+= ${_LIB}_combine.o |
|
${_LIB}_combine.o: ${COMBINESRCS} |
${_LIB}_combine.o: ${COMBINESRCS} |
${_MKTARGET_COMPILE} |
${_MKTARGET_COMPILE} |
${COMPILE.c} -MD --combine ${.ALLSRC} -o ${.TARGET} |
${COMPILE.c} -MD --combine ${.ALLSRC} -o ${.TARGET} |
.if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
.if defined(LIBSTRIPOBJS) |
${OBJCOPY} -x ${.TARGET} |
${OBJCOPY} -x ${.TARGET} |
.endif |
.endif |
|
|
Line 455 CLEANFILES+= ${_LIB}_combine.d |
|
Line 489 CLEANFILES+= ${_LIB}_combine.d |
|
OBJS+=${SRCS:N*.h:N*.sh:R:S/$/.o/g} |
OBJS+=${SRCS:N*.h:N*.sh:R:S/$/.o/g} |
.endif # } |
.endif # } |
|
|
# Symbol versioning |
|
MK_SYMVER?=no |
|
.if ${MK_SYMVER} == "yes" |
|
VERSION_MAP?= ${.CURDIR}/Version.map |
|
. if exists(${VERSION_MAP}) |
|
LDFLAGS+= -Wl,--version-script=${VERSION_MAP} |
|
. endif |
|
.endif |
|
|
|
STOBJS+=${OBJS} |
STOBJS+=${OBJS} |
|
|
LOBJS+=${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} |
LOBJS+=${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} |
Line 818 ${_DEST.DEBUG}/${_LIB.so.debug}: ${_LIB. |
|
Line 843 ${_DEST.DEBUG}/${_LIB.so.debug}: ${_LIB. |
|
${_MKTARGET_INSTALL} |
${_MKTARGET_INSTALL} |
${INSTALL_FILE} -o ${DEBUGOWN} -g ${DEBUGGRP} -m ${DEBUGMODE} \ |
${INSTALL_FILE} -o ${DEBUGOWN} -g ${DEBUGGRP} -m ${DEBUGMODE} \ |
${.ALLSRC} ${.TARGET} |
${.ALLSRC} ${.TARGET} |
|
.if ${_LIBSODIR} != ${LIBDIR} |
|
${INSTALL_SYMLINK} -l r ${_DEST.DEBUG}/${_LIB.so.debug} \ |
|
${_DEST.ODEBUG}/${_LIB.so.debug} |
|
.endif |
.endif |
.endif |
|
|
.if ${MKLINT} != "no" && !empty(LOBJS) |
.if ${MKLINT} != "no" && !empty(LOBJS) |