summaryrefslogtreecommitdiff
path: root/check/check-relocatable
blob: 40c2c884befacd94edf2cb6005e3a744c17e8eec (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
50
51
52
53
#! /bin/sh

set -e
. ${srcdir}/common

# Convert absolute directories to Windows format if necessary.
if [ "$native_win32" = yes ]; then
    # Assume we have cmd to do the conversion, except we have to escape
    # the command switch on MSYS.
    [ "$OSTYPE" = msys ] && opt="\\/C" || opt="/C"
    abs_top_srcdir=$($WINE cmd $opt echo "$abs_top_srcdir" | tr -d '\r')
    abs_srcdir=$($WINE cmd $opt echo "$abs_srcdir" | tr -d '\r')
fi

# See if the pcfiledir variable is defined. First, with the path
# built from the relative PKG_CONFIG_LIBDIR. Second, with the path
# built from the full path to the pc file.
RESULT=$srcdir
run_test --variable=pcfiledir pcfiledir
RESULT=$abs_srcdir
run_test --variable=pcfiledir "$abs_srcdir/pcfiledir.pc"

# Test if pcfiledir metadata variable is substituted correctly
RESULT="-I${srcdir}/include -L${srcdir}/lib -lfoo"
run_test --cflags --libs pcfiledir

# Test prefix redefinition for .pc files in pkgconfig directory. Try .pc
# files with both unexpanded and expanded variables. Use the absolute
# directory for the search path so that pkg-config can strip enough
# components of the file directory to be useful.
PKG_CONFIG_LIBDIR="${abs_srcdir}/pkgconfig"
for pkg in prefixdef prefixdef-expanded; do
    # Typical redefinition
    RESULT="-I${abs_top_srcdir}/include -L${abs_top_srcdir}/lib -lfoo"
    run_test --define-prefix --cflags --libs $pkg

    RESULT="-I/reloc/include -L/reloc/lib -lfoo"
    run_test --dont-define-prefix --cflags --libs $pkg

    # Non-standard redefinition
    RESULT="-I/reloc/include -L${abs_top_srcdir} -lfoo"
    run_test --define-prefix --prefix-variable=libdir --cflags --libs $pkg

    RESULT="-I/reloc/include -L/reloc/lib -lfoo"
    run_test --dont-define-prefix --cflags --libs $pkg
done

# Test prefix redefinition for .pc files with an empty prefix. In this
# case, there should be no prefix adjustment to the other variables. The
# result should be the same regardless of prefix redefinition.
RESULT="-I/some/path/include -L/some/path/lib -lfoo"
run_test --define-prefix --cflags --libs empty-prefix
run_test --dont-define-prefix --cflags --libs empty-prefix