apk and opkg side by side
[openwrt/staging/aparcar.git] / include / image.mk
index 3f42ed4369bff83ee14f73a0e0905adfe9595e76..cf4a64980ab51aa9cfb45331df940375773ef926 100644 (file)
@@ -263,10 +263,17 @@ define Image/mkfs/ext4
                $@ $(call mkfs_target_dir,$(1))/
 endef
 
+ifdef CONFIG_USE_APK
 define Image/Manifest
        $(call apk,$(TARGET_DIR_ORIG)) list --quiet --manifest | sort > \
                $(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-$(PROFILE_SANITIZED)).manifest
 endef
+else
+define Image/Manifest
+       $(call opkg,$(TARGET_DIR_ORIG)) list-installed > \
+               $(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-$(PROFILE_SANITIZED)).manifest
+endef
+endif
 
 define Image/gzip-ext4-padded-squashfs
 
@@ -304,10 +311,15 @@ mkfs_packages_add = $(foreach pkg,$(filter-out -%,$(mkfs_packages)),$(pkg)$(call
 mkfs_packages_remove = $(foreach pkg,$(patsubst -%,%,$(filter -%,$(mkfs_packages))),$(pkg)$(call GetABISuffix,$(pkg)))
 mkfs_cur_target_dir = $(call mkfs_target_dir,pkg=$(target_params))
 
+opkg_target = \
+       $(call opkg,$(mkfs_cur_target_dir)) \
+               -f $(mkfs_cur_target_dir).conf
+
 apk_target = $(call apk,$(mkfs_cur_target_dir))
 
 target-dir-%: FORCE
-       rm -rf $(mkfs_cur_target_dir) $(mkfs_cur_target_dir).apk
+ifdef CONFIG_USE_APK
+       rm -rf $(mkfs_cur_target_dir)
        $(CP) $(TARGET_DIR_ORIG) $(mkfs_cur_target_dir)
        mv $(mkfs_cur_target_dir)/etc/apk/repositories $(mkfs_cur_target_dir).repositories
        $(if $(mkfs_packages_remove), \
@@ -315,8 +327,22 @@ target-dir-%: FORCE
        $(if $(mkfs_packages_add), \
                $(apk_target) add $(mkfs_packages_add))
        mv $(mkfs_cur_target_dir).repositories $(mkfs_cur_target_dir)/etc/apk/repositories
+else
+       rm -rf $(mkfs_cur_target_dir) $(mkfs_cur_target_dir).opkg
+       $(CP) $(TARGET_DIR_ORIG) $(mkfs_cur_target_dir)
+       -mv $(mkfs_cur_target_dir)/etc/opkg $(mkfs_cur_target_dir).opkg
+       echo 'src default file://$(PACKAGE_DIR_ALL)' > $(mkfs_cur_target_dir).conf
+       $(if $(mkfs_packages_remove), \
+               -$(call opkg,$(mkfs_cur_target_dir)) remove \
+                       $(mkfs_packages_remove))
+       $(if $(call opkg_package_files,$(mkfs_packages_add)), \
+               $(opkg_target) update && \
+               $(opkg_target) install \
+                       $(call opkg_package_files,$(mkfs_packages_add)))
+       -$(CP) -T $(mkfs_cur_target_dir).opkg/ $(mkfs_cur_target_dir)/etc/opkg/
+       rm -rf $(mkfs_cur_target_dir).opkg $(mkfs_cur_target_dir).conf
+endif
        $(call prepare_rootfs,$(mkfs_cur_target_dir),$(TOPDIR)/files)
-       $(apk_target) list --quiet --manifest | sort > $(mkfs_cur_target_dir).manifest
 
 $(KDIR)/root.%: kernel_prepare
        $(call Image/mkfs/$(word 1,$(target_params)),$(target_params))