1b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## -*-makefile-*- 264339d36f8bd4db5025fe2988eda22b491a9219cFredrik Roubert## Copyright (C) 2016 and later: Unicode, Inc. and others. 364339d36f8bd4db5025fe2988eda22b491a9219cFredrik Roubert## License & terms of use: http://www.unicode.org/copyright.html 4b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Linux-specific setup 559d709d503bab6e2b61931737e662dd293b40578ccornelius## Copyright (c) 1999-2013, International Business Machines Corporation and 6b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## others. All Rights Reserved. 7b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 8b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Commands to generate dependency files 9b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruGEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS) 1059d709d503bab6e2b61931737e662dd293b40578ccorneliusGEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS) $(CXXFLAGS) 11b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 12b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Flags for position independent code 13b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruSHAREDLIBCFLAGS = -fPIC 14b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruSHAREDLIBCXXFLAGS = -fPIC 15b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruSHAREDLIBCPPFLAGS = -DPIC 16b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 17b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Additional flags when building libraries and with threads 18b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruTHREADSCPPFLAGS = -D_REENTRANT 19b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruLIBCPPFLAGS = 20b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 21b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Compiler switch to embed a runtime search path 2227f654740f2a26ad62a5c155af9199af9e69b889clairehoLD_RPATH= -Wl,-zorigin,-rpath,'$$'ORIGIN 23b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruLD_RPATH_PRE = -Wl,-rpath, 24b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 25b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## These are the library specific LDFLAGS 26b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruLDFLAGSICUDT=-nodefaultlibs -nostdlib 27b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 28b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Compiler switch to embed a library name 29b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru# The initial tab in the next line is to prevent icu-config from reading it. 30b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET)) 31b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH# # We can't depend on MIDDLE_SO_TARGET being set. 32b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#SH# LD_SONAME= 33b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 3450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho## Shared library options 3550294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoLD_SOOPTIONS= -Wl,-Bsymbolic 3650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 37b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Shared object suffix 38b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruSO = so 39b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Non-shared intermediate object suffix 40b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruSTATIC_O = ao 41b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 42b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Compilation rules 43b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.$(STATIC_O): $(srcdir)/%.c 4454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius $(call SILENT_COMPILE,$(strip $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS)) -o $@ $<) 45b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.o: $(srcdir)/%.c 4654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius $(call SILENT_COMPILE,$(strip $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS)) -o $@ $<) 47b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 48b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.$(STATIC_O): $(srcdir)/%.cpp 4954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius $(call SILENT_COMPILE,$(strip $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS)) -o $@ $<) 50b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.o: $(srcdir)/%.cpp 5154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius $(call SILENT_COMPILE,$(strip $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS)) -o $@ $<) 52b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 53b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 54b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Dependency rules 55b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.d: $(srcdir)/%.c 5654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius $(call ICU_MSG,(deps)) $< 57b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru @$(SHELL) -ec '$(GEN_DEPS.c) $< \ 58b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ 59b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru [ -s $@ ] || rm -f $@' 60b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 61b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.d: $(srcdir)/%.cpp 6254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius $(call ICU_MSG,(deps)) $< 63b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru @$(SHELL) -ec '$(GEN_DEPS.cc) $< \ 64b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ 65b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru [ -s $@ ] || rm -f $@' 66b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 67b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Versioned libraries rules 68b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 69b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION) 70b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru $(RM) $@ && ln -s ${<F} $@ 71b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR) 72b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru $(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@ 73b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 74b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## Bind internal references 75b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 76b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru# LDflags that pkgdata will use 77b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruBIR_LDFLAGS= -Wl,-Bsymbolic 78b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 79b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru# Dependencies [i.e. map files] for the final library 80b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruBIR_DEPS= 81b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 8250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho## Remove shared library 's' 8350294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoSTATIC_PREFIX_WHEN_USED = 8450294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoSTATIC_PREFIX = 8550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 86b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru## End Linux-specific setup 87b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 88