# # Makefile for IC Plus Ethernet Adapter driver for Linux # Copyright (c) 2004 by IC Plus Corporation. # # OBJS = ipg_main.o TARGET = ipg.o MAPPING_MODE= -DUSE_IO_OPS #MAPPING_MODE= -DUSE_IO_OPS -DJUMBO_FRAME -DJUMBO_FRAME_SIZE_4K KernelVersion := $(shell uname -r) KernelBuildDir := /lib/modules/$(KernelVersion)/build kernelMisc := /lib/modules/$(KernelVersion)/kernel/drivers/net/ kernelExtension := $(shell echo $(KernelVersion) | sed -ne 's/^2\.[567]\..*/k/p')o kernelFlag26 := kernel2$(shell echo $(KernelVersion) | sed -ne 's/^2\.[6]\..*/6/p')x #======================Makefile for kernel 2.2.x and 2.4.x====================== ifneq ($(kernelFlag26),kernel26x) CC = gcc CFLAGS = -D__KERNEL__ -DMODULE -O -Wall -Wstrict-prototypes -I$(INCLUDEDIR) EXTRA_CFLAGS := $(MAPPING_MODE) EXTRA_CFLAGS := $(EXTRA_CFLAGS) -D_COMPAT_WITH_OLD_KERNEL KernelSrcPath := /lib/modules/$(shell uname -r)/build \ /usr/src/linux-$(shell uname -r) \ /usr/src/linux-$(shell uname -r | sed 's/-.*//') \ /usr/src/kernel-headers-$(shell uname -r) \ /usr/src/kernel-source-$(shell uname -r) \ /usr/src/linux-$(shell uname -r | sed 's/\([0-9]*\.[0-9]*\)\..*/\1/') \ /usr/src/linux FindDir = $(shell [ -e $(dir)/include/linux ] && echo $(dir)) KernelSrcPath := $(foreach dir, $(KernelSrcPath), $(FindDir)) KernelSrc := $(firstword $(KernelSrcPath)) # Support Linux software VLAN #EXTRA_CFLAGS := $(EXTRA_CFLAGS) -DCONFIG_VLAN_8021Q #EXTRA_CFLAGS := $(EXTRA_CFLAGS) -DEXTRA_STATS #DEBUG_FLAGS = -O -g -DALTA_DEBUG K_VER=$(shell uname -r) INCLUDEDIR=$(shell if [ -e /usr/src/linux-$(K_VER)/include ]; \ then echo "/usr/src/linux-$(K_VER)/include"; \ elif [ -e /usr/src/linux-2.4/include ]; \ then echo "/usr/src/linux-2.4/include"; \ elif [ -e /usr/src/linux/include ]; \ then echo "/usr/src/linux/include"; \ else echo "/usr/include"; fi) # # Old kernel need to configure modversions.h # #EXTRA_CFLAGS := $(EXTRA_CFLAGS) \ # $(shell if [ -e $(INCLUDEDIR)/linux/modversions.h ]; \ # then echo -DCONFIG_MODVERSIONS; fi) CFLAGS+=$(shell [ -f $(KernelSrc)/include/linux/modversions.h ] && \ echo "-DMODVERSIONS -include $(KernelSrc)/include/linux/modversions.h") $(TARGET): $(OBJS) $(LD) -r -o $@ $(OBJS) # # Dependency to create object file. # all: $(TARGET) # # # Common make rules # %.o:%.c $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEBUG_FLAGS) -c -o $@ $< endif #===========================Makefile for kernel 2.6.x=========================== ifeq ($(kernelFlag26),kernel26x) EXTRA_CFLAGS+=$(MAPPING_MODE) all: $(MAKE) -C $(KernelBuildDir) SUBDIRS=$(PWD) modules install: install -m 644 -c ipg.$(kernelExtension) $(kernelMisc) ipg-objs:=$(OBJS) obj-m+=$(TARGET) endif #===========================Makefile common section============================ # Delete existing object file # clean: rm -f *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags