[Midnightbsd-cvs] src [11131] trunk/tools/make_libdeps.sh: update depends build
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Tue Jun 19 16:20:48 EDT 2018
Revision: 11131
http://svnweb.midnightbsd.org/src/?rev=11131
Author: laffer1
Date: 2018-06-19 16:20:29 -0400 (Tue, 19 Jun 2018)
Log Message:
-----------
update depends build
Modified Paths:
--------------
trunk/tools/make_libdeps.sh
Property Changed:
----------------
trunk/tools/make_libdeps.sh
Modified: trunk/tools/make_libdeps.sh
===================================================================
--- trunk/tools/make_libdeps.sh 2018-06-19 20:16:42 UTC (rev 11130)
+++ trunk/tools/make_libdeps.sh 2018-06-19 20:20:29 UTC (rev 11131)
@@ -24,13 +24,17 @@
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
-# $MidnightBSD: src/tools/make_libdeps.sh,v 1.5 2011/12/02 04:47:02 laffer1 Exp $
-# $FreeBSD: src/tools/make_libdeps.sh,v 1.9 2007/10/01 18:11:43 ru Exp $
+# $FreeBSD: stable/10/tools/make_libdeps.sh 326521 2017-12-04 09:54:03Z hselasky $
+# $MidnightBSD$
export PATH=/bin:/usr/bin
+set -e
+
+LC_ALL=C # make sort deterministic
FS=': ' # internal field separator
LIBDEPENDS=./_libdeps # intermediate output file
+LIBDIRS=./_libdirs # intermediate output file
USRSRC=${1:-/usr/src} # source root
LIBS="
lib
@@ -39,45 +43,74 @@
secure/lib
usr.bin/lex/lib
cddl/lib
- apache/lib
+ contrib/ofed
" # where to scan for libraries
-# This sed(1) filter is used to convert -lfoo to path/to/libfoo.
-#
-SED_FILTER="
-sed -E
- -e's; ;! ;g'
- -e's;$;!;'
- -e's;-lbsdxml!;lib/libexpat;g'
- -e's;-lpthread!;lib/libthr;g'
- -e's;-lm!;lib/msun;g'
- -e's;-l(ncurses|termcap)!;lib/ncurses/ncurses;g'
- -e's;-l(gcc)!;gnu/lib/lib\1;g'
- -e's;-lssp_nonshared!;gnu/lib/libssp/libssp_nonshared;g'
- -e's;-l(asn1|hdb|heimntlm|hx509|krb5|roken)!;kerberos5/lib/lib\1;g'
- -e's;-l(crypto|ssh|ssl)!;secure/lib/lib\1;g'
- -e's;-l([^!]+)!;lib/lib\1;g'
-"
+# convert -lfoo to foo
+convert()
+{
+ sed -e "s/\-l//g" -e "s/pthread/thr/g" -e "s/ncurses.*/ncurses/g"
+}
+
+# find library build directory given library name
+findlibdir()
+{
+ while read NAME && read DIR
+ do
+ if [ "$NAME" = "$1" ]; then
+ echo "$DIR"
+ exit
+ fi
+ done
+
+ # Should not happen
+ echo lib_not_found/lib$1
+}
+
+# find library build directories given one or more library names
+resolvelibdirs()
+{
+ while read LIBNAME
+ do
+ cat $LIBDIRS | tr ' ' '\n' | findlibdir "$LIBNAME"
+ done
+}
+
# Generate interdependencies between libraries.
#
genlibdepends()
{
(
+ # Reset file
+ echo -n > $LIBDIRS
+
+ # First pass - generate list of directories
cd ${USRSRC}
- find ${LIBS} -mindepth 1 -name Makefile |
+ find -s ${LIBS} -name Makefile |
xargs grep -l 'bsd\.lib\.mk' |
while read makefile; do
libdir=$(dirname ${makefile})
+ libname=$(
+ cd ${libdir}
+ make -m ${USRSRC}/share/mk WITH_OFED=YES -V LIB
+ )
+ if [ "${libname}" ]; then
+ echo "${libname} ${libdir}" >> $LIBDIRS
+ fi
+ done
+
+ # Second pass - generate dependencies
+ find -s ${LIBS} -name Makefile |
+ xargs grep -l 'bsd\.lib\.mk' |
+ while read makefile; do
+ libdir=$(dirname ${makefile})
deps=$(
cd ${libdir}
- make -m ${USRSRC}/share/mk -V LDADD
+ make -m ${USRSRC}/share/mk WITH_OFED=YES -V LDADD
)
if [ "${deps}" ]; then
- echo ${libdir}"${FS}"$(
- echo ${deps} |
- eval ${SED_FILTER}
- )
+ echo ${libdir}"${FS}"$(echo ${deps} | tr ' ' '\n' | convert | resolvelibdirs)
fi
done
)
Property changes on: trunk/tools/make_libdeps.sh
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
More information about the Midnightbsd-cvs
mailing list