Changeset 34106


Ignore:
Timestamp:
2012-11-07T17:15:22+01:00 (5 years ago)
Author:
jow
Message:

buildroot: isolate the .install stamp files for build variants (#12279)

This fixes missing embedded packages if multiple build variants are selected in
the build config, e.g. missing ppp if CONFIG_PACKAGE_ppp=y and
CONFIG_PACKAGE_ppp-multilink=m .

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/package-ipkg.mk

    r33861 r34106  
    7676    KEEP_$(1):=$(strip $(call Package/$(1)/conffiles)) 
    7777 
    78     ifeq ($(if $(VARIANT),$(BUILD_VARIANT)),$(VARIANT)) 
     78    ifeq ($(BUILD_VARIANT),$$(if $$(VARIANT),$$(VARIANT),$(BUILD_VARIANT))) 
    7979    ifdef Package/$(1)/install 
    8080      ifneq ($(CONFIG_PACKAGE_$(1))$(SDK)$(DEVELOPER),) 
     
    8383 
    8484        ifeq ($(CONFIG_PACKAGE_$(1)),y) 
    85           .PHONY: $(PKG_INFO_DIR)/$(PKG_DIR_NAME).install.$(1) 
    86           compile: $(PKG_INFO_DIR)/$(PKG_DIR_NAME).install.$(1) 
    87           $(PKG_INFO_DIR)/$(PKG_DIR_NAME).install.$(1): 
    88                         @if [ -f $(PKG_INFO_DIR)/$(PKG_DIR_NAME).install.clean ]; then \ 
     85          .PHONY: $(PKG_INSTALL_STAMP).$(1) 
     86          compile: $(PKG_INSTALL_STAMP).$(1) 
     87          $(PKG_INSTALL_STAMP).$(1): 
     88                        if [ -f $(PKG_INSTALL_STAMP).clean ]; then \ 
    8989                                rm -f \ 
    90                                         $(PKG_INFO_DIR)/$(PKG_DIR_NAME).install \ 
    91                                         $(PKG_INFO_DIR)/$(PKG_DIR_NAME).install.clean; \ 
     90                                        $(PKG_INSTALL_STAMP) \ 
     91                                        $(PKG_INSTALL_STAMP).clean; \ 
    9292                        fi; \ 
    93                         echo "$(1)" >> $(PKG_INFO_DIR)/$(PKG_DIR_NAME).install 
     93                        echo "$(1)" >> $(PKG_INSTALL_STAMP) 
    9494        endif 
    9595      else 
  • trunk/include/package.mk

    r33633 r34106  
    5353 
    5454PKG_DIR_NAME:=$(lastword $(subst /,$(space),$(CURDIR))) 
     55PKG_INSTALL_STAMP:=$(PKG_INFO_DIR)/$(PKG_DIR_NAME).$(if $(BUILD_VARIANT),$(BUILD_VARIANT),default).install 
    5556 
    5657include $(INCLUDE_DIR)/download.mk 
     
    255256prepare-package-install: 
    256257        @mkdir -p $(PKG_INFO_DIR) 
    257         @touch $(PKG_INFO_DIR)/$(PKG_DIR_NAME).install.clean 
    258         @echo "$(filter-out essential,$(PKG_FLAGS))" > $(PKG_INFO_DIR)/$(PKG_DIR_NAME).install.flags 
     258        @touch $(PKG_INSTALL_STAMP).clean 
     259        @echo "$(filter-out essential,$(PKG_FLAGS))" > $(PKG_INSTALL_STAMP).flags 
    259260 
    260261$(PACKAGE_DIR): 
  • trunk/package/Makefile

    r33777 r34106  
    6161  IPKG_CONF_DIR=$(STAGING_DIR)/etc \ 
    6262  IPKG_OFFLINE_ROOT=$(TARGET_DIR) \ 
    63   $(STAGING_DIR_HOST)/bin/opkg \ 
     63  $(XARGS) $(STAGING_DIR_HOST)/bin/opkg \ 
    6464        --offline-root $(TARGET_DIR) \ 
    6565        --force-depends \ 
     
    7272 
    7373PACKAGE_INSTALL:=$(sort $(foreach pkg,$(package-y),$(lastword $(subst /,$(space),$(pkg))))) 
    74 PACKAGE_INSTALL_FILES:=$(patsubst %,$(PKG_INFO_DIR)/%.install,$(PACKAGE_INSTALL)) 
     74PACKAGE_INSTALL_FILES:=$(patsubst %,$(PKG_INFO_DIR)/%.*.install,$(PACKAGE_INSTALL)) 
    7575 
    7676$(curdir)/cleanup: $(TMP_DIR)/.build 
     
    8181        rm -rf $(TARGET_DIR) 
    8282        [ -d $(TARGET_DIR)/tmp ] || mkdir -p $(TARGET_DIR)/tmp 
    83         $(OPKG) install `cat $(PACKAGE_INSTALL_FILES) | sed -e 's,^\(.*\)$$,$(PACKAGE_DIR)/\1_*.ipk,'` 
    84         @for pkg in $(PACKAGE_INSTALL); do \ 
    85                 [ -s $(PKG_INFO_DIR)/$${pkg}.install.flags ] || continue; \ 
    86                 for flag in `cat $(PKG_INFO_DIR)/$${pkg}.install.flags`; do \ 
    87                         $(OPKG) flag $$flag `cat $(PKG_INFO_DIR)/$${pkg}.install`; \ 
     83        @$(FIND) `sed -e 's|.*|$(PACKAGE_DIR)/&_*.ipk|' $(PACKAGE_INSTALL_FILES)` | sort -u | $(OPKG) install 
     84        @for file in $(PACKAGE_INSTALL_FILES); do \ 
     85                [ -s $$file.flags ] || continue; \ 
     86                for flag in `cat $$file.flags`; do \ 
     87                        $(OPKG) flag $$flag < $$file; \ 
    8888                done; \ 
    8989        done || true 
Note: See TracChangeset for help on using the changeset viewer.