summaryrefslogtreecommitdiff
path: root/mk/buildlink2/fake-la
blob: 9959047e05038a1c8513784ab2157bb106759c1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!@BUILDLINK_SHELL@
#
# $NetBSD: fake-la,v 1.3 2002/12/22 19:02:44 jlam Exp $

BASENAME="@BASENAME@"
CC="@CC@"
CP="@CP@"
DIRNAME="@DIRNAME@"
ECHO="@ECHO@"
LIBTOOL="@LIBTOOL@ --quiet"
MKDIR="@MKDIR@"
MV="@MV@"
RM="@RM@"
SED="@SED@"
TEST="@TEST@"

BUILDLINK_DIR="@BUILDLINK_DIR@"

reallib="$1"
realdir=`${DIRNAME} $reallib`
libname=`${BASENAME} $reallib`
tmpdir=${BUILDLINK_DIR}/.tmp

if ! ${TEST} -f $tmpdir/inst/$libbase.la; then
	case $libname in
	*.so.[0-9]*)
		libbase=`${ECHO} $libname | ${SED} -e "s/\.so\.[0-9.]*$//"`
		version=`${ECHO} $libname | ${SED} -e "s/.*\.so\.//;s/\./:/g"`
		;;

	*[0-9].dylib)
		libbase=`${ECHO} $libname | ${SED} -e "s/\.[0-9.]*\.dylib$//"`
		version=`${ECHO} $libname | ${SED} -e "s/^[^.]*\.\([0-9]*\.[0-9]*\)\.dylib/\1/;s/\./:/g"`
		;;
	esac
	${MKDIR} $tmpdir/inst
	cd $tmpdir
	${ECHO} "static int i;" > nonempty.c	# create a nonempty input file
	${LIBTOOL} --mode=compile ${CC} -c nonempty.c
	${LIBTOOL} ${CC} -o $libbase.la nonempty.lo -rpath $tmpdir/inst -version-info $version
	${LIBTOOL} --mode=install ${CP} $libbase.la $tmpdir/inst >/dev/null

	# Reset the ld.so cache as "libtool --mode=install" may have executed
	# ldconfig to add "$tmpdir/inst" to the cache.
	#
	@RESET_LD_SO_CACHE@ >/dev/null 2>&1

fi
${SED} -e "s,$tmpdir/inst,$realdir,g" $tmpdir/inst/$libbase.la