| #!/bin/sh |
| # |
| # This file is part of msrtool. |
| # |
| # Copyright (c) 2008 Peter Stuge <peter@stuge.se> |
| # |
| # This program is free software; you can redistribute it and/or modify |
| # it under the terms of the GNU General Public License version 2 as |
| # published by the Free Software Foundation. |
| # |
| # This program is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License |
| # along with this program; if not, write to the Free Software |
| # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
| # |
| |
| # If this is left unset, try to set the version string from the highest |
| # revision number of the checked out files later. |
| VERSION="" |
| |
| REV="$(svnversion -c . 2>/dev/null)"; REV="${REV/*:}" |
| VERSION="${VERSION:-$REV}" |
| |
| function findprog() { |
| local WHAT FROMENV FILE |
| WHAT="${1}" |
| shift |
| FROMENV="${1}" |
| shift |
| echo -n "searching for ${WHAT} (${*})..." 1>&2 |
| test -n "${FROMENV}" && { |
| echo " using environment: ${FROMENV}" 1>&2 |
| echo "${FROMENV}" |
| exit 0 |
| } |
| for parm in $(seq 0 $#); do |
| test -z "${1}" && { |
| shift |
| continue |
| } |
| FILE="$(which "${1}" 2>/dev/null)" |
| test $? -eq 0 && { |
| echo "${1}" |
| break |
| } |
| shift |
| done |
| test -z "${1}" && { |
| echo " not found!" 1>&2 |
| echo 1>&2 |
| echo "This is a fatal error, configure is exiting!" 1>&2 |
| exit 1 |
| } |
| echo " using ${FILE} in PATH" 1>&2 |
| exit 0 |
| } |
| |
| function trycompile() { |
| local WHAT OUT |
| WHAT="${1}" |
| shift |
| echo -n "finding CFLAGS for ${WHAT}... " 1>&2 |
| OUT="${OUT}\n${CC} ${CFLAGS} -o .config.o -c .config.c" |
| OUT="${OUT}\n$(${CC} ${CFLAGS} -o .config.o -c .config.c 2>&1)" |
| test $? -eq 0 && { |
| echo " using: ${CFLAGS}" 1>&2 |
| echo "${CFLAGS}" |
| exit 0 |
| } |
| for parm in $(seq 1 $#); do |
| OUT="${OUT}\n${CC} ${CFLAGS} ${1} -o .config.o -c .config.c 2>&1" |
| OUT="${OUT}\n$(${CC} ${CFLAGS} ${1} -o .config.o -c .config.c 2>&1)" |
| test $? -eq 0 && { |
| echo " using: ${CFLAGS} ${1}" 1>&2 |
| echo "${CFLAGS} ${1}" |
| exit 0 |
| } |
| shift |
| done |
| echo "failed!" 1>&2 |
| echo 1>&2 |
| echo -n "The following compiler commands were executed:" 1>&2 |
| echo -e "${OUT}\n" 1>&2 |
| echo "This is a fatal error, configure is exiting!" 1>&2 |
| echo 1>&2 |
| echo "You can try to fix this by manually setting CFLAGS in the environment before" 1>&2 |
| echo "running configure. E.g.:" 1>&2 |
| echo "CFLAGS=-I/opt/somedir/include ${0}" 1>&2 |
| echo 1>&2 |
| exit 1 |
| } |
| |
| function trylink() { |
| local WHAT OUT |
| WHAT="${1}" |
| shift |
| echo -n "finding LDFLAGS for ${WHAT}... " 1>&2 |
| OUT="${OUT}\n${CC} -o .config .config.o ${LDFLAGS} 2>&1" |
| OUT="${OUT}\n$(${CC} -o .config .config.o ${LDFLAGS} 2>&1)" |
| test $? -eq 0 && { |
| echo " using: ${LDFLAGS}" 1>&2 |
| echo "${LDFLAGS}" |
| exit 0 |
| } |
| for parm in $(seq 1 $#); do |
| OUT="${OUT}\n${CC} -o .config .config.o ${LDFLAGS} ${1} 2>&1" |
| OUT="${OUT}\n$(${CC} -o .config .config.o ${LDFLAGS} ${1} 2>&1)" |
| test $? -eq 0 && { |
| echo " using: ${LDFLAGS} ${1}" 1>&2 |
| echo "${LDFLAGS} ${1}" |
| exit 0 |
| } |
| shift |
| done |
| echo "failed!" 1>&2 |
| echo 1>&2 |
| echo -n "The following linker commands were executed:" 1>&2 |
| echo -e "${OUT}\n" 1>&2 |
| echo "This is a fatal error, configure is exiting!" 1>&2 |
| echo 1>&2 |
| echo "You can try to fix this by manually setting LDFLAGS in the environment before" 1>&2 |
| echo "running configure. E.g.:" 1>&2 |
| echo "LDFLAGS=-L/opt/somedir/lib ${0}" 1>&2 |
| echo 1>&2 |
| exit 1 |
| } |
| |
| CC=$(findprog "compiler" "${CC}" gcc cc icc) || exit |
| INSTALL=$(findprog "install" "${INSTALL}" install ginstall) || exit |
| |
| test -n "$DEBUG" && myCFLAGS="-O2 -g" || myCFLAGS="-Os" |
| CFLAGS="${CFLAGS} ${myCFLAGS} -Wall -Werror" |
| |
| PREFIX="${PREFIX:-/usr/local}" |
| |
| OS_ARCH=$(uname) |
| |
| echo |
| echo "configured using the following settings:" |
| echo |
| echo "VERSION=${VERSION}" |
| echo "CC=${CC}" |
| echo "CFLAGS=${CFLAGS}" |
| echo "LDFLAGS=${LDFLAGS}" |
| echo "INSTALL=${INSTALL}" |
| echo "PREFIX=${PREFIX}" |
| echo |
| echo -n "creating Makefile..." |
| echo "# This file was automatically generated by configure" > Makefile |
| sed -e "s#@VERSION@#${VERSION}#g" \ |
| -e "s#@CC@#${CC}#g" \ |
| -e "s#@CFLAGS@#${CFLAGS}#g" \ |
| -e "s#@LDFLAGS@#${LDFLAGS}#g" \ |
| -e "s#@INSTALL@#${INSTALL}#g" \ |
| -e "s#@PREFIX@#/usr/local#g" \ |
| Makefile.in >> Makefile |
| echo " done" |
| echo |