diff options
Diffstat (limited to 'icu-config')
| -rwxr-xr-x | icu-config | 387 | 
1 files changed, 387 insertions, 0 deletions
diff --git a/icu-config b/icu-config new file mode 100755 index 0000000..08f9ce8 --- /dev/null +++ b/icu-config @@ -0,0 +1,387 @@ +#!/bin/sh +## -*-sh-*- +#set -x +# BEGIN of icu-config-top +#****************************************************************************** +#   Copyright (C) 1999-2004, International Business Machines +#   Corporation and others.  All Rights Reserved. +#****************************************************************************** +# This script is designed to aid configuration of ICU. +# rpath links a library search path right into the binaries. + + +### END of icu-config-top + +## Zero out prefix. +exec_prefix=`pkg-config --variable=exec_prefix icu` +execprefix=$exec_prefix +prefix=`pkg-config --variable=prefix icu` + + +loaddefs() +{ +LDLIBRARYPATH_ENVVAR="LD_LIBRARY_PATH" +bindir=`pkg-config --variable=bindir icu` +sbindir=`pkg-config --variable=sbindir icu` +libdir=`pkg-config --variable=libdir icu` +sysconfdir=`pkg-config --variable=sysconfdir icu` +mandir=`pkg-config --variable=mandir icu` +datadir=`pkg-config --variable=datadir icu` +pkglibdir=`pkg-config --variable=pkglibdir icu` +ICULIBS_COMMON_LIB_NAME=`pkg-config --variable=ICULIBS_COMMON_LIB_NAME icu` +UNICODE_VERSION=`pkg-config --variable=UNICODE_VERSION icu` +VERSION=`pkg-config --modversion icu` +SO=`pkg-config --variable=SO icu` + +## -*-sh-*- +## BEGIN of icu-config-bottom. +## Copyright (c) 2002-2004, International Business Machines Corporation and +## others. All Rights Reserved. + +ICUUC_FILE=${libdir}/${ICULIBS_COMMON_LIB_NAME} +     +#  echo ENABLE RPATH $ENABLE_RPATH and RPATHLDFLAGS=${RPATH_LDFLAGS} +if [ "x$PKGDATA_MODE" = "x" ]; then +    PKGDATA_MODE=dll +fi + +} + +## The actual code of icu-config goes here. + +ME=`basename $0` + +allflags() +{ +    echo "  --bindir               Print binary directory path (bin)" +    echo "  --cc                   Print C compiler used [CC]" +    echo "  --cflags               Print C compiler flags [CFLAGS]" +    echo "  --cflags-dynamic       Print additional C flags for" +    echo "                             building shared libraries." +    echo "  --cppflags             Print C Preprocessor flags [CPPFLAGS]" +    echo "  --cppflags-dynamic     Print additional C Preprocessor flags for" +    echo "                             building shared libraries." +    echo "  --cppflags-searchpath  Print only -I include directives  (-Iinclude)" +    echo "  --cxx                  Print C++ compiler used [CXX]" +    echo "  --cxxflags             Print C++ compiler flags [CXXFLAGS]" +    echo "  --cxxflags-dynamic     Print additional C++ flags for" +    echo "                             building shared libraries." +    echo "  --detect-prefix        Attempt to detect prefix based on PATH" +    echo "  --exec-prefix          Print prefix for executables (/bin)" +    echo "  --exists               Return with 0 status if ICU exists else fail" +    echo "  --help, -?, --usage    Print this message" +    echo "  --icudata              Print shortname of ICU data file (icudt21l)" +    echo "  --icudata-install-dir  Print path to install data to - use as --install option to pkgdata(1)" +    echo "  --icudata-mode         Print default ICU pkgdata mode (dll) - use as --mode option to pkgdata(1)." +    echo "  --icudatadir           Print path to packaged archive data. Can set as [ICU_DATA]" +    echo "  --invoke               Print commands to invoke an ICU program" +    echo "  --invoke=<prog>        Print commands to invoke an ICU program named <prog> (ex: genrb)"  +    echo "  --ldflags              Print -L search path and -l libraries to link with ICU [LDFLAGS].  This is for the data, uc (common), and i18n libraries only.  " +    echo "  --ldflags-layout       Print ICU layout engine link directive. Use in addition to --ldflags" +    echo "  --ldflags-libsonly     Same as --ldflags, but only the -l directives" +    echo "  --ldflags-searchpath   Print only -L (search path) directive" +    echo "  --ldflags-system       Print only system libs ICU links with (-lpthread, -lm)" +    echo "  --ldflags-icuio        Print ICU icuio link directive. Use in addition to --ldflags " +    echo "  --ldflags-obsolete     Print ICU obsolete link directive. Use in addition to --ldflags. (requires icuapps/obsolete to be built and installed.) " +    echo "  --mandir               Print manpage (man) path" +    echo "  --prefix               Print PREFIX to icu install (/usr/local)" +    echo "  --prefix=XXX           Set prefix to XXX for remainder of command" +    echo "  --sbindir              Print system binary path (sbin) " +    echo "  --shared-datadir       Print shared data (share) path. This is NOT the ICU data dir." +    echo "  --shlib-c              Print the command to compile and build C shared libraries with ICU" +    echo "  --shlib-cc             Print the command to compile and build C++ shared libraries with ICU" +    echo "  --sysconfdir           Print system config (etc) path" +    echo "  --unicode-version      Print version of Unicode data used in ICU ($UNICODE_VERSION)" +    echo "  --version              Print ICU version ($VERSION)" +    echo "  --incfile              Print path to Makefile.inc (for -O option of pkgdata)" +} + +## Print the normal usage message +shortusage() +{ +    echo "usage: ${ME} " `allflags | cut -c-25 | sed -e 's%.*%[ & ]%'` +} + + +usage() +{ +    echo "${ME}: icu-config: ICU configuration helper script" +    echo +    echo "The most commonly used options will be --cflags, --cxxflags, --cppflags, and --ldflags." +    echo 'Example (in make):   CPFLAGS=$(shell icu-config --cppflags)' +    echo '                     LDFLAGS=$(shell icu-config --ldflags)' +    echo "                     (etc).." +    echo +    echo "Usage:" +    allflags + +    echo  +    echo " [Brackets] show MAKE variable equivalents,  (parenthesis) show example output" +    echo +    echo "Copyright (c) 2002, International Business Machines Corporation and others. All Rights Reserved." +} + +## Check the sanity of current variables +sanity() +{ +    if [ ! -f ${ICUUC_FILE} ]; +    then +	echo "### $ME: Can't find ${ICUUC_FILE} - ICU prefix is wrong."  1>&2 +	echo "###      Try the --prefix= or --exec-prefix= options " 1>&2 +	echo "###      or --detect-prefix" +	echo "### $ME: Exitting." 1>&2 +	exit 2 +    fi +} + +## Main starts here. + +if [ $# -lt 1 ]; then +    shortusage +    exit 1 +fi + + +# Load our variables from autoconf +# ALWAYS load twice because of dependencies +loaddefs +loaddefs +sanity + +while [ $# -gt 0 ]; +do +    arg="$1" +    var=`echo $arg | sed -e 's/^[^=]*=//'` +#    echo "### processing $arg" 1>&2 +    case "$arg" in + +        # undocumented. +	--debug) +	    set -x +	    ;; + +        --so) +            echo $SO +            ;; + +	--bindir) +	    echo $bindir +	    ;; + +	--libdir) +	    echo $libdir +	    ;; + +	--exists) +	    sanity +	    ;; + +	--sbindir) +	    echo $sbindir +	    ;; + +	--invoke=*) +	    QUOT="'" +            CMD="${var}" + +            # If it's not a locally executable command (1st choice) then  +            # search for it in the ICU directories.  +            if [ ! -x ${CMD} ]; then +                if [ -x ${bindir}/${var} ]; then +                    CMD="${bindir}/${var}" +                fi +                if [ -x ${sbindir}/${var} ]; then +                    CMD="${sbindir}/${var}" +                fi +            fi + +	    echo "env ${QUOT}${LDLIBRARYPATH_ENVVAR}=${libdir}:"'${'"${LDLIBRARYPATH_ENVVAR}"'}'${QUOT} ${CMD} +	    ;; + +	--invoke) +	    QUOT="'" +	    echo "env ${QUOT}${LDLIBRARYPATH_ENVVAR}=${libdir}:"'${'"${LDLIBRARYPATH_ENVVAR}"'}'${QUOT} +	    ;; + +	--cflags) +            pkg-config --variable=CFLAGS icu +	    ;; +	     +	--cc) +	    echo cc +	    ;; +	     +	--cxx) +	    echo c++ +	    ;; + +	--cxxflags) +            pkg-config --variable=CXXFLAGS icu +	    ;; + +	--cppflags) +	    # Don't echo the -I. - it's unneeded. +            CPPFLAGS=`pkg-config --variable=CPPFLAGS icu` +	    echo $CPPFLAGS | sed -e 's/-I. //' +	    ;; + +	--cppflags-searchpath) +	    echo -I${prefix}/include +	    ;; + +	--cppflags-dynamic) +            pkg-config --variable=SHAREDLIBCPPFLAGS icu +	    ;; + +	--cxxflags-dynamic) +            pkg-config --variable=SHAREDLIBCXXFLAGS icu +	    ;; + +	--cflags-dynamic) +            pkg-config --variable=SHAREDLIBCFLAGS icu +	    ;; + +	--ldflags-system) +            pkg-config --variable=ICULIBS_SYSTEMLIBS icu +	    ;; + +	--ldflags) +            pkg-config --libs icu +# $RPATH_LDFLAGS +	    ;; + +	--ldflags-libsonly) +            pkg-config --variable=ICULIBS_LIBSONLY icu +	    ;; + +	--ldflags-icuio) +            pkg-config --variable=ICULIBS_ICUIO icu +	    ;; + +	--ldflags-obsolete) +            pkg-config --variable=ICULIBS_OBSOLETE icu +	    ;; + +	--ldflags-toolutil) +            pkg-config --variable=ICULIBS_TOOLUTIL icu +	    ;; + +	--ldflags-layout) +            pkg-config --variable=ICULIBS_LAYOUT icu +	    ;; + +	--ldflags-searchpath) +	    echo -L${libdir} +	    ;; + +	--detect-prefix) +	    HERE=`echo $0 | sed -e "s/$ME//g"` +	    if [ -f $HERE/../lib/${ICULIBS_COMMON_LIB_NAME} ]; then +		prefix=$HERE/.. +		echo "## Using --prefix=${prefix}" 1>&2 +	    fi +	    loaddefs +	    loaddefs +	    sanity +	    ;; + +	--exec-prefix) +	    echo $exec_prefix +	    ;; + +	--prefix) +	    echo $prefix +	    ;; + +	--prefix=*) +	    prefix=$var +	    loaddefs +	    loaddefs +	    sanity +	    ;; + +	--sysconfdir) +	    echo $sysconfdir +	    ;; + +	--mandir) +	    echo $mandir +	    ;; + +	--shared-datadir) +	    echo $datadir +	    ;; + +        --incfile) +	    echo $pkglibdir/Makefile.inc +	    ;; + +	--icudata) +            pkg-config --variable=ICUDATA_NAME icu +	    ;; + +	--icudata-mode) +	    echo $PKGDATA_MODE +	    ;; + +	--icudata-install-dir) +            pkg-config --variable=ICUPKGDATA_DIR icu +	    ;; +	     +	--icudatadir) +            pkg-config --variable=ICUDATA_DIR icu +	    ;; + +	--shlib-c) +            pkg-config --variable=SHLIB_c icu +	    ;; + +	--shlib-cc) +            pkg-config --variable=SHLIB_cc icu +	    ;; + +	--version) +            echo $VERSION +            ;; + +        --unicode-version) +            echo $UNICODE_VERSION +            ;; + +	--help) +	    usage +	    exit 0 +	    ;; + +	--usage) +	    usage +	    exit 0 +	    ;; + +#	--enable-rpath=*) +#	    ENABLE_RPATH=$var +#	    loaddefs +#	    ;; + +	-?) +	    usage +	    exit 0 +	    ;; + +        *) +	    echo ${ME}: ERROR Unknown Option $arg 1>&2 +            echo 1>&2 +            shortusage 1>&2 +	    echo "### $ME: Exitting." 1>&2 +            exit 1; +            ;; +    esac +    shift +done + +# Check once before we quit (will check last used prefix) +sanity +## END of icu-config-bottom + +exit 0 +  | 
