1# Copyright (C) 2016 and later: Unicode, Inc. and others. 2# License & terms of use: http://www.unicode.org/copyright.html 3#****************************************************************************** 4# 5# Copyright (C) 2010-2011, International Business Machines Corporation and others. All Rights Reserved. 6# 7#****************************************************************************** 8# This is to be called from ../Makefile.in 9# 10# This will only work if subversion is installed. 11# You must checkout ICU4C at the `/icu` or `/icu/icu4c` level - not just `…/source` 12# also note that `make dist` does NOT reflect any local modifications - it only does a fresh SVN export. 13 14top_builddir = . 15 16include $(top_builddir)/icudefs.mk 17 18DISTY_DIR=dist 19DISTY_TMP=dist/tmp 20DISTY_ICU=$(DISTY_TMP)/icu 21DISTY_DATA=$(DISTY_ICU)/source/data 22DISTY_RMV=brkitr coll curr lang locales mappings rbnf region translit xml zone misc unit 23DISTY_RMDIR=$(DISTY_RMV:%=$(DISTY_DATA)/%) 24DISTY_IN=$(DISTY_DATA)/in 25DOCZIP=icu-docs.zip 26 27SVNTOP=$(top_srcdir)/.. 28SVNVER=$(shell svnversion $(SVNTOP) | cut -d: -f1 | tr -cd 'a-zA-Z0-9') 29SVNURL=$(shell svn info $(SVNTOP) | grep '^URL:' | cut -d: -f2-) 30DISTY_VER=$(shell echo $(VERSION) | tr '.' '_' ) 31DISTY_PREFIX=icu4c 32DISTY_FILE_DIR=$(shell pwd)/$(DISTY_DIR) 33DISTY_FILE_TGZ=$(DISTY_FILE_DIR)/$(DISTY_PREFIX)-src-$(DISTY_VER)-r$(SVNVER).tgz 34DISTY_FILE_ZIP=$(DISTY_FILE_DIR)/$(DISTY_PREFIX)-src-$(DISTY_VER)-r$(SVNVER).zip 35DISTY_DOC_ZIP=$(DISTY_FILE_DIR)/$(DISTY_PREFIX)-docs-$(DISTY_VER)-r$(SVNVER).zip 36DISTY_DATA_ZIP=$(DISTY_FILE_DIR)/$(DISTY_PREFIX)-data-$(DISTY_VER)-r$(SVNVER).zip 37DISTY_DAT:=$(firstword $(wildcard data/out/tmp/icudt$(SO_TARGET_VERSION_MAJOR)*.dat)) 38 39DISTY_FILES_SRC=$(DISTY_FILE_TGZ) $(DISTY_FILE_ZIP) 40DISTY_FILES=$(DISTY_FILES_SRC) $(DISTY_DOC_ZIP) 41# colon-equals because we watn to run this once! 42EXCLUDES_FILE:=$(shell mktemp) 43 44$(DISTY_FILE_DIR): 45 $(MKINSTALLDIRS) $(DISTY_FILE_DIR) 46 47$(DISTY_TMP): 48 $(MKINSTALLDIRS) $(DISTY_TMP) 49 50$(DISTY_DOC_ZIP): $(DOCZIP) $(DISTY_FILE_DIR) 51 cp $(DOCZIP) $(DISTY_DOC_ZIP) 52 ln -sf $(DISTY_DOC_ZIP) $(DISTY_FILE_DIR)/icu4c-docs.zip 53 54$(DISTY_DAT): 55 echo Missing $@ 56 /bin/false 57 58# make sure we get the non-lgpl docs 59$(DOCZIP): 60 -$(RMV) "$(top_builddir)"/doc 61 "$(MAKE)" -C . srcdir="$(srcdir)" top_srcdir="$(top_srcdir)" builddir=. $@ 62 63$(DISTY_FILE_TGZ) $(DISTY_FILE_ZIP) $(DISTY_DATA_ZIP): $(DISTY_DAT) $(DISTY_TMP) 64 @echo "svnversion of $(SVNTOP) is as follows (if this fails, make sure svn is installed..)" 65 svnversion $(SVNTOP) 66 -$(RMV) $(DISTY_FILE) $(DISTY_TMP) 67 $(MKINSTALLDIRS) $(DISTY_TMP) 68 @echo collecting excludes to $(EXCLUDES_FILE) 69 (cd "$(SVNTOP)" ; svn status --no-ignore | grep '^I' | cut -c2- > "$(EXCLUDES_FILE)" ) 70 @echo pseudo-exporting $(SVNVER) 71 @#svn export -r $(shell echo $(SVNVER) | tr -d 'a-zA-Z' ) $(SVNURL) "$(DISTY_TMP)/icu" 72 rsync -a --exclude-from="$(EXCLUDES_FILE)" "$(SVNTOP)" "$(DISTY_TMP)/icu" 73 ( cd $(DISTY_TMP)/icu/source ; zip -rlq $(DISTY_DATA_ZIP) data ) 74 $(MKINSTALLDIRS) $(DISTY_IN) 75 echo DISTY_DAT=$(DISTY_DAT) 76 cp $(DISTY_DAT) $(DISTY_IN) 77 ( cd $(DISTY_TMP)/icu ; python as_is/bomlist.py > as_is/bomlist.txt || rm -f as_is/bomlist.txt ) 78 ( cd $(DISTY_TMP) ; zip -rlq $(DISTY_FILE_ZIP) icu ) 79 $(RMV) $(DISTY_RMDIR) 80 ( cd $(DISTY_TMP)/icu ; python as_is/bomlist.py > as_is/bomlist.txt || rm -f as_is/bomlist.txt ) 81 ( cd $(DISTY_TMP) ; tar cfpz $(DISTY_FILE_TGZ) icu ) 82 ln -sf $(DISTY_FILE_ZIP) $(DISTY_FILE_DIR)/icu4c-src.zip 83 ln -sf $(DISTY_FILE_TGZ) $(DISTY_FILE_DIR)/icu4c-src.tgz 84 ln -sf $(DISTY_DATA_ZIP) $(DISTY_FILE_DIR)/icu4c-data.zip 85 ls -l $(DISTY_FILE_TGZ) $(DISTY_FILE_ZIP) $(DISTY_DATA_ZIP) 86 87 88dist-local: $(DISTY_FILES) 89 90distcheck: distcheck-tgz 91 92DISTY_CHECK=$(DISTY_TMP)/check 93 94distcheck-tgz: $(DISTY_FILE_TGZ) 95 @echo Checking $(DISTY_FILE_TGZ) 96 @-$(RMV) $(DISTY_CHECK) 97 @$(MKINSTALLDIRS) $(DISTY_CHECK) 98 @(cd $(DISTY_CHECK) && tar xfpz $(DISTY_FILE_TGZ) && cd icu/source && $(SHELL) ./configure $(DISTCHECK_CONFIG_OPTIONS) && $(MAKE) check $(DISTCHECK_MAKE_OPTIONS) ) && (echo "!!! PASS: $(DISTY_FILE_TGZ)" ) 99