TOPDIR	= ..
include $(TOPDIR)/Makefile.master

CONSTANTS-$(CONFIG_ENABLE_ASSERT) += -DENABLE_ASSERT
CONSTANTS-$(CONFIG_SPINLOCK_DEBUG) += -DSPINLOCK_DEBUG
CONSTANTS-$(CONFIG_IO_HOOK) += -DCONFIG_IO_HOOK

TARGET   = io.o

OBJS-1	= \
	pic_hook.o

OBJS-$(CONFIG_IO_HOOK) += \
	acpi_emu.o \
	hpet.o \
	ioapic_emu.o \
	pci_acpi.o \
	pci_assign.o \
	pci_core.o \
	pci_init.o \
	rtc.o \
	pic_emu.o \
	pit_emu.o \
	vmrm.o

OBJS-$(CONFIG_TTY_SERIAL) += serial_emu.o
OBJS-$(CONFIG_VTD_IOMMU) += vtd_dmar.o vtd.o

HEADERS += $(wildcard *.h)

CFLAGS  += $(CONSTANTS-1)
LINTFLAGS += $(CONSTANTS-1)
LDFLAGS += -r

.PHONY : all clean sloc count lint

all: $(TARGET)

clean: 
	find . -name '*.o' -type f -exec rm -f {} \;

lint:
	splint $(LINTFLAGS) *.c

$(TARGET): $(OBJS-1) $(CONFIG) Makefile
	$(LD) $(LDFLAGS) -o $(TARGET) $(OBJS-1)

$(OBJS-1): $(HEADERS) $(CONFIG)

check-syntax:
	gcc -fsyntax-only $(CPPFLAGS) $(CFLAGS) $(CHK_SOURCES)
# 	splint $(LINTFLAGS) $(CHK_SOURCES)
