#
# 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

RH_FILE = /etc/redhat-release
RH_VER = $(shell [ -f $(RH_FILE) ] && cat $(RH_FILE) | awk '{print $$5}')
ifeq ($(RH_VER), 7.0)
       INCLUDEDIR = /usr/src/linux/include
else
       INCLUDEDIR = /usr/include
endif

# 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 -static 

# 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
CFLAGS += -Werror

# 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
ifneq ($(ANS), NO)
	IA64 = $(findstring ia64, $(shell uname -m))
	ifeq ($(IA64), ia64)
		ANS = NO
	endif
	KVER =  $(findstring 2.4., $(shell uname -r))
	ifeq ($(KVER), 2.4.)
		ANS = NO
	endif
endif

ANS=YES

ifneq ($(ANS), NO)
	CFLAGS += -DIANS
	CFILES += $(wildcard ans*.c)
	HFILES += $(wildcard ans*.h base_comm.h)
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
