• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/sh
2
3# Keep this script in sync with python-config.in
4
5exit_with_usage ()
6{
7    local usage
8    usage="Usage: $0 --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir|--embed"
9    if [ "$1" -eq 0 ]; then
10        echo "$usage"
11    else
12        echo "$usage" >&2
13    fi
14    exit $1
15}
16
17if [ "$1" = "" ] ; then
18    exit_with_usage 1
19fi
20
21# Returns the actual prefix where this script was installed to.
22installed_prefix ()
23{
24    RESULT=$(dirname $(cd $(dirname "$1") && pwd -P))
25    if which readlink >/dev/null 2>&1 ; then
26        if readlink -f "$RESULT" >/dev/null 2>&1; then
27          RESULT=$(readlink -f "$RESULT")
28        fi
29    fi
30    echo $RESULT
31}
32
33prefix_real=$(installed_prefix "$0")
34
35# Use sed to fix paths from their built-to locations to their installed-to
36# locations. Keep prefix & exec_prefix using their original values in case
37# they are referenced in other configure variables, to prevent double
38# substitution, issue #22140.
39prefix="@prefix@"
40exec_prefix="@exec_prefix@"
41exec_prefix_real=${prefix_real}
42includedir=$(echo "@includedir@" | sed "s#$prefix#$prefix_real#")
43libdir=$(echo "@libdir@" | sed "s#$prefix#$prefix_real#")
44CFLAGS=$(echo "@CFLAGS@" | sed "s#$prefix#$prefix_real#")
45VERSION="@VERSION@"
46LIBM="@LIBM@"
47LIBC="@LIBC@"
48SYSLIBS="$LIBM $LIBC"
49ABIFLAGS="@ABIFLAGS@"
50LIBS="@LIBPYTHON@ @LIBS@ $SYSLIBS"
51LIBS_EMBED="-lpython${VERSION}${ABIFLAGS} @LIBS@ $SYSLIBS"
52BASECFLAGS="@BASECFLAGS@"
53LDLIBRARY="@LDLIBRARY@"
54OPT="@OPT@"
55PY_ENABLE_SHARED="@PY_ENABLE_SHARED@"
56LDVERSION="@LDVERSION@"
57LIBDEST=${prefix_real}/lib/python${VERSION}
58LIBPL=$(echo "@LIBPL@" | sed "s#$prefix#$prefix_real#")
59SO="@EXT_SUFFIX@"
60PYTHONFRAMEWORK="@PYTHONFRAMEWORK@"
61INCDIR="-I$includedir/python${VERSION}${ABIFLAGS}"
62PLATINCDIR="-I$includedir/python${VERSION}${ABIFLAGS}"
63PY_EMBED=0
64
65# Scan for --help or unknown argument.
66for ARG in $*
67do
68    case $ARG in
69        --help)
70            exit_with_usage 0
71        ;;
72        --embed)
73            PY_EMBED=1
74        ;;
75        --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--abiflags|--configdir)
76        ;;
77        *)
78            exit_with_usage 1
79        ;;
80    esac
81done
82
83if [ $PY_EMBED = 1 ] ; then
84    LIBS="$LIBS_EMBED"
85fi
86
87for ARG in "$@"
88do
89    case "$ARG" in
90        --prefix)
91            echo "$prefix_real"
92        ;;
93        --exec-prefix)
94            echo "$exec_prefix_real"
95        ;;
96        --includes)
97            echo "$INCDIR $PLATINCDIR"
98        ;;
99        --cflags)
100            echo "$INCDIR $PLATINCDIR $BASECFLAGS $CFLAGS $OPT"
101        ;;
102        --libs)
103            echo "$LIBS"
104        ;;
105        --ldflags)
106            LIBPLUSED=
107            if [ "$PY_ENABLE_SHARED" = "0" ] ; then
108                LIBPLUSED="-L$LIBPL"
109            fi
110            echo "$LIBPLUSED -L$libdir $LIBS"
111        ;;
112        --extension-suffix)
113            echo "$SO"
114        ;;
115        --abiflags)
116            echo "$ABIFLAGS"
117        ;;
118        --configdir)
119            echo "$LIBPL"
120        ;;
121esac
122done
123