1727ce158SMartin Mares#!/bin/sh 23b75e19aSMartin Mares# Configuration script for the PCI library 317ec7e70SMartin Mares# (c) 1998--2013 Martin Mares <[email protected]> 4666422c6SMartin Mares 5666422c6SMartin MaresLC_ALL=C 6666422c6SMartin Maresexport LC_ALL 7727ce158SMartin Mares 814d6c0a3SMartin Maresecho_n() { 9df2e141fSMike Frysinger printf '%s' "$*" 1014d6c0a3SMartin Mares} 1114d6c0a3SMartin Mares 122608d8f7SPali Rohárif [ -z "$VERSION" ] ; then 133b75e19aSMartin Mares echo >&2 "Please run the configure script from the top-level Makefile" 143b75e19aSMartin Mares exit 1 153b75e19aSMartin Maresfi 163b75e19aSMartin Mares 1714d6c0a3SMartin Maresecho_n "Configuring libpci for your system..." 183b75e19aSMartin Maresif [ -z "$HOST" ] ; then 19727ce158SMartin Mares sys=`uname -s` 20727ce158SMartin Mares rel=`uname -r` 21d0097572SMartin Mares realsys="$sys" 2214d6c0a3SMartin Mares if [ "$sys" = "AIX" -a -x /usr/bin/oslevel -a -x /usr/sbin/lsattr ] 2314d6c0a3SMartin Mares then 2414d6c0a3SMartin Mares rel=`/usr/bin/oslevel` 2514d6c0a3SMartin Mares proc=`/usr/sbin/lsdev -C -c processor -S available -F name | head -1` 2614d6c0a3SMartin Mares cpu=`/usr/sbin/lsattr -F value -l $proc -a type | sed 's/_.*//'` 2714d6c0a3SMartin Mares else 2870279d51SDamien Zammit cpu=`uname -m | sed 's/^i.86-AT386/i386/;s/^i.86$/i386/;s/^sun4u$/sparc64/;s/^i86pc$/i386/;s/^BePC$/i386/;s/^BeMac$/powerpc/;s/^BeBox$/powerpc/'` 2914d6c0a3SMartin Mares fi 3092995a8dSGuillem Jover if [ "$sys" = "DragonFly" ] 31d1058e9dSMartin Mares then 32d1058e9dSMartin Mares sys=freebsd 33d1058e9dSMartin Mares fi 3492995a8dSGuillem Jover if [ "$sys" = "GNU/kFreeBSD" ] 3592995a8dSGuillem Jover then 3692995a8dSGuillem Jover sys=kfreebsd 3792995a8dSGuillem Jover fi 3870279d51SDamien Zammit if [ "$sys" = "GNU" ] 3970279d51SDamien Zammit then 4070279d51SDamien Zammit sys=gnu 4170279d51SDamien Zammit fi 426c4e6afeSMartin Mares if [ "$sys" = "CYGWIN_NT-5.1" -o "$sys" = "CYGWIN_NT-6.0" ] 43550d67d1SMartin Mares then 44550d67d1SMartin Mares sys=cygwin 45550d67d1SMartin Mares fi 463b75e19aSMartin Mares HOST=${3:-$cpu-$sys} 473b75e19aSMartin Maresfi 48f683f54aSAlon Bar-Lev[ -n "$RELEASE" ] && rel="${RELEASE}" 49b0eb18ccSMartin Mares# CAVEAT: tr on Solaris is a bit weird and the extra [] is otherwise harmless. 503c93f3c6SFelix Jandahost=`echo $HOST | sed -e 's/^\([^-]*\)-\([^-]*\)-\([^-]*\)-\([^-]*\)$/\1-\3/' -e 's/^\([^-]*\)-\([^-]*\)-\([^-]*\)$/\1-\2/' -e 's/^\([^-]*\)-\([^-]*\)$/\1--\2/' | tr '[A-Z]' '[a-z]'` 510d656226SMartin Marescpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` 520d656226SMartin Maressys=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` 53f683f54aSAlon Bar-Levecho " $host $rel $cpu $sys" 54168b4f46SMartin Mares 55727ce158SMartin Maresc=config.h 56840d09aeSMartin Maresm=config.mk 5759a0211aSMartin Maresecho >$c '#define PCI_CONFIG_H' 58daf2ef4eSMartin Maresecho >>$c "#define PCI_ARCH_`echo $cpu | tr '[a-z]' '[A-Z]'`" 59b0eb18ccSMartin Maresecho >>$c "#define PCI_OS_`echo $sys | tr '[a-z]' '[A-Z]'`" 60d7ea742cSMartin Maresecho >$m 'WITH_LIBS=' 61168b4f46SMartin Mares 6214d6c0a3SMartin Maresecho_n "Looking for access methods..." 6317b215b0SMartin MaresLIBRESOLV=-lresolv 648d1cb3d7SRichard YaoLIBEXT=so 65ec1fe05cSPali RohárEXEEXT= 6602321cd3SMartin MaresSYSINCLUDE=/usr/include 670b307156SMartin MaresLSPCIDIR=SBINDIR 68168b4f46SMartin Mares 69168b4f46SMartin Marescase $sys in 700d656226SMartin Mares linux*) 712ba0f6f4SPali Rohár echo_n " sysfs proc mem-ports ecam" 72489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_LINUX_SYSFS' 73489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_LINUX_PROC' 740a7350fbSPali Rohár echo >>$c '#define PCI_HAVE_PM_MMIO_CONF' 752ba0f6f4SPali Rohár echo >>$c '#define PCI_HAVE_PM_ECAM' 76489233b4SMartin Mares echo >>$c '#define PCI_HAVE_LINUX_BYTEORDER_H' 77489233b4SMartin Mares echo >>$c '#define PCI_PATH_PROC_BUS_PCI "/proc/bus/pci"' 78489233b4SMartin Mares echo >>$c '#define PCI_PATH_SYS_BUS_PCI "/sys/bus/pci"' 790a7350fbSPali Rohár echo >>$c '#define PCI_PATH_DEVMEM_DEVICE "/dev/mem"' 802ba0f6f4SPali Rohár echo >>$c '#define PCI_PATH_ACPI_MCFG "/sys/firmware/acpi/tables/MCFG"' 812ba0f6f4SPali Rohár echo >>$c '#define PCI_PATH_EFI_SYSTAB "/sys/firmware/efi/systab"' 82727ce158SMartin Mares case $cpu in 83f683f54aSAlon Bar-Lev i?86|x86_64) echo_n " i386-ports" 84489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' 85727ce158SMartin Mares ;; 86727ce158SMartin Mares esac 8715296723SMartin Mares echo >>$c '#define PCI_HAVE_64BIT_ADDRESS' 880b307156SMartin Mares LSPCIDIR=BINDIR 89168b4f46SMartin Mares ;; 900d656226SMartin Mares sunos) 9193c02ab2SPali Rohár echo_n " mem-ports ecam" 928fc75dbcSMartin Mares case $cpu in 93f683f54aSAlon Bar-Lev i?86) echo_n " i386-ports" 94489233b4SMartin Mares echo >>$c "#define PCI_HAVE_PM_INTEL_CONF" 958fc75dbcSMartin Mares ;; 968fc75dbcSMartin Mares esac 9793c02ab2SPali Rohár echo >>$c '#define PCI_HAVE_PM_MMIO_CONF' 9893c02ab2SPali Rohár echo >>$c '#define PCI_HAVE_PM_ECAM' 9993c02ab2SPali Rohár echo >>$c '#define PCI_PATH_DEVMEM_DEVICE "/dev/xsvc"' 10093c02ab2SPali Rohár echo >>$c '#define PCI_PATH_ACPI_MCFG ""' 10193c02ab2SPali Rohár echo >>$c '#define PCI_PATH_EFI_SYSTAB ""' 1028fc75dbcSMartin Mares ;; 10392995a8dSGuillem Jover freebsd*|kfreebsd*) 1042ba0f6f4SPali Rohár echo_n " fbsd-device mem-ports ecam" 105489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_FBSD_DEVICE' 1060a7350fbSPali Rohár echo >>$c '#define PCI_HAVE_PM_MMIO_CONF' 1072ba0f6f4SPali Rohár echo >>$c '#define PCI_HAVE_PM_ECAM' 108489233b4SMartin Mares echo >>$c '#define PCI_PATH_FBSD_DEVICE "/dev/pci"' 1090a7350fbSPali Rohár echo >>$c '#define PCI_PATH_DEVMEM_DEVICE "/dev/mem"' 1102ba0f6f4SPali Rohár echo >>$c '#define PCI_PATH_ACPI_MCFG ""' 1112ba0f6f4SPali Rohár echo >>$c '#define PCI_PATH_EFI_SYSTAB ""' 11292995a8dSGuillem Jover if [ "$sys" != "kfreebsd" ] ; then 11317b215b0SMartin Mares LIBRESOLV= 114d0097572SMartin Mares fi 115168b4f46SMartin Mares ;; 116b6359063SMartin Mares openbsd) 1172ba0f6f4SPali Rohár echo_n " obsd-device mem-ports ecam" 118b6359063SMartin Mares echo >>$c '#define PCI_HAVE_PM_OBSD_DEVICE' 1190a7350fbSPali Rohár echo >>$c '#define PCI_HAVE_PM_MMIO_CONF' 1202ba0f6f4SPali Rohár echo >>$c '#define PCI_HAVE_PM_ECAM' 121b6359063SMartin Mares echo >>$c '#define PCI_PATH_OBSD_DEVICE "/dev/pci"' 1220a7350fbSPali Rohár echo >>$c '#define PCI_PATH_DEVMEM_DEVICE "/dev/mem"' 1232ba0f6f4SPali Rohár echo >>$c '#define PCI_PATH_ACPI_MCFG "/var/db/acpi/MCFG.*"' 1242ba0f6f4SPali Rohár echo >>$c '#define PCI_PATH_EFI_SYSTAB ""' 125ebbd5e81SGrant Pannell case $cpu in 126ebbd5e81SGrant Pannell i386|amd64) echo_n " i386-ports" 127ebbd5e81SGrant Pannell echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' 128ebbd5e81SGrant Pannell echo >>$m 'WITH_LIBS+=-l'$cpu 129ebbd5e81SGrant Pannell ;; 130ebbd5e81SGrant Pannell esac 13117b215b0SMartin Mares LIBRESOLV= 132b6359063SMartin Mares ;; 1337cb1afbeSRichard Yao 1348d1cb3d7SRichard Yao darwin*) 1354e35117cSMartin Mares echo_n " darwin" 1367cb1afbeSRichard Yao echo >>$c '#define PCI_HAVE_PM_DARWIN_DEVICE' 1377cb1afbeSRichard Yao echo >>$m 'WITH_LIBS+=-lresolv -framework CoreFoundation -framework IOKit' 1387cb1afbeSRichard Yao echo >>$c '#define PCI_HAVE_64BIT_ADDRESS' 1397cb1afbeSRichard Yao LIBRESOLV= 1408d1cb3d7SRichard Yao LIBEXT=dylib 14102321cd3SMartin Mares SYSINCLUDE=$(xcrun --sdk macosx --show-sdk-path)/usr/include 1427cb1afbeSRichard Yao ;; 1430d656226SMartin Mares aix) 14414d6c0a3SMartin Mares echo_n " aix-device" 145489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_AIX_DEVICE' 146840d09aeSMartin Mares echo >>$m 'CFLAGS=-g' 147840d09aeSMartin Mares echo >>$m 'INSTALL=installbsd' 148840d09aeSMartin Mares echo >>$m 'DIRINSTALL=mkdir -p' 14914d6c0a3SMartin Mares ;; 1500d656226SMartin Mares netbsd) 1512ba0f6f4SPali Rohár echo_n " nbsd-libpci mem-ports ecam" 152489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_NBSD_LIBPCI' 1530a7350fbSPali Rohár echo >>$c '#define PCI_HAVE_PM_MMIO_CONF' 1542ba0f6f4SPali Rohár echo >>$c '#define PCI_HAVE_PM_ECAM' 155489233b4SMartin Mares echo >>$c '#define PCI_PATH_NBSD_DEVICE "/dev/pci0"' 1560a7350fbSPali Rohár echo >>$c '#define PCI_PATH_DEVMEM_DEVICE "/dev/mem"' 1572ba0f6f4SPali Rohár echo >>$c '#define PCI_PATH_ACPI_MCFG ""' 1582ba0f6f4SPali Rohár echo >>$c '#define PCI_PATH_EFI_SYSTAB ""' 1594021e873SMasanobu SAITOH echo >>$c '#define PCI_HAVE_64BIT_ADDRESS' 160d7ea742cSMartin Mares echo >>$m 'LIBNAME=libpciutils' 161d7ea742cSMartin Mares echo >>$m 'WITH_LIBS+=-lpci' 16217b215b0SMartin Mares LIBRESOLV= 163848b4347SMartin Mares ;; 1640d656226SMartin Mares gnu) 1650a913370SJoan Lledó echo_n " hurd i386-ports" 1660a913370SJoan Lledó echo >>$c '#define PCI_HAVE_PM_HURD_CONF' 1675c5ce192SRudolf Marek echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' 1685c5ce192SRudolf Marek ;; 1695c5ce192SRudolf Marek djgpp) 170a9df1d1bSPali Rohár echo_n " i386-ports mem-ports ecam" 171489233b4SMartin Mares echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' 172a9df1d1bSPali Rohár echo >>$c '#define PCI_HAVE_PM_MMIO_CONF' 173a9df1d1bSPali Rohár echo >>$c '#define PCI_HAVE_PM_ECAM' 174a9df1d1bSPali Rohár echo >>$c '#define PCI_PATH_ACPI_MCFG ""' 175a9df1d1bSPali Rohár echo >>$c '#define PCI_PATH_EFI_SYSTAB ""' 176ec1fe05cSPali Rohár EXEEXT=.exe 17780459c65SMartin Mares ;; 178d9a7eb8fSPali Rohár cygwin|windows) 179ff9f39c7SPali Rohár echo_n " win32-cfgmgr32 win32-kldbg win32-sysdbg mem-ports ecam" 18026c8b543SPali Rohár echo >>$c '#define PCI_HAVE_64BIT_ADDRESS' 18126c8b543SPali Rohár echo >>$c '#define PCI_HAVE_PM_WIN32_CFGMGR32' 182aa5a16efSPali Rohár echo >>$c '#define PCI_HAVE_PM_WIN32_KLDBG' 1832d0af6fcSPali Rohár echo >>$c '#define PCI_HAVE_PM_WIN32_SYSDBG' 184ff9f39c7SPali Rohár echo >>$c '#define PCI_HAVE_PM_MMIO_CONF' 185ff9f39c7SPali Rohár echo >>$c '#define PCI_HAVE_PM_ECAM' 186ff9f39c7SPali Rohár echo >>$c '#define PCI_PATH_DEVMEM_DEVICE "\\\\Device\\\\PhysicalMemory"' 187ff9f39c7SPali Rohár echo >>$c '#define PCI_PATH_ACPI_MCFG "GetSystemFirmwareTable()"' 188ff9f39c7SPali Rohár echo >>$c '#define PCI_PATH_EFI_SYSTAB ""' 18926c8b543SPali Rohár # Warning: MinGW-w64 (incorrectly) provides cfgmgr32 functions 19026c8b543SPali Rohár # also in other import libraries, not only in libcfgmgr32.a. 19126c8b543SPali Rohár # So always set -lcfgmgr32 as a first library parameter which 19226c8b543SPali Rohár # instruct linker to prefer symbols from cfgmgr32.dll. 19326c8b543SPali Rohár echo >>$m 'WITH_LIBS+=-lcfgmgr32' 194dc687532SPali Rohár case $cpu in i?86|x86_64) 195550d67d1SMartin Mares echo_n " i386-ports" 196550d67d1SMartin Mares echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' 197d9a7eb8fSPali Rohár if [ "$sys" = "cygwin" ] ; then 198d9a7eb8fSPali Rohár # ioperm is cygwin specific library and used only by lib/i386-io-cygwin.h 199d4553175SMartin Mares echo >>$m 'WITH_LIBS+=-lioperm' 200d9a7eb8fSPali Rohár elif [ "$sys" = "windows" ] ; then 201d9a7eb8fSPali Rohár # advapi32 is windows system library and used only by lib/i386-io-windows.h 202d9a7eb8fSPali Rohár echo >>$m 'WITH_LIBS+=-ladvapi32' 203d9a7eb8fSPali Rohár fi 204dc687532SPali Rohár ;; esac 205ec1fe05cSPali Rohár EXEEXT=.exe 20632934d5bSPali Rohár LIBEXT=dll 207550d67d1SMartin Mares ;; 20840e253d7SFrançois Revol beos|haiku) 20993c02ab2SPali Rohár echo_n " mem-ports ecam" 21040e253d7SFrançois Revol case $cpu in 21140e253d7SFrançois Revol i?86|x86_64) echo_n " i386-ports" 21240e253d7SFrançois Revol echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' 21340e253d7SFrançois Revol ;; 21440e253d7SFrançois Revol esac 21593c02ab2SPali Rohár echo >>$c '#define PCI_HAVE_PM_MMIO_CONF' 21693c02ab2SPali Rohár echo >>$c '#define PCI_HAVE_PM_ECAM' 21793c02ab2SPali Rohár echo >>$c '#define PCI_PATH_DEVMEM_DEVICE "/dev/misc/mem"' 21893c02ab2SPali Rohár echo >>$c '#define PCI_PATH_ACPI_MCFG ""' 21993c02ab2SPali Rohár echo >>$c '#define PCI_PATH_EFI_SYSTAB ""' 2201b39cd53SOscar Lesta if [ "$sys" != "beos" ] ; then 2211b39cd53SOscar Lesta LIBRESOLV=-lnetwork 2221b39cd53SOscar Lesta fi 22340e253d7SFrançois Revol ;; 22483fd885bSMartin Mares sylixos) 22583fd885bSMartin Mares echo >>$c '#define PCI_PATH_SYLIXOS_DEVICE "/proc/pci"' 22683fd885bSMartin Mares echo >>$c '#define PCI_HAVE_64BIT_ADDRESS' 22783fd885bSMartin Mares echo >>$c '#define PCI_HAVE_PM_SYLIXOS_DEVICE' 22883fd885bSMartin Mares IDSDIR="/etc/pci" 2290547ded8SGongYuJian LIBRESOLV= 23083fd885bSMartin Mares ;; 2315b52ae79SAgg242 amigaos) 2325b52ae79SAgg242 echo_n " aos-expansion" 2335b52ae79SAgg242 echo >>$c '#define PCI_HAVE_STDINT_H' 2345b52ae79SAgg242 echo >>$c '#define PCI_HAVE_PM_AOS_EXPANSION' 2355b52ae79SAgg242 IDSDIR="DEVS:" 2365b52ae79SAgg242 echo >>$m 'CC=gcc' 2375b52ae79SAgg242 ;; 238*021d41cfSGuEe-GUI rt_thread_smart) 239*021d41cfSGuEe-GUI echo >>$c '#define PCI_PATH_RT_THREAD_SMART_DM "/proc/pci"' 240*021d41cfSGuEe-GUI echo >>$c '#define PCI_HAVE_64BIT_ADDRESS' 241*021d41cfSGuEe-GUI echo >>$c '#define PCI_HAVE_PM_RT_THREAD_SMART_DM' 242*021d41cfSGuEe-GUI IDSDIR="/etc/pci" 243*021d41cfSGuEe-GUI LIBRESOLV= 244*021d41cfSGuEe-GUI ;; 245168b4f46SMartin Mares *) 24680459c65SMartin Mares echo " Unfortunately, your OS is not supported by the PCI Library" 247168b4f46SMartin Mares exit 1 248168b4f46SMartin Mares ;; 249168b4f46SMartin Maresesac 250168b4f46SMartin Mares 2518d1cb3d7SRichard Yaoecho >>$m "LIBEXT="$LIBEXT 252ec1fe05cSPali Rohárecho >>$m "EXEEXT="$EXEEXT 2530b307156SMartin Maresecho >>$m "LSPCIDIR=\$($LSPCIDIR)" 254489233b4SMartin Maresecho >>$c '#define PCI_HAVE_PM_DUMP' 255727ce158SMartin Maresecho " dump" 256cc062b4aSMartin Mares 257cc062b4aSMartin Maresecho_n "Checking for zlib support... " 2583b75e19aSMartin Maresif [ "$ZLIB" = yes -o "$ZLIB" = no ] ; then 2593b75e19aSMartin Mares echo "$ZLIB (set manually)" 260cc062b4aSMartin Mareselse 26102321cd3SMartin Mares if [ -f "$SYSINCLUDE/zlib.h" -o -f /usr/local/include/zlib.h ] ; then 2623b75e19aSMartin Mares ZLIB=yes 263cc062b4aSMartin Mares else 2643b75e19aSMartin Mares ZLIB=no 265cc062b4aSMartin Mares fi 2663b75e19aSMartin Mares echo "$ZLIB (auto-detected)" 267cc062b4aSMartin Maresfi 2683b75e19aSMartin Maresif [ "$ZLIB" = yes ] ; then 269cc062b4aSMartin Mares echo >>$c '#define PCI_COMPRESSED_IDS' 270840d09aeSMartin Mares echo >>$c '#define PCI_IDS "pci.ids.gz"' 2715670e427SMartin Mares echo >>$m 'LIBZ=-lz' 272d7ea742cSMartin Mares echo >>$m 'WITH_LIBS+=$(LIBZ)' 273cc062b4aSMartin Mareselse 274840d09aeSMartin Mares echo >>$c '#define PCI_IDS "pci.ids"' 275cc062b4aSMartin Maresfi 2763b75e19aSMartin Maresecho >>$c "#define PCI_PATH_IDS_DIR \"$IDSDIR\"" 277cc062b4aSMartin Mares 2783b75e19aSMartin Maresecho_n "Checking for DNS support... " 2793b75e19aSMartin Maresif [ "$DNS" = yes -o "$DNS" = no ] ; then 2803b75e19aSMartin Mares echo "$DNS (set manually)" 2813b75e19aSMartin Mareselse 282d9a7eb8fSPali Rohár if [ "$sys" != "windows" -a -f "$SYSINCLUDE/resolv.h" ] ; then 2833b75e19aSMartin Mares DNS=yes 2843b75e19aSMartin Mares else 2853b75e19aSMartin Mares DNS=no 2863b75e19aSMartin Mares fi 2873b75e19aSMartin Mares echo "$DNS (auto-detected)" 2883b75e19aSMartin Maresfi 2893b75e19aSMartin Maresif [ "$DNS" = yes ] ; then 2903b75e19aSMartin Mares echo >>$c "#define PCI_USE_DNS" 291cd2f6a34SMartin Mares echo >>$c "#define PCI_ID_DOMAIN \"pci.id.ucw.cz\"" 29217b215b0SMartin Mares echo >>$m "WITH_LIBS+=$LIBRESOLV" 2933b75e19aSMartin Maresfi 2943b75e19aSMartin Mares 29517ec7e70SMartin Maresif [ "$sys" = linux ] ; then 29617ec7e70SMartin Mares echo_n "Checking for libkmod... " 29717ec7e70SMartin Mares LIBKMOD_DETECTED= 2985bfe14fdSMartin Mares if [ -z "$PKG_CONFIG" ] ; then 2995bfe14fdSMartin Mares PKG_CONFIG=pkg-config 3005bfe14fdSMartin Mares fi 30117ec7e70SMartin Mares if [ "$LIBKMOD" != no ] ; then 30291bf24ddSSam James if ! command -v $PKG_CONFIG >/dev/null ; then 3035bfe14fdSMartin Mares echo_n "($PKG_CONFIG not found) " 3045bfe14fdSMartin Mares elif $PKG_CONFIG libkmod ; then 30517ec7e70SMartin Mares LIBKMOD_DETECTED=1 30617ec7e70SMartin Mares fi 30717ec7e70SMartin Mares fi 30817ec7e70SMartin Mares if [ "$LIBKMOD" = yes -o "$LIBKMOD" = no ] ; then 30917ec7e70SMartin Mares echo "$LIBKMOD (set manually)" 31017ec7e70SMartin Mares if [ "$LIBKMOD" = yes -a -z "$LIBKMOD_DETECTED" ] ; then 31117ec7e70SMartin Mares echo "Requested use of libkmod, but it is not available. Giving up." 31217ec7e70SMartin Mares exit 1 31317ec7e70SMartin Mares fi 31417ec7e70SMartin Mares else 31517ec7e70SMartin Mares if [ -n "$LIBKMOD_DETECTED" ] ; then 31617ec7e70SMartin Mares LIBKMOD=yes 31717ec7e70SMartin Mares else 31817ec7e70SMartin Mares LIBKMOD=no 31917ec7e70SMartin Mares fi 32017ec7e70SMartin Mares echo "$LIBKMOD (auto-detected)" 32117ec7e70SMartin Mares fi 32217ec7e70SMartin Mares if [ "$LIBKMOD" = yes ] ; then 32317ec7e70SMartin Mares echo >>$c "#define PCI_USE_LIBKMOD" 3245bfe14fdSMartin Mares echo >>$m "LIBKMOD_CFLAGS=$($PKG_CONFIG --cflags libkmod)" 3255bfe14fdSMartin Mares echo >>$m "LIBKMOD_LIBS=$($PKG_CONFIG --libs libkmod)" 32617ec7e70SMartin Mares fi 327bca6bbafSMartin Mares 328bca6bbafSMartin Mares echo_n "Checking for udev hwdb support... " 329bca6bbafSMartin Mares if [ "$HWDB" = yes -o "$HWDB" = no ] ; then 330bca6bbafSMartin Mares echo "$HWDB (set manually)" 331bca6bbafSMartin Mares else 332a7483219SSam James if `command -v $PKG_CONFIG >/dev/null && $PKG_CONFIG --atleast-version=196 libudev` ; then 333bca6bbafSMartin Mares HWDB=yes 334bca6bbafSMartin Mares else 335bca6bbafSMartin Mares HWDB=no 336bca6bbafSMartin Mares fi 337bca6bbafSMartin Mares echo "$HWDB (auto-detected)" 338bca6bbafSMartin Mares fi 339bca6bbafSMartin Mares if [ "$HWDB" = yes ] ; then 340bca6bbafSMartin Mares echo >>$c '#define PCI_HAVE_HWDB' 341bca6bbafSMartin Mares echo >>$m 'LIBUDEV=-ludev' 342bca6bbafSMartin Mares echo >>$m 'WITH_LIBS+=$(LIBUDEV)' 343bca6bbafSMartin Mares fi 34417ec7e70SMartin Maresfi 34517ec7e70SMartin Mares 346d7ea742cSMartin Maresecho "Checking whether to build a shared library... $SHARED (set manually)" 347d7ea742cSMartin Maresif [ "$SHARED" = no ] ; then 348d7ea742cSMartin Mares echo >>$m 'PCILIB=$(LIBNAME).a' 349d7ea742cSMartin Mares echo >>$m 'LDLIBS=$(WITH_LIBS)' 350d7ea742cSMartin Mares echo >>$m 'LIB_LDLIBS=' 351d7ea742cSMartin Mareselse 3528d1cb3d7SRichard Yao if [ "$LIBEXT" = so ]; then 3538d1cb3d7SRichard Yao echo >>$m 'PCILIB=$(LIBNAME).$(LIBEXT).$(VERSION)' 35432934d5bSPali Rohár elif [ "$LIBEXT" = dll ]; then 35532934d5bSPali Rohár echo >>$m 'PCILIB=$(LIBNAME)$(ABI_VERSION).$(LIBEXT)' 3568d1cb3d7SRichard Yao else 3578d1cb3d7SRichard Yao echo >>$m 'PCILIB=$(LIBNAME).$(VERSION).$(LIBEXT)' 3588d1cb3d7SRichard Yao fi 359d7ea742cSMartin Mares # We link the dependencies _to_ the library, so we do not need explicit deps in .pc 360d7ea742cSMartin Mares echo >>$m 'LDLIBS=' 361d7ea742cSMartin Mares echo >>$m 'LIB_LDLIBS=$(WITH_LIBS)' 36259a0211aSMartin Mares echo >>$c '#define PCI_SHARED_LIB' 363a65bb452SPali Rohár if [ "$LIBEXT" = so ]; then 364a65bb452SPali Rohár echo >>$m 'PCILIB_LDFLAGS+=-Wl,-soname,$(LIBNAME).$(LIBEXT).$(ABI_VERSION)' 365a65bb452SPali Rohár echo >>$m 'PCILIB_LDFLAGS+=-Wl,--version-script=libpci.ver' 366a65bb452SPali Rohár elif [ "$LIBEXT" = dylib ]; then 367a65bb452SPali Rohár echo >>$m 'PCILIB_LDFLAGS+=-Wl,-install_name,$(LIBDIR)/$(PCILIB)' 36832934d5bSPali Rohár elif [ "$LIBEXT" = dll ]; then 36932934d5bSPali Rohár echo >>$m 'PCIIMPDEF=$(LIBNAME)$(ABI_VERSION).def' 37032934d5bSPali Rohár # GCC's -fvisibility=hidden is broken for Windows targets, use -Wl,--exclude-all-symbols instead (supported since GNU LD 2.21) 37132934d5bSPali Rohár echo >>$m 'PCILIB_LDFLAGS+=-Wl,--exclude-all-symbols' 372d7ea742cSMartin Mares fi 373d7ea742cSMartin Maresfi 374d7ea742cSMartin Maresecho >>$m 'PCILIBPC=$(LIBNAME).pc' 375d7ea742cSMartin Mares 37632934d5bSPali Rohárif [ "$SHARED" != no ] && [ "$LIBEXT" = dll ]; then 37732934d5bSPali Rohár echo >>$m 'PCIIMPLIB=$(PCILIB).a' 37832934d5bSPali Rohárelse 379d0130eb3SPali Rohár echo >>$m 'PCIIMPLIB=$(PCILIB)' 38032934d5bSPali Rohárfi 381d0130eb3SPali Rohár 3823b75e19aSMartin Maresecho >>$c "#define PCILIB_VERSION \"$VERSION\"" 383d66c6ff6SMartin Maresecho >>$c "#define PCILIB_DATE_AMIGAOS \"`echo $DATE | sed 's/\(....\)-\(..\)-\(..\)/\3.\2.\1/'`\"" 384840d09aeSMartin Maressed '/"/{s/^#define \([^ ]*\) "\(.*\)"$/\1=\2/;p;d;};s/^#define \(.*\)/\1=1/' <$c >>$m 385