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