From eb4ddeedb42f314c94ca81fb9ef2cb6f5633dea0 Mon Sep 17 00:00:00 2001 From: "Steven R. Loomis" Date: Tue, 21 Aug 2012 20:23:19 +0000 Subject: [PATCH] ICU-9329 update provider for 49, 50 X-SVN-Rev: 32211 --- tools/multi/proj/provider/Makefile | 28 ++++----- tools/multi/proj/provider/check-icu2symver.sh | 57 +++++++++++++++++++ tools/multi/proj/provider/icu2symver.sh | 28 +++++++++ tools/multi/proj/provider/makegluren.sh | 29 ++++++++++ 4 files changed, 124 insertions(+), 18 deletions(-) create mode 100755 tools/multi/proj/provider/check-icu2symver.sh create mode 100755 tools/multi/proj/provider/icu2symver.sh create mode 100755 tools/multi/proj/provider/makegluren.sh diff --git a/tools/multi/proj/provider/Makefile b/tools/multi/proj/provider/Makefile index 7c7a46744c8..04e06da6658 100644 --- a/tools/multi/proj/provider/Makefile +++ b/tools/multi/proj/provider/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2010-2011 IBM Corporation and Others, All Rights Reserved. +# Copyright (C) 2010-2012 IBM Corporation and Others, All Rights Reserved. # all: glurens ii plugs testprog @@ -31,8 +31,7 @@ PROVIDER=provider LIBPROVIDER=lib$(PROVIDER).a #libs: $(ICU_TARBALLS_VERS:%=$(OUT)/%/lib/$(LIBPROVIDER)) -PLUGLIB=$(shell echo $(PROVIDER_TARGET) | tr '.' '_' ) -PLUGLIB_MAJ=$(shell echo $(PROVIDER_TARGET) | cut -d. -f1-2 | tr -d '.' ) + PLUGLIB_INST=$(C_INS)/r$(PLUGLIB) PLUGLIB_ICU_CONFIG=$(PLUGLIB_INST)/bin/icu-config #PLUGLIB_SO=$(shell $(PLUGLIB_ICU_CONFIG) --so 2>/dev/null ) @@ -114,7 +113,8 @@ ICU_CONFIG_CC=--cc $(ICU_CONFIG_COMMON) --cflags ICU_CONFIG_CXX=--cxx $(ICU_CONFIG_COMMON) --cxxflags include Makefile.local - +PLUGLIB=$(shell echo $(PROVIDER_TARGET) | tr '.' '_' ) +PLUGLIB_MAJ=$(shell ./icu2symver.sh $(PLUGLIB)) ## @build All installed ICUs ii: $(GLOUT_ICU) @@ -203,7 +203,10 @@ TESTPROG=coldiff datediff testprog: $(PLUGLIB:%=$(OUT)/%/bin/$(TESTPROG)) -check: all testprog $(OUT)/icuplugins$(PLUGLIB_MAJ).txt +check-icu2symver: + ./check-icu2symver.sh + +check: check-icu2symver all testprog $(OUT)/icuplugins$(PLUGLIB_MAJ).txt ICU_PLUGINS=$(OUT) $(LIBPATH_VAR)=$(PLUGLIB_INST)/lib:out/$(PLUGLIB)/lib $(PLUGLIB_INST)/bin/icuinfo || ( echo "ICU broken." ; /bin/false ) ICU_PLUGINS=$(OUT) $(LIBPATH_VAR)=$(PLUGLIB_INST)/lib:out/$(PLUGLIB)/lib $(PLUGLIB_INST)/bin/icuinfo -L || ( echo "Plugin broken." ; /bin/false ) @for prog in $(TESTPROG) ; \ @@ -243,20 +246,9 @@ $(OUT)/%/lib/$(LIBPROVIDER): $(GLOUT)/%/obj-$(OK) glurens: $(GLUREN_ICU) # build single gluren.h -$(BUILD)/%/$(GLUREN_H): $(BUILD)/%/ok Makefile +$(BUILD)/%/$(GLUREN_H): $(BUILD)/%/ok Makefile makegluren.sh -mkdir -p $(BUILD)/$*/$(GLUREN) - cat $(GLUE)/gluren-top.h > $@ - echo "#define GLUREN_VER" $* >> $@ - echo "#define GLUREN_TINY" $(shell echo $* | cut -d_ -f1-2) >> $@ - echo >> $@ - echo '/* old style (<4.4)*/' >> $@ - grep "^#define.*$(shell echo $* | cut -d_ -f1-2)$$" $(SRC)/$*/$(SOURCE)/common/unicode/urename.h | fgrep -v '*' | \ - sed -e "s@^#define \([^ ]*\) \([^ ]*\)@#define OICU_\1 \2@" >> $@ - echo '/* new style (4.4+) */' >> $@ - fgrep " U_ICU_ENTRY_POINT_RENAME(" $(SRC)/$*/$(SOURCE)/common/unicode/urename.h | \ - sed -e "s@^#define \([^ ]*\) .*@#define OICU_\1 \1_$(shell echo $* | cut -d_ -f1-2 | tr -d '_')@" >> $@ - cat $(GLUE)/gluren-bottom.h >> $@ - + env SRC="$(SRC)" SOURCE="$(SOURCE)" GLUE="$(GLUE)" ./makegluren.sh $@ $* $(BUILD)/%/config/$(ICU_CONFIG): $(BUILD)/%/config/$(ICU_CONFIG_ORIG) icu-config.sed $(BUILD)/%/ok sed -f icu-config.sed < $(BUILD)/$*/config/$(ICU_CONFIG_ORIG) > $(BUILD)/$*/config/$(ICU_CONFIG) && chmod a+rx $(BUILD)/$*/config/$(ICU_CONFIG) diff --git a/tools/multi/proj/provider/check-icu2symver.sh b/tools/multi/proj/provider/check-icu2symver.sh new file mode 100755 index 00000000000..da2ad5b8c51 --- /dev/null +++ b/tools/multi/proj/provider/check-icu2symver.sh @@ -0,0 +1,57 @@ +#!/bin/sh +# Copyright (C) 2010-2012 IBM Corporation and Others, All Rights Reserved. + +if [ $# -eq 1 ]; +then + VERBOSE=1 +else + VERBOSE=0 +fi + +function verbose() +{ + if [ ${VERBOSE} -eq 1 ]; + then + echo "$*" + else + echo -n . + fi +} + +function c() +{ + IN=$1 + EXP=$2 + OUT=`./icu2symver.sh $IN` + if [ "x${OUT}" != "x${EXP}" ]; + then + echo "Error: \"${IN}\" -> \"${OUT}\", expected ${EXP}" >&2 + exit 1 + else + verbose "${IN} -> ${OUT}" + fi + + OUT=`echo ${IN} | ./icu2symver.sh` + if [ "x${OUT}" != "x${EXP}" ]; + then + echo "Error: \"${IN}\" -> \"${OUT}\", expected ${EXP} (via stream)" >&2 + exit 1 + else + verbose "${IN} -> ${OUT} (via stream)" + fi +} + +c '3.6.2' '36' +c '1.0' '10' +c '4.8' '48' +c '4.8.1.1' '48' +c '4.0.2' '40' +c '4.1.2' '41' +c '49.1.2' '49' +c '49' '49' +c '50.0.3' '50' +c '51.0.0.1' '51' + +echo " OK!" + +exit 0 diff --git a/tools/multi/proj/provider/icu2symver.sh b/tools/multi/proj/provider/icu2symver.sh new file mode 100755 index 00000000000..597325f729f --- /dev/null +++ b/tools/multi/proj/provider/icu2symver.sh @@ -0,0 +1,28 @@ +#!/bin/sh +# Copyright (C) 2010-2012 IBM Corporation and Others, All Rights Reserved. + +INVER="0.0" +if [ $# -eq 0 ]; +then + read INVER +elif [ $# -eq 1 ]; +then + INVER=$1 +else + echo "$0: error: require one or zero arguments. If zero, read from stdin" >&2 + exit 1 +fi + +UND=`echo ${INVER} | tr '.' '_'` +MAJ0=`echo ${UND} | cut -d_ -f1` +MIN1=`echo ${UND} | cut -d_ -f2` +if [ ${MAJ0} -lt 49 ]; +then + # pre 50: paste together "4" and "8" to get 48 + echo -n "${MAJ0}${MIN1}" +else + # post 50: just use the first # + echo -n "${MAJ0}" +fi + +exit 0 \ No newline at end of file diff --git a/tools/multi/proj/provider/makegluren.sh b/tools/multi/proj/provider/makegluren.sh new file mode 100755 index 00000000000..6343f752fcc --- /dev/null +++ b/tools/multi/proj/provider/makegluren.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# Copyright (C) 2010-2012 IBM Corporation and Others, All Rights Reserved. + +# $@ +OUT=$1 +shift +# $* +VER=$1 +shift + +TINY=`./icu2symver.sh $VER` + +echo "$0: Building ${OUT} for ${TINY} ------- " >&2 +#set -x + +( + cat ${GLUE}/gluren-top.h + echo "#define GLUREN_VER" ${TINY} + echo "#define GLUREN_TINY" ${TINY} + echo + echo '/* old style (<4.4)*/' + grep "^#define.*${TINY}$" ${SRC}/${VER}/${SOURCE}/common/unicode/urename.h | fgrep -v '*' | sed -e "s@^#define \([^ ]*\) \([^ ]*\)@#define OICU_\1 \2@" + echo '/* new style (4.4+) */' + fgrep " U_ICU_ENTRY_POINT_RENAME(" ${SRC}/${VER}/${SOURCE}/common/unicode/urename.h | sed -e "s@^#define \([^ ]*\) .*@#define OICU_\1 \1_${TINY}@" + cat ${GLUE}/gluren-bottom.h +) | + cat > ${OUT} +# tee ${OUT} + -- 2.40.0