#
# Makefile - Makefile for Intel(R) PRO/100 LAN Adapter driver for Linux
# 			Copyright (C) 1999-2000 Intel
#

CC = gcc
AS = as
LD = ld
SHELL = sh
INCLUDEDIR = /usr/include

# Get the kernel version from version.h
KVERSION = $(shell uname -r)
INSTDIR = /lib/modules/$(KVERSION)/net

# Driver source files
TARGET = e100.o
CFILES = e100.c
HFILES = e100.h


# Required Flags
CFLAGS = -D__KERNEL__ -DMODULE -DLINUX -DEXPORT_SYMTAB -D__NO_VERSION__
CFLAGS += -I$(INCLUDEDIR) -I.
CFLAGS += -O2 -pipe 

# Optional optimization flags
# LOCALDEF = -DMODULE -D__KERNEL__ -DLINUX -DCPU=686 -DCONFIG_MOD=y \
# -Wstrict-prototypes -fomit-frame-pointer -pipe -fno-strength-reduce -m486 \
# -malign-loops=2 -malign-jumps=2 -malign-functions=2
#CFLAGS += -Wall

# Check for SMP kernel
SMP = $(findstring SMP, $(shell uname -v))
ifeq ($(SMP), SMP)
	CFLAGS += -D__SMP__
endif

# Check for module versioning configured in the kernel sources
CFLAGS += $(shell [ -f /usr/include/linux/modversions.h ] && echo -DMODVERSIONS)

# Adding proc FS support
CFLAGS += -DCONFIG_PROC_FS

# Adding IANS support
IA64 = $(findstring ia64, $(shell uname -m))
ifneq ($(IA64), ia64)
	CFLAGS += -DIANS
	IANS = $(findstring IANS, $(CFLAGS))
	ifeq ($(IANS), IANS)
        	CFILES += $(wildcard ans*.c)
        	HFILES += $(wildcard ans*.h base_comm.h)
	endif
endif

# Basic make rules go here

all: $(TARGET)

$(TARGET): $(filter-out $(TARGET), $(CFILES:.c=.o)) e100_main.o
	$(LD) -r $^ -o $@
	rm e100_main.o

e100_main.o: e100.c 
	$(CC) $(CPPFLAGS) $(CFLAGS) -c $^ -o $@

install: $(TARGET)
	mkdir -p $(INSTDIR)
	install -m 644 $(TARGET) $(INSTDIR)
	depmod -a

uninstall:
	$(SHELL) -c 'if [ -f $(INSTDIR)/$(TARGET) ]; then \
	               rm $(INSTDIR)/$(TARGET); \
	             fi'

clean:
	rm -f *.o *~ core
