X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fconfigure;h=468a29f5aa6c0ffdd6e4914e01b072107da8027b;hb=f548ecdbccf5effff1f6fb121bbd6a1e49659c5b;hp=1858269c4115378f167dc031e7da7ee7d86d336c;hpb=f3395cc50b6d4b1a6d7be7b9e0e775268341e659;p=pciutils.git diff --git a/lib/configure b/lib/configure index 1858269..468a29f 100755 --- a/lib/configure +++ b/lib/configure @@ -1,50 +1,132 @@ #!/bin/sh -echo -n "Configuring libpci for your system..." -prefix=${1:-/usr} +echo_n() { + if [ -n "$BASH" ] + then + echo -n "$*" + else + echo "$*\c" + fi +} + +echo_n "Configuring libpci for your system..." +idsdir=${1:-/usr/share} version=${2:-0.0} sys=`uname -s` rel=`uname -r` -cpu=`uname -m | sed 's/^i.86$/i386/;s/^sun4u$/sparc64/'` -echo "$sys/$cpu $rel" -if [ "$sys" != Linux ] ; then - echo "libpci currently supports only Linux" - exit 1 +if [ "$sys" = "AIX" -a -x /usr/bin/oslevel -a -x /usr/sbin/lsattr ] +then + rel=`/usr/bin/oslevel` + proc=`/usr/sbin/lsdev -C -c processor -S available -F name | head -1` + cpu=`/usr/sbin/lsattr -F value -l $proc -a type | sed 's/_.*//'` +else + cpu=`uname -m | sed 's/^i.86$/i386/;s/^sun4u$/sparc64/;s/^i86pc$/i386/'` +fi +if [ "$sys" = "GNU/kFreeBSD" -o "$sys" = "DragonFly" ] +then + sys=freebsd fi -echo -n "Looking for access methods..." +host=${3:-$cpu-$sys} +# CAVEAT: tr on Solaris is a bit weird and the extra [] is otherwise harmless. +host=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)$/\1--\2/' | tr '[A-Z]' '[a-z]'` +cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +sys=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +rel=${4:-$rel} +echo " $host $rel" +zlib=$5 + c=config.h -echo >$c "#define ARCH_`echo $cpu | tr 'a-z' 'A-Z'`" -case $rel in - 2.[1-9]*|[3-9]*) echo -n " proc" - echo >>$c '#define HAVE_PM_LINUX_PROC' - echo >>$c '#define HAVE_LINUX_BYTEORDER_H' - echo >>$c '#define PATH_PROC_BUS_PCI "/proc/bus/pci"' - ok=1 - ;; -esac -case $cpu in - i386) echo -n " i386-ports" - echo >>$c '#define HAVE_PM_INTEL_CONF' - ok=1 - ;; - sparc) echo -n " syscalls" - echo >>$c '#define HAVE_PM_SYSCALLS' - ok=1 - ;; - alpha|sparc64) echo >>$c '#define HAVE_64BIT_ADDRESS' -# echo -n " syscalls" -# echo >>$c '#define HAVE_PM_SYSCALLS' -# ok=1 - ;; +m=config.mk +echo >$c "#define PCI_ARCH_`echo $cpu | tr '[a-z]' '[A-Z]'`" +echo >>$c "#define PCI_OS_`echo $sys | tr '[a-z]' '[A-Z]'`" +rm -f $m + +echo_n "Looking for access methods..." + +case $sys in + linux*) + echo_n " sysfs proc" + echo >>$c '#define PCI_HAVE_PM_LINUX_SYSFS' + echo >>$c '#define PCI_HAVE_PM_LINUX_PROC' + echo >>$c '#define PCI_HAVE_LINUX_BYTEORDER_H' + echo >>$c '#define PCI_PATH_PROC_BUS_PCI "/proc/bus/pci"' + echo >>$c '#define PCI_PATH_SYS_BUS_PCI "/sys/bus/pci"' + case $cpu in + i386) echo_n " i386-ports" + echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' + ;; + esac + echo >>$c '#define PCI_HAVE_64BIT_ADDRESS' + ;; + sunos) + case $cpu in + i386) echo_n " i386-ports" + echo >>$c "#define PCI_HAVE_PM_INTEL_CONF" + ;; + *) + echo " The PCI library does not support Solaris for this architecture: $cpu" + exit 1 + ;; + esac + echo >>$c '#define PCI_HAVE_STDINT_H' + ;; + freebsd) + echo_n " fbsd-device" + echo >>$c '#define PCI_HAVE_PM_FBSD_DEVICE' + echo >>$c '#define PCI_PATH_FBSD_DEVICE "/dev/pci"' + ;; + openbsd) + echo_n " obsd-device" + echo >>$c '#define PCI_HAVE_PM_OBSD_DEVICE' + echo >>$c '#define PCI_PATH_OBSD_DEVICE "/dev/pci"' + ;; + aix) + echo_n " aix-device" + echo >>$c '#define PCI_HAVE_PM_AIX_DEVICE' + echo >>$m 'CFLAGS=-g' + echo >>$m 'INSTALL=installbsd' + echo >>$m 'DIRINSTALL=mkdir -p' + ;; + netbsd) + echo_n " nbsd-libpci" + echo >>$c '#define PCI_HAVE_PM_NBSD_LIBPCI' + echo >>$c '#define PCI_PATH_NBSD_DEVICE "/dev/pci0"' + echo >>$m 'PCILIB=lib/libpciutils.a' + echo >>$m 'LDLIBS+=-lpci' + ;; + gnu) + echo_n " i386-ports" + echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' + ;; + *) + echo " Unfortunately, your OS is not supported by the PCI Library" + exit 1 + ;; esac -echo >>$c '#define HAVE_PM_DUMP' + +echo >>$c '#define PCI_HAVE_PM_DUMP' echo " dump" -if [ -z "$ok" ] ; then - echo "WARNING: No real configuration access method is available." + +echo_n "Checking for zlib support... " +if [ "$zlib" = yes -o "$zlib" = no ] ; then + echo "$zlib (set manually)" +else + if [ -f /usr/include/zlib.h ] ; then + zlib=yes + else + zlib=no + fi + echo "$zlib (auto-detected)" fi -echo >>$c "#define PATH_PCI_IDS \"$prefix/share/pci.ids\"" -if [ -f header.h ] ; then - echo >>$c '#define HAVE_OWN_HEADER_H' +if [ "$zlib" = yes ] ; then + echo >>$c '#define PCI_COMPRESSED_IDS' + echo >>$c '#define PCI_IDS "pci.ids.gz"' + echo >>$m 'LIBZ=-lz' + echo >>$m 'LDLIBS+=$(LIBZ)' +else + echo >>$c '#define PCI_IDS "pci.ids"' fi +echo >>$c "#define PCI_PATH_IDS_DIR \"$idsdir\"" + echo >>$c "#define PCILIB_VERSION \"$version\"" -sed '/^#define [^ ]*$/!d;s/^#define \(.*\)/\1=1/' <$c >config.mk +sed '/"/{s/^#define \([^ ]*\) "\(.*\)"$/\1=\2/;p;d;};s/^#define \(.*\)/\1=1/' <$c >>$m