X-Git-Url: https://git.cworth.org/git?p=fips;a=blobdiff_plain;f=configure;h=f0f1a2188eeed82d9a3468f1374b33771fbf0da7;hp=91797ce86eedce8895de98550ef3139793ec08f6;hb=HEAD;hpb=07d2b55d88742b0ca38507daae7101619f0b96d5 diff --git a/configure b/configure index 91797ce..f0f1a21 100755 --- a/configure +++ b/configure @@ -42,7 +42,6 @@ LDFLAGS=${LDFLAGS:-} # Set the defaults for values the user can specify with command-line # options. PREFIX=/usr/local -LIBDIR= usage () { @@ -82,8 +81,8 @@ specify an installation prefix other than $PREFIX using Fine tuning of some installation directories is available: + --bindir=DIR Install executables to DIR [PREFIX/bin] --libdir=DIR Install libraries to DIR [PREFIX/lib] - --includedir=DIR Install header files to DIR [PREFIX/include] --mandir=DIR Install man pages to DIR [PREFIX/share/man] --sysconfdir=DIR Read-only single-machine data [PREFIX/etc] @@ -102,6 +101,36 @@ configure-script calling conventions, but don't do anything yet: EOF } +# Given two absolute paths ("from" and "to"), compute a relative path +# from "from" to "to". For example: +# +# relative_path /foo/bar/baz /foo/qux -> ../../qux +relative_path () +{ + if [ $# -ne 2 ] ; then + echo "Internal error: relative_path requires exactly 2 arguments" + exit 1; + fi + + from="$1" + to="$2" + + # Handle trivial case up-front + if [ "$from" = "$to" ] ; then + echo "" + else + shared="$from" + relative="" + + while [ "${to#$shared}" = "$to" ] && [ "$shared" != "." ] ; do + shared="$(dirname $shared)" + relative="..${relative:+/${relative}}" + done + + echo "${relative:-.}${to#$shared}" + fi +} + # Parse command-line options for option; do if [ "${option}" = '--help' ] ; then @@ -109,10 +138,10 @@ for option; do exit 0 elif [ "${option%%=*}" = '--prefix' ] ; then PREFIX="${option#*=}" + elif [ "${option%%=*}" = '--bindir' ] ; then + BINDIR="${option#*=}" elif [ "${option%%=*}" = '--libdir' ] ; then LIBDIR="${option#*=}" - elif [ "${option%%=*}" = '--includedir' ] ; then - INCLUDEDIR="${option#*=}" elif [ "${option%%=*}" = '--mandir' ] ; then MANDIR="${option#*=}" elif [ "${option%%=*}" = '--sysconfdir' ] ; then @@ -142,17 +171,6 @@ for option; do fi done -# We set this value early, (rather than just while printing the -# Makefile.config file later like most values), because we need to -# actually investigate this value compared to the ldconfig_paths value -# below. -if [ -z "$LIBDIR" ] ; then - libdir_expanded="${PREFIX}/lib" -else - # very non-general variable expansion - libdir_expanded=`echo "$LIBDIR" | sed "s|\\${prefix}|${PREFIX}|g; s|\\$prefix/|${PREFIX}/|; s|//*|/|g"` -fi - cat < /dev/null 2>&1; then - have_pkg_config=1 + printf "Yes.\n" +else + printf "No.\n" + cat < minimal.c +if ${CC} -o minimal minimal.c > /dev/null 2>&1 +then + printf "Yes.\n" else - have_pkg_config=0 + printf "No.\n" + cat </dev/null | sed -n -e 's,^\(/.*\):\( (.*)\)\?$,\1,p') - # Separate ldconfig_paths only on newline (not on any potential - # embedded space characters in any filenames). Note, we use a - # literal newline in the source here rather than something like: - # - # IFS=$(printf '\n') - # - # because the shell's command substitution deletes any trailing newlines. - IFS=" -" - for path in $ldconfig_paths; do - if [ "$path" = "$libdir_expanded" ]; then - libdir_in_ldconfig=1 - fi - done - IFS=$DEFAULT_IFS - if [ "$libdir_in_ldconfig" = '0' ]; then - printf "No (will set RPATH)\n" - else - printf "Yes\n" +printf "Checking for libelf... " +printf "#include \nint main(void){return elf_version (EV_CURRENT);}\n" > elf-minimal.c +if ${CC} -o elf-minimal elf-minimal.c -lelf > /dev/null 2>&1 +then + printf "Yes.\n" + have_libelf=1 + libelf_cflags= + libelf_ldflags=-lelf +else + printf "No.\n" + have_libelf=0 + libelf_cflags= + libelf_ldflags= + errors=$((errors + 1)) +fi +rm -f elf-minimal elf-minimal.c + +printf "Checking for GL/gl.h... " +have_gl=0 +if pkg-config --exists gl; then + printf "Yes.\n" + have_gl=1 + gl_cflags=$(pkg-config --cflags gl) + gl_ldflags=$(pkg-config --libs gl) +else + printf"No.\n" + have_gl=0 + errors=$((errors + 1)) +fi + +printf "Checking for GL window-system-binding headers:\n" +have_gl_winsys=0 + +printf " Checking for GL/glx.h... " +have_glx=No +printf "#include \nint main(void){return 0;}\n" > glx-minimal.c +if ${CC} -o glx-minimal glx-minimal.c ${gl_cflags} > /dev/null 2>&1 +then + printf "Yes.\n" + have_gl_winsys=1 + have_glx=Yes +else + printf "No.\n" +fi +rm -f glx-minimal glx-minimal.c + +if [ $have_gl_winsys -eq 0 ]; then + errors=$((errors + 1)) +fi + +printf " Checking for X11... " +have_x11=No +if pkg-config --exists x11; then + printf "Yes.\n" + have_x11=Yes + x11_cflags=$(pkg-config --cflags x11) + x11_ldflags=$(pkg-config --libs x11) +else + printf "No.\n" +fi + +printf " Checking for EGL/egl.h... " +have_egl=No +if pkg-config --exists egl; then + printf "Yes.\n" + have_egl=Yes + egl_cflags=$(pkg-config --cflags egl) + egl_ldflags=$(pkg-config --libs egl) +else + printf "No.\n" +fi + +printf " Checking for GLESv2... " +have_glesv2=No +if pkg-config --exists glesv2; then + printf "Yes.\n" + have_glesv2=Yes + glesv2_cflags=$(pkg-config --cflags glesv2) + glesv2_ldflags=$(pkg-config --libs glesv2) +else + printf "No.\n" +fi + +printf "int main(void){return 0;}\n" > minimal.c + +WARN_CFLAGS="" +printf "Checking for available C compiler warning flags:\n" +for flag in -Wall -Wextra -Wmissing-declarations; do + if ${CC} $flag -o minimal minimal.c > /dev/null 2>&1 + then + WARN_CFLAGS="${WARN_CFLAGS}${WARN_CFLAGS:+ }${flag}" fi +done +printf "\t${WARN_CFLAGS}\n" + +rm -f minimal minimal.c + +printf "#include \nint main(void){return 0;}\n" > arch-minimal.c + +printf "Checking for machine-dependent compiler support:\n" + +printf " Compiler can create 32-bit binaries... " +have_m32=Yes +if ${CC} -m32 -o arch-minimal arch-minimal.c > /dev/null 2>&1 +then + printf "Yes.\n" else - printf "Unknown.\n" + printf "No.\n" + have_m32=No +fi + +printf " Compiler can create 64-bit binaries... " +have_m64=Yes +if ${CC} -m64 -o arch-minimal arch-minimal.c > /dev/null 2>&1 +then + printf "Yes.\n" +else + printf "No.\n" + have_m64=No +fi + +if [ "$have_m32" = "No" ] || [ "$have_m64" = "No" ]; then cat < minimal.c +cat < /dev/null 2>&1 - then - WARN_CFLAGS="${WARN_CFLAGS}${WARN_CFLAGS:+ }${flag}" - fi -done -printf "\n\t${WARN_CFLAGS}\n" +All required packages were found. -rm -f minimal minimal.c +The following OpenGL window-system bindings will be supported: -cat < config.h <