# Makefile for The PCI Library
# (c) 1999--2007 Martin Mares <mj@ucw.cz>

!include config.mk

OBJS=access.obj generic.obj dump.obj names.obj filter.obj mysscanf.obj asm/nwsio.obj
INCL=internal.h pci.h config.h header.h sysdep.h types.h

PCILIB=libpci.lib
PCILIBPC=libpci.pc

!ifdef PCI_HAVE_PM_LINUX_SYSFS
OBJS= $(OBJS) sysfs.o
!endif

!ifdef PCI_HAVE_PM_LINUX_PROC
OBJS= $(OBJS) proc.o
!endif

!ifdef PCI_HAVE_PM_INTEL_CONF
OBJS= $(OBJS) i386-ports.obj
!endif

!ifdef PCI_HAVE_PM_DUMP
OBJS= $(OBJS) dump.o
!endif

!ifdef PCI_HAVE_PM_FBSD_DEVICE
OBJS= $(OBJS) fbsd-device.o
CFLAGS = $(CFLAGS) -I/usr/src/sys
!ifdef FREEBSD_SYS
CFLAGS = $(CFLAGS) -I${FREEBSD_SYS}
!endif
!endif

!ifdef PCI_HAVE_PM_OBSD_DEVICE
OBJS= $(OBJS) obsd-device.o
!endif

!ifdef PCI_HAVE_PM_AIX_DEVICE
OBJS= $(OBJS) aix-device.o
!endif

!ifdef PCI_HAVE_PM_NBSD_LIBPCI
OBJS= $(OBJS) nbsd-libpci.o
PCILIB=libpciutils.a
!endif

#
# for NWSOS
#
#CupX
libpath=$(NWSLIB)
#CN[hpX
incpath=$(NWSINC)

nwsaopt=-s -pl -l -coff
nlopt=-nostub -subsystem:smart -m -libpath:$(libpath) -dosseg -order:_TEXT,_DATA,CONST,_BSS,_STACK startup.obj baseimp.lib -fe:$@ ##-pf
nwsl=nwsl
ncopt=-oret -i=$(incpath)

.c.obj:
		nwsc $(ncopt) $*.c
		nwsa $(nwsaopt) $*.asm

.asm.obj:
		nwsa $(nwsaopt) $*.asm


all: $(PCILIB) #$(PCILIBPC)

$(PCILIB): $(OBJS)
	nwslibaux $(OBJS)
	nwslib -c $(PCILIB) @tmp.cfg

clean:
	del *.obj *.asm *.dep *.lst *.map $(PCILIB)

#$(PCILIBPC): $(PCILIBPC).in
#	sed <$< >$@ -e 's,@PREFIX@,$(PREFIX),' \
#		-e 's,@INCDIR@,$(INCDIR),' \
#		-e 's,@LIBDIR@,$(LIBDIR),' \
#		-e 's,@IDSDIR@,$(IDSDIR),' \
#		-e 's,@VERSION@,$(VERSION),' \
#		-e 's,@LIBZ@,$(LIBZ),'

access.obj: access.c $(INCL)
i386-ports.obj: i386-ports.c $(INCL) i386-io-hurd.h i386-io-linux.h i386-io-sunos.h i386-io-windows.h
proc.obj: proc.c $(INCL) pread.h
sysfs.obj: sysfs.c $(INCL) pread.h
generic.obj: generic.c $(INCL)
syscalls.obj: syscalls.c $(INCL)
obsd-device.obj: obsd-device.c $(INCL)
fbsd-device.obj: fbsd-device.c $(INCL)
aix-device.obj: aix-device.c $(INCL)
dump.obj: dump.c $(INCL)
names.obj: names.c $(INCL)
filter.obj: filter.c $(INCL)
nbsd-libpci.obj: nbsd-libpci.c $(INCL)

#nwsos
mysscanf.obj: mysscanf.c
asm/nwsio.obj: asm/nwsio.asm

example: example.c $(PCILIB)
