BAYCOMCFLAGS	=
#BAYCOMCFLAGS	=-DBAYCOM_DEBUG
CFLAGS		=-Wall -Wstrict-prototypes -O6 -m486 $(BAYCOMCFLAGS)
MODFLGS		=-fomit-frame-pointer -fno-strength-reduce \
	 	 -D__KERNEL__ -DMODULE -DMODVERSIONS \
		 -include /usr/include/linux/modversions.h

.SUFFIXES:	.c.s.i.o

AS86		=as86 -0 -a
LD86		=ld86 -0

AS		=as
LD		=ld
LDFLAGS		=
HOSTCC		=gcc
CC		=gcc
MAKE		=make
CPP		=$(CC) -E
AR		=ar
STRIP		=strip
INSTALL		=install
MODDIR		=/lib/modules/`uname -r`/misc
MKNOD		=mknod

SRC		=baycom.c setbaycom.c

MAJOR		=60

all:		baycom.o setbaycom install

.c.s:
		$(CC) $(CFLAGS) -S -o $*.s $<
.c.i:
		$(CC) $(CFLAGS) -E -o $*.i $<
.s.o:
		$(AS) -c -o $*.o $<
.c.o:
		$(CC) $(CFLAGS) -c -o $*.o $<

baycom.o:	baycom.c
		$(CC) $(CFLAGS) $(MODFLGS) -c -o baycom.o baycom.c

baycom.s:	baycom.c
		$(CC) $(CFLAGS) $(MODFLGS) -S -o baycom.s baycom.c

baycom.i:	baycom.c
		$(CC) $(CFLAGS) $(MODFLGS) -E -o baycom.i baycom.c

setbaycom:	setbaycom.o
		$(CC) $(LDFLAGS) setbaycom.o -o setbaycom

install:	baycom.o
		$(INSTALL) -d $(MODDIR)
		$(INSTALL) baycom.o $(MODDIR)/baycom.o

bc:
		[ ! -e /dev/bc0 ] && $(MKNOD) /dev/bc0 c $(MAJOR) 0
		[ ! -e /dev/bc1 ] && $(MKNOD) /dev/bc1 c $(MAJOR) 1
		[ ! -e /dev/bc2 ] && $(MKNOD) /dev/bc2 c $(MAJOR) 2
		[ ! -e /dev/bc3 ] && $(MKNOD) /dev/bc3 c $(MAJOR) 3

clean:
		rm -f core `find . -name '*.[oas]' -print`
		rm -f core `find . -name 'core' -print`

depend dep:
		$(CPP) -M $(SRC) > .depend

backup:
		tar czf ../baycom.tgz Makefile baycom.c setbaycom.c baycom.h \
			README.baycom baycom.lsm

insm:		all
		setserial /dev/ttyS1 port 0
		insmod ./baycom.o iobase=0x2f8 irq=3

rmm:
		rmmod baycom

ifeq (.depend,$(wildcard .depend))
include .depend
endif
