Makefile.in (5768B)
1 # Copyright (C) 2016 and later: Unicode, Inc. and others. 2 # License & terms of use: http://www.unicode.org/copyright.html 3 #****************************************************************************** 4 # 5 # Copyright (C) 1999-2016, International Business Machines 6 # Corporation and others. All Rights Reserved. 7 # 8 #****************************************************************************** 9 ## Makefile.in for ICU - icuuc.so 10 ## Stephen F. Booth 11 12 ## Source directory information 13 srcdir = @srcdir@ 14 top_srcdir = @top_srcdir@ 15 16 top_builddir = .. 17 18 ## All the flags and other definitions are included here. 19 include $(top_builddir)/icudefs.mk 20 21 ## Build directory information 22 subdir = common 23 24 # for service hook 25 LOCALSVC_CPP=localsvc.cpp 26 SVC_HOOK_INC=$(top_builddir)/common/svchook.mk 27 28 ## Extra files to remove for 'make clean' 29 CLEANFILES = *~ $(DEPS) $(IMPORT_LIB) $(MIDDLE_IMPORT_LIB) $(FINAL_IMPORT_LIB) $(SVC_HOOK_INC) 30 31 ## Target information 32 33 TARGET_STUBNAME=$(COMMON_STUBNAME) 34 35 ifneq ($(ENABLE_STATIC),) 36 TARGET = $(LIBDIR)/$(LIBSICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(A) 37 endif 38 39 ifneq ($(ENABLE_SHARED),) 40 SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO) 41 ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT) 42 43 ifeq ($(ENABLE_SO_VERSION_DATA),1) 44 SO_VERSION_DATA = common.res 45 endif 46 47 ifeq ($(BUILD_HOST_ICU),OS390) 48 BATCH_TARGET = $(BATCH_COMMON_TARGET) 49 BATCH_LIBS = $(BATCH_LIBICUDT) -lm 50 endif 51 52 endif # ENABLE_SHARED 53 54 ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS) $(BATCH_TARGET) 55 56 DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS) 57 DYNAMICCFLAGS = $(SHAREDLIBCFLAGS) 58 DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS) 59 CFLAGS += $(LIBCFLAGS) 60 CXXFLAGS += $(LIBCXXFLAGS) 61 62 CPPFLAGS += -I$(srcdir) $(LIBCPPFLAGS) $(CPPFLAGSICUUC) 63 # we want DEFS here 64 DEFS += -DU_COMMON_IMPLEMENTATION 65 LDFLAGS += $(LDFLAGSICUUC) 66 67 # for plugin configuration 68 CPPFLAGS += "-DDEFAULT_ICU_PLUGINS=\"$(libdir)/icu\" " 69 70 # for icu data location 71 ifeq ($(PKGDATA_MODE),common) 72 CPPFLAGS += "-DU_ICU_DATA_DEFAULT_DIR=\"$(ICUDATA_DIR)\"" 73 endif 74 75 # $(LIBICUDT) is either stub data or the real DLL common data. 76 LIBS = $(LIBICUDT) $(DEFAULT_LIBS) 77 78 SOURCES = $(shell cat $(srcdir)/sources.txt) 79 OBJECTS = $(SOURCES:.cpp=.o) 80 81 ## Header files to install 82 HEADERS = $(srcdir)/unicode/*.h 83 84 STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O)) 85 86 DEPS = $(OBJECTS:.o=.d) 87 88 -include Makefile.local 89 90 -include $(SVC_HOOK_INC) 91 92 93 ## List of phony targets 94 .PHONY : all all-local install install-local clean clean-local \ 95 distclean distclean-local install-library install-headers dist \ 96 dist-local check check-local check-exhaustive 97 98 ## Clear suffix list 99 .SUFFIXES : 100 101 ## List of standard targets 102 all: all-local 103 install: install-local 104 clean: clean-local 105 distclean : distclean-local 106 dist: dist-local 107 check: all check-local 108 109 check-exhaustive: check 110 111 all-local: $(ALL_TARGETS) 112 113 install-local: install-headers install-library 114 115 install-library: all-local 116 $(MKINSTALLDIRS) $(DESTDIR)$(libdir) 117 ifneq ($(ENABLE_STATIC),) 118 $(INSTALL-L) $(TARGET) $(DESTDIR)$(libdir) 119 endif 120 ifneq ($(ENABLE_SHARED),) 121 # For MinGW, do we want the DLL to go in the bin location? 122 ifeq ($(MINGW_MOVEDLLSTOBINDIR),YES) 123 $(MKINSTALLDIRS) $(DESTDIR)$(bindir) 124 $(INSTALL-L) $(FINAL_SO_TARGET) $(DESTDIR)$(bindir) 125 else 126 $(INSTALL-L) $(FINAL_SO_TARGET) $(DESTDIR)$(libdir) 127 ifneq ($(FINAL_SO_TARGET),$(SO_TARGET)) 128 cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(SO_TARGET)) 129 ifneq ($(FINAL_SO_TARGET),$(MIDDLE_SO_TARGET)) 130 cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(MIDDLE_SO_TARGET)) 131 endif 132 endif 133 endif 134 ifneq ($(IMPORT_LIB_EXT),) 135 $(INSTALL-L) $(FINAL_IMPORT_LIB) $(DESTDIR)$(libdir) 136 ifneq ($(IMPORT_LIB),$(FINAL_IMPORT_LIB)) 137 cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(IMPORT_LIB)) 138 endif 139 ifneq ($(MIDDLE_IMPORT_LIB),$(FINAL_IMPORT_LIB)) 140 cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(MIDDLE_IMPORT_LIB)) 141 endif 142 endif 143 endif 144 145 $(SVC_HOOK_INC): 146 @echo generating $@ 147 @-test -f $(top_srcdir)/common/$(LOCALSVC_CPP) && ( echo "have $(LOCALSVC_CPP) - U_LOCAL_SERVICE_HOOK=1" ; \ 148 echo 'CPPFLAGS +=-DU_LOCAL_SERVICE_HOOK=1' > $@ ; \ 149 echo 'OBJECTS += $(LOCALSVC_CPP:%.cpp=%.o)' >> $@ \ 150 ) ; true 151 @echo "# Autogenerated by Makefile" >> $@ 152 153 install-headers: 154 $(MKINSTALLDIRS) $(DESTDIR)$(includedir)/unicode 155 @for file in $(HEADERS); do \ 156 echo "$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/unicode"; \ 157 $(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/unicode || exit; \ 158 done 159 160 dist-local: 161 162 clean-local: 163 test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES) 164 $(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS) $(SO_VERSION_DATA) 165 166 distclean-local: clean-local 167 $(RMV) Makefile icucfg.h $(SVC_HOOK_INC) 168 169 check-local: 170 171 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(SVC_HOOK_INC) 172 cd $(top_builddir) \ 173 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status 174 175 ifneq ($(ENABLE_STATIC),) 176 $(TARGET): $(STATIC_OBJECTS) 177 $(AR) $(ARFLAGS) $(AR_OUTOPT)$@ $^ 178 $(RANLIB) $@ 179 endif 180 181 ifneq ($(ENABLE_SHARED),) 182 $(SHARED_OBJECT): $(OBJECTS) $(SO_VERSION_DATA) 183 $(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS) 184 ifeq ($(ENABLE_RPATH),YES) 185 ifneq ($(wildcard $(libdir)/$(MIDDLE_SO_TARGET)),) 186 $(warning RPATH warning: --enable-rpath means test programs may use existing $(libdir)/$(MIDDLE_SO_TARGET)) 187 endif 188 endif 189 190 ifeq ($(BUILD_HOST_ICU),OS390) 191 $(BATCH_TARGET):$(OBJECTS) 192 $(SHLIB.cc) $(LD_SONAME) -Wl,-x$@.x $(OUTOPT)$@ $^ $(BATCH_LIBS) 193 endif 194 endif # ENABLE_SHARED 195 196 ifeq (,$(MAKECMDGOALS)) 197 -include $(DEPS) 198 else 199 ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),) 200 -include $(DEPS) 201 endif 202 endif