#! /bin/sh PROJECT=fips PROJECT_BLURB="a program for monitoring performance of OpenGL applications" # Test whether this shell is capable of parameter substring processing. ( option='a/b'; : ${option#*/} ) 2>/dev/null || { echo " The shell interpreting '$0' is lacking some required features. To work around this problem you may try to execute: ksh $0 $* or bash $0 $* " exit 1 } # Store original IFS value so it can be changed (and restored) in many places. readonly DEFAULT_IFS="$IFS" srcdir=$(dirname "$0") # For a non-srcdir configure invocation (such as ../configure), create # the directory structure and copy Makefiles. if [ "$srcdir" != "." ]; then for dir in . $(grep "^subdirs *=" "$srcdir"/Makefile | sed -e "s/subdirs *= *//"); do mkdir -p "$dir" cp "$srcdir"/"$dir"/Makefile.local "$dir" cp "$srcdir"/"$dir"/Makefile "$dir" done fi # Set several defaults (optionally specified by the user in # environment variables) CC=${CC:-gcc} CFLAGS=${CFLAGS:--O2} LDFLAGS=${LDFLAGS:-} # Set the defaults for values the user can specify with command-line # options. PREFIX=/usr/local usage () { cat <-- Currently ignored --host=-- Currently ignored --infodir=DIR Currently ignored --datadir=DIR Currently ignored --localstatedir=DIR Currently ignored --libexecdir=DIR Currently ignored --disable-maintainer-mode Currently ignored --disable-dependency-tracking Currently ignored 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 usage exit 0 elif [ "${option%%=*}" = '--prefix' ] ; then PREFIX="${option#*=}" elif [ "${option%%=*}" = '--bindir' ] ; then BINDIR="${option#*=}" elif [ "${option%%=*}" = '--libdir' ] ; then LIBDIR="${option#*=}" elif [ "${option%%=*}" = '--mandir' ] ; then MANDIR="${option#*=}" elif [ "${option%%=*}" = '--sysconfdir' ] ; then SYSCONFDIR="${option#*=}" elif [ "${option%%=*}" = '--build' ] ; then true elif [ "${option%%=*}" = '--host' ] ; then true elif [ "${option%%=*}" = '--infodir' ] ; then true elif [ "${option%%=*}" = '--datadir' ] ; then true elif [ "${option%%=*}" = '--localstatedir' ] ; then true elif [ "${option%%=*}" = '--libexecdir' ] ; then true elif [ "${option}" = '--disable-maintainer-mode' ] ; then true elif [ "${option}" = '--disable-dependency-tracking' ] ; then true else echo "Unrecognized option: ${option}" echo "See:" echo " $0 --help" echo "" exit 1 fi done cat < /dev/null 2>&1; then 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 printf "No.\n" cat <\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 "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 < Makefile.config < config.h <