xref: /aosp_15_r20/external/pciutils/lib/Makefile (revision c2e0c6b56a71da9abe8df5c8348fb3eb5c2c9251)
1*c2e0c6b5SAndroid Build Coastguard Worker# Makefile for The PCI Library
2*c2e0c6b5SAndroid Build Coastguard Worker# (c) 1999--2014 Martin Mares <[email protected]>
3*c2e0c6b5SAndroid Build Coastguard Worker
4*c2e0c6b5SAndroid Build Coastguard Worker# Expects to be invoked from the top-level Makefile and uses lots of its variables.
5*c2e0c6b5SAndroid Build Coastguard Worker
6*c2e0c6b5SAndroid Build Coastguard WorkerOBJS=init access generic dump names filter names-hash names-parse names-net names-cache names-hwdb params caps
7*c2e0c6b5SAndroid Build Coastguard WorkerINCL=internal.h pci.h config.h header.h sysdep.h types.h
8*c2e0c6b5SAndroid Build Coastguard Worker
9*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_LINUX_SYSFS
10*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += sysfs
11*c2e0c6b5SAndroid Build Coastguard Workerendif
12*c2e0c6b5SAndroid Build Coastguard Worker
13*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_LINUX_PROC
14*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += proc
15*c2e0c6b5SAndroid Build Coastguard Workerendif
16*c2e0c6b5SAndroid Build Coastguard Worker
17*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_INTEL_CONF
18*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += i386-ports
19*c2e0c6b5SAndroid Build Coastguard Workerendif
20*c2e0c6b5SAndroid Build Coastguard Worker
21*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_MMIO_CONF
22*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += mmio-ports
23*c2e0c6b5SAndroid Build Coastguard WorkerPCI_USE_PHYSMEM = 1
24*c2e0c6b5SAndroid Build Coastguard Workerendif
25*c2e0c6b5SAndroid Build Coastguard Worker
26*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_ECAM
27*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += ecam
28*c2e0c6b5SAndroid Build Coastguard WorkerPCI_USE_PHYSMEM = 1
29*c2e0c6b5SAndroid Build Coastguard Workerendif
30*c2e0c6b5SAndroid Build Coastguard Worker
31*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_DUMP
32*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += dump
33*c2e0c6b5SAndroid Build Coastguard Workerendif
34*c2e0c6b5SAndroid Build Coastguard Worker
35*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_FBSD_DEVICE
36*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += fbsd-device
37*c2e0c6b5SAndroid Build Coastguard WorkerCFLAGS += -I/usr/src/sys
38*c2e0c6b5SAndroid Build Coastguard Workerifdef FREEBSD_SYS
39*c2e0c6b5SAndroid Build Coastguard WorkerCFLAGS += -I${FREEBSD_SYS}
40*c2e0c6b5SAndroid Build Coastguard Workerendif
41*c2e0c6b5SAndroid Build Coastguard Workerendif
42*c2e0c6b5SAndroid Build Coastguard Worker
43*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_OBSD_DEVICE
44*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += obsd-device
45*c2e0c6b5SAndroid Build Coastguard Workerendif
46*c2e0c6b5SAndroid Build Coastguard Worker
47*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_AIX_DEVICE
48*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += aix-device
49*c2e0c6b5SAndroid Build Coastguard Workerendif
50*c2e0c6b5SAndroid Build Coastguard Worker
51*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_NBSD_LIBPCI
52*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += nbsd-libpci
53*c2e0c6b5SAndroid Build Coastguard Workerendif
54*c2e0c6b5SAndroid Build Coastguard Worker
55*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_DARWIN_DEVICE
56*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += darwin
57*c2e0c6b5SAndroid Build Coastguard Workerendif
58*c2e0c6b5SAndroid Build Coastguard Worker
59*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_SYLIXOS_DEVICE
60*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += sylixos-device
61*c2e0c6b5SAndroid Build Coastguard Workerendif
62*c2e0c6b5SAndroid Build Coastguard Worker
63*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_HURD_CONF
64*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += hurd
65*c2e0c6b5SAndroid Build Coastguard Workerendif
66*c2e0c6b5SAndroid Build Coastguard Worker
67*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_WIN32_CFGMGR32
68*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += emulated
69*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += win32-cfgmgr32
70*c2e0c6b5SAndroid Build Coastguard Workerendif
71*c2e0c6b5SAndroid Build Coastguard Worker
72*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_WIN32_KLDBG
73*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += win32-kldbg
74*c2e0c6b5SAndroid Build Coastguard Workerendif
75*c2e0c6b5SAndroid Build Coastguard Worker
76*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_WIN32_SYSDBG
77*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += win32-sysdbg
78*c2e0c6b5SAndroid Build Coastguard Workerendif
79*c2e0c6b5SAndroid Build Coastguard Worker
80*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_OS_WINDOWS
81*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += win32-helpers
82*c2e0c6b5SAndroid Build Coastguard Workerendif
83*c2e0c6b5SAndroid Build Coastguard Worker
84*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_USE_PHYSMEM
85*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_OS_WINDOWS
86*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += physmem-windows
87*c2e0c6b5SAndroid Build Coastguard Workerelse ifdef PCI_OS_DJGPP
88*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += physmem-djgpp
89*c2e0c6b5SAndroid Build Coastguard Workerelse
90*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += physmem-posix
91*c2e0c6b5SAndroid Build Coastguard Workerendif
92*c2e0c6b5SAndroid Build Coastguard Workerendif
93*c2e0c6b5SAndroid Build Coastguard Worker
94*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_AOS_EXPANSION
95*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += aos-expansion
96*c2e0c6b5SAndroid Build Coastguard Workerendif
97*c2e0c6b5SAndroid Build Coastguard Worker
98*c2e0c6b5SAndroid Build Coastguard Workerall: $(PCILIB) $(PCILIBPC)
99*c2e0c6b5SAndroid Build Coastguard Worker
100*c2e0c6b5SAndroid Build Coastguard Workerifeq ($(SHARED),no)
101*c2e0c6b5SAndroid Build Coastguard Worker$(PCILIB): $(addsuffix .o,$(OBJS))
102*c2e0c6b5SAndroid Build Coastguard Worker	rm -f $@
103*c2e0c6b5SAndroid Build Coastguard Worker	$(AR) rcs $@ $^
104*c2e0c6b5SAndroid Build Coastguard Worker	$(RANLIB) $@
105*c2e0c6b5SAndroid Build Coastguard Workerelse
106*c2e0c6b5SAndroid Build Coastguard Workerifeq ($(LIBEXT),dll)
107*c2e0c6b5SAndroid Build Coastguard Workerall: $(PCIIMPDEF) $(PCIIMPLIB)
108*c2e0c6b5SAndroid Build Coastguard Workerbuild.def: $(PCIIMPDEF)
109*c2e0c6b5SAndroid Build Coastguard Worker$(PCIIMPDEF): libpci.ver ver2def.pl
110*c2e0c6b5SAndroid Build Coastguard Worker	perl ver2def.pl libpci.ver $(PCILIB) build.def $(PCIIMPDEF)
111*c2e0c6b5SAndroid Build Coastguard Worker$(PCIIMPLIB): $(PCIIMPDEF)
112*c2e0c6b5SAndroid Build Coastguard Worker	$(DLLTOOL) --input-def $< --output-lib $@
113*c2e0c6b5SAndroid Build Coastguard Workercomma := ,
114*c2e0c6b5SAndroid Build Coastguard Workerdllrsrc.rc: winrsrc.rc.in
115*c2e0c6b5SAndroid Build Coastguard Worker	sed <$< >$@ -e 's,@PCILIB_VERSION@,$(PCILIB_VERSION),' \
116*c2e0c6b5SAndroid Build Coastguard Worker		-e 's,@PCILIB_VERSION_WINRC@,$(subst .,\$(comma),$(PCILIB_VERSION).0),' \
117*c2e0c6b5SAndroid Build Coastguard Worker		-e 's,@FILENAME@,$(PCILIB),' \
118*c2e0c6b5SAndroid Build Coastguard Worker		-e 's,@DESCRIPTION@,libpci,' \
119*c2e0c6b5SAndroid Build Coastguard Worker		-e 's,@LIBRARY_BUILD@,1,' \
120*c2e0c6b5SAndroid Build Coastguard Worker		-e 's,@DEBUG_BUILD@,$(if $(findstring -g,$(CFLAGS)),1,0),'
121*c2e0c6b5SAndroid Build Coastguard Workerdllrsrc.o: dllrsrc.rc
122*c2e0c6b5SAndroid Build Coastguard Worker	$(WINDRES) --input=$< --output=$@ --input-format=rc --output-format=coff
123*c2e0c6b5SAndroid Build Coastguard WorkerOBJS += dllrsrc
124*c2e0c6b5SAndroid Build Coastguard Workerendif
125*c2e0c6b5SAndroid Build Coastguard WorkerCFLAGS += -fPIC -fvisibility=hidden
126*c2e0c6b5SAndroid Build Coastguard Worker$(PCILIB): $(addsuffix .o,$(OBJS))
127*c2e0c6b5SAndroid Build Coastguard Worker	$(CC) -shared $(CFLAGS) $(LDFLAGS) $(PCILIB_LDFLAGS) -o $@ $^ $(LIB_LDLIBS)
128*c2e0c6b5SAndroid Build Coastguard Workerifeq ($(LIBEXT),dll)
129*c2e0c6b5SAndroid Build Coastguard Worker$(PCILIB): build.def
130*c2e0c6b5SAndroid Build Coastguard Workerendif
131*c2e0c6b5SAndroid Build Coastguard Workerendif
132*c2e0c6b5SAndroid Build Coastguard Worker
133*c2e0c6b5SAndroid Build Coastguard Worker$(PCILIBPC): libpci.pc.in
134*c2e0c6b5SAndroid Build Coastguard Worker	sed <$< >$@ -e 's,@PREFIX@,$(PREFIX),' \
135*c2e0c6b5SAndroid Build Coastguard Worker		-e 's,@INCDIR@,$(INCDIR),' \
136*c2e0c6b5SAndroid Build Coastguard Worker		-e 's,@LIBDIR@,$(LIBDIR),' \
137*c2e0c6b5SAndroid Build Coastguard Worker		-e 's,@IDSDIR@,$(IDSDIR),' \
138*c2e0c6b5SAndroid Build Coastguard Worker		-e 's,@VERSION@,$(VERSION),' \
139*c2e0c6b5SAndroid Build Coastguard Worker		-e 's,@LDLIBS@,$(LDLIBS),' \
140*c2e0c6b5SAndroid Build Coastguard Worker		-e 's,@WITH_LIBS@,$(WITH_LIBS),'
141*c2e0c6b5SAndroid Build Coastguard Worker
142*c2e0c6b5SAndroid Build Coastguard Workerinit.o: init.c $(INCL)
143*c2e0c6b5SAndroid Build Coastguard Workeraccess.o: access.c $(INCL)
144*c2e0c6b5SAndroid Build Coastguard Workerparams.o: params.c $(INCL)
145*c2e0c6b5SAndroid Build Coastguard Workeri386-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
146*c2e0c6b5SAndroid Build Coastguard Workermmio-ports.o: mmio-ports.c $(INCL) physmem.h physmem-access.h
147*c2e0c6b5SAndroid Build Coastguard Workerecam.o: ecam.c $(INCL) physmem.h physmem-access.h
148*c2e0c6b5SAndroid Build Coastguard Workerproc.o: proc.c $(INCL)
149*c2e0c6b5SAndroid Build Coastguard Workersysfs.o: sysfs.c $(INCL)
150*c2e0c6b5SAndroid Build Coastguard Workergeneric.o: generic.c $(INCL)
151*c2e0c6b5SAndroid Build Coastguard Workeremulated.o: emulated.c $(INCL)
152*c2e0c6b5SAndroid Build Coastguard Workersyscalls.o: syscalls.c $(INCL)
153*c2e0c6b5SAndroid Build Coastguard Workerobsd-device.o: obsd-device.c $(INCL)
154*c2e0c6b5SAndroid Build Coastguard Workerfbsd-device.o: fbsd-device.c $(INCL)
155*c2e0c6b5SAndroid Build Coastguard Workeraix-device.o: aix-device.c $(INCL)
156*c2e0c6b5SAndroid Build Coastguard Workerdump.o: dump.c $(INCL)
157*c2e0c6b5SAndroid Build Coastguard Workernames.o: names.c $(INCL) names.h
158*c2e0c6b5SAndroid Build Coastguard Workernames-cache.o: names-cache.c $(INCL) names.h
159*c2e0c6b5SAndroid Build Coastguard Workernames-hash.o: names-hash.c $(INCL) names.h
160*c2e0c6b5SAndroid Build Coastguard Workernames-net.o: names-net.c $(INCL) names.h
161*c2e0c6b5SAndroid Build Coastguard Workernames-parse.o: names-parse.c $(INCL) names.h
162*c2e0c6b5SAndroid Build Coastguard Workernames-hwdb.o: names-hwdb.c $(INCL) names.h
163*c2e0c6b5SAndroid Build Coastguard Workerfilter.o: filter.c $(INCL)
164*c2e0c6b5SAndroid Build Coastguard Workernbsd-libpci.o: nbsd-libpci.c $(INCL)
165*c2e0c6b5SAndroid Build Coastguard Workerhurd.o: hurd.c $(INCL)
166*c2e0c6b5SAndroid Build Coastguard Workerwin32-helpers.o: win32-helpers.c $(INCL) win32-helpers.h
167*c2e0c6b5SAndroid Build Coastguard Workerwin32-cfgmgr32.o: win32-cfgmgr32.c $(INCL) win32-helpers.h
168*c2e0c6b5SAndroid Build Coastguard Workerwin32-kldbg.o: win32-kldbg.c $(INCL) win32-helpers.h
169*c2e0c6b5SAndroid Build Coastguard Workerwin32-sysdbg.o: win32-sysdbg.c $(INCL) win32-helpers.h
170*c2e0c6b5SAndroid Build Coastguard Workeri386-io-windows.h: win32-helpers.h
171*c2e0c6b5SAndroid Build Coastguard Worker
172*c2e0c6b5SAndroid Build Coastguard Worker# MinGW32 toolchain has some required Win32 header files in /ddk subdirectory.
173*c2e0c6b5SAndroid Build Coastguard Worker# But these header files include another header files from /ddk subdirectory
174*c2e0c6b5SAndroid Build Coastguard Worker# and expect that build system has already set /ddk subdirectory into includes.
175*c2e0c6b5SAndroid Build Coastguard Worker# So include /ddk subdirectory of each system predefined include path via -I.
176*c2e0c6b5SAndroid Build Coastguard Workerifdef PCI_HAVE_PM_WIN32_CFGMGR32
177*c2e0c6b5SAndroid Build Coastguard WorkerDDKCFLAGS:=$(shell echo | $(CC) $(CFLAGS) -E -Wp,-v -o /dev/null - 2>&1 | sed -n 's/^ \(.*\)/-I\1\/ddk/p')
178*c2e0c6b5SAndroid Build Coastguard Workerwin32-cfgmgr32.o: override CFLAGS+=$(DDKCFLAGS)
179*c2e0c6b5SAndroid Build Coastguard Workerendif
180