AS	=	objasm
ASFlags	=	-throwback -depend !Depend
CC	=	gcc
CFlags	=	-c -mthrowback -mstubs -IC: -mamu -O9
LD	=	link
LDFlags	=	-aif
Libs	=	c:o.stubs gcc:o.libgcc

Objs	=	main.o assemble.o macro.o symbol.o expr.o code.o command.o pcx.o \
		output.o stricmp.o throwback.o

magicasm:	$(Objs)
		$(LD) -o $@ $(LDFlags) $(Libs) $(Objs)


.SUFFIXES:	.o .c .cc .s
.c.o:
		$(CC) $(CFlags) $(ExtraCFlags) -o $@ $<
.cc.o:
		$(CC) $(CFlags) $(ExtraCFlags) -o $@ $<
.s.o:
		$(AS) $(ASFlags) $(ExtraASFlags) -o $@ $<


# Dynamic dependencies:

o.stricmp:	c.stricmp
o.stricmp:	C:h.string
o.stricmp:	C:h.ctype

o.throwback: s.throwback

o.assemble:	c.assemble
o.assemble:	C:h.stdio
o.assemble:	h.defs
o.assemble:	h.externs

o.macro:	c.macro
o.macro:	C:h.stdio
o.macro:	C:h.string
o.macro:	h.defs
o.macro:	h.externs

o.symbol:	c.symbol
o.symbol:	C:h.stdio
o.symbol:	h.defs
o.symbol:	h.externs

o.expr:	c.expr
o.expr:	C:h.stdio
o.expr:	C:h.ctype
o.expr:	h.defs
o.expr:	h.externs

o.code:	c.code
o.code:	C:h.stdio
o.code:	h.defs
o.code:	h.externs

o.command:	c.command
o.command:	C:h.stdio
o.command:	C:h.ctype
o.command:	C:h.string
o.command:	h.defs
o.command:	h.externs

o.pcx:	c.pcx
o.pcx:	C:h.stdio
o.pcx:	C:h.stdlib
o.pcx:	C:h.string
o.pcx:	h.defs
o.pcx:	h.externs

o.output:	c.output
o.output:	C:h.stdio
o.output:	h.defs
o.output:	h.externs

o.main:	c.main
o.main:	C:h.stdio
o.main:	C:h.string
o.main:	h.defs
o.main:	h.externs
o.main:	h.vars
