Merge pull request #1729 from tonytheodore/tag-prefix

github.mk: fix tag prefix with single `v` and pkg name <> project name
This commit is contained in:
Tony Theodore 2017-03-26 15:56:17 +11:00 committed by GitHub
commit 124b4e0948
11 changed files with 82 additions and 108 deletions

View File

@ -13,6 +13,7 @@ MXE_LIB_TYPES := static shared
MXE_TARGET_LIST := $(strip $(foreach TRIPLET,$(MXE_TRIPLETS),\
$(addprefix $(TRIPLET).,$(MXE_LIB_TYPES))))
MXE_TARGETS := i686-w64-mingw32.static
.DEFAULT_GOAL := all-filtered
DEFAULT_MAX_JOBS := 6
SOURCEFORGE_MIRROR := downloads.sourceforge.net
@ -362,9 +363,6 @@ LOOKUP_PKG_RULE = $(strip \
$(call set,LOOKUP_PKG_RULE_,$(1)_$(2)_$(or $(5),$(3)),$(1)_$(2)_$(3))\
$(1)_$(2)_$(3))))
.PHONY: all
all: all-filtered
# Core packages.
override MXE_PLUGIN_DIRS := $(realpath $(TOP_DIR)/src) $(MXE_PLUGIN_DIRS)
@ -488,6 +486,7 @@ download-only-$(1): download-only-$($(1)_FILE)
download-only-$($(1)_FILE)::
$(and $($(1)_URL),
@[ -d '$(LOG_DIR)/$(TIMESTAMP)' ] || mkdir -p '$(LOG_DIR)/$(TIMESTAMP)'
@$$(if $$(REMOVE_DOWNLOAD),rm -f '$(PKG_DIR)/$($(1)_FILE)')
@if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \
$(PRINTF_FMT) '[download]' '$(1)' | $(RTRIM); \
(set -x; $(call DOWNLOAD_PKG_ARCHIVE,$(1))) &> '$(LOG_DIR)/$(TIMESTAMP)/$(1)-download'; \
@ -506,8 +505,14 @@ download-only-$($(1)_FILE)::
exit 1; \
fi; \
fi)
.PHONY: prepare-pkg-source-$(1)
prepare-pkg-source-$(1): download-only-$(1)
rm -rf '$(2)'
mkdir -p '$(2)'
$$(call PREPARE_PKG_SOURCE,$(1),$(2))
endef
$(foreach PKG,$(PKGS),$(eval $(call PKG_RULE,$(PKG))))
$(foreach PKG,$(PKGS),$(eval $(call PKG_RULE,$(PKG),$(call TMP_DIR,$(PKG)))))
# disable networking during build-only rules for reproducibility
ifeq ($(findstring darwin,$(BUILD)),)

View File

@ -5,12 +5,14 @@
# Archive:
# url = <owner>/<repo>/archive/<ref>.tar.gz
# dir = <repo>-<ref>
# if <ref> starts with a single `v`, it is removed from dir
#
# Tarball:
# url = <owner>/<repo>/tarball/<ref>/output-file.tar.gz
# dir = <owner>-<repo>-<short sha>
#
## also third api - `releases` see libass.mk
# TODO: also third api - `releases` see libass.mk
# grep -l 'MXE_GET_GITHUB\|api.github.com\|github.com.*archive' src/*.mk | xargs grep -L 'GH_CONF'
#
# Filename doesn't matter as we stream the url to a name of our choosing.
#
@ -56,7 +58,8 @@ GITHUB_TAG_FILTER := alpha\|beta\|rc
# and looks out of place.
# - don't redefine manually set standard variables (FILE, SUBDIR, URL, UPDATE)
GH_REPO = $(subst $(space),/,$(wordlist 1,2,$(subst /,$(space),$(subst $(comma),$(space),$($(PKG)_GH_CONF)))))
GH_OWNER = $(word 1,$(subst /,$(space),$(word 1,$(subst $(comma),$(space),$($(PKG)_GH_CONF)))))
GH_REPO = $(word 2,$(subst /,$(space),$(word 1,$(subst $(comma),$(space),$($(PKG)_GH_CONF)))))
GH_BRANCH = $(word 3,$(subst /,$(space),$(word 1,$(subst $(comma),$(space),$($(PKG)_GH_CONF)))))
GH_TAG_VARS = $(call rest,$(subst $(comma),$(space)$(__gmsl_aa_magic),$(subst $(space),,$($(PKG)_GH_CONF))))
GH_TAG_PREFIX = $(subst $(__gmsl_aa_magic),,$(word 1,$(GH_TAG_VARS)))
@ -65,6 +68,7 @@ GH_TAG_FILTER = $(subst $(__gmsl_aa_magic),,$(word 3,$(GH_TAG_VARS)))
GH_VERSION_SEP = $(subst $(__gmsl_aa_magic),,$(word 4,$(GH_TAG_VARS)))
define MXE_SETUP_GITHUB
$(PKG)_GH_OWNER := $(GH_OWNER)
$(PKG)_GH_REPO := $(GH_REPO)
$(PKG)_BRANCH := $(GH_BRANCH)
$(PKG)_TAG_VARS := $(GH_TAG_VARS)
@ -79,15 +83,16 @@ define MXE_SETUP_GITHUB
endef
define MXE_SETUP_GITHUB_BRANCH
$(PKG)_SUBDIR := $(or $($(PKG)_SUBDIR),$(subst /,-,$($(PKG)_GH_REPO))-$($(PKG)_VERSION))
$(PKG)_URL := $(or $($(PKG)_URL),https://github.com/$($(PKG)_GH_REPO)/tarball/$($(PKG)_VERSION)/$($(PKG)_FILE))
$(PKG)_UPDATE := $(or $($(PKG)_UPDATE),$(call MXE_GET_GH_SHA,$($(PKG)_GH_REPO),$($(PKG)_BRANCH)))
$(PKG)_SUBDIR := $(or $($(PKG)_SUBDIR),$($(PKG)_GH_OWNER)-$($(PKG)_GH_REPO)-$($(PKG)_VERSION))
$(PKG)_URL := $(or $($(PKG)_URL),https://github.com/$($(PKG)_GH_OWNER)/$($(PKG)_GH_REPO)/tarball/$($(PKG)_VERSION)/$($(PKG)_FILE))
$(PKG)_UPDATE := $(or $($(PKG)_UPDATE),$(call MXE_GET_GH_SHA,$($(PKG)_GH_OWNER)/$($(PKG)_GH_REPO),$($(PKG)_BRANCH)))
endef
define MXE_SETUP_GITHUB_TAG
$(PKG)_SUBDIR := $(or $($(PKG)_SUBDIR),$(PKG)-$($(PKG)_TAG_PREFIX)$(subst .,$($(PKG)_VERSION_SEP),$($(PKG)_VERSION))$($(PKG)_TAG_SUFFIX))
$(PKG)_URL := $(or $($(PKG)_URL),https://github.com/$($(PKG)_GH_REPO)/archive/$(subst $(PKG)-,,$($(PKG)_SUBDIR)).tar.gz)
$(PKG)_UPDATE := $(or $($(PKG)_UPDATE),$(call MXE_GET_GH_TAG,$($(PKG)_GH_REPO),$($(PKG)_TAG_PREFIX),$($(PKG)_TAG_SUFFIX),$(or $($(PKG)_TAG_FILTER),$(GITHUB_TAG_FILTER)),$($(PKG)_VERSION_SEP)))
$(PKG)_SUBDIR := $(or $($(PKG)_SUBDIR),$($(PKG)_GH_REPO)-$(if $(call sne,v,$($(PKG)_TAG_PREFIX)),$($(PKG)_TAG_PREFIX))$(subst .,$($(PKG)_VERSION_SEP),$($(PKG)_VERSION))$($(PKG)_TAG_SUFFIX))
$(PKG)_TAR_GZ := $(or $($(PKG)_TAR_GZ),$($(PKG)_GH_REPO)-$($(PKG)_TAG_PREFIX)$(subst .,$($(PKG)_VERSION_SEP),$($(PKG)_VERSION))$($(PKG)_TAG_SUFFIX))
$(PKG)_URL := $(or $($(PKG)_URL),https://github.com/$($(PKG)_GH_OWNER)/$($(PKG)_GH_REPO)/archive/$(subst $($(PKG)_GH_REPO)-,,$($(PKG)_TAR_GZ)).tar.gz)
$(PKG)_UPDATE := $(or $($(PKG)_UPDATE),$(call MXE_GET_GH_TAG,$($(PKG)_GH_OWNER)/$($(PKG)_GH_REPO),$($(PKG)_TAG_PREFIX),$($(PKG)_TAG_SUFFIX),$(or $($(PKG)_TAG_FILTER),$(GITHUB_TAG_FILTER)),$($(PKG)_VERSION_SEP)))
endef
# called with owner/repo,branch
@ -112,3 +117,25 @@ define MXE_GET_GH_TAG
| $(SORT) -V
| tail -1
endef
GITHUB_PKGS = $(patsubst %_GH_CONF,%,$(filter %_GH_CONF,$(.VARIABLES)))
# check-gh-conf : test updates and source directory
# check-gh-conf-dl: removes downloads and tests above
# a test of many package updates may hit rate limit of 60/hr
# https://developer.github.com/v3/#rate-limiting
.PHONY: check-gh-conf check-gh-conf-%
check-gh-conf-dl: REMOVE_DOWNLOAD = true
check-gh-conf-dl: MXE_NO_BACKUP_DL = true
check-gh-conf-dl: check-gh-conf
check-gh-conf-pkg-%: check-update-package-% download-only-%
@$(PRINTF_FMT) '[prep-src]' '$(*)' | $(RTRIM)
@($(MAKE) -f '$(MAKEFILE)' 'prepare-pkg-source-$(*)') > /dev/null
@rm -rf '$(call TMP_DIR,$(*))'
# secondexpansion here since this file is included before pkg makefiles
.SECONDEXPANSION:
check-gh-conf: $$(addprefix check-gh-conf-pkg-,$$(GITHUB_PKGS))
github-pkgs: $$(GITHUB_PKGS)

View File

@ -6,27 +6,18 @@ $(PKG)_DESCR := Assimp Open Asset Import Library
$(PKG)_IGNORE :=
$(PKG)_VERSION := 3.2
$(PKG)_CHECKSUM := 187f825c563e84b1b17527a4da0351aa3d575dfd696a9d204ae4bb19ee7df94a
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/$(PKG)/$(PKG)/archive/v$($(PKG)_VERSION).tar.gz
$(PKG)_GH_CONF := assimp/assimp, v
$(PKG)_DEPS := gcc boost
define $(PKG)_UPDATE
$(WGET) -q -O- "https://api.github.com/repos/assimp/assimp/releases" | \
grep 'tag_name' | \
$(SED) -n 's,.*tag_name": "v\([0-9][^>]*\)".*,\1,p' | \
$(SORT) -Vr | \
head -1
endef
define $(PKG)_BUILD
mkdir '$(1)/build'
cd '$(1)/build' && $(TARGET)-cmake $(1) \
cd '$(BUILD_DIR)' && $(TARGET)-cmake \
-DASSIMP_ENABLE_BOOST_WORKAROUND=OFF \
-DASSIMP_BUILD_ASSIMP_TOOLS=OFF \
-DASSIMP_BUILD_SAMPLES=OFF \
-DASSIMP_BUILD_TESTS=OFF
$(MAKE) -C '$(1)/build' -j '$(JOBS)' install VERBOSE=1
-DASSIMP_BUILD_SAMPLES=OFF \
-DASSIMP_BUILD_TESTS=OFF \
'$(SOURCE_DIR)'
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)'
$(MAKE) -C '$(BUILD_DIR)' -j 1 install
'$(TARGET)-gcc' \
-W -Wall -Werror -ansi -pedantic \

View File

@ -2,27 +2,19 @@
PKG := box2d
$(PKG)_WEBSITE := http://www.box2d.org/
$(PKG)_DESCR := Box2D
$(PKG)_IGNORE :=
$(PKG)_VERSION := 2.3.1
$(PKG)_CHECKSUM := 75d62738b13d2836cd56647581b6e574d4005a6e077ddefa5d727d445d649752
$(PKG)_SUBDIR := Box2D-$($(PKG)_VERSION)/Box2D
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/erincatto/Box2D/archive/v$($(PKG)_VERSION).tar.gz
$(PKG)_GH_CONF := erincatto/Box2D, v
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
$(call MXE_GET_GITHUB_TAGS, erincatto/Box2D) | \
$(SED) 's,^v,,g'
endef
define $(PKG)_BUILD
mkdir '$(1).build'
cd '$(1).build' && '$(TARGET)-cmake' . \
cd '$(BUILD_DIR)' && $(TARGET)-cmake \
-DBOX2D_INSTALL=ON \
-DBOX2D_BUILD_EXAMPLES=OFF \
-DBOX2D_BUILD_STATIC=$(CMAKE_STATIC_BOOL) \
-DBOX2D_BUILD_SHARED=$(CMAKE_SHARED_BOOL) \
'$(1)'
$(MAKE) -C '$(1).build' -j '$(JOBS)' install VERBOSE=1
'$(SOURCE_DIR)/Box2D'
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' VERBOSE=1
$(MAKE) -C '$(BUILD_DIR)' -j 1 install VERBOSE=1
endef

View File

@ -6,24 +6,19 @@ $(PKG)_DESCR := GLFW 3.x
$(PKG)_IGNORE :=
$(PKG)_VERSION := 3.1.2
$(PKG)_CHECKSUM := 6ac642087682aaf7f8397761a41a99042b2c656498217a1c63ba9706d1eef122
$(PKG)_SUBDIR := glfw-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/glfw/glfw/archive/$($(PKG)_VERSION).tar.gz
$(PKG)_GH_CONF := glfw/glfw
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
$(call MXE_GET_GITHUB_TAGS, glfw/glfw)
endef
define $(PKG)_BUILD
mkdir '$(1).build'
cd '$(1).build' && '$(TARGET)-cmake' '$(1)' \
cd '$(BUILD_DIR)' && $(TARGET)-cmake \
-DGLFW_BUILD_EXAMPLES=FALSE \
-DGLFW_BUILD_TESTS=FALSE \
-DGLFW_BUILD_DOCS=FALSE \
-DGLFW_INSTALL_PKG_CONFIG=TRUE \
-DGLFW_PKG_LIBS='-lopengl32 -lgdi32'
$(MAKE) -C '$(1).build' -j '$(JOBS)' install
-DGLFW_PKG_LIBS='-lopengl32 -lgdi32' \
'$(SOURCE_DIR)'
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)'
$(MAKE) -C '$(BUILD_DIR)' -j 1 install
# Windows convention: DLLs in bin/, not in lib/, import library is called "libglfw3.dll.a"
$(if $(BUILD_SHARED),
@ -35,4 +30,3 @@ define $(PKG)_BUILD
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-glfw3.exe' \
`'$(TARGET)-pkg-config' glfw3 --cflags --libs`
endef

View File

@ -6,24 +6,16 @@ $(PKG)_DESCR := GLM - OpenGL Mathematics
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.9.7.6
$(PKG)_CHECKSUM := 872fdea580b69b752562adc60734d7472fd97d5724c4ead585564083deac3953
$(PKG)_SUBDIR := glm-$($(PKG)_VERSION)
$(PKG)_FILE := $($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/g-truc/glm/archive/$($(PKG)_VERSION).tar.gz
$(PKG)_GH_CONF := g-truc/glm
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
$(call MXE_GET_GITHUB_TAGS, g-truc/glm)
endef
define $(PKG)_BUILD
mkdir '$(1).build'
cd '$(1).build' && $(TARGET)-cmake '$(1)'
$(MAKE) -C '$(1).build' -j '$(JOBS)' install
cd '$(BUILD_DIR)' && $(TARGET)-cmake \
'$(SOURCE_DIR)'
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)'
$(MAKE) -C '$(BUILD_DIR)' -j 1 install
'$(TARGET)-g++' \
-W -Wall -Werror -ansi -pedantic \
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-glm.exe'
endef

View File

@ -6,12 +6,6 @@ $(PKG)_DESCR := Google Mock
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.7.0
$(PKG)_CHECKSUM := 3f20b6acb37e5a98e8c4518165711e3e35d47deb6cdb5a4dd4566563b5efd232
$(PKG)_SUBDIR := googlemock-release-$($(PKG)_VERSION)
$(PKG)_FILE := googlemock-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/google/googlemock/archive/release-$($(PKG)_VERSION).tar.gz
$(PKG)_GH_CONF := google/googlemock, release-
$(PKG)_DEPS :=
$(PKG)_TARGETS := $(BUILD) $(MXE_TARGETS)
define $(PKG)_UPDATE
$(call MXE_GET_GITHUB_TAGS, google/googlemock, release-)
endef

View File

@ -1,5 +1,4 @@
# This file is part of MXE.
# See index.html for further information.
# This file is part of MXE. See LICENSE.md for licensing information.
PKG := googletest
$(PKG)_WEBSITE := https://github.com/google/googletest
@ -7,12 +6,6 @@ $(PKG)_DESCR := Google Test
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.7.0
$(PKG)_CHECKSUM := f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc
$(PKG)_SUBDIR := $(PKG)-release-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/google/$(PKG)/archive/release-$($(PKG)_VERSION).tar.gz
$(PKG)_GH_CONF := google/googletest, release-
$(PKG)_DEPS :=
$(PKG)_TARGETS := $(BUILD) $(MXE_TARGETS)
define $(PKG)_UPDATE
$(call MXE_GET_GITHUB_TAGS, google/googletest, release-)
endef

View File

@ -6,25 +6,18 @@ $(PKG)_DESCR := Hyperscan
$(PKG)_IGNORE :=
$(PKG)_VERSION := 4.3.2
$(PKG)_CHECKSUM := 6cd5820d6da51d6fe4ab12066d1efd9afecc1bc6fb7d6eca9c98f76fd391dbd5
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $($(PKG)_SUBDIR).tar.gz
$(PKG)_URL := https://github.com/01org/$(PKG)/archive/v$($(PKG)_VERSION).tar.gz
$(PKG)_GH_CONF := 01org/hyperscan, v
$(PKG)_DEPS := gcc boost
# $(PKG)_NATIVE_DEPS := ragel
define $(PKG)_UPDATE
$(call MXE_GET_GITHUB_TAGS, 01org/hyperscan, v)
endef
define $(PKG)_BUILD
mkdir '$(1).build'
# Add the following options to run on (virtual) machine without AVX2
# -DCMAKE_C_FLAGS="-march=core2" -DCMAKE_CXX_FLAGS="-march=core2"
cd '$(1).build' && '$(TARGET)-cmake' \
cd '$(BUILD_DIR)' && $(TARGET)-cmake \
-DRAGEL='$(PREFIX)/$(BUILD)/bin/ragel' \
'$(1)'
$(MAKE) -C '$(1).build' -j '$(JOBS)'
$(MAKE) -C '$(1).build' -j 1 install
'$(SOURCE_DIR)'
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)'
$(MAKE) -C '$(BUILD_DIR)' -j 1 install
'$(TARGET)-gcc' \
'$(1)/examples/simplegrep.c' \

View File

@ -5,23 +5,16 @@ $(PKG)_WEBSITE := https://github.com/colinbourassa/librosco/
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.1.11
$(PKG)_CHECKSUM := 48bb2d07c2575f39bdb6cf022889f20bd855eb9100bb19d4e2536a771198e3a4
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/colinbourassa/librosco/archive/$($(PKG)_VERSION).tar.gz
$(PKG)_GH_CONF := colinbourassa/librosco,,,v
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
$(call MXE_GET_GITHUB_TAGS, colinbourassa/librosco)
endef
define $(PKG)_BUILD
mkdir '$(1)/build'
cd '$(1)/build' && '$(TARGET)-cmake' .. \
cd '$(BUILD_DIR)' && $(TARGET)-cmake \
-DENABLE_DOC_INSTALL=off \
-DENABLE_TESTAPP_INSTALL=off
$(MAKE) -C '$(1)/build' -j '$(JOBS)'
$(MAKE) -C '$(1)/build' -j 1 install
-DENABLE_TESTAPP_INSTALL=off \
'$(SOURCE_DIR)'
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)'
$(MAKE) -C '$(BUILD_DIR)' -j 1 install
'$(TARGET)-gcc' $(1)/src/readmems.c \
-o '$(PREFIX)/$(TARGET)/bin/test-librosco.exe' \

View File

@ -6,7 +6,7 @@ $(PKG)_DESCR := Qt
$(PKG)_IGNORE :=
$(PKG)_VERSION := 5c3b6cc
$(PKG)_CHECKSUM := d49c1cd4bb47706561f52c07d6075bb9931700d3bcae656ef3b6d3db3eb014ab
$(PKG)_GH_CONF := qtproject/qtserialport/qt4-dev
$(PKG)_GH_CONF := qt/qtserialport/qt4-dev
$(PKG)_DEPS := gcc qt
define $(PKG)_BUILD