2 # Copyright (C) 2006-2015 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
9 include $(INCLUDE_DIR
)/kernel.mk
10 include $(INCLUDE_DIR
)/host.mk
11 include $(INCLUDE_DIR
)/version.mk
12 include $(INCLUDE_DIR
)/feeds.mk
16 IB_NAME
:=$(VERSION_DIST_SANITIZED
)-imagebuilder-
$(if
$(CONFIG_VERSION_FILENAMES
),$(VERSION_NUMBER
)-)$(BOARD
)$(if
$(SUBTARGET
),-$(SUBTARGET
)).
$(HOST_OS
)-$(HOST_ARCH
)
17 PKG_BUILD_DIR
:=$(BUILD_DIR
)/$(IB_NAME
)
18 IB_KDIR
:=$(patsubst $(TOPDIR
)/%,$(PKG_BUILD_DIR
)/%,$(KERNEL_BUILD_DIR
))
19 IB_LDIR
:=$(patsubst $(TOPDIR
)/%,$(PKG_BUILD_DIR
)/%,$(LINUX_DIR
))
20 IB_DTSDIR
:=$(patsubst $(TOPDIR
)/%,$(PKG_BUILD_DIR
)/%,$(LINUX_DIR
))/arch
/$(ARCH
)/boot
/dts
/
21 IB_IDIR
:=$(patsubst $(TOPDIR
)/%,$(PKG_BUILD_DIR
)/%,$(STAGING_DIR_IMAGE
))
25 $(BIN_DIR
)/$(IB_NAME
).
tar.xz
: clean
26 rm -rf
$(PKG_BUILD_DIR
)
27 mkdir
-p
$(IB_KDIR
) $(IB_LDIR
) $(PKG_BUILD_DIR
)/staging_dir
/host
/lib \
28 $(PKG_BUILD_DIR
)/target
$(PKG_BUILD_DIR
)/scripts
$(IB_DTSDIR
)
29 -cp
$(TOPDIR
)/.config
$(PKG_BUILD_DIR
)/.config
31 $(INCLUDE_DIR
) $(SCRIPT_DIR
) \
34 .
/files
/repositories.conf \
35 $(TMP_DIR
)/.targetinfo \
36 $(TMP_DIR
)/.packageinfo \
39 ifeq ($(CONFIG_IB_STANDALONE
),)
40 echo
'## Remote package repositories' >> $(PKG_BUILD_DIR
)/repositories.conf
41 $(call FeedSourcesAppend
,$(PKG_BUILD_DIR
)/repositories.conf
)
44 echo
'' >> $(PKG_BUILD_DIR
)/repositories.conf
45 echo
'## This is the local package repository, do not remove!' >> $(PKG_BUILD_DIR
)/repositories.conf
46 echo
'src imagebuilder file:packages' >> $(PKG_BUILD_DIR
)/repositories.conf
48 $(VERSION_SED
) $(PKG_BUILD_DIR
)/repositories.conf
50 ifeq ($(CONFIG_IB_STANDALONE
),)
51 (cd
$(call FeedPackageDir
,libc
); $(FIND
) -type f
-name
'libc_*.ipk' -or
-name
'kernel_*.ipk' -or
-name
'kmod-*.ipk') | \
53 mkdir
-p
"$(PKG_BUILD_DIR)/packages/$${path%/*}"; \
54 cp
"$(call FeedPackageDir,libc)/$$path" "$(PKG_BUILD_DIR)/packages/$$path"; \
57 $(INSTALL_DIR
) $(PKG_BUILD_DIR
)/packages
58 find
$(wildcard $(PACKAGE_SUBDIRS
)) -type f
-name
'*.ipk' -exec
$(CP
) {} $(PKG_BUILD_DIR
)/packages
/ \
;
61 $(CP
) $(TOPDIR
)/target
/linux
$(PKG_BUILD_DIR
)/target
/
62 if
[ -d
$(TOPDIR
)/staging_dir
/host
/lib
/grub
]; then \
63 $(CP
) $(TOPDIR
)/staging_dir
/host
/lib
/grub
/ $(PKG_BUILD_DIR
)/staging_dir
/host
/lib
; \
66 $(PKG_BUILD_DIR
)/target
/linux
/*/files
{,-*} \
67 $(PKG_BUILD_DIR
)/target
/linux
/*/patches
{,-*}
68 -cp
$(KERNEL_BUILD_DIR
)/* $(IB_KDIR
)/ # don't copy subdirectories here
69 -cp
$(LINUX_DIR
)/.config
$(IB_LDIR
)/
70 rm -f
$(IB_KDIR
)/root.
*
71 rm -f
$(IB_KDIR
)/vmlinux.debug
72 if
[ -x
$(LINUX_DIR
)/scripts
/dtc
/dtc
]; then \
73 $(INSTALL_DIR
) $(IB_LDIR
)/scripts
/dtc
; \
74 $(INSTALL_BIN
) $(LINUX_DIR
)/scripts
/dtc
/dtc
$(IB_LDIR
)/scripts
/dtc
/dtc
; \
76 if
[ -d
$(LINUX_DIR
)/arch
/$(ARCH
)/boot
/dts
]; then \
77 $(CP
) $(LINUX_DIR
)/arch
/$(ARCH
)/boot
/dts
/* $(IB_DTSDIR
); \
79 $(SED
) 's,^# REVISION:=.*,REVISION:=$(REVISION),g' $(PKG_BUILD_DIR
)/include/version.mk
80 find
$(PKG_BUILD_DIR
) -name CVS
-o
-name .git
-o
-name .svn \
82 $(INSTALL_DIR
) $(IB_IDIR
)
83 -$(CP
) $(STAGING_DIR_IMAGE
)/* $(IB_IDIR
)/
84 $(INSTALL_DIR
) $(PKG_BUILD_DIR
)/staging_dir
/host
/bin
85 $(CP
) $(STAGING_DIR_HOST
)/bin
/* $(PKG_BUILD_DIR
)/staging_dir
/host
/bin
/
86 (cd
$(PKG_BUILD_DIR
); find staging_dir
/host
/bin
/ $(IB_LDIR
)/scripts
/dtc
/ -type f | \
87 $(XARGS
) $(SCRIPT_DIR
)/bundle-libraries.sh
$(PKG_BUILD_DIR
)/staging_dir
/host
)
88 STRIP
=sstrip
$(SCRIPT_DIR
)/rstrip.sh
$(PKG_BUILD_DIR
)/staging_dir
/host
/bin
/
89 $(TAR
) -cf
- -C
$(BUILD_DIR
) $(IB_NAME
) | xz
-zc
-7e
> $@
93 compile
: $(BIN_DIR
)/$(IB_NAME
).
tar.xz
97 rm -rf
$(PKG_BUILD_DIR
) $(BIN_DIR
)/$(IB_NAME
).
tar.xz