CROSS_COMPILE	?= ~/mips-mti-linux/bin/mips-mti-linux-gnu-
CC				= $(CROSS_COMPILE)gcc
LD				= $(CROSS_COMPILE)gcc
OBJCOPY			= $(CROSS_COMPILE)objcopy

ifeq ($(DEBUG),1)
	OPT			= -Os -g -ggdb3
else
	OPT			= -Os -flto
endif

ifeq ($(BUILD),linux)
	SRCS		+= partMgrMbr.c fat.c loadLinux.c
	LKR			= linker.lkr
else ifeq ($(BUILD),ultrix)
	SRCS		+= partMgrUltrix.c ufs.c loadUltrix.c
	CCFLAGS		+= -DSELF_LOAD -DUFS_TYPE_OLD
	LKR			= linker.lkr
else ifeq ($(BUILD),ultrix_install)
	SRCS		+= partMgrMbr.c fat.c loadUltrix.c
	CCFLAGS		+= -DREPORT_BOOT_FROM_CD
	LKR			= linker.lkr
else ifeq ($(BUILD),netbsd)
	SRCS		+= partMgrNetBSD.c ufs.c loadNetBSD.c preloader.netbsd.S
	CCFLAGS		+= -DSELF_LOAD -DUFS_TYPE_FFS
	LKR			= linker.lkr
else
	SRCS		+= $(error "BUILD must be set to 'linux', 'ultrix', 'ultrix_install', or 'netbsd'")
endif


SRCS			+= loader.c printf.c util.c entry.S

FLAGS			+= $(OPT) -mabi=32 -EL -mips1 -mno-mips16 -mno-long-calls -nostdlib
CCFLAGS			+= $(FLAGS) -fomit-frame-pointer -ffunction-sections -fdata-sections -Wall
LDFLAGS			+= $(FLAGS) -Wl,--gc-sections  -Wl,-T $(LKR)

INCS			= $(wildcard *.h)
OBJS			= $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(SRCS)))


aaa:
	echo $(OBJS)

all:	loader.bin


%.bin: %.elf Makefile
	$(OBJCOPY) $< $@ -O binary

%.elf: $(OBJS)
	$(LD) -o $@ $^ $(LDFLAGS)

%.o: %.c $(INCS) Makefile
	$(CC) -o $@ -c $< $(CCFLAGS)

%.o: %.S $(INCS) Makefile
	$(CC) -o $@ -c $< $(CCFLAGS)
