# makefile for gnu make

# frontend

CC	= gcc

# delete cmd

RM	= c:delete quiet

# set YOURFLAGS according to your machine
MYFLAGS	= -O2 -c -msmall-code -fno-builtin -fno-function-cse -fomit-frame-pointer

# set a gcc switch - enable -DDOHOOKS if you want hook support
DEFS	= -D__GCC__ -DINLINE#-DDOHOOKS

# optimise and warn
CFLAGS	= $(DEFS) $(MYFLAGS)

# needed libs

LIBS	= -lsup -lreqtools

# what to do - demo1 -> large code && demo2 -> baserelative code

all	: demo1 demo2

# demos

demo1	: msg1 lib/c.o demo1.o
	  @$(CC) -nostdlib -Llib -o $@ lib/c.o demo1.o $(LIBS)
	  @$(RM) lib/c.o demo1.o
	  @echo "done."

msg1	:
	  @echo "building demo1 ..."

demo1.o	: demo.c
	  @$(CC) $(CFLAGS) -o $@ $<

demo2	: msg2 blib/c.o demo2.o
	  @$(CC) -nostdlib -fbaserel -Lblib -o $@ blib/c.o demo2.o $(LIBS)
	  @$(RM) blib/c.o demo2.o
	  @echo "done."

msg2	:
	  @echo "building demo2 ..."

demo2.o	: demo.c
	  @$(CC) -DSMALLCODE $(CFLAGS) -fbaserel -o $@ $<

# startup code

lib/c.o	: lib/c.s
	  @$(CC) -msmall-code -o $@ $< -c

blib/c.o: blib/c.s
	  @$(CC) -msmall-code -o $@ $< -c
