1b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## -*-makefile-*- 2b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Cygwin-specific setup 350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho## Copyright (c) 2001-2010, International Business Machines Corporation and 4b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## others. All Rights Reserved. 5b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 6b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Commands to generate dependency files 7b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruGEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS) 8b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruGEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS) 9b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 10b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Flags to create/use a static library 11b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruifneq ($(ENABLE_SHARED),YES) 12b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Make sure that the static libraries can be built and used 13b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruCPPFLAGS += -DU_STATIC_IMPLEMENTATION 14b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruelse 15b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Make sure that the static libraries can be built 16b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruSTATICCPPFLAGS = -DU_STATIC_IMPLEMENTATION 17b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruendif 18b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 19b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Flags for position independent code 20b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruSHAREDLIBCFLAGS = 21b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruSHAREDLIBCXXFLAGS = 22b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruSHAREDLIBCPPFLAGS = -DPIC 23b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 24b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Additional flags when building libraries and with threads 25b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruTHREADSCPPFLAGS = -D_REENTRANT 26b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruLIBCPPFLAGS = 27b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 28b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru# Commands to link. Link with C++ in case static libraries are used. 29b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruLINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS) 30b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) 31b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 3250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho## Shared library options 3350294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoLD_SOOPTIONS= -Wl,-Bsymbolic 3450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 35b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Commands to make a shared library 36b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru# $(subst) won't work in shell script. #M# at the end omits these 37b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru# lines from the shell script (Make only) 3850294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoSHLIB.c= $(CC) $(CFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS) -Wl,--enable-auto-import -Wl,--out-implib=$(subst cyg,lib,$@).$(A)#M# 3950294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoSHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS) -Wl,--enable-auto-import -Wl,--out-implib=$(subst cyg,lib,$@).$(A)#M# 40b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru# the #SH# lines don't go through further postprocessing. 41b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru# so, they must be valid shell script starting from column 4 42b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#SH#SHLIB_c="$(CC) $(CFLAGS) $(LDFLAGS) -shared " 43b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#SH#SHLIB_cc="$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared " 44b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 45b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 46b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Compiler switch to embed a runtime search path 47b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruLD_RPATH= 48b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruLD_RPATH_PRE= -Wl,-rpath, 49b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 50b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Compiler switch to embed a library name 51b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruLD_SONAME = 52b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 53b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Shared object suffix 54b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruSO = dll 55b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Non-shared intermediate object suffix 56b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruSTATIC_O = ao 57b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruLIBICU = cyg$(ICUPREFIX) 58b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru## To have an import library is better on Cygwin 59b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruIMPORT_LIB_EXT = .dll.a 60b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 61b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Compilation rules 62b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.$(STATIC_O): $(srcdir)/%.c 63b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< 64b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.o: $(srcdir)/%.c 65b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< 66b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 67b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.$(STATIC_O): $(srcdir)/%.cpp 68b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< 69b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.o: $(srcdir)/%.cpp 70b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< 71b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 72b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 73b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Dependency rules 74b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.d: $(srcdir)/%.c 75b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru @echo "generating dependency information for $<" 76b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru @echo -n "$@ " > $@ 77b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru @$(GEN_DEPS.c) $< >> $@ || (rm -f $@ && FALSE) 78b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 79b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.d: $(srcdir)/%.cpp 80b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru @echo "generating dependency information for $<" 81b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru @echo -n "$@ " > $@ 82b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru @$(GEN_DEPS.cc) $< >> $@ || (rm -f $@ && FALSE) 83b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 84b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Versioned target for a shared library. 85b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Since symbolic links don't work the same way on Windows, 86b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## we only use the version major number. 87b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#FINAL_SO_TARGET=$(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO) 88b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruFINAL_SO_TARGET=$(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO) 89b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruMIDDLE_SO_TARGET=$(FINAL_SO_TARGET) 90b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 91b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruIMPORT_LIB = $(subst cyg,lib,$(FINAL_SO_TARGET)).$(A)#M# 92b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruMIDDLE_IMPORT_LIB = $(subst cyg,lib,$(basename $(SO_TARGET)))$(SO_TARGET_VERSION_MAJOR).$(SO).$(A)#M# 93b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruFINAL_IMPORT_LIB = $(IMPORT_LIB)#M# 94b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 95b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru# The following is for Makefile.inc's use. 96b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR) 97b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 98b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Versioned libraries rules 99b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#%$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO) 100b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru# $(RM) $@ && cp ${<F} $@ 101b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.$(SO): %$(SO_TARGET_VERSION_MAJOR).$(SO) 102b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru $(RM) $(subst cyg,lib,$@).$(A) && ln -s $(subst cyg,lib,${<F}).$(A) $(subst cyg,lib,$@).$(A) 103b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 104b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Install libraries as executable 105b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruINSTALL-L=$(INSTALL_PROGRAM) 106b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 107b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Bind internal references 108b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 109b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru# LDflags that pkgdata will use 110b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruBIR_LDFLAGS= -Wl,-Bsymbolic 111b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 112b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru# Dependencies [i.e. map files] for the final library 113b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruBIR_DEPS= 114b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 115b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru# Environment variable to set a runtime search path 116b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruLDLIBRARYPATH_ENVVAR = PATH 117b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 118b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru# The type of assembly to write for generating an object file 119b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruGENCCODE_ASSEMBLY=-a gcc-cygwin 120b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 121b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru# put this here again so it gets cyguc... 122b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 123b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH#ICULIBS_COMMON_LIB_NAME="${LIBICU}uc${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}.${SO}" 124b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 125b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru# for icu-config 126b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 127b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH### copied from Makefile.inc 128b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH#ICULIBS_COMMON="-l${LIBICU}uc${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}" 129b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH#ICULIBS_DATA="-l${LIBICU}${DATA_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}" 130b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH#ICULIBS_I18N="-l${LIBICU}${I18N_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}" 131b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH#ICULIBS_TOOLUTIL="-l${LIBICU}tu${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}" 132b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH#ICULIBS_CTESTFW="-l${LIBICU}ctestfw${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}" 133b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH#ICULIBS_ICUIO="-l${LIBICU}io${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}" 134b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH#ICULIBS_OBSOLETE="-l${LIBICU}obsolete${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}" 135b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH#ICULIBS_LAYOUT="-l${LIBICU}le${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}" 136b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH#ICULIBS_LAYOUTEX="-l${LIBICU}lx${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}" 137b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH#ICULIBS_BASE="${LIBS} -L${libdir}" 138b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH#ICULIBS="${ICULIBS_BASE} ${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA}" 139b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 140b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## End Cygwin-specific setup 141b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 142