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