From 2d2677945f5f27292b0a41c32926cdc09b01ab2d Mon Sep 17 00:00:00 2001 From: Bahadir Balban Date: Sun, 13 Sep 2009 14:35:04 +0300 Subject: [PATCH] Building of linux and rootfs as containers nicely getting in shape Created a Linux builder that takes a container object as its parameter. Build of linux kernel will be coordinated by input from this container parameter --- scripts/linux/build_linux.py | 40 +++++++++++++++++++++++------------ scripts/linux/build_rootfs.py | 32 ++++++++++++++++------------ 2 files changed, 44 insertions(+), 28 deletions(-) diff --git a/scripts/linux/build_linux.py b/scripts/linux/build_linux.py index 32f1ee7..57f0c81 100755 --- a/scripts/linux/build_linux.py +++ b/scripts/linux/build_linux.py @@ -18,24 +18,36 @@ from config.configuration import * LINUX_KERNEL_BUILDDIR = join(BUILDDIR, os.path.relpath(LINUX_KERNELDIR, PROJROOT)) -def main(): - config_symbols = configuration_retrieve() - os.chdir(LINUX_KERNELDIR) - if not os.path.exists(LINUX_KERNEL_BUILDDIR): - os.makedirs(LINUX_KERNEL_BUILDDIR) - os.system("make defconfig ARCH=arm O=" + LINUX_KERNEL_BUILDDIR) - os.system("make ARCH=arm " + \ - "CROSS_COMPILE=arm-none-linux-gnueabi- O=" + \ - LINUX_KERNEL_BUILDDIR) +class LinuxBuilder: + @staticmethod + def build_linux(container): + print '\nBuilding the linux kernel...' -def clean(): - if os.path.exists(LINUX_KERNEL_BUILDDIR): - shutil.rmtree(LINUX_KERNEL_BUILDDIR) + # Create linux kernel build directory path + cont_builddir = join(BUILDDIR, "cont" + str(container.id)) + LINUX_KERNEL_BUILDDIR = join(cont_builddir, \ + os.path.relpath(LINUX_KERNELDIR, \ + PROJROOT)) + + os.chdir(LINUX_KERNELDIR) + if not os.path.exists(LINUX_KERNEL_BUILDDIR): + os.makedirs(LINUX_KERNEL_BUILDDIR) + os.system("make defconfig ARCH=arm O=" + LINUX_KERNEL_BUILDDIR) + os.system("make ARCH=arm " + \ + "CROSS_COMPILE=arm-none-linux-gnueabi- O=" + \ + LINUX_KERNEL_BUILDDIR) + + @staticmethod + def clean(self): + if os.path.exists(LINUX_KERNEL_BUILDDIR): + shutil.rmtree(LINUX_KERNEL_BUILDDIR) if __name__ == "__main__": + container = Container() + container.id = 0 if len(sys.argv) == 1: - main() + LinuxBuilder.build_linux(container) elif "clean" == sys.argv[1]: - clean() + LinuxBuilder.clean() else: print " Usage: %s [clean]" % (sys.argv[0]) diff --git a/scripts/linux/build_rootfs.py b/scripts/linux/build_rootfs.py index 2838c85..39fef3e 100755 --- a/scripts/linux/build_rootfs.py +++ b/scripts/linux/build_rootfs.py @@ -21,24 +21,28 @@ rootfs_lds_in = join(LINUX_ROOTFSDIR, "rootfs.lds.in") rootfs_lds_out = join(LINUX_ROOTFS_BUILDDIR, "rootfs.lds") rootfs_elf_out = join(LINUX_ROOTFS_BUILDDIR, "rootfs.elf") -def main(): - os.chdir(LINUX_ROOTFSDIR) - config_symbols = configuration_retrieve() - if not os.path.exists(LINUX_ROOTFS_BUILDDIR): - os.makedirs(LINUX_ROOTFS_BUILDDIR) - os.system("arm-none-linux-gnueabi-cpp -P " + \ - "%s > %s" % (rootfs_lds_in, rootfs_lds_out)) - os.system("arm-none-linux-gnueabi-gcc " + \ - "-nostdlib -o %s -T%s rootfs.S" % (rootfs_elf_out, rootfs_lds_out)) +class BuildRootfs: + @staticmethod + def build_rootfs(): + print 'Building the root filesystem...' + os.chdir(LINUX_ROOTFSDIR) + config_symbols = configuration_retrieve() + if not os.path.exists(LINUX_ROOTFS_BUILDDIR): + os.makedirs(LINUX_ROOTFS_BUILDDIR) + os.system("arm-none-linux-gnueabi-cpp -P " + \ + "%s > %s" % (rootfs_lds_in, rootfs_lds_out)) + os.system("arm-none-linux-gnueabi-gcc " + \ + "-nostdlib -o %s -T%s rootfs.S" % (rootfs_elf_out, rootfs_lds_out)) -def clean(): - if os.path.exists(LINUX_ROOTFS_BUILDDIR): - shutil.rmtree(LINUX_ROOTFS_BUILDDIR) + @staticmethod + def clean(): + if os.path.exists(LINUX_ROOTFS_BUILDDIR): + shutil.rmtree(LINUX_ROOTFS_BUILDDIR) if __name__ == "__main__": if len(sys.argv) == 1: - main() + BuildRootfs.build_rootfs() elif "clean" == sys.argv[1]: - clean() + BuildRootfs.clean() else: print " Usage: %s [clean]" % (sys.argv[0])