# copyright John Maddock 2003 # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt. project boost/regex : source-location ../src ; # # ICU configuration: # local ICU_PATH = [ modules.peek : ICU_PATH ] ; rule check-icu-config ( ) { local ICU_PATH = [ modules.peek : ICU_PATH ] ; local HAVE_ICU = [ modules.peek : HAVE_ICU ] ; local ICU_LINK = [ modules.peek : ICU_LINK ] ; if ! $(gICU_CONFIG_CHECKED) { if $(HAVE_ICU) { gHAS_ICU = true ; gICU_CORE_LIB = icuuc ; gICU_IN_LIB = icui18n ; gICU_DATA_LIB = icudata ; gICU_CONFIG_CHECKED = true ; } else if $(ICU_PATH) { dir = $(ICU_PATH) ; if [ GLOB $(dir)/include/unicode : utypes.h ] { ECHO Building Boost.Regex with Unicode/ICU support enabled ; ECHO Using ICU in $(ICU_PATH:J=" ")/include ; gHAS_ICU = true ; # try and find ICU libraries, look for NT versions first: if $(ICU_LINK) { gICU_LIBS += $(ICU_LINK) ; } else if [ GLOB $(dir)/lib64 : icuuc.* ] { gICU_CORE_LIB = icuuc ; } else if [ GLOB $(dir)/lib : icuuc.* ] { gICU_CORE_LIB = icuuc ; } else if [ GLOB $(dir)/lib : libicuuc.* ] { gICU_CORE_LIB = icuuc ; } else if [ GLOB $(dir)/lib : libicuuc.* ] { gICU_CORE_LIB = icuuc ; } else if [ GLOB $(ICU_PATH)/lib : cygicuuc.dll ] { gICU_CORE_LIB = cygicuuc.dll ; } else if [ GLOB $(ICU_PATH)/lib : cygicuuc32.dll ] { gICU_CORE_LIB = cygicuuc32.dll ; } else { ECHO WARNING: ICU shared common library not found in path. ; ECHO HINT: If the regex library fails to link then try again ; ECHO with the environment variable ICU_LINK set to contain ; ECHO the linker options required to link to ICU. ; ECHO Defaulting to look for libicuuc ... ; gICU_CORE_LIB = icuuc ; } if $(ICU_LINK) { # nothing to do, it's already been done! # gICU_LIBS += $(ICU_LINK) ; } else if [ GLOB $(dir)/lib : icuin.* ] { gICU_IN_LIB = icuin ; } else if [ GLOB $(dir)/lib64 : libicui18n.* ] { gICU_IN_LIB = icui18n ; } else if [ GLOB $(dir)/lib : libicui18n.* ] { gICU_IN_LIB = icui18n ; } else if [ GLOB $(ICU_PATH)/lib : cygicuin.dll ] { gICU_IN_LIB = cygicuin.dll ; } else if [ GLOB $(ICU_PATH)/lib : cygicuin32.dll ] { gICU_IN_LIB = cygicuin32.dll ; } else { ECHO WARNING: ICU shared i18n library not found in path. ; ECHO HINT: If the regex library fails to link then try again ; ECHO with the environment variable ICU_LINK set to contain ; ECHO the linker options required to link to ICU. ; ECHO Defaulting to look for libicui18n ... ; gICU_IN_LIB = icui18n ; } #Added by Tommy Nordgren - libicudata muct be linked against on Mac OS X if $(ICU_LINK) { # nothing to do, it's already been done! # gICU_LIBS += $(ICU_LINK) ; } else if [ GLOB $(dir)/lib : libicudata.* ] { gICU_DATA_LIB = icudata ; } else { ECHO WARNING: ICU shared i18n library not found in path. ; ECHO HINT: If the regex library fails to link then try again ; ECHO with the environment variable ICU_LINK set to contain ; ECHO the linker options required to link to ICU. ; ECHO Defaulting to look for libicudata ... ; gICU_DATA_LIB = icudata ; } #End of addition by Tommy Nordgren } } gICU_CONFIG_CHECKED = true ; } if $(gHAS_ICU) { return true ; } else { ECHO Building Boost.Regex with the optional Unicode/ICU support disabled. ; ECHO Please refer to the Boost.Regex documentation for more information ; ECHO (don't panic: this is a strictly optional feature). ; if $(ICU_PATH) { ECHO Couldn't find utypes.h in $(ICU_PATH:J=" ")/include/unicode ; } } } if [ check-icu-config ] { BOOST_REGEX_ICU_OPTS = "BOOST_HAS_ICU=1" ; if $(ICU_PATH) { if $(ICU_PATH) != "/usr" && $(ICU_PATH) != "/usr/local" { BOOST_REGEX_ICU_OPTS += "$(ICU_PATH)/include" ; ICU_SEARCH_OPTS = /$(ICU_PATH)/lib ; } } if $(gICU_CORE_LIB) { lib icucore : : $(gICU_CORE_LIB) $(ICU_SEARCH_OPTS) ; ICU_EXTRA_SOURCE = icucore ; } if $(gICU_IN_LIB) { lib icuin : : $(gICU_IN_LIB) $(ICU_SEARCH_OPTS) ; ICU_EXTRA_SOURCE += icuin ; } #Added by Tommy Nordgren libicudata must be linked against on Mac OS X if $(gICU_DATA_LIB) { lib icudata : : $(gICU_DATA_LIB) $(ICU_SEARCH_OPTS) ; ICU_EXTRA_SOURCE += icudata ; } #End of addition by Tommy Nordgren } SOURCES = c_regex_traits.cpp cpp_regex_traits.cpp cregex.cpp fileiter.cpp icu.cpp instances.cpp posix_api.cpp regex.cpp regex_debug.cpp regex_raw_buffer.cpp regex_traits_defaults.cpp static_mutex.cpp w32_regex_traits.cpp wc_regex_traits.cpp wide_posix_api.cpp winstances.cpp usinstances.cpp ; lib boost_regex : ../src/$(SOURCES) $(ICU_EXTRA_SOURCE) : #static:BOOST_REGEX_NO_LIB=1 #static:BOOST_REGEX_STATIC_LINK=1 shared:BOOST_REGEX_DYN_LINK=1 gcc-mw:static gcc-mingw:static gcc-cygwin:static $(BOOST_REGEX_ICU_OPTS) ;