[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