summaryrefslogtreecommitdiffstats
path: root/share/mk/bsd.lib.mk
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1997-08-30 23:23:18 +0000
committerpeter <peter@FreeBSD.org>1997-08-30 23:23:18 +0000
commitf8d0d61b62394051605cdb56f4f5e5fc76842fe8 (patch)
tree14b6908e8ec592568611d92dc1b94759bd1e9bfa /share/mk/bsd.lib.mk
parent699c94cfae8cdb7c2e52e1258fe30ec4449c9d32 (diff)
downloadFreeBSD-src-f8d0d61b62394051605cdb56f4f5e5fc76842fe8.zip
FreeBSD-src-f8d0d61b62394051605cdb56f4f5e5fc76842fe8.tar.gz
A first cut at some rules for building elf shared libs. Of particular
note, using "-Wl,-f" to generate a library objects list doesn't work anymore since the hack to ld hasn't been incorporated into binutils-2.8. (and the -f switch is used for something else already) This is disabled by default, don't panic! :-)
Diffstat (limited to 'share/mk/bsd.lib.mk')
-rw-r--r--share/mk/bsd.lib.mk39
1 files changed, 38 insertions, 1 deletions
diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk
index 648de6a..0d3cbbc 100644
--- a/share/mk/bsd.lib.mk
+++ b/share/mk/bsd.lib.mk
@@ -1,5 +1,5 @@
# from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91
-# $Id: bsd.lib.mk,v 1.59 1997/06/21 15:40:32 jkh Exp $
+# $Id: bsd.lib.mk,v 1.60 1997/08/05 03:49:48 asami Exp $
#
.if exists(${.CURDIR}/../Makefile.inc)
@@ -8,8 +8,10 @@
.if exists(${.CURDIR}/shlib_version)
SHLIB_MAJOR != . ${.CURDIR}/shlib_version ; echo $$major
+.if ${BINFORMAT} == aout
SHLIB_MINOR != . ${.CURDIR}/shlib_version ; echo $$minor
.endif
+.endif
.if defined(DESTDIR)
CFLAGS+= -I${DESTDIR}/usr/include
@@ -113,9 +115,15 @@ _LIBS=lib${LIB}.a
.endif
.if !defined(NOPIC)
+.if ${BINFORMAT} == aout
.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR)
_LIBS+=lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
.endif
+.else
+.if defined(SHLIB_MAJOR)
+_LIBS+=lib${LIB}.so.${SHLIB_MAJOR}
+.endif
+.endif
.if defined(INSTALL_PIC_ARCHIVE)
_LIBS+=lib${LIB}_pic.a
.endif
@@ -150,12 +158,23 @@ LDDESTDIRENV?= LIBRARY_PATH=${DESTDIR}${SHLIBDIR}:${DESTDIR}/usr/lib
.if !defined(NOPIC)
SOBJS+= ${OBJS:.o=.so}
+
+.if ${BINFORMAT} == aout
lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: ${SOBJS}
@${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\)
@rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
@${LDDESTDIRENV} ${CC} -shared -Wl,-x -Wl,-assert -Wl,pure-text \
-o lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
`lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD}
+.else
+lib${LIB}.so.${SHLIB_MAJOR}: ${SOBJS}
+ @${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}\)
+ @rm -f lib${LIB}.so.${SHLIB_MAJOR}
+ @${LDDESTDIRENV} ${CC} -shared -Wl,-x \
+ -o lib${LIB}.so.${SHLIB_MAJOR} \
+ -Wl,-soname,lib${LIB}.so.${SHLIB_MAJOR} \
+ `lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD}
+.endif
lib${LIB}_pic.a:: ${SOBJS}
@${ECHO} building special pic ${LIB} library
@@ -188,9 +207,16 @@ _EXTRADEPEND::
.endif
.if !defined(NOEXTRADEPEND)
_EXTRADEPEND::
+.if ${BINFORMAT} == aout
echo lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: \
`${LDDESTDIRENV} ${CC} -shared -Wl,-f ${LDDESTDIR} ${LDADD}` \
>> ${DEPENDFILE}
+.else
+.if defined(DPADD) && ${DPADD} != ""
+ echo lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: \
+ ${DPADD} >> ${DEPENDFILE}
+.endif
+.endif
.endif
.if !target(install)
@@ -212,12 +238,23 @@ realinstall: beforeinstall
.endif
.endif
.if !defined(NOPIC)
+.if ${BINFORMAT} == aout
.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR)
${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
${INSTALLFLAGS} ${SHLINSTALLFLAGS} \
lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
${DESTDIR}${SHLIBDIR}
.endif
+.else
+.if defined(SHLIB_MAJOR)
+ ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
+ ${INSTALLFLAGS} ${SHLINSTALLFLAGS} \
+ lib${LIB}.so.${SHLIB_MAJOR} \
+ ${DESTDIR}${SHLIBDIR}
+ ln ${LN_FLAGS} -sf lib${LIB}.so.${SHLIB_MAJOR} \
+ ${DESTDIR}${SHLIBDIR}/lib${LIB}.so
+.endif
+.endif
.if defined(INSTALL_PIC_ARCHIVE)
${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
${INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR}
OpenPOWER on IntegriCloud