.include <bsd.own.mk>

# directory of current kernel source. if this is not correct, it must be changed.
KSRC = /usr/src
OFED_INC_DIR = ${KSRC}/sys/ofed/include/

KMOD=	irdma
SRCS=	icrdma.c
SRCS+=	fbsd_kcompat.c irdma_hw.c irdma_verbs.c irdma_utils.c
SRCS+=	irdma_cm.c irdma_kcompat.c
SRCS+=  irdma_if.h irdma_di_if.h ice_rdma.h vnode_if.h device_if.h bus_if.h opt_inet.h pci_if.h opt_inet6.h
# Shared source
SRCS+=	irdma_ctrl.c irdma_hmc.c icrdma_hw.c irdma_pble.c irdma_puda.c irdma_uda.c irdma_uk.c irdma_ws.c

CFLAGS+= -I${ICE_DIR} -I${OFED_INC_DIR}
CFLAGS+= -I${OFED_INC_DIR}/uapi
CFLAGS+= -I${KSRC}/sys/compat/linuxkpi/common/include
CFLAGS+= -DCONFIG_INFINIBAND_USER_MEM

# check FreeBSD version
KERNVER     != uname -K
KCFG_VIMAGE != sysctl -n kern.conftxt | grep VIMAGE | cut -f 2
F14         != test $(KERNVER) -ge 1400000 ; echo $$?

.if $(KCFG_VIMAGE) == VIMAGE
CFLAGS += -DVIMAGE
.endif

.if !$(F14)
CFLAGS += -DRDMA_MMAP_DB_SUPPORT
.endif

irdma_if.m:
	cp $(ICE_DIR)/irdma_if.m .

irdma_di_if.m:
	cp $(ICE_DIR)/irdma_di_if.m .

ice_rdma.h:
	cp $(ICE_DIR)/ice_rdma.h .

# Debug messages
CFLAGS += -ferror-limit=1000
LDFLAGS+= --error-unresolved-symbols

clean:
	rm -rf machine x86
	rm -f irdma_if.m irdma_di_if.m ice_rdma.h irdma_di_if.h irdma_if.h
	rm -f export_syms *.ko *.o .*.o irdma.kld opt_inet.h opt_inet6.h vnode_if.h vnode_if_newproto.h vnode_if_typedef.h device_if.h bus_if.h pci_if.h

.include <bsd.kmod.mk>
