
##############################################################################
#
#	TEKlib - Classic Amiga - SAS/C
#	(epilog file - do not make directly)
#
##############################################################################

RM = delete quiet force
CC = sc resopt nover
AR = oml
CP = copy
CAT = type

CPU = cpu=68030
MATH = math=68882
DEBUG = debug=symbolflush define=KNEXECDEBUG=10 define=KNSOCKDEBUG=10 define=KNVISDEBUG=10 define=TDEBUG=10
OPT = opt nooptsched nooptsize opttime optinline optinlocal optloop nooptalias optpeep optrdepth=6 optdepth=6 optcomplexity=10

FLAGS = $(CPU) $(MATH) $(DEBUG) ansi nominc memsize=huge noerrorhigh noicons data=fo params=r prec=mixed strsect=code strmer nochkabort nostkchk nostkext
MONSTERFLAGS = $(CPU) $(OPT) $(MATH) verbose ansi nominc memsize=huge noerrorhigh noicons data=fo params=r prec=mixed strsect=code strmer nochkabort nostkchk nostkext
#disasm=amimonster.asm 

##############################################################################
#
#	Amiga kernel specific
#
##############################################################################

KNOBJS=		kn/amiga/exec.o	\
			kn/amiga/sock.o

KNVISOBJS=	kn/amiga/visual.o

kn/amiga/exec.o: kn/amiga/exec.c
	$(CC) $(FLAGS) $(INCL) $(OUTFILE) kn/amiga/exec.o kn/amiga/exec.c
kn/amiga/sock.o: kn/amiga/sock.c
	$(CC) $(FLAGS) $(INCL) $(OUTFILE) kn/amiga/sock.o kn/amiga/sock.c
kn/amiga/visual.o: kn/amiga/visual.c
	$(CC) $(FLAGS) $(INCL) $(OUTFILE) kn/amiga/visual.o kn/amiga/visual.c


##############################################################################
#
#	teklib
#
##############################################################################

kn:			$(KNOBJS)

knvis:		$(KNOBJS) $(KNVISOBJS)

list:		$(LISTOBJS)

mem:		$(MEMOBJS)

util:		$(UTILOBJS)

task:		$(TASKOBJS)

sock:		$(SOCKOBJS)

msg:		$(MSGOBJS)

array:		$(ARRAYOBJS)

visual:		$(VISUALOBJS)

teklib:		kn list mem util task sock msg array
			-$(RM) ram:tek.lib
			$(AR) ram:tek.lib @<<
				R $(KNOBJS) $(LISTOBJS) $(MEMOBJS) $(UTILOBJS) $(TASKOBJS) $(SOCKOBJS) $(MSGOBJS) $(ARRAYOBJS)
			<
			$(CP) ram:tek.lib tek.lib


#			$(AR) tek.lib @<<
#				R $(OBJS)
#			<
#			$(AR) tek.lib @<<
#				R $(VISOBJS)
#			<
#			$(AR) tek.lib @<<
#				R $(STUBOBJS)
#			<

teklibvisual:	knvis list mem util task sock msg array visual
				-$(RM) ram:tek.lib
				$(AR) ram:tek.lib @<<
					R $(KNOBJS) $(KNVISOBJS) $(LISTOBJS) $(MEMOBJS) $(UTILOBJS) $(TASKOBJS) $(SOCKOBJS) $(MSGOBJS) $(ARRAYOBJS) $(VISUALOBJS)
				<
				$(CP) ram:tek.lib tek.lib

teklibmonster:
		$(CAT) kn/amiga/exec.c kn/amiga/sock.c list/~_\#?.c mem/~_\#?.c > amimonster.c
		$(CAT) util/~_\#?.c task/~_\#?.c sock/~_\#?.c msg/~_\#?.c array/~_\#?.c >> amimonster.c
		$(CC) amimonster.c $(MONSTERFLAGS) $(INCL) $(OUTFILE) tek.lib

teklibvisualmonster:
		$(CAT) kn/amiga/exec.c kn/amiga/sock.c kn/amiga/visual.c list/~_\#?.c mem/~_\#?.c > amimonster.c
		$(CAT) util/~_\#?.c task/~_\#?.c sock/~_\#?.c msg/~_\#?.c array/~_\#?.c visual/~_\#?.c >> amimonster.c
		$(CC) amimonster.c $(MONSTERFLAGS) $(INCL) $(OUTFILE) tek.lib

##############################################################################

clean:
		-$(RM) tek.lib kn/amiga/*.o list/*.o mem/*.o util/*.o task/*.o sock/*.o msg/*.o array/*.o visual/*.o
		
		
