2008-11-22 18:13:36 +01:00
|
|
|
#!/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"
|
|
|
|
|
2008-11-25 03:03:16 +01:00
|
|
|
cat > .config.c << EOF
|
|
|
|
#include <pci/pci.h>
|
|
|
|
struct pci_access *pacc;
|
|
|
|
int main(int argc, char *argv[])
|
|
|
|
{ pacc = pci_alloc(); return 0; }
|
|
|
|
EOF
|
|
|
|
|
|
|
|
pc_CFLAGS="$(pkg-config libpci --cflags 2>/dev/null)"
|
|
|
|
pc_LDFLAGS="$(pkg-config libpci --libs 2>/dev/null)"
|
|
|
|
CFLAGS=$(trycompile "libpci (from pciutils)" "${pc_CFLAGS}" "-I/usr/local/include") || {
|
|
|
|
rm -f .config.c
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
LDFLAGS=$(trylink "libpci (from pciutils)" "${pc_LDFLAGS}" "-lpci -lz" "-L/usr/local/lib -lpci -lz") || {
|
|
|
|
rm -f .config.c .config.o
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
rm -f .config.c .config.o .config
|
|
|
|
|
2008-11-22 18:13:36 +01:00
|
|
|
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
|