#
# Makefile for the Atheros HAL Module.
#
KERNEL_SOURCE ?= /lib/modules/$(shell uanme -r)/build

src?=.
BASEDIR=$(src)/..

modules modules_install clean:
	$(MAKE) -C $(KERNEL_SOURCE) SUBDIRS=$(shell pwd) $@

install: modules_install


EXTRA_CFLAGS+= -DATH_PCI -I$(BASEDIR)/hal -I$(BASEDIR)/hal/linux \
		-I$(BASEDIR)/ath_hal -I$(BASEDIR)/net80211 -I$(BASEDIR) \
		-I$(BASEDIR)/include -include $(BASEDIR)/include/compat.h $(COPTS)

ifndef OS
OS = linux
endif

ifndef HAL_OBJDIR
#
# Use release version of HAL.
#
# NB: binary HAL's are distributed in a uuencode'd file; on some
#     systems uuencode is not installed by default and you must
#     specially install it from the sharutils package.
#
UUDECODE?=	uudecode

HAL=		$(src)/../hal
OPT_AH_H=	${HAL}/public/${TARGET}.opt_ah.h
else
#
# Use private version of HAL.
#
HAL=		$(shell dirname `dirname ${HAL_OBJDIR}`)
OPT_AH_H=	${HAL_OBJDIR}/opt_ah.h
endif

ifeq ($(CONFIG_USERMODE),)
ifneq ($(CONFIG_NET_RADIO),)
obj-m += ath_hal.o
ath_hal-objs	:= ah_osdep.o hal.o
endif
endif

ifndef HAL_OBJDIR
$(obj)/hal.o:	${HAL}/public/${TARGET}.hal.o.uu
	${UUDECODE} -o $(obj)/hal.o < $<
else
$(obj)/hal.o:	${HAL_OBJDIR}/hal.o
	cp ${HAL_OBJDIR}/hal.o $(obj)/hal.o
endif

# XXX need opt_ah.h to do dependencies so give this bogus dependency
$(obj)/ah_osdep.c: ${HAL}/${OS}/ah_osdep.c $(obj)/opt_ah.h
	cp ${HAL}/${OS}/ah_osdep.c $(obj)/ah_osdep.c
$(obj)/opt_ah.h: ${OPT_AH_H}
	cp ${OPT_AH_H} $(obj)/opt_ah.h
