diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2010-12-30 22:45:29 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2010-12-30 22:45:29 +0100 |
commit | 220a96f9926788ed531717f78e44fdf1e7ab3b34 (patch) | |
tree | 406f65eea71fabd8cf66c2bd1108ec63f8c349ee /target/mipsel/Makefile | |
parent | 38af8185ea05a1c5d1abb32a68a025e3b4afa4d6 (diff) |
rework architecture / embedded systems concept
Make configuration of new targets cheap.
Just add a new file in target/arch/sys-enabled/foo.
See other files for syntax. While doing runtime tests
with the new infrastructure I've updated a lot of other
stuff:
- gcc 4.5.2
- uClibc 0.9.32-rc1 (NPTL)
- strongswan, php, miredo, parted, util-linux-ng, e2fsprogs
I promise, this is the last big fat commit this year ;)
Diffstat (limited to 'target/mipsel/Makefile')
-rw-r--r-- | target/mipsel/Makefile | 100 |
1 files changed, 88 insertions, 12 deletions
diff --git a/target/mipsel/Makefile b/target/mipsel/Makefile index f55aa9cb4..02e6057ca 100644 --- a/target/mipsel/Makefile +++ b/target/mipsel/Makefile @@ -8,29 +8,105 @@ include $(TOPDIR)/mk/kernel-build.mk include $(TOPDIR)/mk/image.mk KERNEL:=$(LINUX_DIR)/vmlinux +OSTRIP:=-R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id -ifeq ($(FS),archive) +$(TOOLS_BUILD_DIR): + mkdir -p $(TOOLS_BUILD_DIR) + +tools-compile: $(TOOLS_BUILD_DIR) + $(MAKE) -C ../tools/trx + $(MAKE) -C ../tools/addpattern + $(MAKE) -C ../tools/srec2bin + $(MAKE) -C ../tools/squashfs prepare compile install + +ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_WRT54G),y) +kernel-install: tools-compile + $(TARGET_CROSS)objcopy $(OSTRIP) -S $(LINUX_DIR)/vmlinux \ + $(LINUX_DIR)/vmlinuz + @gzip -c9 $(LINUX_DIR)/vmlinuz > $(TARGET_KERNEL) +endif + +ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_AG241),y) +kernel-install: tools-compile + ${TARGET_CROSS}objcopy -S -O srec $(KERNEL) \ + $(LINUX_DIR)/vmlinux.srec + PATH='${TARGET_PATH}' srec2bin $(LINUX_DIR)/vmlinux.srec $(LINUX_DIR)/vmlinux.bin + (dd if=/dev/zero bs=16 count=1; cat $(LINUX_DIR)/vmlinux.bin) > $(LINUX_DIR)/vmlinux.tmp + PATH='${TARGET_PATH}' addpattern -p AG3B -b -r 2.0 -i $(LINUX_DIR)/vmlinux.tmp \ + -o $(TARGET_KERNEL) 2>/dev/null +endif + +ifeq ($(ADK_TARGET_SYSTEM_MIKROTIK_RB532),y) +kernel-install: + $(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) \ + $(TARGET_DIR)/boot/kernel +endif + +ifeq ($(ADK_TARGET_FS),cf) +imageinstall: kernel-install $(BIN_DIR)/$(ROOTFSUSERTARBALL) + @cp $(TARGET_DIR)/boot/kernel $(TARGET_KERNEL) + @echo 'The kernel file is: ${TARGET_KERNEL}' + @echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSUSERTARBALL)" + @echo "Boot the board via network (tftp+nfsroot) and use adkinstall." + @echo "If you just want to update, use adkupdate." +endif +ifeq ($(ADK_TARGET_FS),squashfs) +imageinstall: kernel-install $(BIN_DIR)/$(ROOTFSSQUASHFS) + @if [ $$(stat -f %z ${BUILD_DIR}/${ROOTFSSQUASHFS}) -gt 3801088 ];then \ + echo 'Image is too big!'; \ + else \ + ${CP} ${BUILD_DIR}/${ROOTFSSQUASHFS} ${BIN_DIR}/${ROOTFSSQUASHFS}; \ + echo The image file is $(ROOTFSSQUASHFS); \ + echo 'You can flash the image via tftp:'; \ + echo 'tftp 192.168.1.1'; \ + echo 'tftp> binary'; \ + echo "tftp> put $(ROOTFSSQUASHFS) upgrade_code.bin"; \ + fi +endif +ifeq ($(ADK_TARGET_FS),nfsroot) +imageinstall: kernel-install $(BIN_DIR)/$(ROOTFSUSERTARBALL) + @echo 'The kernel file is: ${TARGET_KERNEL}' + @echo 'The nfs root tarball is: ${BIN_DIR}/${ROOTFSUSERTARBALL}' +ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_AG241),y) + @echo 'You can flash the kernel via tftp:' + @echo 'tftp 192.168.1.1' + @echo 'tftp> binary' + @echo 'tftp> put ${TARGET_KERNEL} upgrade_code.bin' +endif +ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_WRT54G),y) + @echo 'Type following on the CFE prompt to boot the kernel:' + @echo 'CFE> boot -z -elf -tftp 192.168.1.254:${TARGET_KERNEL}' +endif +endif +ifeq ($(ADK_TARGET_FS),archive) imageinstall: $(BIN_DIR)/$(ROOTFSTARBALL) - @cp $(KERNEL) $(BIN_DIR)/${ADK_TARGET}-${FS}-kernel - @echo 'The kernel file is: ${BIN_DIR}/${ADK_TARGET}-${FS}-kernel' + @cp $(KERNEL) $(TARGET_KERNEL) + @echo 'The kernel file is: ${TARGET_KERNEL}' @echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSTARBALL)" @echo "Use following command to create a QEMU Image:" @echo "sudo ./scripts/create-image.sh -f $(ADK_TARGET_ROOTFS) qemu-${CPU_ARCH}.img $(BIN_DIR)/$(ROOTFSTARBALL)" @echo "Be sure to change permissions after image creation." @echo "Start qemu with following options:" - @echo 'qemu-system-mipsel -nographic -M malta -kernel $(BIN_DIR)/${ADK_TARGET}-${FS}-kernel -hda qemu-${CPU_ARCH}.img -append "root=/dev/hda1"' + @echo 'qemu-system-mipsel -nographic -M malta -kernel $(TARGET_KERNEL) -hda qemu-${CPU_ARCH}.img -append "root=/dev/hda1"' endif -ifeq ($(FS),initramfs) +ifeq ($(ADK_TARGET_FS),initramfs) imageinstall: $(BIN_DIR)/$(INITRAMFS) - @cp $(KERNEL) $(BIN_DIR)/${ADK_TARGET}-${FS}-kernel - @echo 'The kernel file is: ${BIN_DIR}/${ADK_TARGET}-${FS}-kernel' + @cp $(KERNEL) $(TARGET_KERNEL) + @echo 'The kernel file is: ${TARGET_KERNEL}' @echo 'The initramfs image is: ${BIN_DIR}/${INITRAMFS}' - @echo 'qemu-system-mipsel -nographic -M malta -kernel $(BIN_DIR)/${ADK_TARGET}-${FS}-kernel -initrd ${BIN_DIR}/${INITRAMFS}' + @echo 'qemu-system-mipsel -nographic -M malta -kernel $(TARGET_KERNEL) -initrd ${BIN_DIR}/${INITRAMFS}' endif -ifeq ($(FS),initramfs-piggyback) +ifeq ($(ADK_TARGET_FS),initramfs-piggyback) imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs - @cp $(KERNEL) $(BIN_DIR)/${ADK_TARGET}-${FS}-kernel - @echo 'The kernel+initramfs file is: ${BIN_DIR}/${ADK_TARGET}-${FS}-kernel' + @cp $(KERNEL) $(TARGET_KERNEL) + @echo 'The kernel+initramfs file is: ${TARGET_KERNEL}' @echo "Start qemu with following command line:" - @echo 'qemu-system-mipsel -nographic -M malta -kernel $(BIN_DIR)/${ADK_TARGET}-${FS}-kernel' + @echo 'qemu-system-mipsel -nographic -M malta -kernel $(TARGET_KERNEL)' +endif +ifeq ($(ADK_TARGET_FS),yaffs) +imageinstall: kernel-install $(BIN_DIR)/$(ROOTFSTARBALL) + @echo "The RootFS tarball is:" + @echo "$(BIN_DIR)/$(ROOTFSTARBALL)" + @echo "Boot the board via network (tftp/nfsroot) and use adkinstall." + @echo "If you just want to update, use adkupdate." endif |