Home | History | Annotate | Download | only in config
      1 ## -*-makefile-*-
      2 #******************************************************************************
      3 #   Copyright (C) 1999-2010, International Business Machines
      4 #   Corporation and others.  All Rights Reserved.
      5 #******************************************************************************
      6 # This Makefile.inc is designed to be included into projects which make use
      7 # of the ICU.
      8 
      9 # CONTENTS OF THIS FILE
     10 # 1). Base configuration information and linkage
     11 # 2). Variables giving access to ICU tools
     12 # 3). Host information
     13 # 4). Compiler flags and settings 
     14 # 5). Data Packaging directives
     15 # 6). Include of platform make fragment (mh-* file)
     16 
     17 ##################################################################
     18 ##################################################################
     19 #
     20 #       *1*  base configuration information and linkage
     21 #
     22 ##################################################################
     23 # The PREFIX is the base of where ICU is installed.
     24 # Inside this directory you should find  bin, lib, include/unicode, 
     25 # etc.  If ICU is not installed in this directory, you must change the
     26 # following line.  There should exist $(prefix)/include/unicode/utypes.h
     27 # for example.
     28 prefix = @prefix@
     29 exec_prefix = @exec_prefix@
     30 libdir = @libdir@
     31 libexecdir = @libexecdir@
     32 bindir = @bindir@
     33 datarootdir = @datarootdir@
     34 datadir = @datadir@
     35 sbindir = @sbindir@
     36 
     37 # about the ICU version
     38 VERSION = @VERSION@
     39 UNICODE_VERSION = @UNICODE_VERSION@
     40 
     41 # The prefix for ICU libraries, normally 'icu'
     42 ICUPREFIX = icu
     43 PACKAGE = @PACKAGE@
     44 LIBICU = lib$(ICUPREFIX)
     45 
     46 # Static library prefix and file extension
     47 STATIC_PREFIX = s
     48 LIBSICU = lib$(STATIC_PREFIX)$(ICUPREFIX)
     49 A = a
     50 
     51 # Suffix at the end of libraries. Usually empty.
     52 ICULIBSUFFIX = @ICULIBSUFFIX@
     53 # ICULIBSUFFIX_VERSION  is non-empty if it is to contain a library
     54 # version. For example, if it is 21, it means libraries are named
     55 # libicuuc21.so for example.
     56 
     57 # rpath links a library search path right into the binaries.
     58 ## mh-files MUST NOT override RPATHLDFLAGS unless they provide
     59 ## equivalent '#SH#' lines for icu-config fixup
     60 ENABLE_RPATH = @ENABLE_RPATH@
     61 ifeq ($(ENABLE_RPATH),YES)
     62 RPATHLDFLAGS = $(LD_RPATH)$(LD_RPATH_PRE)$(libdir)
     63 endif
     64 
     65 #SH## icu-config version of above 'if':
     66 #SH#case "$ENABLE_RPATH" in 
     67 #SH#     [yY]*)
     68 #SH# 	ENABLE_RPATH=YES
     69 #SH# 	RPATHLDFLAGS="${LD_RPATH}${LD_RPATH_PRE}${libdir}"
     70 #SH# 	;;
     71 #SH#
     72 #SH#     [nN]*)
     73 #SH# 	ENABLE_RPATH=NO
     74 #SH# 	RPATHLDFLAGS=""
     75 #SH# 	;;
     76 #SH#
     77 #SH#     *)
     78 #SH# 	echo $0: Unknown --enable-rpath value ${ENABLE_RPATH} 1>&2
     79 #SH# 	exit 3
     80 #SH# 	;;
     81 #SH#esac
     82 
     83 # Name flexibility for the library naming scheme.  Any modifications should
     84 # be made in the mh- file for the specific platform.
     85 DATA_STUBNAME = data
     86 COMMON_STUBNAME = uc
     87 I18N_STUBNAME = i18n
     88 LAYOUT_STUBNAME = le
     89 LAYOUTEX_STUBNAME = lx
     90 IO_STUBNAME = io
     91 TOOLUTIL_STUBNAME = tu
     92 CTESTFW_STUBNAME = test
     93  
     94 
     95 
     96 ### To link your application with ICU:
     97 # 1. use LDFLAGS, CFLAGS, etc from above
     98 # 2. link with $(ICULIBS)
     99 # 3. optionally, add one or more of:
    100 #    - $(ICULIBS_I18N)    - i18n library, formatting, etc.
    101 #    - $(ICULIBS_LAYOUT)  - ICU layout library. 
    102 #    - $(ICULIBS_ICUIO)   - ICU stdio equivalent library
    103 
    104 ICULIBS_COMMON = -l$(ICUPREFIX)uc$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
    105 ICULIBS_DATA   = -l$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
    106 ICULIBS_I18N   = -l$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
    107 ICULIBS_TOOLUTIL = -l$(ICUPREFIX)tu$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
    108 ICULIBS_CTESTFW = -l$(ICUPREFIX)ctestfw$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
    109 ICULIBS_ICUIO = -l$(ICUPREFIX)io$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
    110 ICULIBS_OBSOLETE = -l$(ICUPREFIX)obsolete$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
    111 ICULIBS_LAYOUT = -l$(ICUPREFIX)le$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
    112 ICULIBS_LAYOUTEX = -l$(ICUPREFIX)lx$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
    113 ICULIBS_BASE = $(LIBS) -L$(libdir)
    114 
    115 # for icu-config to test with
    116 ICULIBS_COMMON_LIB_NAME = ${LIBICU}${COMMON_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}.${SO}
    117 ICULIBS_COMMON_LIB_NAME_A = ${LIBICU}${COMMON_STUBNAME}${ICULIBSUFFIX}.${A}
    118 
    119 # ICULIBS is the set of libraries your application should link
    120 # with usually. Many applications will want to add $(ICULIBS_I18N) as well. 
    121 ICULIBS = $(ICULIBS_BASE) $(ICULIBS_I18N) $(ICULIBS_COMMON) $(ICULIBS_DATA) 
    122 
    123 # Proper echo newline handling is needed in icu-config
    124 ECHO_N=@ECHO_N@
    125 ECHO_C=@ECHO_C@
    126 # Not currently being used but good to have for proper tab handling
    127 ECHO_T=@ECHO_T@
    128 
    129 ##################################################################
    130 ##################################################################
    131 #
    132 #       *2*  access to ICU tools
    133 #
    134 ##################################################################
    135 # Environment variable to set a runtime search path
    136 #   (Overridden when necessary in -mh files)
    137 LDLIBRARYPATH_ENVVAR = LD_LIBRARY_PATH
    138 
    139 # Versioned target for a shared library
    140 FINAL_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION)
    141 MIDDLE_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION_MAJOR)
    142 
    143 # Access to important ICU tools.
    144 # Use as follows:  $(INVOKE) $(GENRB) arguments .. 
    145 INVOKE = $(LDLIBRARYPATH_ENVVAR)=$(libdir):$$$(LDLIBRARYPATH_ENVVAR) $(LEAK_CHECKER)
    146 GENCCODE = $(sbindir)/genccode
    147 ICUPKG   = $(sbindir)/icupkg
    148 GENCMN   = $(sbindir)/gencmn
    149 GENRB    = $(bindir)/genrb
    150 PKGDATA  = $(bindir)/pkgdata
    151 
    152 # moved here because of dependencies
    153 pkgdatadir = $(datadir)/$(PACKAGE)$(ICULIBSUFFIX)/$(VERSION)
    154 pkglibdir = $(libdir)/$(PACKAGE)$(ICULIBSUFFIX)/$(VERSION)
    155 
    156 ##################################################################
    157 ##################################################################
    158 #
    159 #       *3*  Information about the host
    160 #
    161 ##################################################################
    162 
    163 # Information about the host that 'configure' was run on.
    164 host = @host@
    165 host_alias = @host_alias@
    166 host_cpu = @host_cpu@
    167 host_vendor = @host_vendor@
    168 host_os = @host_os@
    169 # Our platform canonical name (as determined by configure)
    170 # this is a #define value (i.e. U_XXXX or XXXX)
    171 platform = @platform@
    172 
    173 ##################################################################
    174 ##################################################################
    175 #
    176 #       *4*  compiler flags and misc. options
    177 #
    178 ##################################################################
    179 AR = @AR@
    180 # initial tab keeps it out of the shell version.
    181 	ARFLAGS := @ARFLAGS@ $(ARFLAGS)
    182 #SH#ARFLAGS="@ARFLAGS@ ${ARFLAGS}"
    183 CC = @CC@
    184 CFLAGS = @CFLAGS@ 
    185 CPP = @CPP@
    186 CPPFLAGS = @CPPFLAGS@ $(LIBCPPFLAGS) -I$(prefix)/include
    187 CXX = @CXX@
    188 CXXFLAGS = @CXXFLAGS@ 
    189 DEFAULT_MODE = @DATA_PACKAGING_MODE@
    190 DEFS = @DEFS@ 
    191 FFLAGS = @FFLAGS@
    192 # use a consistent INSTALL 
    193 INSTALL  =  $(SHELL) $(pkgdatadir)/install-sh -c
    194 INSTALL_DATA  =  @INSTALL_DATA@
    195 INSTALL_DATA = @INSTALL_DATA@
    196 INSTALL_PROGRAM  =  @INSTALL_PROGRAM@
    197 INSTALL_PROGRAM = @INSTALL_PROGRAM@
    198 INSTALL_SCRIPT = @INSTALL_SCRIPT@
    199 LDFLAGS = @LDFLAGS@ $(RPATHLDFLAGS)
    200 LIBS = @LIBS@ 
    201 LIB_M = @LIB_M@
    202 LIB_VERSION = @LIB_VERSION@
    203 LIB_VERSION_MAJOR = @LIB_VERSION_MAJOR@
    204 MKINSTALLDIRS = $(SHELL) $(pkgdatadir)/mkinstalldirs
    205 RANLIB = @RANLIB@
    206 RMV = rm -rf
    207 SHELL = @SHELL@
    208 SHLIB.c=      $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -shared
    209 SHLIB.cc=     $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -shared
    210 U_IS_BIG_ENDIAN = @U_IS_BIG_ENDIAN@
    211 includedir = @includedir@
    212 infodir = @infodir@
    213 localstatedir = @localstatedir@
    214 mandir = @mandir@
    215 oldincludedir = @oldincludedir@
    216 program_transform_name = @program_transform_name@
    217 sharedstatedir = @sharedstatedir@
    218 sysconfdir = @sysconfdir@
    219 INSTALL-L = ${INSTALL_DATA}
    220 
    221 
    222 ##################################################################
    223 ##################################################################
    224 #
    225 #       *5* packaging options and directories
    226 #
    227 ##################################################################
    228 
    229 
    230 # The basename of the ICU data file (i.e. icudt21b )
    231 ICUDATA_CHAR = @ICUDATA_CHAR@
    232 ICUDATA_NAME = icudt@LIB_VERSION_MAJOR@@ICUDATA_CHAR@
    233 
    234 # Defaults for pkgdata's mode and directories
    235 # The default data dir changes depending on what packaging mode 
    236 # is being used
    237 ifeq ($(strip $(PKGDATA_MODE)),)
    238 #SH# if [ "x$PKGDATA_MODE" = "x" ];
    239 #SH# then
    240 PKGDATA_MODE=@DATA_PACKAGING_MODE@
    241 #SH# fi
    242 endif
    243 
    244 #SH# case "$PKGDATA_MODE" in
    245 ifeq ($(PKGDATA_MODE),common)
    246 #SH# common)
    247 ICUDATA_DIR = $(pkgdatadir)
    248 ICUPKGDATA_DIR = $(ICUDATA_DIR)
    249 #SH# ;;
    250 else
    251 ifeq ($(PKGDATA_MODE),dll)
    252 #SH# dll)
    253 ICUDATA_DIR = $(pkgdatadir)
    254 ICUPKGDATA_DIR = $(libdir)
    255 #SH# ;;
    256 else
    257 #SH# *)
    258 ICUDATA_DIR = $(pkgdatadir)
    259 ICUPKGDATA_DIR = $(ICUDATA_DIR)
    260 #SH# ;;
    261 endif
    262 endif
    263 
    264 #SH# esac
    265 
    266 GENCCODE_ASSEMBLY = @GENCCODE_ASSEMBLY@
    267 
    268 ##################################################################
    269 ##################################################################
    270 #
    271 #       *6* Inclusion of platform make fragment (mh-* file)
    272 #
    273 ##################################################################
    274 # The mh- file ("make fragment") for the platform is included here. 
    275 # It may override the above settings.
    276 # It is put last so that the mh-file can override anything.
    277 # The selfcheck is just a sanity check that this makefile is
    278 # parseable. The mh fragment is only included if this does not occur.
    279 
    280 ifeq (selfcheck,$(MAKECMDGOALS)) #M#
    281 selfcheck: #M#
    282 	@echo passed #M#
    283 else #M#
    284 include $(pkgdatadir)/config/@platform_make_fragment_name@
    285 endif #M#
    286 
    287