########################################################################
## Makefile for user-accessible Gigabit Ethernet modules
##
## IAP / KAF, 1999-2000

## Modify these variable to suit your build environment
LINUXROOT    = ../linux-2.3.29
FIRMWAREROOT = ../acenic-fw-12.3.10

.EXPORT_ALL_VARIABLES:

SRCS	= *.c

TARGETS	= user.o acenic.o

INCLUDES = -I$(LINUXROOT)/include -I$(FIRMWAREROOT)/nic/fw2/common

CC = gcc

CFLAGS = -D__KERNEL__ $(INCLUDES)  -Wall -O2 -fomit-frame-pointer \
         -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DMODULE \
         -DMODVERSIONS -include $(LINUXROOT)/include/linux/modversions.h -c 

DPF_SRCS = $(wildcard dpf/vcode/*.c) $(wildcard dpf/*.c)
DPF_OBJS = $(DPF_SRCS:.c=.o)

default: all

include $(LINUXROOT)/.config
include $(LINUXROOT)/arch/i386/Makefile

ifdef CONFIG_SMP
CFLAGS += -D__SMP__
endif

all: $(TARGETS)

user.o: af_user.o sysctl_net_user.o
	ld -m elf_i386 -r -o user.o af_user.o sysctl_net_user.o

af_user.o: af_user.c
	$(CC) $(CFLAGS) -o $@ $<

sysctl_net_user.o: sysctl_net_user.c
	$(CC) $(CFLAGS) -o $@ $<

acenic.o: acenic_core.o dpf/libdpf.a 
	ld -m elf_i386 -r -o acenic.o acenic_core.o dpf/libdpf.a

acenic_core.o: acenic.c $(FIRMWAREROOT)/nic/fw2/common/alt_fw2.h
	$(CC) $(CFLAGS) -o $@ $<

dpf/libdpf.a: dpf/vcode/binary.h dpf/vcode/vcode-macros.h $(DPF_OBJS)
	ar r $@ $(DPF_OBJS)
	ranlib $@

dpf/vcode/binary.h: dpf/vcode/mips-bin
	m4 < $< > $@

dpf/vcode/vcode-macros.h: dpf/vcode/mips.md
	perl dpf/vcode/spec.pl < $< > $@

clean:
	rm -f *.o dpf/*.o dpf/*.a Makefile.bak dpf/vcode/binary.h
	rm -f dpf/vcode/*.o dpf/vcode/core dpf/vcode/vcode-macros.h

depend:
	makedepend -D__KERNEL__ $(INCLUDES) $(SRCS) $(DPF_SRCS)

# DO NOT DELETE THIS LINE -- make depend depends on it.
