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