Change-Id: I212e44fc7edfd1458b04fb42a8e964a3367dd72d Signed-off-by: Iru Cai <mytbk920423@gmail.com> Reviewed-on: https://review.coreboot.org/12710 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
		
			
				
	
	
		
			183 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			183 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # This file is part of msrtool.
 | |
| #
 | |
| # Copyright (c) 2008, 2009 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.
 | |
| #
 | |
| 
 | |
| # If this is left unset, try to set the version string from the highest
 | |
| # revision number of the checked out files.
 | |
| VERSION=""
 | |
| 
 | |
| REV="`git describe --always 2>/dev/null`"
 | |
| VERSION="${VERSION:-$REV}"
 | |
| 
 | |
| findprog() {
 | |
| 	NPARMS=$#
 | |
| 	WHAT="${1}"
 | |
| 	shift
 | |
| 	FROMENV="${1}"
 | |
| 	shift
 | |
| 	printf "searching for ${WHAT} (${*})..." 1>&2
 | |
| 	test -n "${FROMENV}" && {
 | |
| 		echo "  using environment: ${FROMENV}" 1>&2
 | |
| 		echo "${FROMENV}"
 | |
| 		exit 0
 | |
| 	}
 | |
| 	i=2
 | |
| 	while test $i -lt $NPARMS; do
 | |
| 		test -z "${1}" && {
 | |
| 			shift
 | |
| 			i=$(($i+1))
 | |
| 			continue
 | |
| 		}
 | |
| 		FILE="`which "${1}" 2>/dev/null`"
 | |
| 		test $? -eq 0 && {
 | |
| 			echo "${1}"
 | |
| 			break
 | |
| 		}
 | |
| 		shift
 | |
| 		i=$(($i+1))
 | |
| 	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
 | |
| }
 | |
| 
 | |
| trycompile() {
 | |
| 	NPARMS=$#
 | |
| 	WHAT="${1}"
 | |
| 	shift
 | |
| 	printf "finding CFLAGS for ${WHAT}... " 1>&2
 | |
| 	OUT="${OUT}\n${CC} ${CFLAGS} -o .config.o -c .config.c"
 | |
| 	OUT="${OUT}\n`echo "${CC} ${CFLAGS} -o .config.o -c .config.c"|sh 2>&1`"
 | |
| 	test $? -eq 0 && {
 | |
| 		echo " using: ${CFLAGS}" 1>&2
 | |
| 		echo "${CFLAGS}"
 | |
| 		exit 0
 | |
| 	}
 | |
| 	i=1
 | |
| 	while test $i -lt $NPARMS; do
 | |
| 		OUT="${OUT}\n${CC} ${CFLAGS} ${1} -o .config.o -c .config.c 2>&1"
 | |
| 		OUT="${OUT}\n`echo "${CC} ${CFLAGS} ${1} -o .config.o -c .config.c"|sh 2>&1`"
 | |
| 		test $? -eq 0 && {
 | |
| 			echo " using: ${CFLAGS} ${1}" 1>&2
 | |
| 			echo "${CFLAGS} ${1}"
 | |
| 			exit 0
 | |
| 		}
 | |
| 		shift
 | |
| 		i=$(($i+1))
 | |
| 	done
 | |
| 	echo "failed!" 1>&2
 | |
| 	echo 1>&2
 | |
| 	printf "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 ./configure" 1>&2
 | |
| 	echo 1>&2
 | |
| 	exit 1
 | |
| }
 | |
| 
 | |
| trylink() {
 | |
| 	NPARMS=$#
 | |
| 	WHAT="${1}"
 | |
| 	shift
 | |
| 	printf "finding LDFLAGS for ${WHAT}... " 1>&2
 | |
| 	OUT="${OUT}\n${CC} -o .config .config.o ${LDFLAGS} 2>&1"
 | |
| 	OUT="${OUT}\n`echo "${CC} -o .config .config.o ${LDFLAGS}"|sh 2>&1`"
 | |
| 	test $? -eq 0 && {
 | |
| 		echo " using: ${LDFLAGS}" 1>&2
 | |
| 		echo "${LDFLAGS}"
 | |
| 		exit 0
 | |
| 	}
 | |
| 	i=1
 | |
| 	while test $i -lt $NPARMS; do
 | |
| 		OUT="${OUT}\n${CC} -o .config .config.o ${LDFLAGS} ${1} 2>&1"
 | |
| 		OUT="${OUT}\n`echo "${CC} -o .config .config.o ${LDFLAGS} ${1}"|sh 2>&1`"
 | |
| 		test $? -eq 0 && {
 | |
| 			echo " using: ${LDFLAGS} ${1}" 1>&2
 | |
| 			echo "${LDFLAGS} ${1}"
 | |
| 			exit 0
 | |
| 		}
 | |
| 		shift
 | |
| 		i=$(($i+1))
 | |
| 	done
 | |
| 	echo "failed!" 1>&2
 | |
| 	echo 1>&2
 | |
| 	printf "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 ./configure" 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"
 | |
| 
 | |
| 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" "-framework DirectHW -lpci -lz"` || {
 | |
| 	rm -f .config.c .config.o
 | |
| 	exit 1
 | |
| }
 | |
| rm -f .config.c .config.o .config
 | |
| 
 | |
| PREFIX="${PREFIX:-/usr/local}"
 | |
| 
 | |
| 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
 | |
| printf "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@#${PREFIX}#g" \
 | |
| 	Makefile.in >> Makefile
 | |
| echo "  done"
 | |
| echo
 |