diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2010-11-26 15:18:01 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2010-11-26 15:18:01 +0100 |
commit | dbfdeaeb46453d300b975dcfb6790f3b16f9e6b5 (patch) | |
tree | fbba8492efcb3536c1606a659308e9f0ca75ea20 /mk | |
parent | 4969392a108205efe43203a9df4a20c749554479 (diff) |
implement the concept of target choice by embedded system or architecture
you can now choose between specific embedded systems like PC Engines
ALIX boards, Foxboard, .. or between generic architecture support like
x86, x86_64, mips, ...
This does reduce the overhead of duplicate configuration files in target
directory. Now qemu, toolchain and ibm x40 support is combined in one target
directory target/x86. Distinguishing between hardware profiles happens
via menu based configuration. (CPU choice for kernel, CFLAGS for package
building, ..). We will see if this is the right direction.
Diffstat (limited to 'mk')
-rw-r--r-- | mk/build.mk | 51 | ||||
-rw-r--r-- | mk/image.mk | 8 | ||||
-rw-r--r-- | mk/kernel.mk | 2 | ||||
-rw-r--r-- | mk/rootfs.mk | 6 | ||||
-rw-r--r-- | mk/vars.mk | 12 |
5 files changed, 41 insertions, 38 deletions
diff --git a/mk/build.mk b/mk/build.mk index 443441cda..5e3ef8173 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -74,7 +74,7 @@ POSTCONFIG= -@\ touch .rebuild.busybox;\ rebuild=1;\ fi; \ - for i in ADK_RUNTIME_PASSWORD ADK_RUNTIME_HOSTNAME ADK_TARGET_ROOTFS;do \ + for i in ADK_RUNTIME_PASSWORD ADK_RUNTIME_HOSTNAME ADK_TARGET_ROOTFS ADK_RUNTIME_CONSOLE;do \ if [ "$$(grep ^$$i .config|md5sum)" != "$$(grep ^$$i .config.old|md5sum)" ];then \ touch .rebuild.base-files;\ rebuild=1;\ @@ -302,11 +302,11 @@ endif ifneq (,$(filter CYGWIN%,${OStype})) @echo ADK_HOST_CYGWIN=y > $(TOPDIR)/.defconfig endif -ifeq ($(ADKtype),ibmx40) - @echo ADK_HARDWARE_IBMX40=y >> $(TOPDIR)/.defconfig +ifeq ($(ADKtype),ibm-x40) + @echo ADK_HARDWARE_IBM_X40=y >> $(TOPDIR)/.defconfig endif -ifeq ($(ADKtype),lemote) - @echo ADK_HARDWARE_YEELONG=y >> $(TOPDIR)/.defconfig +ifeq ($(ADKtype),lemote-yeelong) + @echo ADK_HARDWARE_LEMOTE_YEELONG=y >> $(TOPDIR)/.defconfig endif @if [ ! -z "$(TARGET)" ];then \ grep "^config" target/Config.in \ @@ -336,17 +336,13 @@ endif >> $(TOPDIR)/.defconfig; \ fi @if [ ! -z "$(HW)" ];then \ + hw=$$(echo "$(HW)" |sed -e "s/-/_/g"); \ grep -h "^config" target/Config.in.* \ - |grep -i "$(HW)" \ + |grep -i "$$hw" \ |sed -e "s#^config \(.*\)#\1=y#" \ >> $(TOPDIR)/.defconfig; \ + echo "ADK_ARCH_CHOICE=y" >> $(TOPDIR)/.defconfig; \ fi -ifneq (,$(filter %_qemu,${TARGET})) - @echo ADK_LINUX_QEMU=y >> $(TOPDIR)/.defconfig -endif -ifneq (,$(filter %_toolchain,${TARGET})) - @echo ADK_LINUX_TOOLCHAIN=y >> $(TOPDIR)/.defconfig -endif ifneq (,$(filter rb%,${TARGET})) @echo ADK_LINUX_MIKROTIK=y >> $(TOPDIR)/.defconfig endif @@ -379,11 +375,11 @@ endif ifneq (,$(filter CYGWIN%,${OStype})) @echo ADK_HOST_CYGWIN=y > $(TOPDIR)/all.config endif -ifeq ($(ADKtype),ibmx40) - @echo ADK_HARDWARE_IBMX40=y >> $(TOPDIR)/all.config +ifeq ($(ADKtype),ibmx-40) + @echo ADK_HARDWARE_IBM_X40=y >> $(TOPDIR)/all.config endif -ifeq ($(ADKtype),lemote) - @echo ADK_HARDWARE_YEELONG=y >> $(TOPDIR)/all.config +ifeq ($(ADKtype),lemote-yeelong) + @echo ADK_HARDWARE_LEMOTE_YEELONG=y >> $(TOPDIR)/all.config endif @if [ ! -z "$(TARGET)" ];then \ grep "^config" target/Config.in \ @@ -413,17 +409,13 @@ endif >> $(TOPDIR)/all.config; \ fi @if [ ! -z "$(HW)" ];then \ + hw=$$(echo "$(HW)" |sed -e "s/-/_/g"); \ grep -h "^config" target/Config.in.* \ - |grep -i "$(HW)" \ + |grep -i "$$hw" \ |sed -e "s#^config \(.*\)#\1=y#" \ >> $(TOPDIR)/all.config; \ + echo "ADK_ARCH_CHOICE=y" >> $(TOPDIR)/all.config; \ fi -ifneq (,$(filter %_qemu,${TARGET})) - @echo ADK_LINUX_QEMU=y >> $(TOPDIR)/all.config -endif -ifneq (,$(filter %_toolchain,${TARGET})) - @echo ADK_LINUX_TOOLCHAIN=y >> $(TOPDIR)/all.config -endif ifneq (,$(filter rb%,${TARGET})) @echo ADK_LINUX_MIKROTIK=y >> $(TOPDIR)/all.config endif @@ -480,19 +472,6 @@ bulk: if [ -f .exit ];then echo "Bulk build failed!"; rm .exit; exit 1;fi \ done <${TOPDIR}/target/bulkdef.lst -bulktoolchain: - @while read target libc; do \ - mkdir -p $(TOPDIR)/bin/$${target}_$$libc; \ - ( \ - echo === building $$target $$libc on $$(date); \ - $(GMAKE) prereq && \ - $(GMAKE) TARGET=$$target LIBC=$$libc defconfig; \ - $(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit;fi; \ - rm .config; \ - ) 2>&1 | tee $(TOPDIR)/bin/$${target}_$$libc/$$target-$$libc.log; \ - if [ -f .exit ];then echo "Bulk build failed!"; rm .exit; exit 1;fi \ - done <${TOPDIR}/target/bulktool.lst - bulkall: @while read target libc fs; do \ mkdir -p $(TOPDIR)/bin/$${target}_$$libc; \ diff --git a/mk/image.mk b/mk/image.mk index 5858b9511..be1d9f970 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -35,11 +35,19 @@ kernel-package: $(LINUX_DIR)/vmlinux $(TRACE) target/$(ADK_TARGET)-install-kernel-package $(PKG_INSTALL) $(KERNEL_PKG) $(MAKE_TRACE) +ifeq ($(ADK_HW),) INITRAMFS= ${ADK_TARGET}-${ADK_LIBC}-${FS} ROOTFSSQUASHFS= ${ADK_TARGET}-${ADK_LIBC}-${FS}.img ROOTFSTARBALL= ${ADK_TARGET}-${ADK_LIBC}-${FS}+kernel.tar.gz ROOTFSUSERTARBALL= ${ADK_TARGET}-${ADK_LIBC}-${FS}.tar.gz INITRAMFS_PIGGYBACK= ${ADK_TARGET}-${ADK_LIBC}-${FS}.cpio +else +INITRAMFS= ${ADK_HW}-${ADK_TARGET}-${ADK_LIBC}-${FS} +ROOTFSSQUASHFS= ${ADK_HW}-${ADK_TARGET}-${ADK_LIBC}-${FS}.img +ROOTFSTARBALL= ${ADK_HW}-${ADK_TARGET}-${ADK_LIBC}-${FS}+kernel.tar.gz +ROOTFSUSERTARBALL= ${ADK_HW}-${ADK_TARGET}-${ADK_LIBC}-${FS}.tar.gz +INITRAMFS_PIGGYBACK= ${ADK_HW}-${ADK_TARGET}-${ADK_LIBC}-${FS}.cpio +endif ${BIN_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR} kernel-package cd ${TARGET_DIR}; tar -cf - --owner=0 --group=0 . | gzip -n9 >$@ diff --git a/mk/kernel.mk b/mk/kernel.mk index eb4e52a33..5d2f9dbe0 100644 --- a/mk/kernel.mk +++ b/mk/kernel.mk @@ -3,7 +3,7 @@ LINUX_KMOD_SUFFIX=ko MODULES_SUBDIR := lib/modules/$(KERNEL_VERSION) -LINUX_BUILD_DIR := $(BUILD_DIR)/linux-$(ARCH)-$(ADK_TARGET) +LINUX_BUILD_DIR := $(BUILD_DIR)/linux-$(ADK_TARGET) KMOD_BUILD_DIR := $(LINUX_BUILD_DIR)/linux-modules MODULES_DIR := $(LINUX_BUILD_DIR)/modules/$(MODULES_SUBDIR) TARGET_MODULES_DIR := $(LINUX_TARGET_DIR)/$(MODULES_SUBDIR) diff --git a/mk/rootfs.mk b/mk/rootfs.mk index 30802e092..aab7d4ab1 100644 --- a/mk/rootfs.mk +++ b/mk/rootfs.mk @@ -8,6 +8,10 @@ FS_CMDLINE:=$(3) endif endef +ifeq ($(ADK_HARDWARE_QEMU_X86),y) +ROOTFS:= root=/dev/sda1 +endif + ifeq ($(ADK_LINUX_MIPS_RB532),y) ROOTFS:= root=/dev/sda2 MTDDEV:= root=/dev/mtdblock1 @@ -23,7 +27,7 @@ endif $(eval $(call rootfs_template,ext2-block,EXT2_BLOCK,$(ROOTFS))) $(eval $(call rootfs_template,usb,USB,rootdelay=3)) -$(eval $(call rootfs_template,archive,ARCHIVE)) +$(eval $(call rootfs_template,archive,ARCHIVE,$(ROOTFS))) $(eval $(call rootfs_template,initramfs,INITRAMFS)) $(eval $(call rootfs_template,initramfs-piggyback,INITRAMFS_PIGGYBACK)) $(eval $(call rootfs_template,squashfs,SQUASHFS)) diff --git a/mk/vars.mk b/mk/vars.mk index 40226b254..4ebc1ebf6 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -21,7 +21,11 @@ endif BASE_DIR:= $(TOPDIR) DISTDIR?= ${BASE_DIR}/dl +ifeq ($(ADK_HW),) BUILD_DIR:= ${BASE_DIR}/build_${ADK_TARGET}_${ADK_LIBC} +else +BUILD_DIR:= ${BASE_DIR}/build_${ADK_HW}_${ADK_TARGET}_${ADK_LIBC} +endif BUILD_DIR_PFX:= $(BASE_DIR)/build_* STAGING_PARENT:= ${BASE_DIR}/cross_${ADK_TARGET}_${ADK_LIBC} STAGING_PARENT_PFX:= ${BASE_DIR}/cross_* @@ -31,10 +35,18 @@ TOOLCHAIN_BUILD_DIR= $(BASE_DIR)/toolchain_build_${ADK_TARGET}_${ADK_LIBC} TOOLCHAIN_BUILD_DIR_PFX=$(BASE_DIR)/toolchain_build_* TOOLS_BUILD_DIR= $(BASE_DIR)/tools_build SCRIPT_DIR:= $(BASE_DIR)/scripts +ifeq ($(ADK_HW),) BIN_DIR:= $(BASE_DIR)/bin/${ADK_TARGET}_${ADK_LIBC} +else +BIN_DIR:= $(BASE_DIR)/bin/${ADK_HW}_${ADK_TARGET}_${ADK_LIBC} +endif BIN_DIR_PFX:= $(BASE_DIR)/bin PACKAGE_DIR:= $(BIN_DIR)/packages +ifeq ($(ADK_HW),) TARGET_DIR:= $(BASE_DIR)/root_${ADK_TARGET}_${ADK_LIBC} +else +TARGET_DIR:= $(BASE_DIR)/root_${ADK_HW}_${ADK_TARGET}_${ADK_LIBC} +endif TARGET_DIR_PFX:= $(BASE_DIR)/root_* TARGET_PATH= ${SCRIPT_DIR}:${STAGING_TOOLS}/bin:${STAGING_DIR}/scripts:${_PATH} REAL_GNU_TARGET_NAME= $(CPU_ARCH)-$(ADK_VENDOR)-linux-$(ADK_TARGET_SUFFIX) |