fix the image builder

SVN-Revision: 9549
This commit is contained in:
Felix Fietkau 2007-11-14 23:11:07 +00:00
parent 874935fe41
commit dfa7618bd6
4 changed files with 85 additions and 89 deletions

View File

@ -5,22 +5,6 @@
# See /LICENSE for more information. # 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= KERNELNAME=
ifneq (,$(findstring x86,$(BOARD))) ifneq (,$(findstring x86,$(BOARD)))
KERNELNAME="bzImage" KERNELNAME="bzImage"

View File

@ -5,13 +5,29 @@
# See /LICENSE for more information. # 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),) ifneq ($(DUMP),)
all: dumpinfo all: dumpinfo
endif endif
ifneq ($(__target_inc),1)
__target_inc=1
target_conf=$(subst .,_,$(subst -,_,$(subst /,_,$(1)))) target_conf=$(subst .,_,$(subst -,_,$(subst /,_,$(1))))
ifeq ($(DUMP),) ifeq ($(DUMP),)
PLATFORM_DIR:=$(TOPDIR)/target/linux/$(BOARD) PLATFORM_DIR:=$(TOPDIR)/target/linux/$(BOARD)
@ -39,6 +55,7 @@ define Profile/Default
PACKAGES:= PACKAGES:=
endef endef
ifndef Profile
define Profile define Profile
$(eval $(call Profile/Default)) $(eval $(call Profile/Default))
$(eval $(call Profile/$(1))) $(eval $(call Profile/$(1)))
@ -62,6 +79,7 @@ define Profile
PROFILE=$(1) PROFILE=$(1)
endif endif
endef endef
endif
ifneq ($(PLATFORM_DIR),$(PLATFORM_SUBDIR)) ifneq ($(PLATFORM_DIR),$(PLATFORM_SUBDIR))
define IncludeProfiles define IncludeProfiles

View File

@ -14,30 +14,32 @@ PKG_OS:=$(shell uname -s)
PKG_CPU:=$(shell uname -m | sed "s/ //g") PKG_CPU:=$(shell uname -m | sed "s/ //g")
IB_NAME:=OpenWrt-ImageBuilder-$(BOARD)-$(KERNEL)-for-$(PKG_OS)-$(PKG_CPU) 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 all: compile
$(BIN_DIR)/$(IB_NAME).tar.bz2: clean $(BIN_DIR)/$(IB_NAME).tar.bz2: clean
rm -rf $(IB_BUILD_DIR) rm -rf $(PKG_BUILD_DIR)
mkdir -p $(IB_BUILD_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD) $(IB_BUILD_DIR)/staging_dir_$(ARCH)/bin $(IB_BUILD_DIR)/target/linux mkdir -p $(IB_KDIR) $(PKG_BUILD_DIR)/staging_dir/host $(PKG_BUILD_DIR)/target
$(CP) \ $(CP) \
$(INCLUDE_DIR) $(SCRIPT_DIR) $(PACKAGE_DIR) \ $(INCLUDE_DIR) $(SCRIPT_DIR) $(PACKAGE_DIR) \
$(TOPDIR)/rules.mk $(TOPDIR)/.config \ $(TOPDIR)/rules.mk $(TOPDIR)/.config \
$(INCLUDE_DIR)/target.mk \
$(TMP_DIR)/.packageinfo \
$(TMP_DIR)/.targetinfo \
./files/Makefile \ ./files/Makefile \
$(IB_BUILD_DIR)/ $(TMP_DIR)/.targetinfo \
$(CP) $(TOOLCHAIN_DIR)/bin/* $(IB_BUILD_DIR)/staging_dir_$(ARCH)/bin $(TMP_DIR)/.packageinfo \
$(CP) $(TOPDIR)/target/linux/* $(IB_BUILD_DIR)/target/linux $(PKG_BUILD_DIR)/
rm -rf $(IB_BUILD_DIR)/target/linux/*/patches $(CP) $(TOOLCHAIN_DIR)/bin $(PKG_BUILD_DIR)/staging_dir/host/
-cp $(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)/* $(IB_BUILD_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD) # don't copy subdirectories here $(CP) $(STAGING_DIR_HOST)/bin/* $(PKG_BUILD_DIR)/staging_dir/host/bin/
find $(IB_BUILD_DIR) -name .svn | $(XARGS) rm -rf $(CP) $(TOPDIR)/target/linux $(PKG_BUILD_DIR)/target/
find $(IB_BUILD_DIR) -name CVS | $(XARGS) rm -rf rm -rf \
(cd $(BUILD_DIR); \ $(PKG_BUILD_DIR)/target/linux/*/patches \
tar cfj $@ $(IB_NAME); \ $(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: download:
prepare: prepare:
@ -45,4 +47,4 @@ compile: $(BIN_DIR)/$(IB_NAME).tar.bz2
install: compile install: compile
clean: FORCE 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. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # 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 all: help
include rules.mk include $(TOPDIR)/include/host.mk
include .config
SHELL:=/usr/bin/env bash ifneq ($(OPENWRT_BUILD),1)
export LC_ALL=C override OPENWRT_BUILD=1
export LANG=C export OPENWRT_BUILD
ifeq ($(KBUILD_VERBOSE),99)
MAKE:=3>/dev/null $(MAKE)
endif endif
export IS_TTY=$(shell tty -s && echo 1 || echo 0)
export IMAGEBUILDER=1
# override variables from rules.mk include rules.mk
PACKAGE_DIR:=$(TOPDIR)/packages include $(INCLUDE_DIR)/debug.mk
IPKG:= \ include $(INCLUDE_DIR)/depends.mk
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
define Helptext define Helptext
Available Commands: Available Commands:
@ -79,8 +46,33 @@ $(eval $(call shexport,Helptext))
help: FORCE help: FORCE
echo "$$$(call shvar,Helptext)" 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 info: FORCE
echo 'Current Target: "$(BOARDNAME)"' echo 'Current Target: "$(BOARD)$(if $(SUBTARGET), ($(BOARDNAME)))"'
echo 'Default Packages: $(DEFAULT_PACKAGES)'
echo 'Available Profiles:' echo 'Available Profiles:'
echo; $(PROFILE_LIST) echo; $(PROFILE_LIST)
@ -100,7 +92,7 @@ image:
echo 'Use "make info" to get a list of available target profiles'; \ echo 'Use "make info" to get a list of available target profiles'; \
false; \ false; \
fi fi
echo 'Building images for $(BOARDNAME) - $($(PROFILE)_NAME)' echo 'Building images for $(BOARD) - $($(PROFILE)_NAME)'
echo 'Packages: $(BUILD_PACKAGES)' echo 'Packages: $(BUILD_PACKAGES)'
echo echo
rm -rf $(TARGET_DIR) rm -rf $(TARGET_DIR)
@ -132,7 +124,7 @@ copy_files: FORCE
package_postinst: FORCE package_postinst: FORCE
@echo @echo
@echo Activating init scripts @echo Activating init scripts
( \ @( \
cd $(BUILD_DIR)/root; \ cd $(BUILD_DIR)/root; \
for script in ./etc/init.d/*; do \ for script in ./etc/init.d/*; do \
grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \ grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \
@ -143,11 +135,11 @@ package_postinst: FORCE
build_image: FORCE build_image: FORCE
@echo @echo
@echo Building images... @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: clean:
rm -rf tmp $(TARGET_DIR) $(BIN_DIR) rm -rf tmp $(TARGET_DIR) $(BIN_DIR)
.PHONY: FORCE
.SILENT: help info image .SILENT: help info image
%: ;