#
# Makefile for Digi International EtherLite(R) Terminal Server
# module for Linux
#
# Copyright 1999-2000 Digi International (www.digi.com)
#    Zhong Deng <Zhong_Deng@digi.com>
#    Jeff Randall <Jeff_Randall@digi.com>
#    Bob Rubendunst <Robert_Rubendunst@digi.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE.  See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#

ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)

SMP= $(shell if [ "`uname -v | awk '{print $2}' | grep -c SMP`" = "1" ]; then echo "SMP"; else echo "UP"; fi)

OSMVER=$(shell uname -r )

RCDIR= $(shell if [ -d /etc/rc.d/init.d ]; then echo "/etc/rc.d/init.d"; else echo "/etc/init.d"; fi)

CC=gcc 

OSVER=LINUX
#CFLAGS= -g
# undefine BYPASS_FLIP if you don't want to bypass flip buffers on input.
CFLAGS= -Wall -I/usr/include
KFLAGS= -D__KERNEL__ -DMODULE -DBYPASS_FLIP -O2 -g -Wall -I/usr/include

ifeq ($(ARCH),i386)
	MODDIR=		/lib/modules/default/misc
	else
	MODDIR:=		/lib/modules/$(OSMVER)/misc
endif
ifeq ($(SMP),SMP)
	ifeq ($(ARCH),i386)
		KFLAGS += -D__SMP__ -DCONFIG_X86_LOCAL_APIC
	else
		KFLAGS += -D__SMP__ -DSPARCBAUDS
		CFLAGS += -DSPARCBAUDS
	endif
endif


LOCK=/var/lock
DMBIN=		/usr/bin
MANDIR=		/usr/man
MODULES=	els.o
SBINDIR=	/usr/sbin
SRCDIR=		/usr/src/dg/els

INC=.

all:	els.o cdetherd cdipserv cdflush cdstty dinc dtrc cdmknods cddiag

cdmknods: cdmknods.o usr_unittab.o
	$(CC) $(CFLAGS) cdmknods.o usr_unittab.o -o cdmknods

cdipserv: cdipserv.o
	$(CC) $(CFLAGS) cdipserv.o -o cdipserv

cdetherd: cdetherd.o
	${CC} $(CFLAGS) cdetherd.o -o cdetherd

cdflush: cdflush.o
	$(CC) $(CFLAGS) cdflush.o -o cdflush

cdstty: cdstty.o usr_unittab.o
	$(CC) $(CFLAGS) cdstty.o usr_unittab.o -o cdstty

dinc: dinc.o dinc_hw.o $(INC)/dinc.h
	$(CC) $(CFLAGS)  dinc.o dinc_hw.o -o dinc 

dinc.o: dinc.c
	$(CC) $(CFLAGS) -DLINUX -c $(DEFS) -DLOCK_DIR="\"$(LOCK)\"" dinc.c
dinc_hw.o: 
	$(CC) $(CFLAGS) -DLINUX -c $(DEFS) dinc_hw.c

dtrc: dtrc.o
	$(CC) $(CFLAGS) dtrc.o -o dtrc

cddiag: els.h cdutils.h cddiag.o
	$(CC) $(CFLAGS) cddiag.o -o cddiag
 
els.o:	els.c els.h els_ver.h ctio.h ker_unittab.o tracer.c
	@echo building els.o and linking
	${CC} $(KFLAGS) -o els_driver.o -c els.c
	$(LD) -r -nostartfiles -o $@ els_driver.o ker_unittab.o
	@echo

listing: els.c sts_unittab.c
	${CC} -r -Wl,-M -nostartfiles -o $@ els_driver.o sts_unittab.o > els.lst

ker_unittab.o:	sts_unittab.c sts_unittab.h
	@echo building ker_unittab.o
	${CC} ${KFLAGS} -c sts_unittab.c -o ker_unittab.o
	@echo
usr_unittab.o:	sts_unittab.c sts_unittab.h
	@echo building usr_unittab.o
	${CC} $(CFLAGS) -c sts_unittab.c -o usr_unittab.o
	@echo

clean:
	rm -f cdmknods cdelsreset cdetherd cdflush cdipserv cdstty dinc dtrc cddiag *.o

clobber: clean
	rm -f els.getty


uninstall: clobber
	if [ "`lsmod | grep -c els`" = "1" ]; then \
		fuser -k /dev/els* ;\
		insmod els ; \
		cdmknods -uninstall; \
		rmmod els ; \
	fi
	rm -f $(MODDIR)/$(MODULES)
	rm -f $(SBINDIR)/cdetherd
	rm -f $(SBINDIR)/cdipserv
	rm -f $(SBINDIR)/cdflush
	rm -f $(SBINDIR)/cdmknods
	rm -f $(DMBIN)/cdstty
	rm -f $(DMBIN)/dinc
	rm -f $(DMBIN)/dtrc
	rm -f $(DMBIN)/cddiag
	rm -f $(RCDIR)/els
	rm -f $(MANDIR)/man1/cdetherd.1
	rm -f $(MANDIR)/man1/cdipserv.1m
	rm -f $(MANDIR)/man1/cdflush.1m
	rm -f $(MANDIR)/man1/cdmknods.1
	rm -f $(MANDIR)/man1/cdstty.1
	rm -f $(MANDIR)/man1/dinc.1
	rm -f $(MANDIR)/man1/dtrc.1
	rm -f $(MANDIR)/man4/define_etherlites.4
	rm -f $(MANDIR)/man4/etherlite.4

install: all $(MODDIR)
	install -m 0755 $(MODULES) $(MODDIR)
	/sbin/depmod -a
	install -m 755 cdetherd $(SBINDIR)
	install -m 755 cdipserv $(SBINDIR)
	install -m 755 cdflush $(SBINDIR)
	install -m 755 cdmknods $(SBINDIR)
	install -m 755 cdstty $(DMBIN)
	install -m 755 dinc $(DMBIN)
	install -m 755 dtrc $(DMBIN)
	install -m 755 cddiag $(DMBIN)
	install -m 755 els.rc $(RCDIR)/els
	install -m 0644 cdetherd.1 $(MANDIR)/man1
	install -m 0644 cdflush.1m $(MANDIR)/man1
	install -m 0644 cdipserv.1m $(MANDIR)/man1
	install -m 0644 cdmknods.1 $(MANDIR)/man1
	install -m 0644 cdstty.1 $(MANDIR)/man1
	install -m 0644 dinc.1 $(MANDIR)/man1
	install -m 0644 dtrc.1 $(MANDIR)/man1
	install -m 0644 define_etherlites.4 $(MANDIR)/man4
	install -m 0644 etherlite.4 $(MANDIR)/man4

$(MODDIR):
	mkdir -p $@









