#
# uboot/devices/efikamx/Makefile
#

PWD = $(shell pwd)
WORK = $(PWD)/work
MKIMAGE = $(PWD)/../../work/mkimage
ZIMAGE = $(PWD)/../../../kernel/efikamx/work/zImage
INITRDGZ = $(PWD)/../../../initrd/work/initrd.gz
INITRAMFS = $(PWD)/../../../initramfs/work/initramfs

RAMDISK_TYPE = uInitrd # select between uInitramfs or uInitrd

.PHONY: all clean distclean kernel ramdisk bootscr

all: kernel ramdisk bootscr

clean: kernel-clean ramdisk-clean bootscr-clean

distclean: clean

$(WORK):
	install -d $(WORK)

$(WORK)/uImage: $(WORK) $(MKIMAGE) $(ZIMAGE)
	$(MKIMAGE) -A arm -O linux -a 0x90008000 -e 0x90008000 \
	-T kernel -C none -n "Linux-2.6.31.14.22-efikamx" \
	-d $(ZIMAGE) $(WORK)/uImage

kernel: $(WORK)/uImage

kernel-clean:
	rm -f $(WORK)/uImage

$(WORK)/uInitrd: $(WORK) $(MKIMAGE) $(INITRDGZ)
	$(MKIMAGE) -A arm -O linux -a 0 -e 0 \
	-T ramdisk -C none -n "CRUX-ARM Initrd Image" \
	-d $(INITRDGZ) $(WORK)/uInitrd

uInitrd: $(WORK)/uInitrd

uInitrd-clean:
	rm -f $(WORK)/uInitrd

$(WORK)/uInitramfs: $(WORK) $(MKIMAGE) $(INITRAMFS)
	$(MKIMAGE) -A arm -O linux -a 0 -e 0 \
	-T ramdisk -C none -n "CRUX-ARM Initramfs Image" \
	-d $(INITRAMFS) $(WORK)/uInitramfs

uInitramfs: $(WORK)/uInitramfs

uInitramfs-clean:
	rm -f $(WORK)/uInitramfs

ramdisk: $(RAMDISK_TYPE)

ramdisk-clean: uInitrd-clean uInitramfs-clean

$(WORK)/boot-ramdisk.scr: $(WORK) $(MKIMAGE) $(PWD)/boot-ramdisk.script
	sed -e "s|#RAMDISK_TYPE#|$(RAMDISK_TYPE)|" \
		$(PWD)/boot-ramdisk.script > $(WORK)/boot-ramdisk.script
	$(MKIMAGE) -A arm -O linux -a 0 -e 0 \
	-T script -C none -n "EfikaMX Boot Script (ramdisk)" \
	-d $(WORK)/boot-ramdisk.script \
	$(WORK)/boot-ramdisk.scr

$(WORK)/boot-sda.scr: $(WORK) $(MKIMAGE) $(PWD)/boot-sda.script
	$(MKIMAGE) -A arm -O linux -a 0 -e 0 \
	-T script -C none -n "EfikaMX Boot Script (sda)" \
	-d $(PWD)/boot-sda.script \
	$(WORK)/boot-sda.scr

$(WORK)/boot-mmc.scr: $(WORK) $(MKIMAGE) $(PWD)/boot-mmc.script
	$(MKIMAGE) -A arm -O linux -a 0 -e 0 \
	-T script -C none -n "EfikaMX Boot Script (mmc)" \
	-d $(PWD)/boot-mmc.script \
	$(WORK)/boot-mmc.scr

bootscr: $(WORK)/boot-ramdisk.scr $(WORK)/boot-sda.scr $(WORK)/boot-mmc.scr

bootscr-clean:
	rm -f $(WORK)/boot-*.scr*

# End of file