Add update-vermagic make target

This commit is contained in:
Matthias Schiffer 2015-07-18 21:21:06 +02:00
parent f6498e8773
commit 48054fc943
3 changed files with 23 additions and 7 deletions

View File

@ -103,6 +103,13 @@ manifest: FORCE
mkdir -p $(GLUON_IMAGEDIR)/sysupgrade mkdir -p $(GLUON_IMAGEDIR)/sysupgrade
mv $(GLUON_BUILDDIR)/$(GLUON_BRANCH).manifest.tmp $(GLUON_IMAGEDIR)/sysupgrade/$(GLUON_BRANCH).manifest mv $(GLUON_BUILDDIR)/$(GLUON_BRANCH).manifest.tmp $(GLUON_IMAGEDIR)/sysupgrade/$(GLUON_BRANCH).manifest
update-vermagic: FORCE
@$(CheckExternal)
+($(foreach GLUON_TARGET,$(GLUON_TARGETS), \
$(GLUONMAKE_EARLY) maybe-prepare-target GLUON_TARGET='$(GLUON_TARGET)' V=s$(OPENWRT_VERBOSE) && \
$(GLUONMAKE) update-vermagic GLUON_TARGET='$(GLUON_TARGET)' V=s$(OPENWRT_VERBOSE) && \
) :)
dirclean : FORCE dirclean : FORCE
for dir in build_dir dl staging_dir tmp; do \ for dir in build_dir dl staging_dir tmp; do \
rm -rf $(GLUON_ORIGOPENWRTDIR)/$$dir; \ rm -rf $(GLUON_ORIGOPENWRTDIR)/$$dir; \
@ -364,9 +371,7 @@ package_install: FORCE
if [ ! -x $(TARGET_DIR)/bin/opkg ]; then rm -rf $(TARGET_DIR)/usr/lib/opkg; fi if [ ! -x $(TARGET_DIR)/bin/opkg ]; then rm -rf $(TARGET_DIR)/usr/lib/opkg; fi
ifeq ($(GLUON_OPKG_CONFIG),1)
include $(INCLUDE_DIR)/version.mk include $(INCLUDE_DIR)/version.mk
endif
opkg_config: FORCE opkg_config: FORCE
cp $(GLUON_OPENWRTDIR)/package/system/opkg/files/opkg.conf $(TARGET_DIR)/etc/opkg.conf cp $(GLUON_OPENWRTDIR)/package/system/opkg/files/opkg.conf $(TARGET_DIR)/etc/opkg.conf
@ -382,7 +387,7 @@ image: FORCE
cp -r $(BOARD_KDIR) $(PROFILE_KDIR) cp -r $(BOARD_KDIR) $(PROFILE_KDIR)
+$(GLUONMAKE) package_install +$(GLUONMAKE) package_install
+$(GLUONMAKE) opkg_config GLUON_OPKG_CONFIG=1 +$(GLUONMAKE) opkg_config
$(call Image/mkfs/prepare) $(call Image/mkfs/prepare)
$(_SINGLE)$(NO_TRACE_MAKE) -C $(TOPDIR)/target/linux/$(BOARD)/image install TARGET_BUILD=1 IMG_PREFIX=gluon \ $(_SINGLE)$(NO_TRACE_MAKE) -C $(TOPDIR)/target/linux/$(BOARD)/image install TARGET_BUILD=1 IMG_PREFIX=gluon \
@ -418,7 +423,15 @@ manifest: FORCE
) : \ ) : \
) >> $(GLUON_BUILDDIR)/$(GLUON_BRANCH).manifest.tmp ) >> $(GLUON_BUILDDIR)/$(GLUON_BRANCH).manifest.tmp
update-vermagic: FORCE
mkdir -p '$(BOARD_BUILDDIR)'
echo '$(DEFAULT_OPKG_REPO)' > '$(BOARD_BUILDDIR)/default_opkg_repo'
$(VERSION_SED) '$(BOARD_BUILDDIR)/default_opkg_repo'
wget -q -O- "$$(cat '$(BOARD_BUILDDIR)/default_opkg_repo')/base/Packages.gz" \
| gzip -d \
| awk '/Depends: kernel / { match($$3,/[[:xdigit:]]{32}/,m); print m[0]; exit }' \
> $(GLUONDIR)/targets/$(GLUON_TARGET)/vermagic
.PHONY: all images prepare clean gluon-tools manifest .PHONY: all images prepare clean gluon-tools manifest update-vermagic
endif endif

View File

@ -84,8 +84,9 @@ The file ``config`` can be used to add additional, target-specific options to th
The files ``vermagic`` must have the correct content so kernel modules from the upstream repositories The files ``vermagic`` must have the correct content so kernel modules from the upstream repositories
can be installed without dependency issues. The OpenWrt version a Gluon release is based on is defined by the upstream package repo URL in ``include/gluon.mk`` can be installed without dependency issues. The OpenWrt version a Gluon release is based on is defined by the upstream package repo URL in ``include/gluon.mk``
(in the variable ``CONFIG_VERSION_REPO``); at the time this documentation was written, this was ``barrier_breaker/14.07``; whenever (in the variable ``DEFAULT_OPKG_REPO``); at the time this documentation was written, this was ``barrier_breaker/14.07``; whenever
the package repo is updated, all ``vermagic`` files must be updated as well. the package repo is updated, all ``vermagic`` files must be updated as well. The command ``make update-vermagic`` can be used to get the correct
vermagic, or update the values when ``DEFAULT_OPKG_REPO`` has changed.
The content is a hash which is part of the version number of the kernel package. So in the case of ``ar71xx-generic`` on The content is a hash which is part of the version number of the kernel package. So in the case of ``ar71xx-generic`` on
``barrier_breaker``, we look for the kernel package in the directory ``https://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/``. ``barrier_breaker``, we look for the kernel package in the directory ``https://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/``.

View File

@ -35,7 +35,9 @@ export GLUON_LANGS
ifeq ($(OPENWRT_BUILD),1) ifeq ($(OPENWRT_BUILD),1)
ifeq ($(GLUON_TOOLS),1) ifeq ($(GLUON_TOOLS),1)
CONFIG_VERSION_REPO := $(shell $(GLUONDIR)/scripts/site.sh opkg_repo || echo http://downloads.openwrt.org/chaos_calmer/15.05-rc2/%S/packages) DEFAULT_OPKG_REPO := http://downloads.openwrt.org/chaos_calmer/15.05-rc2/%S/packages
CONFIG_VERSION_REPO := $(shell $(GLUONDIR)/scripts/site.sh opkg_repo || echo '$(DEFAULT_OPKG_REPO)')
export CONFIG_VERSION_REPO export CONFIG_VERSION_REPO
GLUON_SITE_CODE := $(shell $(GLUONDIR)/scripts/site.sh site_code) GLUON_SITE_CODE := $(shell $(GLUONDIR)/scripts/site.sh site_code)