#
# $Id: GNUmakefile.68k,v 1.9 2005-08-27 12:52:26 obarthel Exp $
#
# :ts=8
#

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

CC = gcc
DELETE = delete all quiet

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

.c.o:
	@echo "Compiling $<"
	@$(CC) -c $(CFLAGS) $<

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

#CODE_TYPE := -fbaserel -DSMALL_DATA -m68020-60 -DM68020
#CODE_TYPE := -fbaserel -DSMALL_DATA -m68000
#CODE_TYPE := -fbaserel32 -DSMALL_DATA32 -m68020-60 -DM68020
 CODE_TYPE := -m68020-60 -DM68020
#CODE_TYPE := -m68000

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

WARNINGS = \
	-Wall -W -Wshadow -Wpointer-arith -Wsign-compare -Wmissing-prototypes \
	-Wundef -Wbad-function-cast -Wmissing-declarations -Wconversion

INCLUDE = -I../library/include
LIB = -L../library/lib
 OPTIONS = -DNDEBUG -fno-builtin -fwritable-strings -DNO_INLINE_STDARG -DIEEE_FLOATING_POINT_SUPPORT
#OPTIONS = -D__MEM_DEBUG -fno-builtin
#OPTIONS = -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG -fno-builtin
 OPTIMIZE = -O
#OPTIMIZE = -O2 -fomit-frame-pointer
DEBUG = -ggdb

CFLAGS = $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(CODE_TYPE) $(INCLUDE) $(LIB)

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

LIBS = -lm -lc -lgcc

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

all: test fgets_test iotest sscanf_test printf_test sprintf_test \
	stack_size_test translate_test strtok_test uname simple \
	fstat_stdout_test simple_sprintf date_test sscanf_64

clean:
	$(DELETE) #?.o #?.map test fgets_test iotest sscanf_test printf_test \
		sprintf_test stack_size_test translate_test strtok_test uname \
		simple fstat_stdout_test simple_sprintf date_test sscanf_64

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

test : test.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map

fgets_test : fgets_test.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ fgets_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map

strtok_test : strtok_test.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ strtok_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map

iotest : iotest.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ iotest.o $(LIBS) -Wl,--cref,-M,-Map=$@.map

sscanf_test : sscanf_test.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ sscanf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map

printf_test : printf_test.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ printf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map

sprintf_test : sprintf_test.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ sprintf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map

stack_size_test : stack_size_test.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ stack_size_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map

translate_test : translate_test.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ translate_test.o -lunix $(LIBS) -Wl,--cref,-M,-Map=$@.map

uname : uname.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ uname.o -lunix $(LIBS) -Wl,--cref,-M,-Map=$@.map

simple : simple.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ simple.o $(LIBS) -Wl,--cref,-M,-Map=$@.map

fstat_stdout_test : fstat_stdout_test.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ fstat_stdout_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map

simple_sprintf : simple_sprintf.o
	@echo "Linking $@"
	$(CC) -nostdlib $(CFLAGS) -o $@ simple_sprintf.o -lc -Wl,--cref,-M,-Map=$@.map

date_test : date_test.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ date_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map

sscanf_64 : sscanf_64.o
	@echo "Linking $@"
	$(CC) $(CFLAGS) -o $@ sscanf_64.o $(LIBS) -Wl,--cref,-M,-Map=$@.map

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

mkid:
	mkid -v #?.(c|h|asm|i)

update:
	mkid -v -u
