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

# PREFIX may be set by the RPM build to set the effective root.
PREFIX=
ifeq ($(shell ls /lib/modules/`uname -r`/build > /dev/null 2>&1 && echo build),)
LINUX=/usr/src/linux
else
LINUX=/lib/modules/`uname -r`/build
endif

ifeq ($(shell which kgcc > /dev/null 2>&1 && echo kgcc),)
CC = gcc
else
CC = kgcc
endif
LD = ld
CFLAGS=-DMODULE -D__KERNEL__ -DDBG=0 -Wall -Wstrict-prototypes -O6 -I$(LINUX)/include

ifeq ($(wildcard ~/rpmdir),)
  rpmdir = /usr/src/redhat
else
  rpmdir = $(wildcard ~/rpmdir)
endif

# If the modversion.h file exists we should pass a flag.
# Most of my drivers have been updated to not need this, but not the other
# kernel source files.
#MODVER_H = $(LINUX)/include/linux/modversions.h
#ifneq ($(wildcard $(MODVER_H)),"")
#  CFLAGS += -DMODVERSIONS
#endif

ifdef DBG
  CFLAGS += -DB44_DEBUG=1
endif

ifdef SMALL
  CFLAGS += -DBCM_SMALL_DRV=1
endif

all: bcm4400.o
tar: bcm4400.tgz

bcm4400.o: b44um.o b44proc.o b44lm.o
	$(LD) -i $^ -o $@

install: bcm4400.o
	@if [ -d $(PREFIX)/lib/modules/`uname -r`/kernel/drivers/addon/bcm4400 ];\
	then install -m 444 bcm4400.o $(PREFIX)/lib/modules/`uname -r`/kernel/drivers/addon/bcm4400;\
	elif [ -d $(PREFIX)/lib/modules/`uname -r`/kernel/drivers/net/bcm ];\
	then install -m 444 bcm4400.o $(PREFIX)/lib/modules/`uname -r`/kernel/drivers/net/bcm;\
	elif [ -d $(PREFIX)/lib/modules/`uname -r`/kernel ];\
	then mkdir -p $(PREFIX)/lib/modules/`uname -r`/kernel/drivers/net;\
	install -m 444 bcm4400.o $(PREFIX)/lib/modules/`uname -r`/kernel/drivers/net;\
	else mkdir -p $(PREFIX)/lib/modules/`uname -r`/net;\
	install -m 444 bcm4400.o $(PREFIX)/lib/modules/`uname -r`/net/;\
	fi
	@if [ "$(PREFIX)" = "" ]; then /sbin/depmod -a ;\
	else echo " *** Run '/sbin/depmod -a' to update the module database.";\
	fi
	@if [ -d $(PREFIX)/usr/share/man ];\
	then install -m 444 bcm4400.4.gz $(PREFIX)/usr/share/man/man4;\
	elif [ -d $(PREFIX)/usr/man ];\
	then install -m 444 bcm4400.4.gz $(PREFIX)/usr/man/man4;\
	fi

bcm4400.tgz: Makefile *.[cho] LICENSE RELEASE.TXT
	tar cfvz $@ $^

rpm: bcm4400.tgz bcm4400.spec
	cp -p $< ${rpmdir}/SOURCES/
	rpm -ba bcm4400.spec

.PHONEY: all clean install tar

debug:
	@make DBG=1

small:
	@make SMALL=1

clean:
	-rm -f bcm4400.o b44um.o b44proc.o b44lm.o
