]>
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. |
f683f54a | 47 | host=`echo $HOST | sed -e 's/^\([^-]*\)-\([^-]*\)-\([^-]*\)-\([^-]*\)$/\1-\3/' -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 |
168b4f46 MM |
61 | |
62 | case $sys in | |
0d656226 | 63 | linux*) |
2100f710 MM |
64 | echo_n " sysfs proc" |
65 | echo >>$c '#define PCI_HAVE_PM_LINUX_SYSFS' | |
66 | echo >>$c '#define PCI_HAVE_PM_LINUX_PROC' | |
67 | echo >>$c '#define PCI_HAVE_LINUX_BYTEORDER_H' | |
68 | echo >>$c '#define PCI_PATH_PROC_BUS_PCI "/proc/bus/pci"' | |
69 | echo >>$c '#define PCI_PATH_SYS_BUS_PCI "/sys/bus/pci"' | |
168b4f46 | 70 | case $cpu in |
f683f54a | 71 | i?86|x86_64) echo_n " i386-ports" |
489233b4 | 72 | echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' |
168b4f46 | 73 | ;; |
168b4f46 | 74 | esac |
15296723 | 75 | echo >>$c '#define PCI_HAVE_64BIT_ADDRESS' |
168b4f46 | 76 | ;; |
0d656226 | 77 | sunos) |
8fc75dbc | 78 | case $cpu in |
f683f54a | 79 | i?86) echo_n " i386-ports" |
489233b4 | 80 | echo >>$c "#define PCI_HAVE_PM_INTEL_CONF" |
8fc75dbc MM |
81 | ;; |
82 | *) | |
545d5126 | 83 | echo " The PCI library does not support Solaris for this architecture: $cpu" |
8fc75dbc MM |
84 | exit 1 |
85 | ;; | |
86 | esac | |
e49ed044 | 87 | echo >>$c '#define PCI_HAVE_STDINT_H' |
8fc75dbc | 88 | ;; |
657bd95d | 89 | freebsd*) |
14d6c0a3 | 90 | echo_n " fbsd-device" |
489233b4 MM |
91 | echo >>$c '#define PCI_HAVE_PM_FBSD_DEVICE' |
92 | echo >>$c '#define PCI_PATH_FBSD_DEVICE "/dev/pci"' | |
d0097572 MM |
93 | if [ "$realsys" != "GNU/kFreeBSD" ] ; then |
94 | LIBRESOLV= | |
95 | fi | |
168b4f46 | 96 | ;; |
b6359063 MM |
97 | openbsd) |
98 | echo_n " obsd-device" | |
99 | echo >>$c '#define PCI_HAVE_PM_OBSD_DEVICE' | |
100 | echo >>$c '#define PCI_PATH_OBSD_DEVICE "/dev/pci"' | |
17b215b0 | 101 | LIBRESOLV= |
b6359063 | 102 | ;; |
0d656226 | 103 | aix) |
14d6c0a3 | 104 | echo_n " aix-device" |
489233b4 | 105 | echo >>$c '#define PCI_HAVE_PM_AIX_DEVICE' |
840d09ae MM |
106 | echo >>$m 'CFLAGS=-g' |
107 | echo >>$m 'INSTALL=installbsd' | |
108 | echo >>$m 'DIRINSTALL=mkdir -p' | |
14d6c0a3 | 109 | ;; |
0d656226 | 110 | netbsd) |
848b4347 | 111 | echo_n " nbsd-libpci" |
489233b4 MM |
112 | echo >>$c '#define PCI_HAVE_PM_NBSD_LIBPCI' |
113 | echo >>$c '#define PCI_PATH_NBSD_DEVICE "/dev/pci0"' | |
d7ea742c MM |
114 | echo >>$m 'LIBNAME=libpciutils' |
115 | echo >>$m 'WITH_LIBS+=-lpci' | |
17b215b0 | 116 | LIBRESOLV= |
848b4347 | 117 | ;; |
0d656226 | 118 | gnu) |
8fc75dbc | 119 | echo_n " i386-ports" |
489233b4 | 120 | echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' |
80459c65 | 121 | ;; |
550d67d1 MM |
122 | cygwin) |
123 | echo_n " i386-ports" | |
124 | echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' | |
d4553175 | 125 | echo >>$m 'WITH_LIBS+=-lioperm' |
550d67d1 | 126 | ;; |
40e253d7 FR |
127 | beos|haiku) |
128 | case $cpu in | |
129 | i?86|x86_64) echo_n " i386-ports" | |
130 | echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' | |
131 | ;; | |
132 | esac | |
133 | echo >>$c '#define PCI_HAVE_STDINT_H' | |
134 | ;; | |
135 | *) | |
80459c65 | 136 | echo " Unfortunately, your OS is not supported by the PCI Library" |
168b4f46 MM |
137 | exit 1 |
138 | ;; | |
727ce158 | 139 | esac |
168b4f46 | 140 | |
489233b4 | 141 | echo >>$c '#define PCI_HAVE_PM_DUMP' |
727ce158 | 142 | echo " dump" |
cc062b4a MM |
143 | |
144 | echo_n "Checking for zlib support... " | |
3b75e19a MM |
145 | if [ "$ZLIB" = yes -o "$ZLIB" = no ] ; then |
146 | echo "$ZLIB (set manually)" | |
cc062b4a | 147 | else |
ff94bc05 | 148 | if [ -f /usr/include/zlib.h -o -f /usr/local/include/zlib.h ] ; then |
3b75e19a | 149 | ZLIB=yes |
cc062b4a | 150 | else |
3b75e19a | 151 | ZLIB=no |
cc062b4a | 152 | fi |
3b75e19a | 153 | echo "$ZLIB (auto-detected)" |
cc062b4a | 154 | fi |
3b75e19a | 155 | if [ "$ZLIB" = yes ] ; then |
cc062b4a | 156 | echo >>$c '#define PCI_COMPRESSED_IDS' |
840d09ae | 157 | echo >>$c '#define PCI_IDS "pci.ids.gz"' |
5670e427 | 158 | echo >>$m 'LIBZ=-lz' |
d7ea742c | 159 | echo >>$m 'WITH_LIBS+=$(LIBZ)' |
cc062b4a | 160 | else |
840d09ae | 161 | echo >>$c '#define PCI_IDS "pci.ids"' |
cc062b4a | 162 | fi |
3b75e19a MM |
163 | echo >>$c "#define PCI_PATH_IDS_DIR \"$IDSDIR\"" |
164 | ||
165 | echo_n "Checking for DNS support... " | |
166 | if [ "$DNS" = yes -o "$DNS" = no ] ; then | |
167 | echo "$DNS (set manually)" | |
168 | else | |
169 | if [ -f /usr/include/resolv.h ] ; then | |
170 | DNS=yes | |
171 | else | |
172 | DNS=no | |
173 | fi | |
174 | echo "$DNS (auto-detected)" | |
175 | fi | |
176 | if [ "$DNS" = yes ] ; then | |
177 | echo >>$c "#define PCI_USE_DNS" | |
cd2f6a34 | 178 | echo >>$c "#define PCI_ID_DOMAIN \"pci.id.ucw.cz\"" |
17b215b0 | 179 | echo >>$m "WITH_LIBS+=$LIBRESOLV" |
3b75e19a | 180 | fi |
cc062b4a | 181 | |
17ec7e70 MM |
182 | if [ "$sys" = linux ] ; then |
183 | echo_n "Checking for libkmod... " | |
184 | LIBKMOD_DETECTED= | |
5bfe14fd MM |
185 | if [ -z "$PKG_CONFIG" ] ; then |
186 | PKG_CONFIG=pkg-config | |
187 | fi | |
17ec7e70 | 188 | if [ "$LIBKMOD" != no ] ; then |
5bfe14fd MM |
189 | if ! which $PKG_CONFIG >/dev/null ; then |
190 | echo_n "($PKG_CONFIG not found) " | |
191 | elif $PKG_CONFIG libkmod ; then | |
17ec7e70 MM |
192 | LIBKMOD_DETECTED=1 |
193 | fi | |
194 | fi | |
195 | if [ "$LIBKMOD" = yes -o "$LIBKMOD" = no ] ; then | |
196 | echo "$LIBKMOD (set manually)" | |
197 | if [ "$LIBKMOD" = yes -a -z "$LIBKMOD_DETECTED" ] ; then | |
198 | echo "Requested use of libkmod, but it is not available. Giving up." | |
199 | exit 1 | |
200 | fi | |
201 | else | |
202 | if [ -n "$LIBKMOD_DETECTED" ] ; then | |
203 | LIBKMOD=yes | |
204 | else | |
205 | LIBKMOD=no | |
206 | fi | |
207 | echo "$LIBKMOD (auto-detected)" | |
208 | fi | |
209 | if [ "$LIBKMOD" = yes ] ; then | |
210 | echo >>$c "#define PCI_USE_LIBKMOD" | |
5bfe14fd MM |
211 | echo >>$m "LIBKMOD_CFLAGS=$($PKG_CONFIG --cflags libkmod)" |
212 | echo >>$m "LIBKMOD_LIBS=$($PKG_CONFIG --libs libkmod)" | |
17ec7e70 MM |
213 | fi |
214 | fi | |
215 | ||
d7ea742c MM |
216 | echo "Checking whether to build a shared library... $SHARED (set manually)" |
217 | if [ "$SHARED" = no ] ; then | |
218 | echo >>$m 'PCILIB=$(LIBNAME).a' | |
219 | echo >>$m 'LDLIBS=$(WITH_LIBS)' | |
220 | echo >>$m 'LIB_LDLIBS=' | |
221 | else | |
5ad89ed9 | 222 | echo >>$m 'PCILIB=$(LIBNAME).so.$(VERSION)' |
d7ea742c MM |
223 | # We link the dependencies _to_ the library, so we do not need explicit deps in .pc |
224 | echo >>$m 'LDLIBS=' | |
225 | echo >>$m 'LIB_LDLIBS=$(WITH_LIBS)' | |
59a0211a | 226 | echo >>$c '#define PCI_SHARED_LIB' |
d7ea742c MM |
227 | if [ "$SHARED" = yes ] ; then |
228 | echo >>$m 'SONAME=-Wl,-soname,$(LIBNAME).so$(ABI_VERSION)' | |
229 | fi | |
230 | fi | |
231 | echo >>$m 'PCILIBPC=$(LIBNAME).pc' | |
232 | ||
3b75e19a | 233 | echo >>$c "#define PCILIB_VERSION \"$VERSION\"" |
840d09ae | 234 | sed '/"/{s/^#define \([^ ]*\) "\(.*\)"$/\1=\2/;p;d;};s/^#define \(.*\)/\1=1/' <$c >>$m |