#
#	Makefile for MintNet loadable network interfaces
#

include ../../MakeVars

CPPFLAGS = -I../../include -I../inet $(XCPPFLAGS)
CFLAGS = $(COPTS) -O2 -Wall -fomit-frame-pointer -mshort
LDFLAGS = -nostdlib


COMMON_SRCS = init.s main.c
COMMON_OBJS = init.o main.o

OSLIP_SRCS = oslip.c osl0.c osl0asm.s
OSLIP_OBJS = oslip.o osl0.o osl0asm.o

SLIP_SRCS = slip.c serial.c ppp.c slcompress.c
SLIP_OBJS = slip.o serial.o ppp.o slcompress.o

PLIP_SRCS = plip.c pl0.c pl0asm.s
PLIP_OBJS = plip.o pl0.o pl0asm.o

DUMMY_SRCS = dummyeth.c
DUMMY_OBJS = dummyeth.o

DE600_SRCS = de600.c de600asm.s
DE600_OBJS = de600.o de600asm.o

LANCE_SRCS = lance.c lanceasm.s
LANCE_OBJS = lance.o lanceasm.o

LANCEDMA_SRCS = lancedma.c
LANCEDMA_OBJS = lancedma.o


ALLSRCS = $(COMMON_SRCS) $(OSLIP_SRCS) $(SLIP_SRCS) $(PLIP_SRCS) \
  $(DUMMY_SRCS) $(DE600_SRCS) $(LANCE_SRCS) $(LANCEDMA_SRCS)

ALLOBJS = $(COMMON_OBJS) $(OSLIP_OBJS) $(SLIP_OBJS) $(PLIP_OBJS) \
  $(DUMMY_OBJS) $(DE600_OBJS) $(LANCE_OBJS) $(LANCEDMA_OBJS)

DRIVERS = oslip slip plip dummy de600 lance lancedma

all: $(DRIVERS)


.s.o:
	$(CC) -c $< -o $@

#
# generic driver make rule
#
# DON'T comment the $(TOGLSUPER)!! The drivers memory must be
# supervisor accessible.
#
$(XDRIVER): $(COMMON_OBJS) $(XOBJS)
	$(LD) $(LDFLAGS) $(COMMON_OBJS) $(XOBJS) -l$(LIBC16) -o $@
	$(TOGLSUPER) $(XTOGL) $@

oslip:
	$(MAKE) oslip.xif \
		"XDRIVER=oslip.xif" \
		"XOBJS=$(OSLIP_OBJS)"

slip:
	$(MAKE) slip.xif \
		"XDRIVER=slip.xif" \
		"XOBJS=$(SLIP_OBJS)"

plip:
	$(MAKE) plip.xif \
		"XDRIVER=plip.xif" \
		"XOBJS=$(PLIP_OBJS)"

de600:
	$(MAKE) de600.xif \
		"XDRIVER=de600.xif" \
		"XOBJS=$(DE600_OBJS)"

dummy:
	$(MAKE) dummy.xif \
		"XDRIVER=dummy.xif" \
		"XOBJS=$(DUMMY_OBJS)"

lance:
	$(MAKE) lance.xif \
		"XDRIVER=lance.xif" \
		"XOBJS=$(LANCE_OBJS)" \
		"XCPPFLAGS=-DPAMs_INTERN"

lancedma:
	$(MAKE) lancedma.xif \
		"XDRIVER=lancedma.xif" \
		"XOBJS=$(LANCEDMA_OBJS)" \
		"XCPPFLAGS=-DPAMs_INTERN" \
		"XTOGL=--fram --frun"

install:
	$(INSTALL) $(XIFMODE) $(patsubst %,%.xif,$(DRIVERS)) $(BOOTDIR)

clean:
	rm -f $(ALLOBJS)

depend:
	$(CC) -MM $(CPPFLAGS) *.c > depend

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