intl/icu/source/config/mh-os400

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/intl/icu/source/config/mh-os400	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,139 @@
     1.4 +## -*-makefile-*-
     1.5 +## OS400-specific setup (for cross build)
     1.6 +## Copyright (c) 1999-2013, International Business Machines Corporation and
     1.7 +## others. All Rights Reserved.
     1.8 +
     1.9 +# This otherwise breaks on OS400 - can't find "shell"
    1.10 +CURR_FULL_DIR=.
    1.11 +CURR_SRCCODE_FULL_DIR=.
    1.12 +
    1.13 +GEN_DEPS.c=	$(CC1) -E -M $(DEFS) $(CPPFLAGS)
    1.14 +GEN_DEPS.cc=	$(CXX1) -E -M $(DEFS) $(CPPFLAGS)
    1.15 +
    1.16 +THREADSCPPFLAGS = -D_MULTI_THREADED
    1.17 +
    1.18 +# put this in the environment to get threading
    1.19 +THREADSENVFLAGS = QIBM_MULTI_THREADED=Y ;
    1.20 +
    1.21 +## Commands to compile
    1.22 +# -qTERASPACE: large pointers
    1.23 +# -qPFROPT=*STRDONLY: Strings are read-only
    1.24 +COMPILE.c=	$(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) -c -qTERASPACE=*YES -qSTGMDL=*INHERIT -qPFROPT=*STRDONLY
    1.25 +COMPILE.cc=	$(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c -qTERASPACE=*YES -qSTGMDL=*INHERIT -qPFROPT=*STRDONLY -qRTTIALL
    1.26 +
    1.27 +## ICULD program - run bldiculd.sh in icu/as_is/os400/ to build it
    1.28 +ICULD=/qsys.lib/$(OUTPUTDIR).lib/iculd.pgm
    1.29 +
    1.30 +## Commands to link
    1.31 +## We need to use the C++ linker, even when linking C programs, since
    1.32 +##  our libraries contain C++ code (C++ static init not called)
    1.33 +LINK.c=		$(ICULD)  $(CXXFLAGS) $(LDFLAGS) -qOPTION='*DUPPROC *DUPVAR'
    1.34 +LINK.cc=	$(ICULD) $(CXXFLAGS) $(LDFLAGS) -qOPTION='*DUPPROC *DUPVAR'
    1.35 +
    1.36 +## Commands to make a shared library
    1.37 +# -qALWLIBUPD: It allows the compiled service program to have dependencies on
    1.38 +#	service programs in a different library than that specified originally
    1.39 +#	by CRTSRVPGM after having used the UPDSRVPGM command.
    1.40 +#	Similar to -fPIC and -install_name on other compilers, but different.
    1.41 +SHLIB.c=   ld -v -qOPTION='*DUPPROC *DUPVAR' -qALWLIBUPD=*YES
    1.42 +SHLIB.cc=	 ld -v -qOPTION='*DUPPROC *DUPVAR' -qALWLIBUPD=*YES
    1.43 +AR = qar
    1.44 +ARFLAGS = -cuv
    1.45 +
    1.46 +## Compiler switch to embed a runtime search path
    1.47 +LD_RPATH=	-I
    1.48 +LD_RPATH_PRE=	-I
    1.49 +
    1.50 +## Make target to rebind the common library
    1.51 +## to the actual data versus the stub data
    1.52 +POST_DATA_BUILD = os400-data-rebind
    1.53 +
    1.54 +# The stubdata directory is the same directory as the normal data library.
    1.55 +STUBDATA_LIBDIR = $(LIBDIR)/
    1.56 +
    1.57 +## Versioned target for a shared library.
    1.58 +FINAL_SO_TARGET = $(SO_TARGET)
    1.59 +MIDDLE_SO_TARGET = 
    1.60 +
    1.61 +# this one is for icudefs.mk's use
    1.62 +ifeq ($(ENABLE_SHARED),YES)
    1.63 +SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR)
    1.64 +endif
    1.65 +
    1.66 +# this one is for the individual make files and linking
    1.67 +ICULIBSUFFIX = $(SO_TARGET_VERSION_SUFFIX)
    1.68 +
    1.69 +##  object suffix
    1.70 +TO=		o
    1.71 +
    1.72 +## Shared object suffix
    1.73 +SO=	so
    1.74 +## Non-shared intermediate object suffix
    1.75 +STATIC_O = o
    1.76 +
    1.77 +## Platform command to remove or move executable target
    1.78 +RMV = del
    1.79 +## Platform commands to remove or move executable and library targets
    1.80 +INSTALL-S =  cp -fph
    1.81 +INSTALL-L = $(INSTALL-S)
    1.82 +
    1.83 +# Stub name overrides for iSeries
    1.84 +DATA_STUBNAME = dt
    1.85 +I18N_STUBNAME = in
    1.86 +CTESTFW_STUBNAME = tf
    1.87 +
    1.88 +## Link commands to link to ICU service programs
    1.89 +LIBICUDT = $(LIBDIR)/$(LIBICU)$(DATA_STUBNAME)$(ICULIBSUFFIX).$(SO)
    1.90 +LIBICUUC = $(LIBDIR)/$(LIBICU)$(COMMON_STUBNAME)$(ICULIBSUFFIX).$(SO)
    1.91 +LIBICUI18N = $(LIBDIR)/$(LIBICU)$(I18N_STUBNAME)$(ICULIBSUFFIX).$(SO)
    1.92 +LIBICULE = $(LIBDIR)/$(LIBICU)$(LAYOUT_STUBNAME)$(ICULIBSUFFIX).$(SO)
    1.93 +LIBICULX = $(LIBDIR)/$(LIBICU)$(LAYOUTEX_STUBNAME)$(ICULIBSUFFIX).$(SO)
    1.94 +LIBCTESTFW = $(top_builddir)/tools/ctestfw/$(LIBICU)$(CTESTFW_STUBNAME)$(ICULIBSUFFIX).$(SO)
    1.95 +LIBICUTOOLUTIL = $(LIBDIR)/$(LIBICU)$(TOOLUTIL_STUBNAME)$(ICULIBSUFFIX).$(SO)
    1.96 +LIBICUIO= $(LIBDIR)/$(LIBICU)$(IO_STUBNAME)$(ICULIBSUFFIX).$(SO)
    1.97 +
    1.98 +## Special OS400 rules
    1.99 +
   1.100 +## Build archive from shared object
   1.101 +%.a : %.o
   1.102 +	$(AR) $(ARFLAGS) $@ $<
   1.103 +
   1.104 +## Build import list from export list
   1.105 +%.e : %.exp
   1.106 +	@echo "Building an import list for $<"
   1.107 +	@$(SHELL) -ec "echo '#! $*.a($*.so)' | cat - $< > $@"
   1.108 +
   1.109 +## Compilation rules
   1.110 +%.$(STATIC_O): $(srcdir)/%.c
   1.111 +	$(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
   1.112 +%.o: $(srcdir)/%.c
   1.113 +	$(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
   1.114 +
   1.115 +%.$(STATIC_O): $(srcdir)/%.cpp
   1.116 +	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
   1.117 +%.o: $(srcdir)/%.cpp
   1.118 +	$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
   1.119 +
   1.120 +%.qwobj : $(srcdir)/%.c
   1.121 +	$(COMPILE.c) -o $@ $<
   1.122 +
   1.123 +%.qwobj : $(srcdir)/%.cpp
   1.124 +	$(COMPILE.cc) -o $@ $<
   1.125 +
   1.126 +## Dependency rules
   1.127 +%.d : %.u
   1.128 +#	@$(SHELL) -ec 'cat $<  \
   1.129 +#		| sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \
   1.130 +#		[ -s $@ ] || rm -f $@ ; rm -f $<'
   1.131 +
   1.132 +%.u : $(srcdir)/%.c
   1.133 +	@echo "generating dependency information for $<"
   1.134 +#	@$(SHELL) -ec 'touch            $*.u  > /dev/null 2>&1'
   1.135 +#	@$(SHELL) -ec '$(GEN_DEPS.c) -f $*.u $< > /dev/null 2>&1'
   1.136 +
   1.137 +%.u : $(srcdir)/%.cpp
   1.138 +	@echo "generating dependency information for $<"
   1.139 +#	@$(SHELL) -ec 'touch              $*.u  > /dev/null 2>&1'
   1.140 +#	@$(SHELL) -ec '$(GEN_DEPS.cc)  -f $*.u $< > /dev/null 2>&1'
   1.141 +
   1.142 +## End OS400-specific setup

mercurial