From d895ddd832c3cd3b0007c276b1969d6e524d0d47 Mon Sep 17 00:00:00 2001 From: nbd Date: Wed, 14 Nov 2007 23:11:07 +0000 Subject: [PATCH] fix the image builder git-svn-id: svn://svn.openwrt.org/openwrt/trunk@9549 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- include/kernel-defaults.mk | 16 ----- include/target.mk | 24 +++++++- target/imagebuilder/Makefile | 36 +++++------ target/imagebuilder/files/Makefile | 98 ++++++++++++++---------------- 4 files changed, 85 insertions(+), 89 deletions(-) diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk index 4b25f544a..69ff8fa6f 100644 --- a/include/kernel-defaults.mk +++ b/include/kernel-defaults.mk @@ -5,22 +5,6 @@ # See /LICENSE for more information. # -# default device type -DEVICE_TYPE?=router - -# Default packages - the really basic set -DEFAULT_PACKAGES:=base-files libgcc uclibc busybox dropbear mtd mtd -# For router targets -DEFAULT_PACKAGES.router:=dnsmasq iptables ppp ppp-mod-pppoe iptables kmod-ipt-nathelper bridge - -# Additional packages for Linux 2.6 -ifneq ($(KERNEL),2.4) - DEFAULT_PACKAGES += udevtrigger hotplug2 -endif - -# Add device specific packages -DEFAULT_PACKAGES += $(DEFAULT_PACKAGES.$(DEVICE_TYPE)) - KERNELNAME= ifneq (,$(findstring x86,$(BOARD))) KERNELNAME="bzImage" diff --git a/include/target.mk b/include/target.mk index 757d178ab..09a3f79af 100644 --- a/include/target.mk +++ b/include/target.mk @@ -5,13 +5,29 @@ # See /LICENSE for more information. # +ifneq ($(__target_inc),1) +__target_inc=1 + +# default device type +DEVICE_TYPE?=router + +# Default packages - the really basic set +DEFAULT_PACKAGES:=base-files libgcc uclibc busybox dropbear mtd mtd +# For router targets +DEFAULT_PACKAGES.router:=dnsmasq iptables ppp ppp-mod-pppoe iptables kmod-ipt-nathelper bridge + +# Additional packages for Linux 2.6 +ifneq ($(KERNEL),2.4) + DEFAULT_PACKAGES += udevtrigger hotplug2 +endif + +# Add device specific packages +DEFAULT_PACKAGES += $(DEFAULT_PACKAGES.$(DEVICE_TYPE)) + ifneq ($(DUMP),) all: dumpinfo endif -ifneq ($(__target_inc),1) -__target_inc=1 - target_conf=$(subst .,_,$(subst -,_,$(subst /,_,$(1)))) ifeq ($(DUMP),) PLATFORM_DIR:=$(TOPDIR)/target/linux/$(BOARD) @@ -39,6 +55,7 @@ define Profile/Default PACKAGES:= endef +ifndef Profile define Profile $(eval $(call Profile/Default)) $(eval $(call Profile/$(1))) @@ -62,6 +79,7 @@ define Profile PROFILE=$(1) endif endef +endif ifneq ($(PLATFORM_DIR),$(PLATFORM_SUBDIR)) define IncludeProfiles diff --git a/target/imagebuilder/Makefile b/target/imagebuilder/Makefile index 0dae2b12e..607b79be0 100644 --- a/target/imagebuilder/Makefile +++ b/target/imagebuilder/Makefile @@ -14,30 +14,32 @@ PKG_OS:=$(shell uname -s) PKG_CPU:=$(shell uname -m | sed "s/ //g") IB_NAME:=OpenWrt-ImageBuilder-$(BOARD)-$(KERNEL)-for-$(PKG_OS)-$(PKG_CPU) -IB_BUILD_DIR:=$(BUILD_DIR)/$(IB_NAME) +PKG_BUILD_DIR:=$(BUILD_DIR)/$(IB_NAME) +IB_KDIR:=$(patsubst $(TOPDIR)/%,$(PKG_BUILD_DIR)/%,$(KERNEL_BUILD_DIR)) all: compile $(BIN_DIR)/$(IB_NAME).tar.bz2: clean - rm -rf $(IB_BUILD_DIR) - mkdir -p $(IB_BUILD_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD) $(IB_BUILD_DIR)/staging_dir_$(ARCH)/bin $(IB_BUILD_DIR)/target/linux + rm -rf $(PKG_BUILD_DIR) + mkdir -p $(IB_KDIR) $(PKG_BUILD_DIR)/staging_dir/host $(PKG_BUILD_DIR)/target $(CP) \ $(INCLUDE_DIR) $(SCRIPT_DIR) $(PACKAGE_DIR) \ $(TOPDIR)/rules.mk $(TOPDIR)/.config \ - $(INCLUDE_DIR)/target.mk \ - $(TMP_DIR)/.packageinfo \ - $(TMP_DIR)/.targetinfo \ ./files/Makefile \ - $(IB_BUILD_DIR)/ - $(CP) $(TOOLCHAIN_DIR)/bin/* $(IB_BUILD_DIR)/staging_dir_$(ARCH)/bin - $(CP) $(TOPDIR)/target/linux/* $(IB_BUILD_DIR)/target/linux - rm -rf $(IB_BUILD_DIR)/target/linux/*/patches - -cp $(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)/* $(IB_BUILD_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD) # don't copy subdirectories here - find $(IB_BUILD_DIR) -name .svn | $(XARGS) rm -rf - find $(IB_BUILD_DIR) -name CVS | $(XARGS) rm -rf - (cd $(BUILD_DIR); \ - tar cfj $@ $(IB_NAME); \ - ) + $(TMP_DIR)/.targetinfo \ + $(TMP_DIR)/.packageinfo \ + $(PKG_BUILD_DIR)/ + $(CP) $(TOOLCHAIN_DIR)/bin $(PKG_BUILD_DIR)/staging_dir/host/ + $(CP) $(STAGING_DIR_HOST)/bin/* $(PKG_BUILD_DIR)/staging_dir/host/bin/ + $(CP) $(TOPDIR)/target/linux $(PKG_BUILD_DIR)/target/ + rm -rf \ + $(PKG_BUILD_DIR)/target/linux/*/patches \ + $(PKG_BUILD_DIR)/target/linux/*/*/patches + -cp $(KERNEL_BUILD_DIR)/* $(IB_KDIR)/ # don't copy subdirectories here + find $(PKG_BUILD_DIR) -name .svn | $(XARGS) rm -rf + find $(PKG_BUILD_DIR) -name CVS | $(XARGS) rm -rf + find $(PKG_BUILD_DIR) -name .git | $(XARGS) rm -rf + $(TAR) c -C $(BUILD_DIR) $(IB_NAME) | bzip2 -c > $@ download: prepare: @@ -45,4 +47,4 @@ compile: $(BIN_DIR)/$(IB_NAME).tar.bz2 install: compile clean: FORCE - rm -rf $(IB_BUILD_DIR) $(BIN_DIR)/$(IB_NAME).tar.bz2 + rm -rf $(PKG_BUILD_DIR) $(BIN_DIR)/$(IB_NAME).tar.bz2 diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile index 2e309ae73..642943739 100644 --- a/target/imagebuilder/files/Makefile +++ b/target/imagebuilder/files/Makefile @@ -1,61 +1,28 @@ -# Makefile for the OpenWrt Image Builder +# Makefile for OpenWrt # -# Copyright (C) 2006-2007 OpenWrt.org +# Copyright (C) 2007 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # -export TOPDIR=${CURDIR} - +TOPDIR:=${CURDIR} +LC_ALL:=C +LANG:=C +export TOPDIR LC_ALL LANG +export KBUILD_VERBOSE=99 all: help -include rules.mk -include .config +include $(TOPDIR)/include/host.mk -SHELL:=/usr/bin/env bash -export LC_ALL=C -export LANG=C -ifeq ($(KBUILD_VERBOSE),99) - MAKE:=3>/dev/null $(MAKE) +ifneq ($(OPENWRT_BUILD),1) + override OPENWRT_BUILD=1 + export OPENWRT_BUILD endif -export IS_TTY=$(shell tty -s && echo 1 || echo 0) -export IMAGEBUILDER=1 -# override variables from rules.mk -PACKAGE_DIR:=$(TOPDIR)/packages -IPKG:= \ - IPKG_TMP="$(TOPDIR)/tmp/ipkgtmp" \ - IPKG_INSTROOT="$(TARGET_DIR)" \ - IPKG_CONF_DIR="$(TOPDIR)/tmp" \ - IPKG_OFFLINE_ROOT="$(TARGET_DIR)" \ - $(SCRIPT_DIR)/ipkg -force-defaults - - -define Profile/Default - ID:= - NAME:= - KCONFIG:= - PACKAGES:= -endef - -define AddProfile - $(eval $(call Profile/Default)) - $(eval $(call Profile/$(1))) - ifneq ($(ID),) - ifeq ($(PROFILE),) - PROFILE:=$(ID) - endif - $(ID)_NAME:=$(NAME) - $(ID)_PACKAGES:=$(PACKAGES) - ifeq ($(KCONFIG),) - PROFILE_LIST += \ - echo '$(ID):'; [ -z '$(NAME)' ] || echo ' $(NAME)'; echo ' Packages: $(PACKAGES)'; - endif - endif -endef - -include .target.mk +include rules.mk +include $(INCLUDE_DIR)/debug.mk +include $(INCLUDE_DIR)/depends.mk define Helptext Available Commands: @@ -79,8 +46,33 @@ $(eval $(call shexport,Helptext)) help: FORCE echo "$$$(call shvar,Helptext)" + +# override variables from rules.mk +PACKAGE_DIR:=$(TOPDIR)/packages +IPKG:= \ + IPKG_TMP="$(TOPDIR)/tmp/ipkgtmp" \ + IPKG_INSTROOT="$(TARGET_DIR)" \ + IPKG_CONF_DIR="$(TOPDIR)/tmp" \ + IPKG_OFFLINE_ROOT="$(TARGET_DIR)" \ + $(SCRIPT_DIR)/ipkg -force-defaults + +define Profile + $(eval $(call Profile/Default)) + $(eval $(call Profile/$(1))) + ifeq ($(PROFILE),) + PROFILE:=$(1) + endif + $(1)_NAME:=$(NAME) + $(1)_PACKAGES:=$(PACKAGES) + PROFILE_LIST += \ + echo '$(1):'; [ -z '$(NAME)' ] || echo ' $(NAME)'; echo ' Packages: $(PACKAGES)'; +endef + +include $(INCLUDE_DIR)/target.mk + info: FORCE - echo 'Current Target: "$(BOARDNAME)"' + echo 'Current Target: "$(BOARD)$(if $(SUBTARGET), ($(BOARDNAME)))"' + echo 'Default Packages: $(DEFAULT_PACKAGES)' echo 'Available Profiles:' echo; $(PROFILE_LIST) @@ -100,7 +92,7 @@ image: echo 'Use "make info" to get a list of available target profiles'; \ false; \ fi - echo 'Building images for $(BOARDNAME) - $($(PROFILE)_NAME)' + echo 'Building images for $(BOARD) - $($(PROFILE)_NAME)' echo 'Packages: $(BUILD_PACKAGES)' echo rm -rf $(TARGET_DIR) @@ -132,7 +124,7 @@ copy_files: FORCE package_postinst: FORCE @echo @echo Activating init scripts - ( \ + @( \ cd $(BUILD_DIR)/root; \ for script in ./etc/init.d/*; do \ grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \ @@ -143,11 +135,11 @@ package_postinst: FORCE build_image: FORCE @echo @echo Building images... - $(NO_TRACE_MAKE) -C target/linux/$(BOARD)-$(KERNEL)/image install IB=1 + $(NO_TRACE_MAKE) -C target/linux/$(BOARD)/image install TARGET_BUILD=1 IB=1 clean: rm -rf tmp $(TARGET_DIR) $(BIN_DIR) -.PHONY: FORCE + .SILENT: help info image -%: ; +