SOURCE=$(PJ_KERNEL)
IMAGE=$(SOURCE)/vmlinux
ZIMAGE=$(SOURCE)/arch/arm/boot/zImage

DEFCONFIG=$(SOURCE)/arch/$(PJ_ARCH)/configs/$(PJ_HWBOARD)_defconfig

export ARCH=$(PJ_ARCH)
export CROSS_COMPILE=$(PJ_TARGET)-

.PHONY: all clean distclean kernel install prepare_modules $(IMAGE)
all: kernel 
kernel: prepare_modules
clean:
	make -C $(SOURCE) clean
	rm -f $(ZIMAGE)

distclean:
	make -C $(SOURCE) mrproper
	make -C $(SOURCE) distclean
	rm -f $(SOURCE)/.configured


$(IMAGE): $(SOURCE)/.configured
	[ "$$PJ_NAME" != "" ]
	[ "$$PJ_PREFIX" != "" ]
	make -C $(SOURCE) zImage

prepare_modules: $(SOURCE)/.configured
	[ "$$PJ_NAME" != "" ]
	[ "$$PJ_PREFIX" != "" ]
	cp $(DEFCONFIG) $(SOURCE)/.config 
	make -C $(SOURCE) prepare
	make -C $(SOURCE) modules


.PHONY: $(SOURCE)/.configured
$(SOURCE)/.configured:
	[ "$$PJ_NAME" != "" ]
	[ "$$PJ_PREFIX" != "" ]
	[ "$$PJ_HWBOARD" != "" ]
	[ -f $(DEFCONFIG) ]
	if [ "$$(md5sum $(SOURCE)/.configured | cut -b1-32)" != \
		"$$(md5sum $(DEFCONFIG) | cut -b1-32)" ]; then \
		make -C $(SOURCE) mrproper && \
		cp $(DEFCONFIG) $(SOURCE)/.config && \
		make -C $(SOURCE) oldconfig && \
		make -C $(SOURCE) clean && \
		make -C $(SOURCE) dep && \
		cp $(DEFCONFIG) $(SOURCE)/.configured; \
	fi

install: prepare_modules
