154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Make definitions that are shared by the different subprojects of ICU. 254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# 354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Yves Arrouye. 454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# 554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Copyright (C) 2000-2012, International Business Machines Corporation and others. 654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# All Rights Reserved. 754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# 954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Some of these variables are overridden in the config/mh-* files. 1054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# 1154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Please be sure to update config/Makefile.inc.in if you add something here. 1254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# 1354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 1454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Shell to use 1554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 1654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusSHELL = /bin/sh 1754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 1854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Standard directories 1954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 2054dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusprefix = /usr/local 2154dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusexec_prefix = ${prefix} 2254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 2354dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusbindir = ${exec_prefix}/bin 2454dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliussbindir = ${exec_prefix}/sbin 2554dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusdatarootdir = ${prefix}/share 2654dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusdatadir = ${datarootdir} 2754dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuslibdir = ${exec_prefix}/lib 2854dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusincludedir = ${prefix}/include 2954dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusmandir = ${datarootdir}/man 3054dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliussysconfdir = ${prefix}/etc 3154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# controls the include of $(top_builddir)/icucross.mk at bottom of file 3254dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuscross_compiling = no 3354dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuscross_buildroot = 3454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 3554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Package information 3654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 3754dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusPACKAGE_ICU_DESCRIPTION = "International Components for Unicode" 3854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusPACKAGE_ICU_URL = "http://icu-project.org" 3954dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusPACKAGE = icu 4054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusVERSION = 50.1.1 4154dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusUNICODE_VERSION = 6.2 4254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusSO_TARGET_VERSION = 50.1.1 4354dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusSO_TARGET_VERSION_MAJOR = 50 4454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 4554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# The ICU data external name is usually icudata; the entry point name is 4654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# the version-dependent name (for no particular reason except it was easier 4754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# to change the build this way). When building in common mode, the data 4854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# name is the versioned platform-dependent one. 4954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 5054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUDATA_DIR = ${datarootdir}/$(PACKAGE)$(ICULIBSUFFIX)/$(VERSION) 5154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 5254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUDATA_BASENAME_VERSION = $(ICUPREFIX)dt50 5354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# the entry point is almost like the basename, but has the lib suffix. 5454dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUDATA_ENTRY_POINT = $(ICUPREFIX)dt50 5554dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUDATA_CHAR = l 5654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUDATA_PLATFORM_NAME = $(ICUDATA_BASENAME_VERSION)$(ICUDATA_CHAR) 5754dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusPKGDATA_LIBSTATICNAME = -L $(STATIC_PREFIX)$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX) 5854dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusifeq ($(strip $(PKGDATA_MODE)),) 5954dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusPKGDATA_MODE=static 6054dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusendif 6154dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusifeq ($(PKGDATA_MODE),common) 6254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUDATA_NAME = $(ICUDATA_PLATFORM_NAME) 6354dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUPKGDATA_DIR = $(ICUDATA_DIR) 6454dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuselse 6554dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusifeq ($(PKGDATA_MODE),dll) 6654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUDATA_NAME = $(ICUDATA_PLATFORM_NAME) 6754dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusPKGDATA_LIBNAME = -L $(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX) 6854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUPKGDATA_DIR = $(libdir) 6954dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuselse 7054dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusifeq ($(PKGDATA_MODE),static) 7154dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUDATA_NAME = $(ICUDATA_PLATFORM_NAME) 7254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusPKGDATA_LIBNAME = -L $(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX) 7354dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUPKGDATA_DIR = $(libdir) 7454dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuselse 7554dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUDATA_NAME = $(ICUDATA_PLATFORM_NAME) 7654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUPKGDATA_DIR = $(ICUDATA_DIR) 7754dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusendif 7854dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusendif 7954dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusendif 8054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 8154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# These are defined here because mh-cygwin-msvc needs to override these values. 8254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUPKGDATA_INSTALL_DIR = $(DESTDIR)$(ICUPKGDATA_DIR) 8354dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUPKGDATA_INSTALL_LIBDIR = $(DESTDIR)$(libdir) 8454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 8554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# If defined to a valid value, pkgdata will generate a data library more quickly 8654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusGENCCODE_ASSEMBLY = -a gcc 8754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 8854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# ICU specific directories 8954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 9054dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuspkgdatadir = $(datadir)/$(PACKAGE)$(ICULIBSUFFIX)/$(VERSION) 9154dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuspkglibdir = $(libdir)/$(PACKAGE)$(ICULIBSUFFIX)/$(VERSION) 9254dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuspkgsysconfdir = $(sysconfdir)/$(PACKAGE)$(ICULIBSUFFIX) 9354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 9454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Installation programs 9554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 9654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusMKINSTALLDIRS = $(SHELL) $(top_srcdir)/mkinstalldirs 9754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 9854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusINSTALL = /usr/bin/install -c 9954dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusINSTALL_PROGRAM = ${INSTALL} 10054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusINSTALL_DATA = ${INSTALL} -m 644 10154dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusINSTALL_SCRIPT = ${INSTALL} 10254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 10354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Library suffix (to support different C++ compilers) 10454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 10554dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICULIBSUFFIX= 10654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 10754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Compiler and tools 10854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 10954dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusENABLE_DEBUG = 0 11054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusENABLE_RELEASE = 1 11154dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusEXEEXT = 11254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusCC = gcc 11354dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusCXX = g++ 11454dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusAR = ar 11554dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusARFLAGS = r 11654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusRANLIB = ranlib 11754dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusCOMPILE_LINK_ENVVAR = 11854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusUCLN_NO_AUTO_CLEANUP = 1 11954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 12054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Various flags for the tools 12154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 12254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# DEFS is for common macro definitions. 12354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# configure prevents user defined DEFS, and configure's DEFS is not needed 12454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# So we ignore the DEFS that comes from configure 12554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# U_ATTRIBUTE_DEPRECATED is defined to hide warnings about deprecated API warnings. 12654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusDEFS = -DU_ATTRIBUTE_DEPRECATED= 12754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# CFLAGS is for C only flags 12854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusCFLAGS = -O2 -Wall -std=c99 -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings $(THREADSCFLAGS) 12954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# CXXFLAGS is for C++ only flags 13054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusCXXFLAGS = -O2 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long $(THREADSCXXFLAGS) 13154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# CPPFLAGS is for C Pre-Processor flags 13254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusCPPFLAGS = -ffunction-sections -fdata-sections $(THREADSCPPFLAGS) 13354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# LIBCFLAGS are the flags for static and shared libraries. 13454dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBCFLAGS = 13554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# LIBCXXFLAGS are the flags for static and shared libraries. 13654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBCXXFLAGS = 13754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# DEFAULT_LIBS are the default libraries to link against 13854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusDEFAULT_LIBS = -lpthread -ldl -lm 13954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# LIB_M is for linking against the math library 14054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIB_M = 14154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# LIB_THREAD is for linking against the threading library 14254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIB_THREAD = 14354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# OUTOPT is for creating a specific output name 14454dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusOUTOPT = -o # The extra space after the argument is needed. 14554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# AR_OUTOPT is for creating a specific output name for static libraries. 14654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusAR_OUTOPT = 14754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 14854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusENABLE_RPATH = NO 14954dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusifeq ($(ENABLE_RPATH),YES) 15054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusRPATHLDFLAGS = $(LD_RPATH)$(LD_RPATH_PRE)$(libdir) 15154dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusendif 15254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLDFLAGS = -Wl,--gc-sections $(RPATHLDFLAGS) 15354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 15454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# What kind of libraries are we building and linking against? 15554dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusENABLE_STATIC = YES 15654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusENABLE_SHARED = 15754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 15854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Echo w/o newline 15954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 16054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius#ECHO_N = -n 16154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius#ECHO_C = 16254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 16354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Commands to compile 16454dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusCOMPILE.c= $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c 16554dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusCOMPILE.cc= $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c 16654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 16754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Commands to link 16854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLINK.c= $(CC) $(CFLAGS) $(LDFLAGS) 16954dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) 17054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 17154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Commands to make a shared library 17254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusSHLIB.c= $(CC) $(CFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS) 17354dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusSHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS) 17454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 17554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# ICU_MSG 17654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICU_MSG=@echo " $(1) " 17754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 17854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Do not show the large compiling arguments by default. 17954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# To use: 18054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# change 18154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# $(CC) -o foo 18254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# to 18354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# $(call SILENT_COMPILE,$(CC) -o foo) 18454dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusifndef VERBOSE 18554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius SILENT_COMPILE=$(call ICU_MSG,$(notdir $(firstword $(1)))) "... " $< && $(1) || \ 18654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius ( echo "*** Failed compilation command follows: ----------------------------------------------------------" ; \ 18754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius echo "$(1)" ; \ 18854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius echo "--- ( rebuild with \"$(MAKE) VERBOSE=1 $(MAKECMDGOALS)\" to show all parameters ) --------" ; \ 18954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius false ) 19054dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuselse 19154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius SILENT_COMPILE=$(1) 19254dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusendif 19354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 19454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Environment variable to set a runtime search path 19554dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLDLIBRARYPATH_ENVVAR = LD_LIBRARY_PATH 19654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 19754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Versioned target for a shared library. 19854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusFINAL_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION) 19954dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusMIDDLE_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION_MAJOR) 20054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusSHARED_OBJECT = $(FINAL_SO_TARGET) 20154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 20254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius## How ICU libraries are named... ex. $(LIBICU)uc$(SO) 20354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Prefix for the ICU library names 20454dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICUPREFIX = icu 20554dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBPREFIX = lib 20654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBICU = $(LIBPREFIX)$(ICUPREFIX) 20754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 20854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius## If we can't use the shared libraries, use the static libraries 20954dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusifneq ($(ENABLE_SHARED),YES) 21054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusSTATIC_PREFIX_WHEN_USED = s 21154dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuselse 21254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusSTATIC_PREFIX_WHEN_USED = 21354dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusendif 21454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 21554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Static library prefix and file extension 21654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusSTATIC_PREFIX = s 21754dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBSICU = $(LIBPREFIX)$(STATIC_PREFIX)$(ICUPREFIX) 21854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusA = a 21954dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusSOBJ = $(SO) 22054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 22154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Force removal [for make clean] 22254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusRMV = rm -rf 22354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 22454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Platform commands to remove or move executable and library targets 22554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# INSTALL-L installs libraries. Override in mh-* file to INSTALL_PROGRAM 22654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# when the library needs to have executable permissions 22754dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusINSTALL-S = $(INSTALL_PROGRAM) 22854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusINSTALL-L = $(INSTALL_PROGRAM) 22954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius#INSTALL-L = $(INSTALL_DATA) 23054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 23154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Location of the libraries before "make install" is used 23254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBDIR=$(top_builddir)/lib 23354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 23454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Location of the executables before "make install" is used 23554dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusBINDIR=$(top_builddir)/bin 23654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 23754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# overridden by icucross.mk 23854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusTOOLBINDIR=$(BINDIR) 23954dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusTOOLLIBDIR=$(LIBDIR) 24054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 24154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Name flexibility for the library naming scheme. Any modifications should 24254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# be made in the mh- file for the specific platform. 24354dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusDATA_STUBNAME = data 24454dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusCOMMON_STUBNAME = uc 24554dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusI18N_STUBNAME = i18n 24654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLAYOUT_STUBNAME = le 24754dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLAYOUTEX_STUBNAME = lx 24854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusIO_STUBNAME = io 24954dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusTOOLUTIL_STUBNAME = tu 25054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusCTESTFW_STUBNAME = test 25154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 25254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Just the libs. 25354dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICULIBS_DT = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX) 25454dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICULIBS_UC = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(COMMON_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX) 25554dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICULIBS_I18N = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX) 25654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICULIBS_LE = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(LAYOUT_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX) 25754dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICULIBS_LX = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(LAYOUTEX_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX) 25854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICULIBS_IO = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(IO_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX) 25954dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICULIBS_CTESTFW = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(CTESTFW_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX) 26054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusICULIBS_TOOLUTIL = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(TOOLUTIL_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX) 26154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Link commands to link to ICU libs 26254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLLIBDIR = -L$(LIBDIR) 26354dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLSTUBDIR = -L$(top_builddir)/stubdata 26454dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLCTESTFW = -L$(top_builddir)/tools/ctestfw 26554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 26654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBICUDT = $(LLIBDIR) $(LSTUBDIR) $(ICULIBS_DT) 26754dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBICUUC = $(LLIBDIR) $(ICULIBS_UC) $(LSTUBDIR) $(ICULIBS_DT) 26854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBICUI18N = $(LLIBDIR) $(ICULIBS_I18N) 26954dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBICULE = $(LLIBDIR) $(ICULIBS_LE) 27054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBICULX = $(LLIBDIR) $(ICULIBS_LX) 27154dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBCTESTFW = $(LCTESTFW) $(ICULIBS_CTESTFW) 27254dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBICUTOOLUTIL = $(LLIBDIR) $(ICULIBS_TOOLUTIL) 27354dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLIBICUIO = $(LLIBDIR) $(ICULIBS_IO) 27454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 27554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Invoke, set library path for all ICU libraries. 27654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# overridden by icucross.mk 27754dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusINVOKE = $(LDLIBRARYPATH_ENVVAR)=$(LIBRARY_PATH_PREFIX)$(LIBDIR):$(top_builddir)/stubdata:$(top_builddir)/tools/ctestfw:$$$(LDLIBRARYPATH_ENVVAR) $(LEAK_CHECKER) 27854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# prefer stubdata 27954dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusPKGDATA_INVOKE = $(LDLIBRARYPATH_ENVVAR)=$(top_builddir)/stubdata:$(top_builddir)/tools/ctestfw:$(LIBRARY_PATH_PREFIX)$(LIBDIR):$$$(LDLIBRARYPATH_ENVVAR) $(LEAK_CHECKER) 28054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusINSTALLED_INVOKE = $(LDLIBRARYPATH_ENVVAR)=$(libdir):$$$(LDLIBRARYPATH_ENVVAR) 28154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 28254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Platform-specific setup 28354dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusinclude $(top_srcdir)/config/mh-linux 28454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 28554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Current full path directory. 28654dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusCURR_FULL_DIR?=$(shell pwd | sed 's/ /\\ /g') 28754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# Current full path directory for use in source code in a -D compiler option. 28854dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusCURR_SRCCODE_FULL_DIR?=$(shell pwd | sed 's/ /\\ /') 28954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 29054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# When shared libraries are disabled and static libraries are enabled, 29154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# the C++ compiler must be used to link in the libraries for the tools. 29254dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusifneq ($(ENABLE_SHARED),YES) 29354dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusLINK.c = $(LINK.cc) 29454dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusendif 29554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 29654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# some imported things from the cross env 29754dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusTOOLEXEEXT = $(EXEEXT) 29854dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusifneq ($(strip $(cross_buildroot)),) 29954dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusinclude $(cross_buildroot)/config/icucross.mk 30054dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuselse 30154dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuscross_buildroot = $(top_builddir) 30254dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusendif 30354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 30454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius# optional include at top 30554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius-include $(top_builddir)/icudefs.local 306