fix the image builder

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@9549 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Felix Fietkau 2007-11-14 23:11:07 +00:00
parent bd9bd18f45
commit 6ec8091bd5
4 changed files with 85 additions and 89 deletions

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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
%: ;