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