diff options
author | Boris Nagaev <bnagaev@gmail.com> | 2016-01-04 22:00:41 (GMT) |
---|---|---|
committer | Boris Nagaev <bnagaev@gmail.com> | 2016-01-08 12:39:41 (GMT) |
commit | a516d920efaeb18de81bc38c70064b7c9a111453 (patch) | |
tree | 9065e44ddc2ed92208a6008d26c9bca768eca4f2 /tools/patch-tool-mxe | |
parent | 72477c9ac2dd029ce29d0f563492dde408a3093b (diff) | |
download | mxe-a516d920efaeb18de81bc38c70064b7c9a111453.zip mxe-a516d920efaeb18de81bc38c70064b7c9a111453.tar.gz mxe-a516d920efaeb18de81bc38c70064b7c9a111453.tar.bz2 |
reimplement patch-tool-mxe in Makefile
fix #1063
Diffstat (limited to 'tools/patch-tool-mxe')
-rwxr-xr-x | tools/patch-tool-mxe | 109 |
1 files changed, 4 insertions, 105 deletions
diff --git a/tools/patch-tool-mxe b/tools/patch-tool-mxe index ab021cb..cdc9614 100755 --- a/tools/patch-tool-mxe +++ b/tools/patch-tool-mxe @@ -10,122 +10,21 @@ patch_name=${3:-1-fixes} setupEnv() { # MXE directory export mxedir=$(cd $(dirname $0) && cd .. && pwd) - - # directory for unpacked tarballs/git repos - export gitsdir=${mxedir}/gits - - mkdir -p ${gitsdir} - - - export pkg_version=`grep '^$(PKG)_VERSION' $mxedir/src/$pkg.mk | \ - sed 's/.*:= \(.*\)/\1/'` - - export pkg_short_version=`echo $pkg_version | sed s/'\(.*\)\.[^.]*$'/'\1'/` - - export pkg_subdir=`grep '^$(PKG)_SUBDIR' $mxedir/src/$pkg.mk | \ - sed 's/.*:= \(.*\)/\1/' | \ - sed s/'$($(PKG)_VERSION)'/$pkg_version/ | \ - sed s/'$(call SHORT_PKG_VERSION,$(PKG))'/$pkg_short_version/ | \ - sed s/'$(PKG)'/$pkg/;` - - export pkg_file=`grep '^$(PKG)_FILE\>' $mxedir/src/$pkg.mk | \ - sed 's/.*:= \(.*\)/\1/' | \ - sed s/'$($(PKG)_VERSION)'/$pkg_version/ | \ - sed s/'$(call SHORT_PKG_VERSION,$(PKG))'/$pkg_short_version/ | \ - sed s/'$($(PKG)_SUBDIR)'/$pkg_subdir/ | \ - sed s/'$(PKG)'/$pkg/;` - - #echo $pkg - #echo $pkg_version - #echo $pkg_subdir - #echo $pkg_file - } -# init + function init_git { setupEnv - cd $gitsdir - - if [ -d $gitsdir/$pkg_subdir ]; then - echo "Error: $gitsdir/$pkg_subdir already exists. Cancelling init." >&2 - exit 1 - fi - - echo "Checking for cached $pkg_file" - if [ ! -f $mxedir/pkg/$pkg_file ]; then - make -C "$mxedir" download-only-$pkg - echo "Building the mxe Makefile target 'download-only-$pkg' to get missing file" - if [ ! $? -eq 0 ]; then - echo "Could not build target download-only-$pkg - cancelling init." >&2 - exit 1 - fi - fi - - echo "Unpacking archive..." - (echo $pkg_file | grep "\.tar\.gz") || (echo $pkg_file | grep "\.tgz") \ - >> /dev/null && tar xf $mxedir/pkg/$pkg_file - (echo $pkg_file | grep "\.tar\.bz2") || (echo $pkg_file | grep "\.tbz2") \ - >> /dev/null && tar xf $mxedir/pkg/$pkg_file - (echo $pkg_file | grep "\.tar\.xz") || (echo $pkg_file | grep "\.txz") \ - >> /dev/null && xz -dc $mxedir/pkg/$pkg_file | tar xf - - echo $pkg_file | grep "\.zip" >> /dev/null && unzip $mxedir/pkg/$pkg_file >> /dev/null - - echo "Initializing repo and adding all as first commit" - cd $gitsdir/$pkg_subdir && \ - (git init; git add -A; git commit -m "init") > /dev/null - - echo "Creating 'dist' tag for distribution tarball state" - git tag dist - - echo "Repository ready in $gitsdir/$pkg_subdir" + make -C $mxedir init-git-$pkg } function export_patch { setupEnv - if [ ! -d $gitsdir/$pkg_subdir ]; then - echo "Error: $gitsdir/$pkg_subdir does not exist, so cannot export patches. Cancelling export." >&2 - exit 1 - fi - - cd $gitsdir/$pkg_subdir && \ - ( - echo 'This file is part of MXE.' - echo 'See index.html for further information.' - echo '' - echo 'Contains ad hoc patches for cross building.' - echo '' - git format-patch \ - --no-numbered \ - -p \ - --no-signature \ - --stdout \ - --text \ - dist..HEAD | \ - sed 's/^From [0-9a-f]\{40\} /From 0000000000000000000000000000000000000000 /' | \ - sed 's/^index .......\.\......../index 1111111..2222222/' - ) > $mxedir/src/${pkg}-${patch_name}.patch && \ - echo "Generated ${mxedir}/src/${pkg}-${patch_name}.patch" + make -C $mxedir export-patch-$pkg PATCH_NAME=${patch_name} } function import_patch { setupEnv - if [ ! -d $gitsdir/$pkg_subdir ]; then - echo "Error: $gitsdir/$pkg_subdir does not exist, so cannot import patches. Cancelling import - try 'init' first." >&2 - exit 1 - fi - - if [ -f ${mxedir}/src/${pkg}-${patch_name}.patch ]; then - cd $gitsdir/$pkg_subdir && \ - cat ${mxedir}/src/${pkg}-${patch_name}.patch | \ - sed '/^From/,$ !d' | \ - sed s/'^From: MXE'/"From: fix@me"/'g;' | \ - git am --keep-cr && \ - echo "Imported ${mxedir}/src/${pkg}-${patch_name}.patch" - else - echo "patch file ${mxedir}/src/${pkg}-${patch_name}.patch not found." - echo "Cancelling import." >&2 - exit 1 - fi + make -C $mxedir import-patch-$pkg PATCH_NAME=${patch_name} } case "$cmd" in |