#!/usr/bin/make
# Makefile for building Linux Broadcom 10-Gigabit ethernet driver as a module.

KVER=
ifeq ($(KVER),)
  KVER=$(shell uname -r)
endif

# PREFIX may be set by the RPM build to set the effective root.
PREFIX=

# paths
KERNEL_DIR = /lib/modules/$(KVER)/build
DRV_DIR = kernel/drivers/net
MAN_DIR = $(PREFIX)/usr/share/man/man4

# generated include files
INIT_VAL_H = bnx2x_init_values.h
IDLE_CHK_H = bnx2x_self_test.h
REG_HSI_H = bnx2x_reg.h bnx2x_fw_defs.h bnx2x_hsi.h

SOURCES = bnx2x_main.c bnx2x_link.c bnx2x.h bnx2x_link.h bnx2x_compat.h bnx2x_init.h

obj-m += bnx2x.o
bnx2x-objs = bnx2x_main.o bnx2x_link.o

EXTRA_CFLAGS += -Werror

# targets and rules
.PHONY: all modules_install docs_install clean install

all default: $(obj-m)

$(obj-m): $(SOURCES) $(INIT_VAL_H) $(IDLE_CHK_H) $(REG_HSI_H)
	make -C $(KERNEL_DIR) M=`pwd` modules

modules_install: $(obj-m)
	make -C $(KERNEL_DIR) M=`pwd` INSTALL_MOD_PATH=$(PREFIX) INSTALL_MOD_DIR=$(DRV_DIR) modules_install
	@if [ "$(PREFIX)" = "" ] ;\
		then /sbin/depmod -a ;\
		else echo " *** Run '/sbin/depmod -a' to update the module database." ;\
	fi

docs_install:
	gzip -c bnx2x.4 > bnx2x.4.gz
	install -m 644 bnx2x.4.gz $(MAN_DIR)

clean:
	make -C $(KERNEL_DIR) M=`pwd` clean

install: modules_install docs_install

# generate the include files
-include Makefile.gen
