56 lines
1.9 KiB
Makefile
56 lines
1.9 KiB
Makefile
# This is a packager-level Makefile, used for task related to the RPM updates.
|
|
|
|
# === Paths
|
|
# Directory of current Makefile; assumed to be the same as the .spec file.
|
|
MAKEDIR := $(dir $(lastword ${MAKEFILE_LIST}))
|
|
SPECFILE ?= $(wildcard ${MAKEDIR}nodejs*.spec)
|
|
|
|
# === Tools
|
|
GIT := git
|
|
RPM := rpm -D '_sourcedir ${MAKEDIR}'
|
|
RPKG ?= rhpkg
|
|
SPECTOOL := rpmdev-spectool --define '_sourcedir ${MAKEDIR}'
|
|
TAR := tar
|
|
|
|
# === Variables potentially overwritten from environment
|
|
# Version we want to update to.
|
|
TARGET_VERSION ?= $(error No target version specified for update!)
|
|
|
|
# === File lists
|
|
# Source files that are not stored directly in git
|
|
SOURCES := $(shell ${SPECTOOL} --list-files --source 0,1,2,100 ${SPECFILE}|sed -E 's/^Source[[:digit:]]*: //'|xargs basename -a)
|
|
# Packaging support files
|
|
PACKAGING := Makefile packaging/make-nodejs-tarball.sh packaging/fill-versions.sh
|
|
|
|
# === Control targets / actions ===
|
|
.PHONY: update clean
|
|
|
|
# Update the package to TARGET_VERSION
|
|
update: ${SPECFILE} packaging/fill-versions.sh
|
|
sed -Ei '/^%nodejs_define_version\s+node\>/s|:[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+-|:${TARGET_VERSION}-|' '${SPECFILE}'
|
|
${MAKE} node-v${TARGET_VERSION}-stripped.tar.gz
|
|
packaging/fill-versions.sh '${SPECFILE}' node-v${TARGET_VERSION}-stripped.tar.gz
|
|
${GIT} add '${SPECFILE}'
|
|
${MAKE} sources
|
|
|
|
# Remove all downloaded and/or created files
|
|
clean:
|
|
$(RM) -r node-v*-stripped.tar.gz node-v*/ # main archive and it's expanded contents
|
|
$(RM) icu4c-*-data-bin-?.zip # ICU database
|
|
$(RM) packaging-scripts.tar.gz # packaging tarball
|
|
|
|
# === Recipes for concrete files ===
|
|
|
|
# Upload new sources to lookaside cache
|
|
sources: ${SOURCES}
|
|
${RPKG} new-sources $^
|
|
|
|
node-v%-stripped.tar.gz: packaging/make-nodejs-tarball.sh
|
|
$< $*
|
|
|
|
icu4c-%-data-bin-b.zip icu4c-%-data-bin-l.zip &: ${SPECFILE}
|
|
${SPECTOOL} --get-files --source 1,2 $<
|
|
|
|
packaging-scripts.tar.gz: ${PACKAGING}
|
|
${TAR} -czf $@ $^
|