1
# Make definitions that are shared by the different subprojects of ICU.
2
#
3
# Yves Arrouye.
4
#
5
# Copyright (C) 2000-2007, International Business Machines Corporation and others.
6
# All Rights Reserved.
7
8
#
9
# Some of these variables are overridden in the config/mh-* files.
10
#
11
12
# Shell to use
13
14
SHELL = @SHELL@
15
16
# Standard directories
17
18
prefix = @prefix@
19
exec_prefix = @exec_prefix@
20
21
bindir = @bindir@
22
sbindir = @sbindir@
23
datadir = @datadir@
24
libdir = @libdir@
25
includedir = @includedir@
26
mandir = @mandir@
27
sysconfdir = @sysconfdir@
28
29
# Package information
30
31
PACKAGE = @PACKAGE@
32
VERSION = @VERSION@
33
UNICODE_VERSION = @UNICODE_VERSION@
34
SO_TARGET_VERSION = @LIB_VERSION@
35
SO_TARGET_VERSION_MAJOR = @LIB_VERSION_MAJOR@
36
37
# The ICU data external name is usually icudata; the entry point name is
38
# the version-dependent name (for no particular reason except it was easier
39
# to change the build this way). When building in common mode, the data
40
# name is the versioned platform-dependent one. 
41
42
ICUDATA_DIR = @pkgicudatadir@/$(PACKAGE)$(ICULIBSUFFIX)/$(VERSION)
43
44
ICUDATA_BASENAME_VERSION = $(ICUPREFIX)dt@LIB_VERSION_MAJOR@
45
ICUDATA_ENTRY_POINT = $(ICUDATA_BASENAME_VERSION)
46
ICUDATA_CHAR = @ICUDATA_CHAR@
47
ICUDATA_PLATFORM_NAME = $(ICUDATA_BASENAME_VERSION)$(ICUDATA_CHAR)
48
PKGDATA_LIBSTATICNAME = -L $(STATIC_PREFIX)$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)
49
ifeq ($(strip $(PKGDATA_MODE)),)
50
PKGDATA_MODE=@DATA_PACKAGING_MODE@
51
endif
52
ifeq ($(PKGDATA_MODE),common)
53
ICUDATA_NAME = $(ICUDATA_PLATFORM_NAME)
54
ICUPKGDATA_DIR = $(ICUDATA_DIR)
55
else
56
ifeq ($(PKGDATA_MODE),dll)
57
ICUDATA_NAME = $(ICUDATA_PLATFORM_NAME)
58
PKGDATA_LIBNAME = -L $(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)
59
ICUPKGDATA_DIR = $(libdir)
60
else
61
ICUDATA_NAME = $(ICUDATA_PLATFORM_NAME)
62
ICUPKGDATA_DIR = $(ICUDATA_DIR)
63
endif
64
endif
65
# This is needed so that make -j2 doesn't complain when invoking pkgdata's make
66
PKGDATA_INVOKE_OPTS = MAKEFLAGS=
67
68
# These are defined here because mh-cygwin-msvc needs to override these values.
69
ICUPKGDATA_INSTALL_DIR = $(DESTDIR)$(ICUPKGDATA_DIR)
70
ICUPKGDATA_INSTALL_LIBDIR = $(DESTDIR)$(libdir)
71
72
# If defined to a valid value, pkgdata will generate a data library more quickly
73
GENCCODE_ASSEMBLY = @GENCCODE_ASSEMBLY@
74
75
# ICU specific directories
76
77
pkgdatadir = $(datadir)/$(PACKAGE)$(ICULIBSUFFIX)/$(VERSION)
78
pkglibdir = $(libdir)/$(PACKAGE)$(ICULIBSUFFIX)/$(VERSION)
79
pkgsysconfdir = $(sysconfdir)/$(PACKAGE)$(ICULIBSUFFIX)
80
81
# Installation programs
82
83
MKINSTALLDIRS = $(SHELL) $(top_srcdir)/mkinstalldirs
84
85
INSTALL = @INSTALL@
86
INSTALL_PROGRAM = @INSTALL_PROGRAM@
87
INSTALL_DATA = @INSTALL_DATA@
88
INSTALL_SCRIPT = @INSTALL_SCRIPT@
89
90
# Library suffix (to support different C++ compilers)
91
92
ICULIBSUFFIX=@ICULIBSUFFIX@
93
94
# Compiler and tools
95
96
ENABLE_DEBUG = @ENABLE_DEBUG@
97
ENABLE_RELEASE = @ENABLE_RELEASE@
98
EXEEXT = @EXEEXT@
99
CC = @CC@
100
CXX = @CXX@
101
AR = @AR@
102
ARFLAGS = @ARFLAGS@ r
103
RANLIB = @RANLIB@
104
COMPILE_LINK_ENVVAR = @COMPILE_LINK_ENVVAR@
105
106
# Various flags for the tools
107
108
# DEFS is for common macro definitions.
109
# configure prevents user defined DEFS, and configure's DEFS is not needed
110
# So we ignore the DEFS that comes from configure
111
DEFS =
112
# CFLAGS is for C only flags
113
CFLAGS = @CFLAGS@
114
# CXXFLAGS is for C++ only flags
115
CXXFLAGS = @CXXFLAGS@
116
# CPPFLAGS is for C Pre-Processor flags
117
CPPFLAGS = @CPPFLAGS@
118
# LIBCFLAGS are the flags for static and shared libraries.
119
LIBCFLAGS = @LIBCFLAGS@
120
# LIBCXXFLAGS are the flags for static and shared libraries.
121
LIBCXXFLAGS = @LIBCXXFLAGS@
122
# DEFAULT_LIBS are the default libraries to link against
123
DEFAULT_LIBS = @LIBS@
124
# LIB_M is for linking against the math library
125
LIB_M = @LIB_M@
126
# LIB_THREAD is for linking against the threading library
127
LIB_THREAD = @LIB_THREAD@
128
# OUTOPT is for creating a specific output name
129
OUTOPT = -o # The extra space after the argument is needed.
130
# AR_OUTOPT is for creating a specific output name for static libraries.
131
AR_OUTOPT =
132
133
ENABLE_RPATH = @ENABLE_RPATH@
134
ifeq ($(ENABLE_RPATH),YES)
135
RPATHLDFLAGS = $(LD_RPATH)$(LD_RPATH_PRE)$(libdir)
136
endif
137
LDFLAGS = @LDFLAGS@ $(RPATHLDFLAGS)
138
139
# What kind of libraries are we building and linking against?
140
ENABLE_STATIC = @ENABLE_STATIC@
141
ENABLE_SHARED = @ENABLE_SHARED@
142
143
# Echo w/o newline
144
145
#ECHO_N = @ECHO_N@
146
#ECHO_C = @ECHO_C@
147
148
# Commands to compile
149
COMPILE.c=    $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
150
COMPILE.cc=   $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c
151
152
# Commands to link
153
LINK.c=       $(CC) $(CFLAGS) $(LDFLAGS)
154
LINK.cc=      $(CXX) $(CXXFLAGS) $(LDFLAGS)
155
156
# Commands to make a shared library
157
SHLIB.c=      $(CC) $(CFLAGS) $(LDFLAGS) -shared
158
SHLIB.cc=     $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared
159
160
# Environment variable to set a runtime search path
161
LDLIBRARYPATH_ENVVAR = LD_LIBRARY_PATH
162
163
# Versioned target for a shared library.
164
FINAL_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION)
165
MIDDLE_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION_MAJOR)
166
SHARED_OBJECT = $(FINAL_SO_TARGET)
167
168
##  How ICU libraries are named...  ex. $(LIBICU)uc$(SO)
169
# Prefix for the ICU library names
170
ICUPREFIX = icu
171
LIBPREFIX = lib
172
LIBICU = $(LIBPREFIX)$(ICUPREFIX)
173
174
## If we can't use the shared libraries, use the static libraries
175
ifneq ($(ENABLE_SHARED),YES)
176
STATIC_PREFIX_WHEN_USED = s
177
else
178
STATIC_PREFIX_WHEN_USED = 
179
endif
180
181
# Static library prefix and file extension
182
STATIC_PREFIX = s
183
LIBSICU = $(LIBPREFIX)$(STATIC_PREFIX)$(ICUPREFIX)
184
A = a
185
SOBJ = $(SO)
186
187
# Force removal [for make clean]
188
RMV = rm -rf
189
190
# Platform commands to remove or move executable and library targets
191
# INSTALL-L installs libraries. Override in mh-* file to INSTALL_PROGRAM
192
#           when the library needs to have executable permissions
193
INSTALL-S = $(INSTALL_PROGRAM)
194
INSTALL-L = $(INSTALL_DATA)
195
196
# Location of the libraries before "make install" is used
197
LIBDIR=$(top_builddir)/lib
198
199
# Location of the executables before "make install" is used
200
BINDIR=$(top_builddir)/bin
201
202
# Current full path directory.
203
CURR_FULL_DIR=$(shell pwd)
204
# Current full path directory for use in source code in a -D compiler option.
205
CURR_SRCCODE_FULL_DIR=$(shell pwd)
206
207
# Name flexibility for the library naming scheme.  Any modifications should
208
# be made in the mh- file for the specific platform.
209
DATA_STUBNAME = data
210
COMMON_STUBNAME = uc
211
I18N_STUBNAME = i18n
212
LAYOUT_STUBNAME = le
213
LAYOUTEX_STUBNAME = lx
214
IO_STUBNAME = io
215
TOOLUTIL_STUBNAME = tu
216
CTESTFW_STUBNAME = test
217
218
# Link commands to link to ICU libs
219
LIBICUDT=       -L$(LIBDIR) -L$(top_builddir)/stubdata -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
220
LIBICUUC=       -L$(LIBDIR) -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(COMMON_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX) $(LIBICUDT)
221
LIBICUI18N=     -L$(LIBDIR) -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
222
LIBICULE=       -L$(LIBDIR) -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(LAYOUT_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
223
LIBICULX=       -L$(LIBDIR) -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(LAYOUTEX_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
224
LIBCTESTFW=     -L$(top_builddir)/tools/ctestfw -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(CTESTFW_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
225
LIBICUTOOLUTIL= -L$(LIBDIR) -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(TOOLUTIL_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
226
LIBICUIO=       -L$(LIBDIR) -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(IO_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
227
228
# Invoke, set library path for all ICU libraries.
229
INVOKE = $(LDLIBRARYPATH_ENVVAR)=$(LIBRARY_PATH_PREFIX)$(LIBDIR):$(top_builddir)/stubdata:$(top_builddir)/tools/ctestfw:$$$(LDLIBRARYPATH_ENVVAR) $(LEAK_CHECKER)
230
231
# Platform-specific setup
232
include @platform_make_fragment@
233
234
# When shared libraries are disabled and static libraries are enabled,
235
# the C++ compiler must be used to link in the libraries for the tools.
236
ifneq ($(ENABLE_SHARED),YES)
237
LINK.c = $(LINK.cc)
238
endif