imagebuilder: add package_list function
[openwrt/openwrt.git] / target / imagebuilder / files / Makefile
index af633b21636358c40e83ab7c83279b1733b3fb8d..f8702b5861cf92ebce08b5f84943cf63a1fd710c 100644 (file)
@@ -13,7 +13,7 @@ export TOPDIR LC_ALL LANG
 export OPENWRT_VERBOSE=s
 all: help
 
-include $(TOPDIR)/include/host.mk
+export PATH:=$(TOPDIR)/staging_dir/host/bin:$(PATH)
 
 ifneq ($(OPENWRT_BUILD),1)
   override OPENWRT_BUILD=1
@@ -82,7 +82,6 @@ PROFILE_LIST = $(foreach p,$(PROFILE_NAMES), \
 
 staging_dir/host/.prereq-build: include/prereq-build.mk
        mkdir -p tmp
-       rm -f tmp/.host.mk
        @$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f $(TOPDIR)/include/prereq-build.mk prereq 2>/dev/null || { \
                echo "Prerequisite check failed. Use FORCE=1 to override."; \
                false; \
@@ -112,20 +111,14 @@ _call_image: staging_dir/host/.prereq-build
        echo
        rm -rf $(TARGET_DIR)
        mkdir -p $(TARGET_DIR) $(BIN_DIR) $(TMP_DIR) $(DL_DIR)
-       if [ ! -f "$(PACKAGE_DIR)/Packages" ] || [ ! -f "$(PACKAGE_DIR)/Packages.gz" ] || [ "`find $(PACKAGE_DIR) -cnewer $(PACKAGE_DIR)/Packages.gz`" ]; then \
-               echo "Package list missing or not up-to-date, generating it.";\
-               $(MAKE) package_index; \
-       else \
-               mkdir -p $(TARGET_DIR)/tmp; \
-               $(OPKG) update || true; \
-       fi
+       $(MAKE) package_reload
        $(MAKE) package_install
 ifneq ($(USER_FILES),)
        $(MAKE) copy_files
 endif
-       $(MAKE) package_postinst
-       $(MAKE) build_image
-       $(MAKE) checksum
+       $(MAKE) -s package_postinst
+       $(MAKE) -s build_image
+       $(MAKE) -s checksum
 
 package_index: FORCE
        @echo
@@ -136,6 +129,19 @@ package_index: FORCE
        ) >/dev/null 2>/dev/null
        $(OPKG) update || true
 
+package_reload:
+       if [ ! -f "$(PACKAGE_DIR)/Packages" ] || [ ! -f "$(PACKAGE_DIR)/Packages.gz" ] || [ "`find $(PACKAGE_DIR) -cnewer $(PACKAGE_DIR)/Packages.gz`" ]; then \
+               echo "Package list missing or not up-to-date, generating it.";\
+               $(MAKE) package_index; \
+       else \
+               mkdir -p $(TARGET_DIR)/tmp; \
+               $(OPKG) update || true; \
+       fi
+
+package_list: FORCE
+       @$(MAKE) -s package_reload
+       @$(OPKG) list --size 2>/dev/null | awk -F" - " '{printf "%s %s %s\n", $$1, $$2, $$3}'
+
 package_install: FORCE
        @echo
        @echo Installing packages...
@@ -194,7 +200,7 @@ ifneq ($(PROFILE),)
   endif
 endif
        (unset PROFILE FILES PACKAGES MAKEFLAGS; \
-       $(MAKE) _call_image \
+       $(MAKE) -s _call_image \
                $(if $(PROFILE),USER_PROFILE="$(PROFILE_FILTER)") \
                $(if $(FILES),USER_FILES="$(FILES)") \
                $(if $(PACKAGES),USER_PACKAGES="$(PACKAGES)") \