]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/config/mh-solaris
ICU-59117.0.1.tar.gz
[apple/icu.git] / icuSources / config / mh-solaris
index cf12e9cc518fb589bb5d2d2b71996b02c1c89cea..e1d4ccf900fc10d3ff04880634435db1eddb848c 100644 (file)
@@ -1,9 +1,13 @@
 ## -*-makefile-*-
-## Solaris-specific setup using Sun's workshop compilers
-## Copyright (c) 1999-2000, International Business Machines Corporation and
+## Copyright (C) 2016 and later: Unicode, Inc. and others.
+## License & terms of use: http://www.unicode.org/copyright.html
+## Solaris-specific setup using Sun's compilers
+## Copyright (c) 1999-2010, International Business Machines Corporation and
 ## others. All Rights Reserved.
-##
-## $Id: mh-solaris,v 1.1.1.1 2003/02/05 21:31:17 avery Exp $
+
+## Flags for ICU 59+
+CXXFLAGS += -std=c++11
+CFLAGS   += -std=c99
 
 ## Flags for position independent code
 SHAREDLIBCFLAGS = -KPIC
@@ -14,12 +18,27 @@ SHAREDLIBCPPFLAGS = -DPIC
 GEN_DEPS.c=  $(CC) -xM $(DEFS) $(CPPFLAGS)
 GEN_DEPS.cc= $(CXX) -xM $(DEFS) $(CPPFLAGS)
 
-# -libmil means use the intrinsic library functions like strlen
-CPPFLAGS += -libmil
+ifeq ($(UCLN_NO_AUTO_CLEANUP),0)
+# set up init point.
+UCLN_FINI =  ucln_fini$(TARGET_STUBNAME)_$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIXCNAME)
+CPPFLAGS_FINI = -DUCLN_FINI=$(UCLN_FINI)
+LDFLAGS_FINI = -zfiniarray=$(UCLN_FINI)
+
+CPPFLAGSICUUC += $(CPPFLAGS_FINI)
+LDFLAGSICUUC += $(LDFLAGS_FINI)
+CPPFLAGSICUIO += $(CPPFLAGS_FINI)
+LDFLAGSICUIO += $(LDFLAGS_FINI)
+CPPFLAGSICUI18N += $(CPPFLAGS_FINI)
+LDFLAGSICUI18N += $(LDFLAGS_FINI)
+CPPFLAGSCTESTFW += $(CPPFLAGS_FINI)
+LDFLAGSCTESTFW += $(LDFLAGS_FINI)
+
+# ICUUC, ICUIO, ICUI18N, CTESTFW
+endif
 
 # -mt means 'compiles and links a multithreaded program'
-CFLAGS += -mt
-CXXFLAGS += -mt
+THREADSCFLAGS += -mt
+THREADSCXXFLAGS += -mt
 
 ## Commands to link
 ## For Sun Workshop, use CC to link to bring in C++ runtime
@@ -31,30 +50,47 @@ SHLIB.c=    $(CC) $(CFLAGS) $(LDFLAGS) -G
 SHLIB.cc=      $(CXX) $(CXXFLAGS) $(LDFLAGS) -G
 
 ## Compiler switch to embed a runtime search path
-LD_RPATH=      -R
-LD_RPATH_PRE=  
+LD_RPATH=       -R'$$'ORIGIN 
+LD_RPATH_PRE=   -R
+
+#LIBRARY_PATH_PREFIX=/usr/lib/lwp:
 
 ## Compiler switch to embed a library name
-LD_SONAME = -h $(MIDDLE_SO_TARGET)
+LD_SONAME = -h $(notdir $(MIDDLE_SO_TARGET))
 
 ## Shared object suffix
 SO=            so
 ## Non-shared intermediate object suffix
 STATIC_O = o
 
+# This causes escapesrc to be built before other ICU targets.
+NEED_ESCAPING=YES
+
 ## Compilation rules
 %.$(STATIC_O): $(srcdir)/%.c
        $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
 %.o: $(srcdir)/%.c
        $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
 
-%.$(STATIC_O): $(srcdir)/%.cpp
-       $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
+ifneq ($(SKIP_ESCAPING),)
 %.o: $(srcdir)/%.cpp
        $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
+%.$(STATIC_O): $(srcdir)/%.cpp
+       $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
+else
+# convert *.cpp files to _*.cpp with \u / \U escaping
+CLEANFILES += _*.cpp
 
-../data/%.o: ../data/%.c
-       $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
+# the actual escaping
+_%.cpp: $(srcdir)/%.cpp
+       @$(BINDIR)/escapesrc$(EXEEXT) $< $@
+
+# no escaping - bootstrap
+%.$(STATIC_O): _%.cpp
+       $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
+%.o: _%.cpp
+       $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
+endif
 
 ## Dependency rules
 %.d : $(srcdir)/%.c
@@ -68,12 +104,18 @@ STATIC_O = o
 ## Versioned libraries rules
 
 %.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION)
-       $(RM) $@ && ln -s $< $@
+       $(RM) $@ && ln -s ${<F} $@
 %.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR)
-       $(RM) $@ && ln -s $*.$(SO).$(SO_TARGET_VERSION) $@
+       $(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@
 
 # 
+ifeq (strip $(GENCCODE_ASSEMBLY),)
 BIR_LDFLAGS=  -Wl,-M,$(NAME).map -Wl,-B,symbolic -Wl,-B,eliminate
-BIR_CPPFLAGS= -DU_HAVE_BIND_INTERNAL_REFERENCES
 BIR_DEPS=   $(NAME).map
+endif
+
+## Remove shared library 's'
+STATIC_PREFIX_WHEN_USED = 
+STATIC_PREFIX = 
+
 ## End Solaris-specific setup