$(INSTALL) -c -m 644 lspci.8 setpci.8 update-pciids.8 $(DESTDIR)$(MANDIR)/man8
$(INSTALL) -c -m 644 pcilib.7 $(DESTDIR)$(MANDIR)/man7
ifeq ($(SHARED),yes)
- ln -sf $(PCILIB) $(DESTDIR)$(LIBDIR)/$(LIBNAME).so$(ABI_VERSION)
+ifeq ($(LIBEXT),dylib)
+ ln -sf $(PCILIB) $(DESTDIR)$(LIBDIR)/$(LIBNAME)$(ABI_VERSION).$(LIBEXT)
+else
+ ln -sf $(PCILIB) $(DESTDIR)$(LIBDIR)/$(LIBNAME).$(LIBEXT)$(ABI_VERSION)
+endif
endif
ifeq ($(SHARED),yes)
$(INSTALL) -c -m 644 $(PCIINC_INS) $(DESTDIR)$(INCDIR)/pci
$(INSTALL) -c -m 644 lib/$(PCILIBPC) $(DESTDIR)$(PKGCFDIR)
ifeq ($(SHARED),yes)
- ln -sf $(LIBNAME).so$(ABI_VERSION) $(DESTDIR)$(LIBDIR)/$(LIBNAME).so
+ifeq ($(LIBEXT),dylib)
+ ln -sf $(LIBNAME)$(ABI_VERSION).$(LIBEXT) $(DESTDIR)$(LIBDIR)/$(LIBNAME).$(LIBEXT)
+else
+ ln -sf $(LIBNAME).$(LIBEXT)$(ABI_VERSION) $(DESTDIR)$(LIBDIR)/$(LIBNAME).$(LIBEXT)
+endif
endif
uninstall: all
CYGWIN (direct port access)
BeOS (via syscalls)
Haiku (via /dev/misc/poke)
+ Darwin (via IOKit)
It should be very easy to add support for other systems as well (volunteers
wanted; if you want to try that, I'll be very glad to see the patches and
else
CFLAGS += -fPIC -fvisibility=hidden
$(PCILIB): $(addsuffix .o,$(OBJS))
+ ifdef PCI_HAVE_PM_DARWIN_DEVICE
+ $(CC) -shared $(LDFLAGS) $(SONAME) -Wl,-install_name,$(LIBDIR)/$(PCILIB) -o $@ $^ $(LIB_LDLIBS)
+ else
$(CC) -shared $(LDFLAGS) $(SONAME) -Wl,--version-script=libpci.ver -o $@ $^ $(LIB_LDLIBS)
+ endif
endif
$(PCILIBPC): libpci.pc.in
/* In version 3.1, pci_fill_info got new flags => versioned alias */
/* In version 3.2, the same has happened */
STATIC_ALIAS(int pci_fill_info(struct pci_dev *d, int flags), pci_fill_info_v32(d, flags));
+#ifndef __APPLE__
DEFINE_ALIAS(int pci_fill_info_v30(struct pci_dev *d, int flags), pci_fill_info_v32);
DEFINE_ALIAS(int pci_fill_info_v31(struct pci_dev *d, int flags), pci_fill_info_v32);
SYMBOL_VERSION(pci_fill_info_v30, pci_fill_info@LIBPCI_3.0);
SYMBOL_VERSION(pci_fill_info_v31, pci_fill_info@LIBPCI_3.1);
SYMBOL_VERSION(pci_fill_info_v32, pci_fill_info@@LIBPCI_3.2);
+#endif
void
pci_setup_cache(struct pci_dev *d, byte *cache, int len)
echo_n "Looking for access methods..."
LIBRESOLV=-lresolv
+LIBEXT=so
case $sys in
linux*)
LIBRESOLV=
;;
- darwin)
+ darwin*)
echo_n " darwin-device"
echo >>$c '#define PCI_HAVE_PM_DARWIN_DEVICE'
echo >>$m 'WITH_LIBS+=-lresolv -framework CoreFoundation -framework IOKit'
echo >>$c '#define PCI_HAVE_64BIT_ADDRESS'
LIBRESOLV=
+ LIBEXT=dylib
;;
aix)
echo_n " aix-device"
;;
esac
+echo >>$m "LIBEXT="$LIBEXT
echo >>$c '#define PCI_HAVE_PM_DUMP'
echo " dump"
echo >>$m 'LDLIBS=$(WITH_LIBS)'
echo >>$m 'LIB_LDLIBS='
else
- echo >>$m 'PCILIB=$(LIBNAME).so.$(VERSION)'
+ if [ "$LIBEXT" = so ]; then
+ echo >>$m 'PCILIB=$(LIBNAME).$(LIBEXT).$(VERSION)'
+ else
+ echo >>$m 'PCILIB=$(LIBNAME).$(VERSION).$(LIBEXT)'
+ fi
# We link the dependencies _to_ the library, so we do not need explicit deps in .pc
echo >>$m 'LDLIBS='
echo >>$m 'LIB_LDLIBS=$(WITH_LIBS)'
echo >>$c '#define PCI_SHARED_LIB'
- if [ "$SHARED" = yes ] ; then
- echo >>$m 'SONAME=-Wl,-soname,$(LIBNAME).so$(ABI_VERSION)'
+ if [ "$SHARED" = yes -a "$LIBEXT" = so ]; then
+ echo >>$m 'SONAME=-Wl,-soname,$(LIBNAME).$(LIBEXT)$(ABI_VERSION)'
fi
fi
echo >>$m 'PCILIBPC=$(LIBNAME).pc'
#ifdef PCI_SHARED_LIB
#define PCI_ABI __attribute__((visibility("default")))
+#ifdef __APPLE__
+#define STATIC_ALIAS(_decl, _for) _decl { return _for; }
+#else
#define STATIC_ALIAS(_decl, _for)
+#endif
#define DEFINE_ALIAS(_decl, _for) extern _decl __attribute__((alias(#_for)))
#define SYMBOL_VERSION(_int, _ext) asm(".symver " #_int "," #_ext)
#else