Codebase list pseudo / e8f0d7ad-739c-4200-99a8-fb16c7ea613f/main configure
e8f0d7ad-739c-4200-99a8-fb16c7ea613f/main

Tree @e8f0d7ad-739c-4200-99a8-fb16c7ea613f/main (Download .tar.gz)

configure @e8f0d7ad-739c-4200-99a8-fb16c7ea613f/mainraw · history · blame

#!/bin/sh
#
# configure, simulation of autoconf script, much simplified
#
# Copyright (c) 2008-2014 Wind River Systems, Inc.
#
# SPDX-License-Identifier: LGPL-2.1-only
#
# not a real configure script...
opt_prefix=
opt_libdir=
opt_suffix=
opt_arch=x86
opt_bits=
opt_sqlite=/usr
opt_rpath=
opt_epoll=
opt_memory=
opt_async=
opt_xattr=
opt_xattrdb=false
opt_profile=false
opt_passwd_fallback='""'

compile_x86_32=-m32
compile_x86_64=-m64

usage()
{
    [ -n "$*" ] && echo >&2 "$*"
    echo >&2 "usage:"
    echo >&2 "  configure --prefix=..."
    echo >&2 "           [--libdir=...]"
    echo >&2 "           [--suffix=...]"
    echo >&2 "           [--enable-memory-db]"
    echo >&2 "           [--enable-epoll]"
    echo >&2 "           [--enable-xattr]"
    echo >&2 "           [--enable-xattrdb]"
    echo >&2 "           [--enable-profiling]"
    echo >&2 "           [--enable-force-async]"
    echo >&2 "           [--with-sqlite=...]"
    echo >&2 "           [--with-sqlite-lib=...]"
    echo >&2 "           [--enable-static-sqlite]"
    echo >&2 "           [--with-static-sqlite=...]"
    echo >&2 "           [--with-rpath=...|--without-rpath]"
    echo >&2 "           [--with-passwd-fallback=...|--without-passwd-fallback]"
    echo >&2 "           [--cflags='']"
    echo >&2 "           [--bits=32|64]"
    exit 1
}

sqlite_ldarg=-lsqlite3

maybe_rpath=
use_maybe_rpath=true

for arg
do
    case $arg in
    --disable-*)
        arg="--enable-${arg%--disable-}=no"
	;;
    esac
    case $arg in
    --)    shift; break ;;
    --prefix=*)
        opt_prefix=${arg#--prefix=}
	if [ -d "$opt_prefix" ]; then
		maybe_prefix=$(cd "$opt_prefix"; pwd)
	else
		maybe_prefix=$opt_prefix
	fi
	if [ "$maybe_prefix" = "$(pwd)" ]; then
		echo >&2 "ERROR: Prefix is current directory. That doesn't work."
		exit 1
	fi
        ;;
    --libdir=*)
        opt_libdir=${arg#--libdir=}
        ;;
    --with-static-sqlite=*)
        opt_sqlite_ldarg=${arg#--with-static-sqlite=}
        sqlite_ldarg=$opt_sqlite_ldarg
        use_maybe_rpath=false
        ;;
    --without-passwd-fallback)
	opt_passwd_fallback='NULL'
        ;;
    --with-passwd-fallback=*)
	opt_passwd_fallback="${arg#--with-passwd-fallback=}"
	# Trim a trailing /, remove quotes. So / => "".
        opt_passwd_fallback="\"${opt_passwd_fallback%/}\""
        ;;
    --enable-static-sqlite)
        sqlite_ldarg='$(SQLITE)/$(SQLITE_LIB)/libsqlite3.a'
        use_maybe_rpath=false
        ;;
    --enable-force-async=no | --disable-force-async)
        opt_async=false
        ;;
    --enable-force-async=yes | --enable-force-async)
        opt_async=true
	;;
    --enable-profiling=no)
        opt_profiling=false
        ;;
    --enable-profiling=yes | --enable-profiling)
        opt_profiling=true
	;;
    --enable-epoll=no)
        opt_epoll=false
        ;;
    --enable-epoll=yes | --enable-epoll)
        opt_epoll=true
	;;
    --enable-xattr=no)
        opt_xattr=false
        ;;
    --enable-xattr=yes | --enable-xattr)
        opt_xattr=true
	;;
    --enable-xattrdb=no)
        opt_xattrdb=false
        ;;
    --enable-xattrdb=yes | --enable-xattrdb)
        opt_xattrdb=true
	;;
    --enable-memory-db=no)
        opt_memory=false
        ;;
    --enable-memory-db=yes | --enable-memory-db)
        opt_memory=true
	;;
    --with-sqlite=*)
        opt_sqlite=${arg#--with-sqlite=}
        # assign new value if unset
        maybe_rpath='-Wl,-R$(SQLITE)/$(SQLITE_LIB)'
        ;;
    --with-sqlite-lib=*)
        opt_sqlite_lib=${arg#--with-sqlite-lib=}
        # assign new value if unset
        maybe_rpath='-Wl,-R$(SQLITE)/$(SQLITE_LIB)'
        ;;
    --without-rpath)
        opt_rpath=''
        use_maybe_rpath=false
        ;;
    --with-rpath=*)
        rpath=${arg#--with-rpath=}
        opt_rpath=${rpath:+-Wl,-R$rpath}
        use_maybe_rpath=false
        ;;
    --suffix=*)
        opt_suffix=${arg#--suffix=}
        ;;
    --arch=*)
        echo >&2 "WARNING: The --arch option is now deprecated. Use --cflags."
        opt_arch=${arg#--arch=}
        ;;
    --cflags=*)
        opt_cflags=${arg#--cflags=}
        ;;
    --bits=*)
        opt_bits=${arg#--bits=}
        ;;
    *)
        echo >&2 "warning: Unrecognized option '$arg'"
        ;;
    esac
done

case $opt_arch in
'' | x86 | arm )
    ;;
*)    echo >&2 "Untested arch $opt_arch."
    ;;
esac

if [ -z "$opt_bits" ]; then
    printf >&2 "Bit width unspecified;"
    case $(file -L /bin/sh 2>/dev/null) in
    *64-bit*)	opt_bits=64;;
    *32-bit*)	opt_bits=32;;
    esac
    if [ -n "$opt_bits" ]; then
        echo >&2 " guessing bit width is $opt_bits, based on /bin/sh."
    else
        echo >&2 " can't tell, assuming 32."
	opt_bits=32
    fi
fi

case $opt_bits in
64)    opt_mark64=64;;
32)    opt_mark64=;;
*)     echo >&2 "Unknown bit size $opt_bits (only 32 and 64 known)."
       ;;
esac

if [ "${opt_cflags-UNSET}" = "UNSET" ]; then
    # Some targets want something like -m64.
    eval arch_flags=\$compile_${opt_arch}_${opt_bits}
    echo >&2 "WARNING: Guessing architecture CFLAGS '${arch_flags-<unset>}'."
    echo >&2 "If you need specific flags, use --cflags."
else
    arch_flags=$opt_cflags
fi
arch_flags=$(echo "$arch_flags" | sed -e 's/,/\\,/g')

if $use_maybe_rpath && [ -n "$maybe_rpath" ]; then
    echo >&2 "Adding default RPATH for sqlite."
    opt_rpath="${opt_rpath+${opt_rpath} }${maybe_rpath}"
fi

if [ -z "$opt_prefix" ]; then
    usage "Error: You must specify a prefix path for installation (--prefix=)."
fi

if [ -z "$opt_libdir" ]; then
    opt_libdir=$opt_prefix/lib$opt_mark64
fi

# We need to find the libdir relative to the prefix, this is required
# by the code in pseudo-utils.c that handles relocation.
opt_lib=${opt_libdir#$opt_prefix/}
if [ "$opt_lib" = "$opt_libdir" ]; then
    echo >&2 "libdir must be relative to prefix."
    exit 1
fi

if [ -z "$opt_sqlite_lib" ]; then
    opt_sqlite_lib=$opt_lib
fi

if [ ! -f "${opt_sqlite}/include/sqlite3.h" ]; then
    echo >&2 "SQLite3 headers not found in at ${opt_sqlite}/include/sqlite3.h. Please check that SQLite3 and SQLite3 headers are installed."
    exit 1
fi

read t1 t2 SQLITE3_VERSION << EOF
  `grep "#define SQLITE_VERSION_NUMBER " ${opt_sqlite}/include/sqlite3.h`
EOF

echo "SQLite header for version ${SQLITE3_VERSION} found in ${opt_sqlite}."

if [ "${SQLITE3_VERSION}" -lt "03006000" ]; then
    echo >&2 "Pseudo requires SQLite version 3, 3.6.x or later."
    exit 1
fi

if [ -z "$opt_async" ]; then
    opt_async=false
fi

if [ -z "$opt_epoll" ]; then
    opt_epoll=false
fi

if $opt_async; then
    FORCE_ASYNC="-DPSEUDO_FORCE_ASYNC"
else
    FORCE_ASYNC=""
fi

if getfattr --help >/dev/null 2>&1; then
    xattr_runs=true
else
    xattr_runs=false
fi


if [ -z "$opt_xattr" ]; then
    if $opt_xattrdb; then
        opt_xattr=true
	echo "xattr DB support implies extended attribute support"
    else
        if $xattr_runs; then
            opt_xattr=true
	    echo "getfattr runs, enabling extended attribute support"
        else
            opt_xattr=false
	    echo "getfattr fails, disabling extended attribute support"
        fi
    fi
fi

if $opt_epoll; then
    EPOLL="-DPSEUDO_EPOLL"
else
    EPOLL=""
fi

if $opt_xattr || $opt_xattrdb; then
    if ! $xattr_runs; then
        echo >&2 "WARNING: getfattr doesn't work, but xattr-related features requestd."
    fi
fi

if [ -z "$opt_memory" ]; then
    if [ "${SQLITE3_VERSION}" -lt "03007000" ]; then
        echo "Disabling in-memory database by default (sqlite too old)."
	opt_memory=false
    else
        echo "Enabling in-memory database by default."
	opt_memory=true
    fi
fi

if $opt_memory; then
    if [ "${SQLITE3_VERSION}" -lt "03007000" ]; then
	cat >&2 <<EOF
WARNING: sqlite prior to 3.7 has been known to perform exceedingly poorly
with the in-memory database option. You asked for it, you get it, but if
you get horrible performance, try turning it off.
EOF
    fi
    SQLITE_MEMORY="-DUSE_MEMORY_DB"
else
    SQLITE_MEMORY=""
fi

# Suppress the -L if sqlite is in the default path.
if [ "$opt_sqlite" = "/usr" ]; then
    default_sqlite="# "
fi

touch port_deps.mk
touch func_deps.mk

sed -e '
  s,@PREFIX@,'"$opt_prefix"',g
  s,@EPOLL@,'"$EPOLL"',g
  s,@XATTR@,'"$opt_xattr"',g
  s,@XATTRDB@,'"$opt_xattrdb"',g
  s,@PROFILING@,'"$opt_profiling"',g
  s,@LIBDIR@,'"$opt_libdir"',g
  s,@LIB@,'"$opt_lib"',g
  s,@SUFFIX@,'"$opt_suffix"',g
  s,@SQLITE@,'"$opt_sqlite"',g
  s,@ARCH_FLAGS@,'"$arch_flags"',g
  s,@DEFAULT_SQLITE@,'"$default_sqlite"',g
  s,@SQLITE_LDARG@,'"$sqlite_ldarg"',g
  s,@SQLITE_LIB@,'"$opt_sqlite_lib"',g
  s,@SQLITE_MEMORY@,'"$SQLITE_MEMORY"',g
  s,@FORCE_ASYNC@,'"$FORCE_ASYNC"',g
  s,@PASSWD_FALLBACK@,'$opt_passwd_fallback',g
  s!@RPATH@!'"$opt_rpath"'!g
  s,@MARK64@,'"$opt_mark64"',g
  s,@ARCH@,'"$opt_arch"',g
  s,@BITS@,'"$opt_bits"',g
' < Makefile.in > Makefile