]>
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 MM |
8 | echo_n() { |
9 | if [ -n "$BASH" ] | |
10 | then | |
11 | echo -n "$*" | |
12 | else | |
13 | echo "$*\c" | |
14 | fi | |
15 | } | |
16 | ||
3b75e19a MM |
17 | if [ -z "$VERSION" -o -z "$IDSDIR" ] ; then |
18 | echo >&2 "Please run the configure script from the top-level Makefile" | |
19 | exit 1 | |
14d6c0a3 | 20 | fi |
3b75e19a MM |
21 | |
22 | echo_n "Configuring libpci for your system..." | |
23 | if [ -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 | 44 | fi |
f683f54a | 45 | [ -n "$RELEASE" ] && rel="${RELEASE}" |
b0eb18cc | 46 | # CAVEAT: tr on Solaris is a bit weird and the extra [] is otherwise harmless. |
3c93f3c6 | 47 | host=`echo $HOST | sed -e 's/^\([^-]*\)-\([^-]*\)-\([^-]*\)-\([^-]*\)$/\1-\3/' -e 's/^\([^-]*\)-\([^-]*\)-\([^-]*\)$/\1-\2/' -e 's/^\([^-]*\)-\([^-]*\)$/\1--\2/' | tr '[A-Z]' '[a-z]'` |
0d656226 MM |
48 | cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` |
49 | sys=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` | |
f683f54a | 50 | echo " $host $rel $cpu $sys" |
168b4f46 | 51 | |
727ce158 | 52 | c=config.h |
840d09ae | 53 | m=config.mk |
59a0211a | 54 | echo >$c '#define PCI_CONFIG_H' |
daf2ef4e | 55 | echo >>$c "#define PCI_ARCH_`echo $cpu | tr '[a-z]' '[A-Z]'`" |
b0eb18cc | 56 | echo >>$c "#define PCI_OS_`echo $sys | tr '[a-z]' '[A-Z]'`" |
d7ea742c | 57 | echo >$m 'WITH_LIBS=' |
168b4f46 | 58 | |
14d6c0a3 | 59 | echo_n "Looking for access methods..." |
17b215b0 | 60 | LIBRESOLV=-lresolv |
8d1cb3d7 | 61 | LIBEXT=so |
168b4f46 MM |
62 | |
63 | case $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 | 149 | esac |
168b4f46 | 150 | |
8d1cb3d7 | 151 | echo >>$m "LIBEXT="$LIBEXT |
489233b4 | 152 | echo >>$c '#define PCI_HAVE_PM_DUMP' |
727ce158 | 153 | echo " dump" |
cc062b4a MM |
154 | |
155 | echo_n "Checking for zlib support... " | |
3b75e19a MM |
156 | if [ "$ZLIB" = yes -o "$ZLIB" = no ] ; then |
157 | echo "$ZLIB (set manually)" | |
cc062b4a | 158 | else |
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 | 165 | fi |
3b75e19a | 166 | if [ "$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 | 171 | else |
840d09ae | 172 | echo >>$c '#define PCI_IDS "pci.ids"' |
cc062b4a | 173 | fi |
3b75e19a MM |
174 | echo >>$c "#define PCI_PATH_IDS_DIR \"$IDSDIR\"" |
175 | ||
176 | echo_n "Checking for DNS support... " | |
177 | if [ "$DNS" = yes -o "$DNS" = no ] ; then | |
178 | echo "$DNS (set manually)" | |
179 | else | |
180 | if [ -f /usr/include/resolv.h ] ; then | |
181 | DNS=yes | |
182 | else | |
183 | DNS=no | |
184 | fi | |
185 | echo "$DNS (auto-detected)" | |
186 | fi | |
187 | if [ "$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 | 191 | fi |
cc062b4a | 192 | |
17ec7e70 MM |
193 | if [ "$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 |
242 | fi |
243 | ||
d7ea742c MM |
244 | echo "Checking whether to build a shared library... $SHARED (set manually)" |
245 | if [ "$SHARED" = no ] ; then | |
246 | echo >>$m 'PCILIB=$(LIBNAME).a' | |
247 | echo >>$m 'LDLIBS=$(WITH_LIBS)' | |
248 | echo >>$m 'LIB_LDLIBS=' | |
249 | else | |
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 |
262 | fi | |
263 | echo >>$m 'PCILIBPC=$(LIBNAME).pc' | |
264 | ||
3b75e19a | 265 | echo >>$c "#define PCILIB_VERSION \"$VERSION\"" |
840d09ae | 266 | sed '/"/{s/^#define \([^ ]*\) "\(.*\)"$/\1=\2/;p;d;};s/^#define \(.*\)/\1=1/' <$c >>$m |