]> git.ipfire.org Git - thirdparty/pciutils.git/blame - lib/configure
lib/configure: Also accept host tuples without vendor string
[thirdparty/pciutils.git] / lib / configure
CommitLineData
727ce158 1#!/bin/sh
3b75e19a 2# Configuration script for the PCI library
17ec7e70 3# (c) 1998--2013 Martin Mares <mj@ucw.cz>
666422c6
MM
4
5LC_ALL=C
6export LC_ALL
727ce158 7
14d6c0a3
MM
8echo_n() {
9 if [ -n "$BASH" ]
10 then
11 echo -n "$*"
12 else
13 echo "$*\c"
14 fi
15}
16
3b75e19a
MM
17if [ -z "$VERSION" -o -z "$IDSDIR" ] ; then
18 echo >&2 "Please run the configure script from the top-level Makefile"
19 exit 1
14d6c0a3 20fi
3b75e19a
MM
21
22echo_n "Configuring libpci for your system..."
23if [ -z "$HOST" ] ; then
24 sys=`uname -s`
25 rel=`uname -r`
d0097572 26 realsys="$sys"
3b75e19a
MM
27 if [ "$sys" = "AIX" -a -x /usr/bin/oslevel -a -x /usr/sbin/lsattr ]
28 then
29 rel=`/usr/bin/oslevel`
30 proc=`/usr/sbin/lsdev -C -c processor -S available -F name | head -1`
31 cpu=`/usr/sbin/lsattr -F value -l $proc -a type | sed 's/_.*//'`
32 else
40e253d7 33 cpu=`uname -m | sed 's/^i.86$/i386/;s/^sun4u$/sparc64/;s/^i86pc$/i386/;s/^BePC$/i386/;s/^BeMac$/powerpc/;s/^BeBox$/powerpc/'`
3b75e19a
MM
34 fi
35 if [ "$sys" = "GNU/kFreeBSD" -o "$sys" = "DragonFly" ]
36 then
37 sys=freebsd
38 fi
6c4e6afe 39 if [ "$sys" = "CYGWIN_NT-5.1" -o "$sys" = "CYGWIN_NT-6.0" ]
550d67d1
MM
40 then
41 sys=cygwin
42 fi
3b75e19a 43 HOST=${3:-$cpu-$sys}
d1058e9d 44fi
f683f54a 45[ -n "$RELEASE" ] && rel="${RELEASE}"
b0eb18cc 46# CAVEAT: tr on Solaris is a bit weird and the extra [] is otherwise harmless.
3c93f3c6 47host=`echo $HOST | sed -e 's/^\([^-]*\)-\([^-]*\)-\([^-]*\)-\([^-]*\)$/\1-\3/' -e 's/^\([^-]*\)-\([^-]*\)-\([^-]*\)$/\1-\2/' -e 's/^\([^-]*\)-\([^-]*\)$/\1--\2/' | tr '[A-Z]' '[a-z]'`
0d656226
MM
48cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
49sys=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
f683f54a 50echo " $host $rel $cpu $sys"
168b4f46 51
727ce158 52c=config.h
840d09ae 53m=config.mk
59a0211a 54echo >$c '#define PCI_CONFIG_H'
daf2ef4e 55echo >>$c "#define PCI_ARCH_`echo $cpu | tr '[a-z]' '[A-Z]'`"
b0eb18cc 56echo >>$c "#define PCI_OS_`echo $sys | tr '[a-z]' '[A-Z]'`"
d7ea742c 57echo >$m 'WITH_LIBS='
168b4f46 58
14d6c0a3 59echo_n "Looking for access methods..."
17b215b0 60LIBRESOLV=-lresolv
8d1cb3d7 61LIBEXT=so
168b4f46
MM
62
63case $sys in
0d656226 64 linux*)
2100f710
MM
65 echo_n " sysfs proc"
66 echo >>$c '#define PCI_HAVE_PM_LINUX_SYSFS'
67 echo >>$c '#define PCI_HAVE_PM_LINUX_PROC'
68 echo >>$c '#define PCI_HAVE_LINUX_BYTEORDER_H'
69 echo >>$c '#define PCI_PATH_PROC_BUS_PCI "/proc/bus/pci"'
70 echo >>$c '#define PCI_PATH_SYS_BUS_PCI "/sys/bus/pci"'
168b4f46 71 case $cpu in
f683f54a 72 i?86|x86_64) echo_n " i386-ports"
489233b4 73 echo >>$c '#define PCI_HAVE_PM_INTEL_CONF'
168b4f46 74 ;;
168b4f46 75 esac
15296723 76 echo >>$c '#define PCI_HAVE_64BIT_ADDRESS'
168b4f46 77 ;;
0d656226 78 sunos)
8fc75dbc 79 case $cpu in
f683f54a 80 i?86) echo_n " i386-ports"
489233b4 81 echo >>$c "#define PCI_HAVE_PM_INTEL_CONF"
8fc75dbc
MM
82 ;;
83 *)
545d5126 84 echo " The PCI library does not support Solaris for this architecture: $cpu"
8fc75dbc
MM
85 exit 1
86 ;;
87 esac
e49ed044 88 echo >>$c '#define PCI_HAVE_STDINT_H'
8fc75dbc 89 ;;
657bd95d 90 freebsd*)
14d6c0a3 91 echo_n " fbsd-device"
489233b4
MM
92 echo >>$c '#define PCI_HAVE_PM_FBSD_DEVICE'
93 echo >>$c '#define PCI_PATH_FBSD_DEVICE "/dev/pci"'
d0097572
MM
94 if [ "$realsys" != "GNU/kFreeBSD" ] ; then
95 LIBRESOLV=
96 fi
168b4f46 97 ;;
b6359063
MM
98 openbsd)
99 echo_n " obsd-device"
100 echo >>$c '#define PCI_HAVE_PM_OBSD_DEVICE'
101 echo >>$c '#define PCI_PATH_OBSD_DEVICE "/dev/pci"'
17b215b0 102 LIBRESOLV=
b6359063 103 ;;
7cb1afbe 104
8d1cb3d7 105 darwin*)
4e35117c 106 echo_n " darwin"
7cb1afbe
RY
107 echo >>$c '#define PCI_HAVE_PM_DARWIN_DEVICE'
108 echo >>$m 'WITH_LIBS+=-lresolv -framework CoreFoundation -framework IOKit'
109 echo >>$c '#define PCI_HAVE_64BIT_ADDRESS'
110 LIBRESOLV=
8d1cb3d7 111 LIBEXT=dylib
7cb1afbe 112 ;;
0d656226 113 aix)
14d6c0a3 114 echo_n " aix-device"
489233b4 115 echo >>$c '#define PCI_HAVE_PM_AIX_DEVICE'
840d09ae
MM
116 echo >>$m 'CFLAGS=-g'
117 echo >>$m 'INSTALL=installbsd'
118 echo >>$m 'DIRINSTALL=mkdir -p'
14d6c0a3 119 ;;
0d656226 120 netbsd)
848b4347 121 echo_n " nbsd-libpci"
489233b4
MM
122 echo >>$c '#define PCI_HAVE_PM_NBSD_LIBPCI'
123 echo >>$c '#define PCI_PATH_NBSD_DEVICE "/dev/pci0"'
d7ea742c
MM
124 echo >>$m 'LIBNAME=libpciutils'
125 echo >>$m 'WITH_LIBS+=-lpci'
17b215b0 126 LIBRESOLV=
848b4347 127 ;;
0d656226 128 gnu)
8fc75dbc 129 echo_n " i386-ports"
489233b4 130 echo >>$c '#define PCI_HAVE_PM_INTEL_CONF'
80459c65 131 ;;
550d67d1
MM
132 cygwin)
133 echo_n " i386-ports"
134 echo >>$c '#define PCI_HAVE_PM_INTEL_CONF'
d4553175 135 echo >>$m 'WITH_LIBS+=-lioperm'
550d67d1 136 ;;
40e253d7
FR
137 beos|haiku)
138 case $cpu in
139 i?86|x86_64) echo_n " i386-ports"
140 echo >>$c '#define PCI_HAVE_PM_INTEL_CONF'
141 ;;
142 esac
143 echo >>$c '#define PCI_HAVE_STDINT_H'
144 ;;
145 *)
80459c65 146 echo " Unfortunately, your OS is not supported by the PCI Library"
168b4f46
MM
147 exit 1
148 ;;
727ce158 149esac
168b4f46 150
8d1cb3d7 151echo >>$m "LIBEXT="$LIBEXT
489233b4 152echo >>$c '#define PCI_HAVE_PM_DUMP'
727ce158 153echo " dump"
cc062b4a
MM
154
155echo_n "Checking for zlib support... "
3b75e19a
MM
156if [ "$ZLIB" = yes -o "$ZLIB" = no ] ; then
157 echo "$ZLIB (set manually)"
cc062b4a 158else
ff94bc05 159 if [ -f /usr/include/zlib.h -o -f /usr/local/include/zlib.h ] ; then
3b75e19a 160 ZLIB=yes
cc062b4a 161 else
3b75e19a 162 ZLIB=no
cc062b4a 163 fi
3b75e19a 164 echo "$ZLIB (auto-detected)"
cc062b4a 165fi
3b75e19a 166if [ "$ZLIB" = yes ] ; then
cc062b4a 167 echo >>$c '#define PCI_COMPRESSED_IDS'
840d09ae 168 echo >>$c '#define PCI_IDS "pci.ids.gz"'
5670e427 169 echo >>$m 'LIBZ=-lz'
d7ea742c 170 echo >>$m 'WITH_LIBS+=$(LIBZ)'
cc062b4a 171else
840d09ae 172 echo >>$c '#define PCI_IDS "pci.ids"'
cc062b4a 173fi
3b75e19a
MM
174echo >>$c "#define PCI_PATH_IDS_DIR \"$IDSDIR\""
175
176echo_n "Checking for DNS support... "
177if [ "$DNS" = yes -o "$DNS" = no ] ; then
178 echo "$DNS (set manually)"
179else
180 if [ -f /usr/include/resolv.h ] ; then
181 DNS=yes
182 else
183 DNS=no
184 fi
185 echo "$DNS (auto-detected)"
186fi
187if [ "$DNS" = yes ] ; then
188 echo >>$c "#define PCI_USE_DNS"
cd2f6a34 189 echo >>$c "#define PCI_ID_DOMAIN \"pci.id.ucw.cz\""
17b215b0 190 echo >>$m "WITH_LIBS+=$LIBRESOLV"
3b75e19a 191fi
cc062b4a 192
17ec7e70
MM
193if [ "$sys" = linux ] ; then
194 echo_n "Checking for libkmod... "
195 LIBKMOD_DETECTED=
5bfe14fd
MM
196 if [ -z "$PKG_CONFIG" ] ; then
197 PKG_CONFIG=pkg-config
198 fi
17ec7e70 199 if [ "$LIBKMOD" != no ] ; then
5bfe14fd
MM
200 if ! which $PKG_CONFIG >/dev/null ; then
201 echo_n "($PKG_CONFIG not found) "
202 elif $PKG_CONFIG libkmod ; then
17ec7e70
MM
203 LIBKMOD_DETECTED=1
204 fi
205 fi
206 if [ "$LIBKMOD" = yes -o "$LIBKMOD" = no ] ; then
207 echo "$LIBKMOD (set manually)"
208 if [ "$LIBKMOD" = yes -a -z "$LIBKMOD_DETECTED" ] ; then
209 echo "Requested use of libkmod, but it is not available. Giving up."
210 exit 1
211 fi
212 else
213 if [ -n "$LIBKMOD_DETECTED" ] ; then
214 LIBKMOD=yes
215 else
216 LIBKMOD=no
217 fi
218 echo "$LIBKMOD (auto-detected)"
219 fi
220 if [ "$LIBKMOD" = yes ] ; then
221 echo >>$c "#define PCI_USE_LIBKMOD"
5bfe14fd
MM
222 echo >>$m "LIBKMOD_CFLAGS=$($PKG_CONFIG --cflags libkmod)"
223 echo >>$m "LIBKMOD_LIBS=$($PKG_CONFIG --libs libkmod)"
17ec7e70 224 fi
bca6bbaf
MM
225
226 echo_n "Checking for udev hwdb support... "
227 if [ "$HWDB" = yes -o "$HWDB" = no ] ; then
228 echo "$HWDB (set manually)"
229 else
230 if `which pkg-config >/dev/null && pkg-config --atleast-version=196 libudev` ; then
231 HWDB=yes
232 else
233 HWDB=no
234 fi
235 echo "$HWDB (auto-detected)"
236 fi
237 if [ "$HWDB" = yes ] ; then
238 echo >>$c '#define PCI_HAVE_HWDB'
239 echo >>$m 'LIBUDEV=-ludev'
240 echo >>$m 'WITH_LIBS+=$(LIBUDEV)'
241 fi
17ec7e70
MM
242fi
243
d7ea742c
MM
244echo "Checking whether to build a shared library... $SHARED (set manually)"
245if [ "$SHARED" = no ] ; then
246 echo >>$m 'PCILIB=$(LIBNAME).a'
247 echo >>$m 'LDLIBS=$(WITH_LIBS)'
248 echo >>$m 'LIB_LDLIBS='
249else
8d1cb3d7
RY
250 if [ "$LIBEXT" = so ]; then
251 echo >>$m 'PCILIB=$(LIBNAME).$(LIBEXT).$(VERSION)'
252 else
253 echo >>$m 'PCILIB=$(LIBNAME).$(VERSION).$(LIBEXT)'
254 fi
d7ea742c
MM
255 # We link the dependencies _to_ the library, so we do not need explicit deps in .pc
256 echo >>$m 'LDLIBS='
257 echo >>$m 'LIB_LDLIBS=$(WITH_LIBS)'
59a0211a 258 echo >>$c '#define PCI_SHARED_LIB'
8d1cb3d7
RY
259 if [ "$SHARED" = yes -a "$LIBEXT" = so ]; then
260 echo >>$m 'SONAME=-Wl,-soname,$(LIBNAME).$(LIBEXT)$(ABI_VERSION)'
d7ea742c
MM
261 fi
262fi
263echo >>$m 'PCILIBPC=$(LIBNAME).pc'
264
3b75e19a 265echo >>$c "#define PCILIB_VERSION \"$VERSION\""
840d09ae 266sed '/"/{s/^#define \([^ ]*\) "\(.*\)"$/\1=\2/;p;d;};s/^#define \(.*\)/\1=1/' <$c >>$m