1727ce158SMartin Mares#!/bin/sh 23b75e19aSMartin Mares# Configuration script for the PCI library 33b75e19aSMartin Mares# (c) 1998--2008 Martin Mares <[email protected]> 4727ce158SMartin Mares 514d6c0a3SMartin Maresecho_n() { 614d6c0a3SMartin Mares if [ -n "$BASH" ] 714d6c0a3SMartin Mares then 814d6c0a3SMartin Mares echo -n "$*" 914d6c0a3SMartin Mares else 1014d6c0a3SMartin Mares echo "$*\c" 1114d6c0a3SMartin Mares fi 1214d6c0a3SMartin Mares} 1314d6c0a3SMartin Mares 143b75e19aSMartin Maresif [ -z "$VERSION" -o -z "$IDSDIR" ] ; then 153b75e19aSMartin Mares echo >&2 "Please run the configure script from the top-level Makefile" 163b75e19aSMartin Mares exit 1 173b75e19aSMartin Maresfi 183b75e19aSMartin Mares 1914d6c0a3SMartin Maresecho_n "Configuring libpci for your system..." 203b75e19aSMartin Maresif [ -z "$HOST" ] ; then 21727ce158SMartin Mares sys=`uname -s` 22727ce158SMartin Mares rel=`uname -r` 2314d6c0a3SMartin Mares if [ "$sys" = "AIX" -a -x /usr/bin/oslevel -a -x /usr/sbin/lsattr ] 2414d6c0a3SMartin Mares then 2514d6c0a3SMartin Mares rel=`/usr/bin/oslevel` 2614d6c0a3SMartin Mares proc=`/usr/sbin/lsdev -C -c processor -S available -F name | head -1` 2714d6c0a3SMartin Mares cpu=`/usr/sbin/lsattr -F value -l $proc -a type | sed 's/_.*//'` 2814d6c0a3SMartin Mares else 298fc75dbcSMartin Mares cpu=`uname -m | sed 's/^i.86$/i386/;s/^sun4u$/sparc64/;s/^i86pc$/i386/'` 3014d6c0a3SMartin Mares fi 3199091df9SMartin Mares if [ "$sys" = "GNU/kFreeBSD" -o "$sys" = "DragonFly" ] 32d1058e9dSMartin Mares then 33d1058e9dSMartin Mares sys=freebsd 34d1058e9dSMartin Mares fi 35550d67d1SMartin Mares if [ "$sys" = "CYGWIN_NT-5.1" ] 36550d67d1SMartin Mares then 37550d67d1SMartin Mares sys=cygwin 38550d67d1SMartin Mares fi 393b75e19aSMartin Mares HOST=${3:-$cpu-$sys} 403b75e19aSMartin Maresfi 41b0eb18ccSMartin Mares# CAVEAT: tr on Solaris is a bit weird and the extra [] is otherwise harmless. 423b75e19aSMartin Mareshost=`echo $HOST | sed 's/^\([^-]*\)-\([^-]*\)$/\1--\2/' | tr '[A-Z]' '[a-z]'` 430d656226SMartin Marescpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` 440d656226SMartin Maressys=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` 450d656226SMartin Maresecho " $host $rel" 46168b4f46SMartin Mares 47727ce158SMartin Maresc=config.h 48840d09aeSMartin Maresm=config.mk 4959a0211aSMartin Maresecho >$c '#define PCI_CONFIG_H' 50*daf2ef4eSMartin Maresecho >>$c "#define PCI_ARCH_`echo $cpu | tr '[a-z]' '[A-Z]'`" 51b0eb18ccSMartin Maresecho >>$c "#define PCI_OS_`echo $sys | tr '[a-z]' '[A-Z]'`" 52d7ea742cSMartin Maresecho >$m 'WITH_LIBS=' 53168b4f46SMartin Mares 5414d6c0a3SMartin Maresecho_n "Looking for access methods..." 5517b215b0SMartin MaresLIBRESOLV=-lresolv 56168b4f46SMartin Mares 57168b4f46SMartin Marescase $sys in 580d656226SMartin Mares linux*) 592100f710SMartin Mares echo_n " sysfs proc" 60489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_LINUX_SYSFS' 61489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_LINUX_PROC' 62489233b4SMartin Mares echo >>$c '#define PCI_HAVE_LINUX_BYTEORDER_H' 63489233b4SMartin Mares echo >>$c '#define PCI_PATH_PROC_BUS_PCI "/proc/bus/pci"' 64489233b4SMartin Mares echo >>$c '#define PCI_PATH_SYS_BUS_PCI "/sys/bus/pci"' 65727ce158SMartin Mares case $cpu in 66623234ecSMartin Mares i386|x86_64) echo_n " i386-ports" 67489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' 68727ce158SMartin Mares ;; 69727ce158SMartin Mares esac 7015296723SMartin Mares echo >>$c '#define PCI_HAVE_64BIT_ADDRESS' 71168b4f46SMartin Mares ;; 720d656226SMartin Mares sunos) 738fc75dbcSMartin Mares case $cpu in 748fc75dbcSMartin Mares i386) echo_n " i386-ports" 75489233b4SMartin Mares echo >>$c "#define PCI_HAVE_PM_INTEL_CONF" 768fc75dbcSMartin Mares ;; 778fc75dbcSMartin Mares *) 78545d5126SMartin Mares echo " The PCI library does not support Solaris for this architecture: $cpu" 798fc75dbcSMartin Mares exit 1 808fc75dbcSMartin Mares ;; 818fc75dbcSMartin Mares esac 82e49ed044SMartin Mares echo >>$c '#define PCI_HAVE_STDINT_H' 838fc75dbcSMartin Mares ;; 840d656226SMartin Mares freebsd) 8514d6c0a3SMartin Mares echo_n " fbsd-device" 86489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_FBSD_DEVICE' 87489233b4SMartin Mares echo >>$c '#define PCI_PATH_FBSD_DEVICE "/dev/pci"' 8817b215b0SMartin Mares LIBRESOLV= 89168b4f46SMartin Mares ;; 90b6359063SMartin Mares openbsd) 91b6359063SMartin Mares echo_n " obsd-device" 92b6359063SMartin Mares echo >>$c '#define PCI_HAVE_PM_OBSD_DEVICE' 93b6359063SMartin Mares echo >>$c '#define PCI_PATH_OBSD_DEVICE "/dev/pci"' 9417b215b0SMartin Mares LIBRESOLV= 95b6359063SMartin Mares ;; 960d656226SMartin Mares aix) 9714d6c0a3SMartin Mares echo_n " aix-device" 98489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_AIX_DEVICE' 99840d09aeSMartin Mares echo >>$m 'CFLAGS=-g' 100840d09aeSMartin Mares echo >>$m 'INSTALL=installbsd' 101840d09aeSMartin Mares echo >>$m 'DIRINSTALL=mkdir -p' 10214d6c0a3SMartin Mares ;; 1030d656226SMartin Mares netbsd) 104848b4347SMartin Mares echo_n " nbsd-libpci" 105489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_NBSD_LIBPCI' 106489233b4SMartin Mares echo >>$c '#define PCI_PATH_NBSD_DEVICE "/dev/pci0"' 107d7ea742cSMartin Mares echo >>$m 'LIBNAME=libpciutils' 108d7ea742cSMartin Mares echo >>$m 'WITH_LIBS+=-lpci' 10917b215b0SMartin Mares LIBRESOLV= 110848b4347SMartin Mares ;; 1110d656226SMartin Mares gnu) 1128fc75dbcSMartin Mares echo_n " i386-ports" 113489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' 11480459c65SMartin Mares ;; 115550d67d1SMartin Mares cygwin) 116550d67d1SMartin Mares echo_n " i386-ports" 117550d67d1SMartin Mares echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' 118550d67d1SMartin Mares echo >>$m 'LDLIBS+=-lioperm' 119550d67d1SMartin Mares ;; 120168b4f46SMartin Mares *) 12180459c65SMartin Mares echo " Unfortunately, your OS is not supported by the PCI Library" 122168b4f46SMartin Mares exit 1 123168b4f46SMartin Mares ;; 124168b4f46SMartin Maresesac 125168b4f46SMartin Mares 126489233b4SMartin Maresecho >>$c '#define PCI_HAVE_PM_DUMP' 127727ce158SMartin Maresecho " dump" 128cc062b4aSMartin Mares 129cc062b4aSMartin Maresecho_n "Checking for zlib support... " 1303b75e19aSMartin Maresif [ "$ZLIB" = yes -o "$ZLIB" = no ] ; then 1313b75e19aSMartin Mares echo "$ZLIB (set manually)" 132cc062b4aSMartin Mareselse 133ff94bc05SMartin Mares if [ -f /usr/include/zlib.h -o -f /usr/local/include/zlib.h ] ; then 1343b75e19aSMartin Mares ZLIB=yes 135cc062b4aSMartin Mares else 1363b75e19aSMartin Mares ZLIB=no 137cc062b4aSMartin Mares fi 1383b75e19aSMartin Mares echo "$ZLIB (auto-detected)" 139cc062b4aSMartin Maresfi 1403b75e19aSMartin Maresif [ "$ZLIB" = yes ] ; then 141cc062b4aSMartin Mares echo >>$c '#define PCI_COMPRESSED_IDS' 142840d09aeSMartin Mares echo >>$c '#define PCI_IDS "pci.ids.gz"' 1435670e427SMartin Mares echo >>$m 'LIBZ=-lz' 144d7ea742cSMartin Mares echo >>$m 'WITH_LIBS+=$(LIBZ)' 145cc062b4aSMartin Mareselse 146840d09aeSMartin Mares echo >>$c '#define PCI_IDS "pci.ids"' 147cc062b4aSMartin Maresfi 1483b75e19aSMartin Maresecho >>$c "#define PCI_PATH_IDS_DIR \"$IDSDIR\"" 149cc062b4aSMartin Mares 1503b75e19aSMartin Maresecho_n "Checking for DNS support... " 1513b75e19aSMartin Maresif [ "$DNS" = yes -o "$DNS" = no ] ; then 1523b75e19aSMartin Mares echo "$DNS (set manually)" 1533b75e19aSMartin Mareselse 1543b75e19aSMartin Mares if [ -f /usr/include/resolv.h ] ; then 1553b75e19aSMartin Mares DNS=yes 1563b75e19aSMartin Mares else 1573b75e19aSMartin Mares DNS=no 1583b75e19aSMartin Mares fi 1593b75e19aSMartin Mares echo "$DNS (auto-detected)" 1603b75e19aSMartin Maresfi 1613b75e19aSMartin Maresif [ "$DNS" = yes ] ; then 1623b75e19aSMartin Mares echo >>$c "#define PCI_USE_DNS" 163cd2f6a34SMartin Mares echo >>$c "#define PCI_ID_DOMAIN \"pci.id.ucw.cz\"" 16417b215b0SMartin Mares echo >>$m "WITH_LIBS+=$LIBRESOLV" 1653b75e19aSMartin Maresfi 1663b75e19aSMartin Mares 167d7ea742cSMartin Maresecho "Checking whether to build a shared library... $SHARED (set manually)" 168d7ea742cSMartin Maresif [ "$SHARED" = no ] ; then 169d7ea742cSMartin Mares echo >>$m 'PCILIB=$(LIBNAME).a' 170d7ea742cSMartin Mares echo >>$m 'LDLIBS=$(WITH_LIBS)' 171d7ea742cSMartin Mares echo >>$m 'LIB_LDLIBS=' 172d7ea742cSMartin Mareselse 1735ad89ed9SMartin Mares echo >>$m 'PCILIB=$(LIBNAME).so.$(VERSION)' 174d7ea742cSMartin Mares # We link the dependencies _to_ the library, so we do not need explicit deps in .pc 175d7ea742cSMartin Mares echo >>$m 'LDLIBS=' 176d7ea742cSMartin Mares echo >>$m 'LIB_LDLIBS=$(WITH_LIBS)' 17759a0211aSMartin Mares echo >>$c '#define PCI_SHARED_LIB' 178d7ea742cSMartin Mares if [ "$SHARED" = yes ] ; then 179d7ea742cSMartin Mares echo >>$m 'SONAME=-Wl,-soname,$(LIBNAME).so$(ABI_VERSION)' 180d7ea742cSMartin Mares fi 181d7ea742cSMartin Maresfi 182d7ea742cSMartin Maresecho >>$m 'PCILIBPC=$(LIBNAME).pc' 183d7ea742cSMartin Mares 1843b75e19aSMartin Maresecho >>$c "#define PCILIB_VERSION \"$VERSION\"" 185840d09aeSMartin Maressed '/"/{s/^#define \([^ ]*\) "\(.*\)"$/\1=\2/;p;d;};s/^#define \(.*\)/\1=1/' <$c >>$m 186