add image builder to whiterussian, really fix base-files, dependency fixes/cleanups...
authorFelix Fietkau <nbd@openwrt.org>
Sun, 14 Aug 2005 18:25:11 +0000 (18:25 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 14 Aug 2005 18:25:11 +0000 (18:25 +0000)
SVN-Revision: 1671

openwrt/package/Config.in
openwrt/package/base-files/Makefile
openwrt/target/Makefile
openwrt/target/linux/Makefile
openwrt/target/linux/image/Makefile
openwrt/target/linux/image/brcm/Makefile
openwrt/target/linux/image/jffs2.mk
openwrt/target/linux/image/squashfs.mk
openwrt/target/linux/linux-2.4/Makefile
openwrt/target/linux/linux-2.4/broadcom.mk
openwrt/toolchain/Makefile

index 5d3391fd8bb5765ffce52f29b4ea78b55b3cb6ac..4086c70847bd4105ca49760aa294326e885a7181 100644 (file)
@@ -137,6 +137,15 @@ source "package/shfs/Config.in"  # kmod-shfs
 comment "Extra stuff"
 source "package/sdk/Config.in"
 
+config BR2_PACKAGE_IMAGEBUILDER
+       bool "OpenWrt Image Builder"
+       default y if CONFIG_DEVEL
+       help
+         Build an OpenWrt Image Builder.
+         This package contains the necessary (precompiled) tools and all packages to generate
+         firmware images from package lists, without having to use the full buildroot.
+         Useful for building images with custom scripts or extra packages.
+
 endmenu
 
 source "package/Sysconf.in"
index afac929c9915f01ed4e9fc2dea48b0ccab79d312..af60bafacec641f22136b026eb870048d5281ddb 100644 (file)
@@ -50,9 +50,9 @@ $(IPKG_BASE):
 $(IPKG_LIBC):
        $(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_LIBC) ipkg/uclibc.control $(LIBC_VERSION)-$(PKG_RELEASE) $(ARCH)
        mkdir -p $(IDIR_LIBC)/lib
-       cp -fpR $(STAGING_DIR)/lib/ld-uClibc*.so $(IDIR_LIBC)/lib/
+       cp $(STAGING_DIR)/lib/ld-uClibc*.so.* $(IDIR_LIBC)/lib/
        for file in c crypt dl m nsl resolv rt uClibc util; do \
-               cp -fpR $(STAGING_DIR)/lib/lib$$file*.so $(IDIR_LIBC)/lib/; \
+               cp $(STAGING_DIR)/lib/lib$$file*.so.* $(IDIR_LIBC)/lib/; \
        done
        -$(STRIP) $(IDIR_LIBC)/lib/*
        $(IPKG_BUILD) $(IDIR_LIBC) $(PACKAGE_DIR)
index 5e8c6f28cdc00f46e8f5dd41fbf35115b826efa5..e6156b48bf034474cbc056a824dbcff01b78760c 100644 (file)
@@ -26,5 +26,6 @@ image_clean:
        $(MAKE) -C $(patsubst %-rebuild,%,$@) rebuild
 %-install: %-compile
        $(MAKE) -C $(patsubst %-install,%,$@) install
-
+linux-imagebuilder:
+       $(MAKE) -C linux imagebuilder
 
index 604c739b599191a78d5ae4516180ad643f2be627..f0e3b9842e20e5bee6fadd843ba3fbc2f642ffcf 100644 (file)
@@ -1,5 +1,11 @@
 include $(TOPDIR)/rules.mk
 
+PKG_OS:=$(shell uname -s)
+PKG_CPU:=$(shell uname -m)
+
+IB_NAME:=OpenWrt-ImageBuilder-$(PKG_OS)-$(PKG_CPU)
+IB_DIR:=$(BUILD_DIR)/$(IB_NAME)
+
 define kernel_template
 
 $(1)/$(2)-clean:
@@ -20,22 +26,50 @@ $(1)/$(2)-install:
 $(1)/$(2)-image: $(1)/$(2)-install
        $(MAKE) -C image KERNEL="$(1)" BOARD="$(2)" install
 
+$(1)/$(2)-install-ib:
+       $(MAKE) -C image KERNEL="$(1)" BOARD="$(2)" IB_DIR="$(IB_DIR)" install-ib
+       echo '$$$$(eval $$$$(call image_template,$(2),$(1)))' >> $(IB_DIR)/kernel.mk
+
+
 ifeq ($(BR2_LINUX_$(3)),y)
 clean: $(1)/$(2)-clean
 prepare: $(1)/$(2)-prepare
 compile: $(1)/$(2)-compile
 rebuild: $(1)/$(2)-rebuild
-install: $(1)/$(2)-image
+kernel-install: $(1)/$(2)-image
+install-ib: $(1)/$(2)-install-ib
 endif
 
-.PHONY: $(1)/$(2)-clean $(1)/$(2)-prepare $(1)/$(2)-compile $(1)/$(2)-rebuild $(1)/$(2)-install
+.PHONY: $(1)/$(2)-clean $(1)/$(2)-prepare $(1)/$(2)-compile $(1)/$(2)-rebuild $(1)/$(2)-install $(1)/$(2)-image $(1)/$(2)-install-ib
 endef
 
+.PHONY: clean prepare compile rebuild install imagebuilder install-ib kernel-install
+
+install-ib:
+
+$(BIN_DIR)/$(IB_NAME).tar.bz2: kernel-install
+       rm -rf $(IB_DIR)
+       mkdir -p $(IB_DIR)/packages
+       mkdir -p $(IB_DIR)/scripts
+       cp -dpR ./imagebuilder/* $(IB_DIR)/
+       cp -dpR $(TOPDIR)/bin/packages/*.ipk $(IB_DIR)/packages/
+       cp $(TOPDIR)/scripts/ipkg $(IB_DIR)/scripts/
+       $(MAKE) install-ib
+       cp $(TOPDIR)/rules.mk $(IB_DIR)
+       cp -dpR ./image $(IB_DIR)/
+       cp $(TOPDIR)/.config $(IB_DIR)/
+       find $(IB_DIR) -name CVS | xargs rm -rf
+       (cd $(BUILD_DIR); tar c $(IB_NAME) | bzip2 -c > $(BIN_DIR)/$(IB_NAME).tar.bz2)
+
+ifeq ($(BR2_PACKAGE_IMAGEBUILDER),y)
+install: $(BIN_DIR)/$(IB_NAME).tar.bz2
+endif
+
 prepare:
        $(MAKE) -C image prepare
 compile:
        $(MAKE) -C image compile
-install:
+install: kernel-install
 rebuild:
 clean:
 
index 73e67a3d1caef3bdb93845f20f26b3b13c0d7849..679a5709621c52336dc16132b3222d1093c658fd 100644 (file)
@@ -1,9 +1,5 @@
 include $(TOPDIR)/rules.mk
 
-ifeq ($(BOARD),)
-BOARD:=brcm
-endif
-
 KDIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)
 
 ifeq ($(BR2_TARGET_ROOTFS_JFFS2),y)
@@ -15,10 +11,16 @@ include ./squashfs.mk
 endif
 
 prepare:
-compile:
-install:
        $(MAKE) -C $(BOARD) prepare
+compile:
        $(MAKE) -C $(BOARD) compile
+install:
+
+install-ib:
+       -$(MAKE) -C $(BOARD) IB_DIR="$(IB_DIR)" install-ib
+       mkdir -p $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)
+       cp $(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)/kernel[-_]*.ipk $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)/      
+
 rebuild: clean prepare compile install
 clean:
 
index ec8f72ccace8ea03c351d79291626616ee4e8954..f551b84bee5d8e2067750bcd588e05291f8c8521 100644 (file)
@@ -1,6 +1,6 @@
 include $(TOPDIR)/rules.mk
 
-KDIR:=$(BUILD_DIR)/linux-$(KERNEL)-brcm
+KDIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)
 
 lzma-loader-clean:
        $(MAKE) -C lzma-loader clean
@@ -11,16 +11,20 @@ lzma-loader-prepare:
 lzma-loader-compile: lzma-loader-prepare
        $(MAKE) -C lzma-loader compile
 
+ifeq ($(IB),)
 $(KDIR)/vmlinux.lzma: $(KDIR)/vmlinux
        cat $^ | $(STAGING_DIR)/bin/lzma e -si -so -eos -lc1 -lp2 -pb2 > $@ || (rm -f $@ && false)
 
+$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).trx: $(KDIR)/vmlinux.lzma
+endif
+
 ifeq ($(FS),jffs2-8MB)
 TRXALIGN:=-a 0x20000
 endif
 ifeq ($(FS),jffs2-4MB)
 TRXALIGN:=-a 0x10000
 endif
-$(BIN_DIR)/openwrt-brcm-$(KERNEL)-$(FS).trx: $(KDIR)/vmlinux.lzma
+$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).trx:
        $(STAGING_DIR)/bin/trx -o $@ $(BUILD_DIR)/loader.gz $(KDIR)/vmlinux.lzma $(TRXALIGN) $(KDIR)/root.$(FS)
 
 
@@ -28,26 +32,38 @@ ifeq ($(KERNEL),2.4)
 FSNAME:=$(patsubst jffs2-%,jffs2,$(FS))
 
 ifneq ($(FS),jffs2-8MB)
-$(BIN_DIR)/openwrt-wrt54g-$(FSNAME).bin: $(BIN_DIR)/openwrt-brcm-$(KERNEL)-$(FS).trx
+$(BIN_DIR)/openwrt-wrt54g-$(FSNAME).bin: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).trx
        $(STAGING_DIR)/bin/addpattern -4 -p W54G -v v4.20.6 -i $< -o $@ -g
 
 install: $(BIN_DIR)/openwrt-wrt54g-$(FSNAME).bin
 endif
 
 ifneq ($(FS),jffs2-4MB)
-$(BIN_DIR)/openwrt-wrt54gs-$(FSNAME).bin: $(BIN_DIR)/openwrt-brcm-$(KERNEL)-$(FS).trx
+$(BIN_DIR)/openwrt-wrt54gs-$(FSNAME).bin: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).trx
        $(STAGING_DIR)/bin/addpattern -4 -p W54S -v v4.70.6 -i $< -o $@ -g
 
 install: $(BIN_DIR)/openwrt-wrt54gs-$(FSNAME).bin
 endif
 
-$(BIN_DIR)/openwrt-motorola-$(FS).bin: $(BIN_DIR)/openwrt-brcm-$(KERNEL)-$(FS).trx
+$(BIN_DIR)/openwrt-motorola-$(FS).bin: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).trx
        $(STAGING_DIR)/bin/motorola-bin $< $@
 install: $(BIN_DIR)/openwrt-motorola-$(FS).bin
 endif
 
+ifeq ($(IB),)
 clean: lzma-loader-clean
 prepare: lzma-loader-prepare
 compile: lzma-loader-compile
-install: compile $(BIN_DIR)/openwrt-brcm-$(KERNEL)-$(FS).trx
-       
+install: compile $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).trx
+else
+clean:
+prepare:
+compile:
+install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).trx
+endif
+install-ib:
+       mkdir -p $(IB_DIR)/staging_dir_$(ARCH)/bin
+       cp -dpR $(STAGING_DIR)/bin/addpattern $(STAGING_DIR)/bin/trx $(STAGING_DIR)/bin/motorola-bin $(IB_DIR)/staging_dir_$(ARCH)/bin
+       mkdir -p $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)
+       cp -dpR $(BUILD_DIR)/loader.gz $(IB_DIR)/build_$(ARCH)/
+       cp -dpR $(KDIR)/vmlinux.lzma $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)/
index 02c56817b31fc1052e345976b5850943b61570b1..a2c47e4dcd60b20a1e5c26a7743f38fb9c42f864 100644 (file)
@@ -23,8 +23,13 @@ jffs2-install: $(KDIR)/root.jffs2-4MB $(KDIR)/root.jffs2-8MB
        $(MAKE) -C $(BOARD) install KERNEL="$(KERNEL)" FS="jffs2-4MB"
        $(MAKE) -C $(BOARD) install KERNEL="$(KERNEL)" FS="jffs2-8MB"
 
+jffs2-install-ib:
+       mkdir -p $(IB_DIR)/staging_dir_$(ARCH)/bin
+       cp $(STAGING_DIR)/bin/mkfs.jffs2 $(IB_DIR)/staging_dir_$(ARCH)/bin
+
 prepare: jffs2-prepare
 compile: jffs2-compile
 install: jffs2-install
+install-ib: jffs2-install-ib
 clean: jffs2-clean
 
index fbf4e704ea569d33067437b84b4f7302186bb9a3..42ff77db6455e6643932fa8fea34d50eb8411f62 100644 (file)
@@ -10,11 +10,17 @@ squashfs-clean:
 
 $(KDIR)/root.squashfs:
        @mkdir -p $(KDIR)/root/jffs
-       $(STAGING_DIR)/bin/mksquashfs-lzma $(KDIR)/root $@ -noappend -nopad -root-owned -le
+       $(STAGING_DIR)/bin/mksquashfs-lzma $(KDIR)/root $@ -nopad -noappend -root-owned -le
 
 squashfs-install: $(KDIR)/root.squashfs
        $(MAKE) -C $(BOARD) install KERNEL="$(KERNEL)" FS="squashfs"
+
+squashfs-install-ib:
+       mkdir -p $(IB_DIR)/staging_dir_$(ARCH)/bin
+       cp $(STAGING_DIR)/bin/mksquashfs-lzma $(IB_DIR)/staging_dir_$(ARCH)/bin
        
 prepare: squashfs-prepare
 compile: squashfs-compile
 install: squashfs-install
+install-ib: squashfs-install-ib
+clean: squashfs-clean
index 5a718a260c2517e7591df758261a57f368d7124f..687069fe07aaae6f26d60b960174904e1d7262d6 100644 (file)
@@ -203,6 +203,15 @@ $(STAGING_DIR)/include/linux/version.h: $(LINUX_DIR)/.configured
        tar -ch -C $(LINUX_DIR)/include -f - linux | tar -xf - -C $(STAGING_DIR)/include/
        tar -ch -C $(LINUX_DIR)/include -f - asm | tar -xf - -C $(STAGING_DIR)/include/
 
+$(STAMP_DIR)/.linux-compile: $(LINUX_DIR)/.modules_done
+       @mkdir -p $(STAMP_DIR)
+       @$(MAKE) $(TARGETS)
+       ln -sf $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) $(LINUX_DIR)
+       $(MAKE) -C $(TOPDIR)/target/linux/package \
+               $(KPKG_MAKEOPTS) \
+               compile
+       touch $@
+
 $(TARGET_MODULES_DIR): 
        -mkdir -p $(TARGET_MODULES_DIR)
 
@@ -217,11 +226,7 @@ $(KERNEL_IPKG):
 
 source: $(DL_DIR)/$(LINUX_SOURCE)
 prepare: $(LINUX_DIR)/.configured
-compile: $(LINUX_DIR)/.modules_done $(TARGETS)
-       ln -sf $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) $(LINUX_DIR)
-       $(MAKE) -C $(TOPDIR)/target/linux/package \
-               $(KPKG_MAKEOPTS) \
-               compile
+compile: $(STAMP_DIR)/.linux-compile
 
 install: compile $(TARGET_MODULES_DIR) $(KERNEL_IPKG)
        rm -rf $(LINUX_BUILD_DIR)/root*
@@ -237,6 +242,7 @@ install: compile $(TARGET_MODULES_DIR) $(KERNEL_IPKG)
        [ "$(INSTALL_TARGETS)" != "" ] && $(IPKG_KERNEL) install $(INSTALL_TARGETS) || true
 
 mostlyclean:
+       rm -f $(STAMP_DIR)/.linux-compile
        rm -f $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION)/.modules_done
        rm -f $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION)/.drivers-unpacked
        $(MAKE) -C $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) clean
@@ -250,5 +256,6 @@ rebuild:
        $(MAKE) compile
 
 clean:
+       rm -f $(STAMP_DIR)/.linux-compile
        rm -rf $(LINUX_BUILD_DIR)
        rm -f $(TARGETS)
index 90007b745107e93e58103e10c56b69a0e8d1cfcf..cb267db2c9472872331338ee21616f083d133ba8 100644 (file)
@@ -37,7 +37,7 @@ $(DL_DIR)/$(LINUX_ET_DRIVER):
 $(LINUX_DIR)/.depend_done: $(LINUX_DIR)/.drivers-unpacked
 $(LINUX_DIR)/.modules_done: $(LINUX_DIR)/.drivers-unpacked
 
-$(LINUX_DIR)/.drivers-unpacked: $(LINUX_DIR)/.unpacked
+$(LINUX_DIR)/.drivers-unpacked: $(LINUX_DIR)/.unpacked $(DL_DIR)/$(LINUX_BINARY_WL_DRIVER) $(DL_DIR)/$(LINUX_ET_DRIVER)
        -mkdir -p $(BUILD_DIR)
        zcat $(DL_DIR)/$(LINUX_BINARY_WL_DRIVER) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
        zcat $(DL_DIR)/$(LINUX_ET_DRIVER) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
index c573debe4954d860d8ea002ffdcadac31c5a46b3..2b1358b123a3d8ecf048535d1bbb2f3099209e90 100644 (file)
@@ -15,8 +15,10 @@ gcc-prepare: binutils-install
 uClibc-compile: gcc-prepare
 gcc-compile: uClibc-install
 
-$(STAMP_DIR):
-       mkdir -p $(STAMP_DIR)
+TOOLCHAIN_STAMP_DIR:=$(STAGING_DIR)/stampfiles
+
+$(TOOLCHAIN_STAMP_DIR):
+       mkdir -p $(TOOLCHAIN_STAMP_DIR)
 
 $(STAGING_DIR):
        @mkdir -p $(STAGING_DIR)/lib
@@ -27,19 +29,19 @@ $(STAGING_DIR):
 $(TOOL_BUILD_DIR):
        @mkdir -p $(TOOL_BUILD_DIR)
 
-%-prepare: $(STAMP_DIR) $(STAGING_DIR) $(TOOL_BUILD_DIR)
-       @[ -f $(STAMP_DIR)/.toolchain_$@ ] || $(MAKE) -C $(patsubst %-prepare,%,$@) prepare
-       @touch $(STAMP_DIR)/.toolchain_$@
+%-prepare: $(TOOLCHAIN_STAMP_DIR) $(STAGING_DIR) $(TOOL_BUILD_DIR)
+       @[ -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ ] || $(MAKE) -C $(patsubst %-prepare,%,$@) prepare
+       @touch $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@
 
 %-compile: %-prepare 
-       @[ -f $(STAMP_DIR)/.toolchain_$@ ] || $(MAKE) -C $(patsubst %-compile,%,$@) compile
-       @touch $(STAMP_DIR)/.toolchain_$@
+       @[ -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ ] || $(MAKE) -C $(patsubst %-compile,%,$@) compile
+       @touch $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@
 
 %-install: %-compile
-       @[ -f $(STAMP_DIR)/.toolchain_$@ ] || $(MAKE) -C $(patsubst %-install,%,$@) install
-       @touch $(STAMP_DIR)/.toolchain_$@
+       @[ -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ ] || $(MAKE) -C $(patsubst %-install,%,$@) install
+       @touch $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@
 
 %-clean:
        @$(MAKE) -C $(patsubst %-clean,%,$@) clean
-       @rm -f $(STAMP_DIR)/.toolchain_$(patsubst %-clean,%,$@)-*
+       @rm -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$(patsubst %-clean,%,$@)-*