#
# Makefile for libkern asm-m68k part
#
TARGET = asm-files

CC = gcc -pipe
AS = gcc -pipe
DEFINITIONS = -DMULTITOS -DVERBOSE_BOOT -DTRAPS_PRIVATE -DCRYPTO_CODE
WARN = -Wall -Wmissing-prototypes -Winline
OPT = -fomit-frame-pointer -O2
CFLAGS = -mshort $(OPT) $(DEFINITIONS) $(WARN) -I. -I../..
ASFLAGS = -mshort -m68030 $(DEFINITIONS)
ATRANS = ../../asmtrans/asmtrans
RANLIB = ranlib
CRLF = crlf -s

#
# C source files
#
%.o: %.c
	@echo "$(CC) $(CFLAGS) $(MODEL) -c $< -o $@"; \
	$(CC) -Wp,-MD,.deps/$(@:.o=.P) $(CFLAGS) $(MODEL) -c $< -o $@

#
# assembler source files
#
%.o: %.s
	$(AS) $(ASFLAGS) -c $*.s -o $@

%.o: %.spp
	$(ATRANS) $(DEFINITIONS) -gas -o $*.s $<
	$(CRLF) $*.s
	$(AS) $(ASFLAGS) -c $*.s -o $@
	$(RM) $*.s	


CFILES = 
COBJS =	$(CFILES:.c=.o)

OBJS = \
	$(COBJS) \
	memset.o \
	quickmove.o \
	quickswap.o \
	quickzero.o

#	peekpoke.o

DEPENDENCIES = $(addprefix ./.deps/, $(patsubst %.c,%.P,$(CFILES)))

#
# main target
#
$(TARGET): $(OBJS)
	echo $(OBJS) > $@


#
# macros for cleaning up
#
clean:
	$(RM) $(OBJS) $(TARGET)

distclean:
	$(MAKE) clean;
	$(RM) -r .deps
	$(RM) *~


.PHONY: help all build buildtime boot clean distclean dist


#
# dependencies
#
DEPS_MAGIC := $(shell mkdir ./.deps > /dev/null 2>&1 || :)

-include $(DEPENDENCIES)

memset.o:	memset.spp
peekpoke.o:	peekpoke.spp
quickzero.o:	quickzero.spp
quickmove.o:	quickmove.spp
quickswap.o:	quickswap.spp
