# The kernel tree you do builds in.
# Uncomment if you're building for the emulator
DOQUIET = false
KERNEL_ROOT = ..


ifdef EMULATOR
EMUOPTS = -DEMULATOR
LDSCRIPT = ld-emu.script
else
EMUOPTS =
LDSCRIPT = ld.script
endif

COPTIONS = -DROM_MEMORY -DCOMPRESSED_KERNEL


#LOADER_FILES = hfload.o

CFLAGS = -g -fno-pic -mno-abicalls $(EMUOPTS) -DEMBEDDED -I$(KERNEL_ROOT)/include/linux -I$(KERNEL_ROOT)/include -I$(KERNEL_ROOT)/lib $(COPTIONS)
ASFLAGS = -g $(EMUOPTS) -DEMBEDDED -I$(KERNEL_ROOT)/include


ifeq ($(strip $(DOQUIET)),true)
    #CFLAGS  += $(WARNINGS)  -D__DO_QUIET__
    CFLAGS  += $(WARNINGS)  -D__DO_QUIET__
	SUPPORT_FILES = string.o ctype.o  display.o misc.o
endif
#CC = gcc
CC = mipsel-linux-gcc -mno-abicalls -fno-pic -G 0
LD = mipsel-linux-ld -static -nostdlib
NM = mipsel-linux-nm

all:	linux.bin

clean:
	rm -f memload system.map rtkrom memload-partial memload-full vmlinux_img.gz target target.img strip1


memload-partial: $(LOADER_FILES) $(SUPPORT_FILES) $(START_FILE) vmlinux_img.gz
	mipsel-linux-gcc -fno-pic -mno-abicalls -O2 -fomit-frame-pointer -D__KERNEL__ -EB -c vmlinux_img.c -o vmlinux_img.o	
	mipsel-linux-objcopy --add-section .vmlinux=vmlinux_img.gz vmlinux_img.o
	$(LD) -G 0 -T $(LDSCRIPT) -o memload-partial start.o hfload.o read_memory.o   vsprintf.o prom_printf.o string.o ctype.o  display.o misc.o vmlinux_img.o
	$(NM) memload-partial | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aU] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > system.map

vmlinux_img.gz: ../vmlinux
	cp $(KERNEL_ROOT)/vmlinux vmlinux-stripped
	mipsel-linux-strip vmlinux-stripped
	mipsel-linux-objcopy -Obinary vmlinux-stripped vmlinux_img
	rm -f vmlinux_img.gz
	gzip -9v vmlinux_img

memload-full: memload-partial
	cp memload-partial memload-full

rtkrom:   memload-full
	mipsel-linux-objcopy -Obinary memload-full rtkrom

linux.bin: rtkrom
	./cvimg rtkrom linux.bin 80300000

target:	linux.bin $(BOOT_CODE) $(EXT2_IMG)

depend:
	rm -f .depend
	$(CC) $(CFLAGS) -MM $(SOURCES) >.depend

