Home | History | Annotate | Download | only in config
      1 ## -*-makefile-*-
      2 #******************************************************************************
      3 #   Copyright (C) 1999-2008, 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}uc${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}.${SO}
    117 
    118 # ICULIBS is the set of libraries your application should link
    119 # with usually. Many applications will want to add $(ICULIBS_I18N) as well. 
    120 ICULIBS = $(ICULIBS_BASE) $(ICULIBS_I18N) $(ICULIBS_COMMON) $(ICULIBS_DATA) 
    121 
    122 # Proper echo newline handling is needed in icu-config
    123 ECHO_N=@ECHO_N@
    124 ECHO_C=@ECHO_C@
    125 # Not currently being used but good to have for proper tab handling
    126 ECHO_T=@ECHO_T@
    127 
    128 ##################################################################
    129 ##################################################################
    130 #
    131 #       *2*  access to ICU tools
    132 #
    133 ##################################################################
    134 # Environment variable to set a runtime search path
    135 #   (Overridden when necessary in -mh files)
    136 LDLIBRARYPATH_ENVVAR = LD_LIBRARY_PATH
    137 
    138 # Versioned target for a shared library
    139 FINAL_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION)
    140 MIDDLE_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION_MAJOR)
    141 
    142 # Access to important ICU tools.
    143 # Use as follows:  $(INVOKE) $(GENRB) arguments .. 
    144 INVOKE = $(LDLIBRARYPATH_ENVVAR)=$(libdir):$$$(LDLIBRARYPATH_ENVVAR) $(LEAK_CHECKER)
    145 GENCCODE = $(sbindir)/genccode
    146 ICUPKG   = $(sbindir)/icupkg
    147 GENCMN   = $(sbindir)/gencmn
    148 GENRB    = $(bindir)/genrb
    149 PKGDATA  = $(bindir)/pkgdata
    150 
    151 # moved here because of dependencies
    152 pkgdatadir = $(datadir)/$(PACKAGE)$(ICULIBSUFFIX)/$(VERSION)
    153 pkglibdir = $(libdir)/$(PACKAGE)$(ICULIBSUFFIX)/$(VERSION)
    154 
    155 ##################################################################
    156 ##################################################################
    157 #
    158 #       *3*  Information about the host
    159 #
    160 ##################################################################
    161 
    162 # Information about the host that 'configure' was run on.
    163 host = @host@
    164 host_alias = @host_alias@
    165 host_cpu = @host_cpu@
    166 host_vendor = @host_vendor@
    167 host_os = @host_os@
    168 # Our platform canonical name (as determined by configure)
    169 # this is a #define value (i.e. U_XXXX or XXXX)
    170 platform = @platform@
    171 
    172 ##################################################################
    173 ##################################################################
    174 #
    175 #       *4*  compiler flags and misc. options
    176 #
    177 ##################################################################
    178 AR = @AR@
    179 # initial tab keeps it out of the shell version.
    180 	ARFLAGS := @ARFLAGS@ $(ARFLAGS)
    181 #SH#ARFLAGS="@ARFLAGS@ ${ARFLAGS}"
    182 CC = @CC@
    183 CFLAGS = @CFLAGS@ 
    184 CPP = @CPP@
    185 CPPFLAGS = @CPPFLAGS@ $(LIBCPPFLAGS) -I$(prefix)/include
    186 CXX = @CXX@
    187 CXXFLAGS = @CXXFLAGS@ 
    188 DEFAULT_MODE = @DATA_PACKAGING_MODE@
    189 DEFS = @DEFS@ 
    190 FFLAGS = @FFLAGS@
    191 # use a consistent INSTALL 
    192 INSTALL  =  $(SHELL) $(pkgdatadir)/install-sh -c
    193 INSTALL_DATA  =  @INSTALL_DATA@
    194 INSTALL_DATA = @INSTALL_DATA@
    195 INSTALL_PROGRAM  =  @INSTALL_PROGRAM@
    196 INSTALL_PROGRAM = @INSTALL_PROGRAM@
    197 INSTALL_SCRIPT = @INSTALL_SCRIPT@
    198 LDFLAGS = @LDFLAGS@ $(RPATHLDFLAGS)
    199 LIBS = @LIBS@ 
    200 LIB_M = @LIB_M@
    201 LIB_VERSION = @LIB_VERSION@
    202 LIB_VERSION_MAJOR = @LIB_VERSION_MAJOR@
    203 MKINSTALLDIRS = $(SHELL) $(pkgdatadir)/mkinstalldirs
    204 RANLIB = @RANLIB@
    205 RMV = rm -rf
    206 SHELL = @SHELL@
    207 SHLIB.c=      $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -shared
    208 SHLIB.cc=     $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -shared
    209 U_IS_BIG_ENDIAN = @U_IS_BIG_ENDIAN@
    210 includedir = @includedir@
    211 infodir = @infodir@
    212 localstatedir = @localstatedir@
    213 mandir = @mandir@
    214 oldincludedir = @oldincludedir@
    215 program_transform_name = @program_transform_name@
    216 sharedstatedir = @sharedstatedir@
    217 sysconfdir = @sysconfdir@
    218 INSTALL-L = ${INSTALL_DATA}
    219 
    220 
    221 ##################################################################
    222 ##################################################################
    223 #
    224 #       *5* packaging options and directories
    225 #
    226 ##################################################################
    227 
    228 
    229 # The basename of the ICU data file (i.e. icudt21b )
    230 ICUDATA_CHAR = @ICUDATA_CHAR@
    231 ICUDATA_NAME = icudt@LIB_VERSION_MAJOR@@ICUDATA_CHAR@
    232 
    233 # Defaults for pkgdata's mode and directories
    234 # The default data dir changes depending on what packaging mode 
    235 # is being used
    236 ifeq ($(strip $(PKGDATA_MODE)),)
    237 #SH# if [ "x$PKGDATA_MODE" = "x" ];
    238 #SH# then
    239 PKGDATA_MODE=@DATA_PACKAGING_MODE@
    240 #SH# fi
    241 endif
    242 
    243 #SH# case "$PKGDATA_MODE" in
    244 ifeq ($(PKGDATA_MODE),common)
    245 #SH# common)
    246 ICUDATA_DIR = $(pkgdatadir)
    247 ICUPKGDATA_DIR = $(ICUDATA_DIR)
    248 #SH# ;;
    249 else
    250 ifeq ($(PKGDATA_MODE),dll)
    251 #SH# dll)
    252 ICUDATA_DIR = $(pkgdatadir)
    253 ICUPKGDATA_DIR = $(libdir)
    254 #SH# ;;
    255 else
    256 #SH# *)
    257 ICUDATA_DIR = $(pkgdatadir)
    258 ICUPKGDATA_DIR = $(ICUDATA_DIR)
    259 #SH# ;;
    260 endif
    261 endif
    262 
    263 #SH# esac
    264 
    265 GENCCODE_ASSEMBLY = @GENCCODE_ASSEMBLY@
    266 
    267 ##################################################################
    268 ##################################################################
    269 #
    270 #       *6* Inclusion of platform make fragment (mh-* file)
    271 #
    272 ##################################################################
    273 # The mh- file ("make fragment") for the platform is included here. 
    274 # It may override the above settings.
    275 # It is put last so that the mh-file can override anything.
    276 # The selfcheck is just a sanity check that this makefile is
    277 # parseable. The mh fragment is only included if this does not occur.
    278 
    279 ifeq (selfcheck,$(MAKECMDGOALS)) #M#
    280 selfcheck: #M#
    281 	@echo passed #M#
    282 else #M#
    283 include $(pkgdatadir)/config/@platform_make_fragment_name@
    284 endif #M#
    285 
    286