

#Linux 2.6 or 3.0#################################
ifneq	"$(findstring 2.4, $(shell uname -a))" "2.4"

ifeq "$(findstring Red Hat, $(shell grep Red /etc/issue))" "Red Hat Enterprise \Linux AS release 4"
MXPARM := -DSP2
endif

ifeq "$(findstring CentOS, $(shell grep CentOS /etc/issue))" "CentOS"
MXPARM := -DSP2
endif

all:	adm module 

adm: moxaload

install: all 
	mkdir -p /lib/modules/$(shell uname -r)/kernel/drivers/char/
	cp -f ./moxa.ko /lib/modules/$(shell uname -r)/kernel/drivers/char/
	mkdir -p /lib/modules/$(shell uname -r)/misc/
	cp -f ./moxa.ko /lib/modules/$(shell uname -r)/misc/
	mkdir -p /lib/modules/$(shell uname -r)/kernel/drivers/tty/
	cp -f ./moxa.ko /lib/modules/$(shell uname -r)/kernel/drivers/tty/
	mkdir -p /usr/lib/moxa
	cp -p *.cod /usr/lib/moxa
	cp -p moxaload /usr/lib/moxa
	cp -p mxmknod /usr/lib/moxa
	depmod -a

uninstall :
	rm -rf /usr/lib/moxa	

ifneq ($(KERNELRELEASE),)
obj-m := moxa.o
else
KDIR	:= /lib/modules/$(shell uname -r)/build
PWD	:= $(shell pwd)

module:
	$(MAKE) EXTRA_CFLAGS=$(MXPARM) -C $(KDIR) SUBDIRS=$(PWD) modules

moxaload : moxaload.c moxaadm.h
	cc -DLINUX moxaload.c -o moxaload
	strip	moxaload

clean: clean_local
#	$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean 

endif

clean: clean_local
#	$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean 

clean_local:
	rm -f *.o
	rm -rf ./.tmp_versions
	rm -f moxa.mod*
	rm -f .moxa*
	rm -f moxa.ko
	rm -f moxaload
	rm -f Modules.*
	rm -f Module.symvers
	rm -f modules.order	
	rm -f Module.markers
else      #Linux 2.4########################################

CC=gcc -c
ARCH=$(shell uname -m | sed s/i.86/i86/)

ifeq	($(ARCH),i86)
OPTS=-DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O2 \
-fomit-frame-pointer -pipe -march=i486 -I/usr/src/linux-2.4/include \
-I/usr/src/linux/include
else
OPTS=-DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O2 \
-fomit-frame-pointer -pipe -I/usr/src/linux/include -ffixed-8
endif

ifeq	($(MAKECMDGOALS), install)
OPTS+=-DMODVERSIONS
endif


ifeq	"$(findstring SMP, $(shell uname -a))" "SMP"
OPTS+=-D__SMP__
endif

all: adm module

SP1: adm modulesp1

adm : moxaload

install : all 
	mkdir -p /lib/modules/$(shell uname -r)/kernel/drivers/char/
	cp -p moxa.o /lib/modules/$(shell uname -r)/kernel/drivers/char/
	mkdir -p /lib/modules/$(shell uname -r)/misc/
	cp -p moxa.o /lib/modules/$(shell uname -r)/misc/
	mkdir -p /usr/lib/moxa
	cp -p *.cod /usr/lib/moxa
	cp -p moxaload /usr/lib/moxa
	cp -p mxmknod /usr/lib/moxa
	depmod -a

installsp1 : SP1 
	mkdir -p /lib/modules/$(shell uname -r)/kernel/drivers/char/
	cp -p moxa.o /lib/modules/$(shell uname -r)/kernel/drivers/char/
	mkdir -p /lib/modules/$(shell uname -r)/misc/
	cp -p moxa.o /lib/modules/$(shell uname -r)/misc/
	mkdir -p /usr/lib/moxa
	cp -p *.cod /usr/lib/moxa
	cp -p moxaload /usr/lib/moxa
	cp -p mxmknod /usr/lib/moxa
	depmod -a


uninstall :
	rm -rf /usr/lib/moxa	

clean :
	rm -f *.o
	rm -f moxaload
	rm -f *.symvers
	rm -f modules.order

module : moxa.c
	$(CC) $(OPTS) moxa.c

modulesp1 : moxa.c
	$(CC) $(OPTS) -DSP1 moxa.c

moxaload : moxaload.c moxaadm.h
	cc -DLINUX moxaload.c -o moxaload
	strip	moxaload

dummy:

endif
