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