Home | History | Annotate | Download | only in config
      1 ## -*-makefile-*-
      2 ## Solaris-specific setup using Sun's compilers
      3 ## Copyright (c) 1999-2009, International Business Machines Corporation and
      4 ## others. All Rights Reserved.
      5 
      6 ## Flags for position independent code
      7 SHAREDLIBCFLAGS = -KPIC
      8 SHAREDLIBCXXFLAGS = -KPIC
      9 SHAREDLIBCPPFLAGS = -DPIC
     10 
     11 ## Commands to generate dependency files
     12 GEN_DEPS.c=  $(CC) -xM $(DEFS) $(CPPFLAGS)
     13 GEN_DEPS.cc= $(CXX) -xM $(DEFS) $(CPPFLAGS)
     14 
     15 ifeq ($(UCLN_NO_AUTO_CLEANUP),0)
     16 # set up init point.
     17 UCLN_FINI =  ucln_fini$(TARGET_STUBNAME)_$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIXCNAME)
     18 CPPFLAGS_FINI = -DUCLN_FINI=$(UCLN_FINI)
     19 LDFLAGS_FINI = -zfiniarray=$(UCLN_FINI)
     20 
     21 CPPFLAGSICUUC += $(CPPFLAGS_FINI)
     22 LDFLAGSICUUC += $(LDFLAGS_FINI)
     23 CPPFLAGSICUIO += $(CPPFLAGS_FINI)
     24 LDFLAGSICUIO += $(LDFLAGS_FINI)
     25 CPPFLAGSICUI18N += $(CPPFLAGS_FINI)
     26 LDFLAGSICUI18N += $(LDFLAGS_FINI)
     27 CPPFLAGSCTESTFW += $(CPPFLAGS_FINI)
     28 LDFLAGSCTESTFW += $(LDFLAGS_FINI)
     29 
     30 # ICUUC, ICUIO, ICUI18N, CTESTFW
     31 endif
     32 
     33 # -mt means 'compiles and links a multithreaded program'
     34 THREADSCFLAGS += -mt
     35 THREADSCXXFLAGS += -mt
     36 
     37 ## Commands to link
     38 ## For Sun Workshop, use CC to link to bring in C++ runtime
     39 LINK.c=		$(CXX) $(CXXFLAGS) $(LDFLAGS)
     40 LINK.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS)
     41 
     42 ## Commands to make a shared library
     43 SHLIB.c=	$(CC) $(CFLAGS) $(LDFLAGS) -G
     44 SHLIB.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS) -G
     45 
     46 ## Compiler switch to embed a runtime search path
     47 LD_RPATH=       -R'$$'ORIGIN
     48 LD_RPATH_PRE=   -R
     49 
     50 #LIBRARY_PATH_PREFIX=/usr/lib/lwp:
     51 
     52 ## Compiler switch to embed a library name
     53 LD_SONAME = -h $(notdir $(MIDDLE_SO_TARGET))
     54 
     55 ## Shared object suffix
     56 SO=		so
     57 ## Non-shared intermediate object suffix
     58 STATIC_O = o
     59 
     60 ## Compilation rules
     61 %.$(STATIC_O): $(srcdir)/%.c
     62 	$(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
     63 %.o: $(srcdir)/%.c
     64 	$(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
     65 
     66 %.$(STATIC_O): $(srcdir)/%.cpp
     67 	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
     68 %.o: $(srcdir)/%.cpp
     69 	$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
     70 
     71 
     72 ## Dependency rules
     73 %.d : $(srcdir)/%.c
     74 	@echo "generating dependency information for $<"
     75 	@$(GEN_DEPS.c) $< > $@
     76 
     77 %.d : $(srcdir)/%.cpp
     78 	@echo "generating dependency information for $<"
     79 	@$(GEN_DEPS.cc) $< > $@
     80 
     81 ## Versioned libraries rules
     82 
     83 %.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION)
     84 	$(RM) $@ && ln -s ${<F} $@
     85 %.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR)
     86 	$(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@
     87 
     88 # 
     89 ifeq (strip $(GENCCODE_ASSEMBLY),)
     90 BIR_LDFLAGS=  -Wl,-M,$(NAME).map -Wl,-B,symbolic -Wl,-B,eliminate
     91 BIR_DEPS=   $(NAME).map
     92 endif
     93 
     94 ## Remove shared library 's'
     95 STATIC_PREFIX_WHEN_USED = 
     96 STATIC_PREFIX = 
     97 
     98 ## End Solaris-specific setup
     99