dist.mk (4501B)
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, but pulls from HEAD. 13 14 top_builddir = . 15 16 include $(top_builddir)/icudefs.mk 17 18 DISTY_DIR=dist 19 DISTY_TMP=dist/tmp 20 DISTY_ICU=$(DISTY_TMP)/icu 21 DISTY_DATA=$(DISTY_ICU)/source/data 22 # The following line controls what is removed in the data/ subdirectory for the source tarball. 23 DISTY_RMV=brkitr coll curr lang locales mappings rbnf region translit xml zone misc/*.txt misc/*.mk unit 24 DISTY_RMDIR=$(DISTY_RMV:%=$(DISTY_DATA)/%) 25 DISTY_IN=$(DISTY_DATA)/in 26 DOCZIP=icu-docs.zip 27 28 ICU4CTOP=$(top_srcdir)/.. 29 GITVER=$(shell (cd $(ICU4CTOP) && (git describe --tags --exact-match 2>/dev/null || git rev-parse --short HEAD)) || echo 'unknown') 30 DISTY_VER=$(PACKAGE_VERSION) 31 DISTY_PREFIX=icu4c 32 DISTY_FILE_DIR=$(shell pwd)/$(DISTY_DIR) 33 DISTY_FILE_TGZ=$(DISTY_FILE_DIR)/$(DISTY_PREFIX)-sources.tgz 34 DISTY_FILE_ZIP=$(DISTY_FILE_DIR)/$(DISTY_PREFIX)-sources.zip 35 DISTY_DOC_ZIP=$(DISTY_FILE_DIR)/$(DISTY_PREFIX)-docs.zip 36 DISTY_DATA_ZIP=$(DISTY_FILE_DIR)/$(DISTY_PREFIX)-data.zip 37 DISTY_DAT:=$(firstword $(wildcard data/out/tmp/icudt$(SO_TARGET_VERSION_MAJOR)*.dat)) 38 39 DISTY_FILES_SRC=$(DISTY_FILE_TGZ) $(DISTY_FILE_ZIP) 40 DISTY_FILES=$(DISTY_FILES_SRC) $(DISTY_DOC_ZIP) 41 # colon-equals because we want to run this once! 42 EXCLUDES_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 $(shell basename $(DISTY_DOC_ZIP)) $(DISTY_FILE_DIR)/icu4c-$(DISTY_VER)-$(GITVER)-docs.zip 53 ln -f $(DISTY_DOC_ZIP) $(DISTY_FILE_DIR)/icu4c-$(DISTY_VER)-docs.zip 54 ls -l $(DISTY_FILE_DIR) 55 56 $(DISTY_DAT): 57 echo Missing $@ 58 /bin/false 59 60 # make sure we get the non-lgpl docs 61 $(DOCZIP): 62 -$(RMV) "$(top_builddir)"/doc 63 "$(MAKE)" -C . srcdir="$(srcdir)" top_srcdir="$(top_srcdir)" builddir=. $@ 64 65 $(DISTY_FILE_TGZ) $(DISTY_FILE_ZIP) $(DISTY_DATA_ZIP): $(DISTY_DAT) $(DISTY_TMP) 66 @echo Export icu4c@$(GITVER) to "$(DISTY_TMP)/icu" 67 -$(RMV) $(DISTY_FILE) $(DISTY_TMP) 68 $(MKINSTALLDIRS) $(DISTY_TMP) 69 ( cd $(ICU4CTOP)/.. && git archive --format=tar --prefix=icu/ HEAD:icu4c/ ) | ( cd "$(DISTY_TMP)" && tar xf - ) 70 # special handling for LICENSE file. The symlinks will be included as files by tar and zip. 71 cp -fv $(ICU4CTOP)/LICENSE "$(DISTY_TMP)/LICENSE" 72 # Copy top-level testdata directory so it's a sibling of the source/ directory 73 cp -R $(ICU4CTOP)/../testdata $(DISTY_TMP)/icu 74 ( cd $(DISTY_TMP)/icu/source ; zip -rlq $(DISTY_DATA_ZIP) data ) 75 $(MKINSTALLDIRS) $(DISTY_IN) 76 echo DISTY_DAT=$(DISTY_DAT) 77 cp $(DISTY_DAT) $(DISTY_IN) 78 $(RMV) $(DISTY_RMDIR) 79 ( cd $(DISTY_TMP)/icu ; python as_is/bomlist.py > as_is/bomlist.txt || rm -f as_is/bomlist.txt ) 80 ( cd $(DISTY_TMP) ; tar cfpzh $(DISTY_FILE_TGZ) icu ) 81 ( cd $(DISTY_TMP) ; zip -rlq $(DISTY_FILE_ZIP) icu ) 82 $(RMV) $(DISTY_TMP) 83 ln -sf $(shell basename $(DISTY_FILE_ZIP)) $(DISTY_FILE_DIR)/icu4c-$(DISTY_VER)-$(GITVER)-sources.zip 84 ln -sf $(shell basename $(DISTY_FILE_TGZ)) $(DISTY_FILE_DIR)/icu4c-$(DISTY_VER)-$(GITVER)-sources.tgz 85 ln -sf $(shell basename $(DISTY_DATA_ZIP)) $(DISTY_FILE_DIR)/icu4c-$(DISTY_VER)-$(GITVER)-data.zip 86 ln -f $(DISTY_FILE_ZIP) $(DISTY_FILE_DIR)/icu4c-$(DISTY_VER)-sources.zip 87 ln -f $(DISTY_FILE_TGZ) $(DISTY_FILE_DIR)/icu4c-$(DISTY_VER)-sources.tgz 88 ln -f $(DISTY_DATA_ZIP) $(DISTY_FILE_DIR)/icu4c-$(DISTY_VER)-data.zip 89 ls -l $(DISTY_FILE_DIR) 90 91 dist-local: $(DISTY_FILES) 92 VERSION=$(VERSION) PACKAGE_VERSION=$(PACKAGE_VERSION) $(SHELL) $(top_srcdir)/config/dist-data.sh 93 94 distcheck: distcheck-tgz 95 96 DISTY_CHECK=$(DISTY_TMP)/check 97 98 distcheck-tgz: $(DISTY_FILE_TGZ) 99 @echo Checking $(DISTY_FILE_TGZ) 100 @-$(RMV) $(DISTY_CHECK) 101 @$(MKINSTALLDIRS) $(DISTY_CHECK) 102 @(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)" )