]>
Commit | Line | Data |
---|---|---|
727ce158 | 1 | # Makefile for The PCI Library |
ac357d3b | 2 | # (c) 1999--2014 Martin Mares <mj@ucw.cz> |
727ce158 | 3 | |
538a2423 | 4 | # Expects to be invoked from the top-level Makefile and uses lots of its variables. |
727ce158 | 5 | |
ac357d3b | 6 | OBJS=init access generic dump names filter names-hash names-parse names-net names-cache names-hwdb params caps |
489233b4 | 7 | INCL=internal.h pci.h config.h header.h sysdep.h types.h |
727ce158 | 8 | |
489233b4 | 9 | ifdef PCI_HAVE_PM_LINUX_SYSFS |
d7ea742c | 10 | OBJS += sysfs |
11f7b31b MM |
11 | endif |
12 | ||
489233b4 | 13 | ifdef PCI_HAVE_PM_LINUX_PROC |
d7ea742c | 14 | OBJS += proc |
727ce158 MM |
15 | endif |
16 | ||
489233b4 | 17 | ifdef PCI_HAVE_PM_INTEL_CONF |
d7ea742c | 18 | OBJS += i386-ports |
727ce158 MM |
19 | endif |
20 | ||
0a7350fb PR |
21 | ifdef PCI_HAVE_PM_MMIO_CONF |
22 | OBJS += mmio-ports | |
3b355715 | 23 | PCI_USE_PHYSMEM = 1 |
0a7350fb PR |
24 | endif |
25 | ||
2ba0f6f4 PR |
26 | ifdef PCI_HAVE_PM_ECAM |
27 | OBJS += ecam | |
3b355715 | 28 | PCI_USE_PHYSMEM = 1 |
2ba0f6f4 PR |
29 | endif |
30 | ||
489233b4 | 31 | ifdef PCI_HAVE_PM_DUMP |
d7ea742c | 32 | OBJS += dump |
727ce158 MM |
33 | endif |
34 | ||
489233b4 | 35 | ifdef PCI_HAVE_PM_FBSD_DEVICE |
d7ea742c | 36 | OBJS += fbsd-device |
168b4f46 | 37 | CFLAGS += -I/usr/src/sys |
45902995 MM |
38 | ifdef FREEBSD_SYS |
39 | CFLAGS += -I${FREEBSD_SYS} | |
40 | endif | |
168b4f46 MM |
41 | endif |
42 | ||
b6359063 | 43 | ifdef PCI_HAVE_PM_OBSD_DEVICE |
d7ea742c | 44 | OBJS += obsd-device |
b6359063 MM |
45 | endif |
46 | ||
489233b4 | 47 | ifdef PCI_HAVE_PM_AIX_DEVICE |
d7ea742c | 48 | OBJS += aix-device |
14d6c0a3 MM |
49 | endif |
50 | ||
489233b4 | 51 | ifdef PCI_HAVE_PM_NBSD_LIBPCI |
d7ea742c | 52 | OBJS += nbsd-libpci |
848b4347 MM |
53 | endif |
54 | ||
7cb1afbe | 55 | ifdef PCI_HAVE_PM_DARWIN_DEVICE |
a54d4bd1 | 56 | OBJS += darwin |
7cb1afbe RY |
57 | endif |
58 | ||
0547ded8 G |
59 | ifdef PCI_HAVE_PM_SYLIXOS_DEVICE |
60 | OBJS += sylixos-device | |
61 | endif | |
62 | ||
0a913370 JL |
63 | ifdef PCI_HAVE_PM_HURD_CONF |
64 | OBJS += hurd | |
65 | endif | |
66 | ||
26c8b543 PR |
67 | ifdef PCI_HAVE_PM_WIN32_CFGMGR32 |
68 | OBJS += emulated | |
69 | OBJS += win32-cfgmgr32 | |
70 | endif | |
71 | ||
aa5a16ef PR |
72 | ifdef PCI_HAVE_PM_WIN32_KLDBG |
73 | OBJS += win32-kldbg | |
74 | endif | |
75 | ||
2d0af6fc PR |
76 | ifdef PCI_HAVE_PM_WIN32_SYSDBG |
77 | OBJS += win32-sysdbg | |
78 | endif | |
79 | ||
db5f48e7 PR |
80 | ifdef PCI_OS_WINDOWS |
81 | OBJS += win32-helpers | |
82 | endif | |
83 | ||
3b355715 | 84 | ifdef PCI_USE_PHYSMEM |
7d347ab7 PR |
85 | ifndef PCI_OS_WINDOWS |
86 | ifndef PCI_OS_DJGPP | |
87 | OBJS += physmem-posix | |
88 | endif | |
89 | endif | |
3b355715 | 90 | endif |
7d347ab7 | 91 | |
5b52ae79 A |
92 | ifdef PCI_HAVE_PM_AOS_EXPANSION |
93 | OBJS += aos-expansion | |
94 | endif | |
95 | ||
5670e427 | 96 | all: $(PCILIB) $(PCILIBPC) |
727ce158 | 97 | |
d7ea742c MM |
98 | ifeq ($(SHARED),no) |
99 | $(PCILIB): $(addsuffix .o,$(OBJS)) | |
727ce158 | 100 | rm -f $@ |
325a3c50 MM |
101 | $(AR) rcs $@ $^ |
102 | $(RANLIB) $@ | |
d7ea742c | 103 | else |
32934d5b PR |
104 | ifeq ($(LIBEXT),dll) |
105 | all: $(PCIIMPDEF) $(PCIIMPLIB) | |
106 | build.def: $(PCIIMPDEF) | |
107 | $(PCIIMPDEF): libpci.ver ver2def.pl | |
108 | perl ver2def.pl libpci.ver $(PCILIB) build.def $(PCIIMPDEF) | |
109 | $(PCIIMPLIB): $(PCIIMPDEF) | |
110 | $(DLLTOOL) --input-def $< --output-lib $@ | |
59cb6568 | 111 | comma := , |
2e2fe038 | 112 | dllrsrc.rc: winrsrc.rc.in |
59cb6568 PR |
113 | sed <$< >$@ -e 's,@PCILIB_VERSION@,$(PCILIB_VERSION),' \ |
114 | -e 's,@PCILIB_VERSION_WINRC@,$(subst .,\$(comma),$(PCILIB_VERSION).0),' \ | |
2e2fe038 PR |
115 | -e 's,@FILENAME@,$(PCILIB),' \ |
116 | -e 's,@DESCRIPTION@,libpci,' \ | |
117 | -e 's,@LIBRARY_BUILD@,1,' \ | |
59cb6568 PR |
118 | -e 's,@DEBUG_BUILD@,$(if $(findstring -g,$(CFLAGS)),1,0),' |
119 | dllrsrc.o: dllrsrc.rc | |
120 | $(WINDRES) --input=$< --output=$@ --input-format=rc --output-format=coff | |
121 | OBJS += dllrsrc | |
32934d5b | 122 | endif |
2f421184 | 123 | CFLAGS += -fPIC -fvisibility=hidden |
d7ea742c | 124 | $(PCILIB): $(addsuffix .o,$(OBJS)) |
a65bb452 | 125 | $(CC) -shared $(CFLAGS) $(LDFLAGS) $(PCILIB_LDFLAGS) -o $@ $^ $(LIB_LDLIBS) |
32934d5b PR |
126 | ifeq ($(LIBEXT),dll) |
127 | $(PCILIB): build.def | |
128 | endif | |
d7ea742c | 129 | endif |
727ce158 | 130 | |
d7ea742c | 131 | $(PCILIBPC): libpci.pc.in |
5670e427 MM |
132 | sed <$< >$@ -e 's,@PREFIX@,$(PREFIX),' \ |
133 | -e 's,@INCDIR@,$(INCDIR),' \ | |
134 | -e 's,@LIBDIR@,$(LIBDIR),' \ | |
135 | -e 's,@IDSDIR@,$(IDSDIR),' \ | |
136 | -e 's,@VERSION@,$(VERSION),' \ | |
a6665cfb BG |
137 | -e 's,@LDLIBS@,$(LDLIBS),' \ |
138 | -e 's,@WITH_LIBS@,$(WITH_LIBS),' | |
5670e427 | 139 | |
4dd39346 | 140 | init.o: init.c $(INCL) |
727ce158 | 141 | access.o: access.c $(INCL) |
d6dcc545 | 142 | params.o: params.c $(INCL) |
ba9eff21 | 143 | i386-ports.o: i386-ports.c $(INCL) i386-io-access.h i386-io-beos.h i386-io-cygwin.h i386-io-djgpp.h i386-io-haiku.h i386-io-hurd.h i386-io-linux.h i386-io-openbsd.h i386-io-sunos.h i386-io-windows.h |
3b355715 PR |
144 | mmio-ports.o: mmio-ports.c $(INCL) physmem.h physmem-access.h |
145 | ecam.o: ecam.c $(INCL) physmem.h physmem-access.h | |
30e9f21e MM |
146 | proc.o: proc.c $(INCL) |
147 | sysfs.o: sysfs.c $(INCL) | |
727ce158 | 148 | generic.o: generic.c $(INCL) |
08609192 | 149 | emulated.o: emulated.c $(INCL) |
727ce158 | 150 | syscalls.o: syscalls.c $(INCL) |
38a9e3c3 | 151 | obsd-device.o: obsd-device.c $(INCL) |
168b4f46 | 152 | fbsd-device.o: fbsd-device.c $(INCL) |
14d6c0a3 | 153 | aix-device.o: aix-device.c $(INCL) |
727ce158 | 154 | dump.o: dump.c $(INCL) |
752d4d9a MM |
155 | names.o: names.c $(INCL) names.h |
156 | names-cache.o: names-cache.c $(INCL) names.h | |
157 | names-hash.o: names-hash.c $(INCL) names.h | |
158 | names-net.o: names-net.c $(INCL) names.h | |
159 | names-parse.o: names-parse.c $(INCL) names.h | |
ac357d3b | 160 | names-hwdb.o: names-hwdb.c $(INCL) names.h |
727ce158 | 161 | filter.o: filter.c $(INCL) |
848b4347 | 162 | nbsd-libpci.o: nbsd-libpci.c $(INCL) |
0a913370 | 163 | hurd.o: hurd.c $(INCL) |
db5f48e7 PR |
164 | win32-helpers.o: win32-helpers.c $(INCL) win32-helpers.h |
165 | win32-cfgmgr32.o: win32-cfgmgr32.c $(INCL) win32-helpers.h | |
166 | win32-kldbg.o: win32-kldbg.c $(INCL) win32-helpers.h | |
167 | win32-sysdbg.o: win32-sysdbg.c $(INCL) win32-helpers.h | |
168 | i386-io-windows.h: win32-helpers.h | |
26c8b543 PR |
169 | |
170 | # MinGW32 toolchain has some required Win32 header files in /ddk subdirectory. | |
171 | # But these header files include another header files from /ddk subdirectory | |
172 | # and expect that build system has already set /ddk subdirectory into includes. | |
173 | # So include /ddk subdirectory of each system predefined include path via -I. | |
174 | ifdef PCI_HAVE_PM_WIN32_CFGMGR32 | |
175 | DDKCFLAGS:=$(shell echo | $(CC) $(CFLAGS) -E -Wp,-v -o /dev/null - 2>&1 | sed -n 's/^ \(.*\)/-I\1\/ddk/p') | |
176 | win32-cfgmgr32.o: override CFLAGS+=$(DDKCFLAGS) | |
177 | endif |