## -*-makefile-*- ## 390-specific setup ## Copyright (c) 1999-2001, International Business Machines Corporation and ## others. All Rights Reserved. ## ## $Id: mh-os390,v 1.25 2001/10/26 00:58:29 grhoten-oss Exp $ ################################################################### # IMPORTANT NOTE # ################################################################### # Before you try to run the Makefile, make sure you have the # # environment variables set. # # # # If you are going to do the OS390BATCH build, make sure you have # # the OS390BATCH environment variable set. # # # # export OS390BATCH=1 # # # # To build a version of ICU which uses IEEE Floating point # # # # export IEEE390=1 # # # ################################################################### ifeq (${IEEE390}, 1) ICU_IEEE = -Wc,"float(ieee)" -DIEEE_754=1 else ICU_IEEE = -DIEEE_754=0 endif CFLAGS390= -Wc,"langlvl(extended),spill(2000)" $(ICU_BUILD_OPTIONS) $(ICU_IEEE) -Wc,dll,expo ## OS390BATCH ifeq (${OS390BATCH},1) DEFS390= -D_OPEN_THREADS -D_XOPEN_SOURCE_EXTENDED -DOS390BATCH -D_SHR_TZNAME -D_SHR_TIMEZONE else DEFS390= -D_OPEN_THREADS -D_XOPEN_SOURCE_EXTENDED -D_SHR_TZNAME -D_SHR_TIMEZONE endif ARFLAGS= -cr OS390DATA= 1 ## Commands to generate dependency files GEN_DEPS.c= makedep GEN_DEPS.cc= makedep ## Commands to compile COMPILE.c= _CXX_CXXSUFFIX="cpp" _CXX_STEPS="-1" $(CXX) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(CFLAGS390) $(DEFS390) -c COMPILE.cc= _CXX_CXXSUFFIX="cpp" _CXX_STEPS="-1" $(CXX) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(CFLAGS390) $(DEFS390) -c ## Commands for shared library (dll) SHLIB.c= $(LINK.c) -Wl,dll SHLIB.cc= $(LINK.cc) -Wl,dll ## Compiler switch to embed a runtime search path LD_RPATH= -I ## Versioned target for a shared library. FINAL_SO_TARGET = $(basename $(SO_TARGET)).$(SO_TARGET_VERSION).$(SO) MIDDLE_SO_TARGET = ## Shared object suffix (switch to dll for shared library build) SO= dll ## Non-shared intermediate object suffix STATIC_O = o ## Link commands to link to ICU libs LIBICUDT= $(top_builddir)/data/libicudata.$(SO_TARGET_VERSION).x LIBICUUC= $(top_builddir)/common/libicuuc.$(SO_TARGET_VERSION).x LIBICUI18N= $(top_builddir)/i18n/libicui18n.$(SO_TARGET_VERSION).x LIBICULE= $(top_builddir)/layout/libicule.$(SO_TARGET_VERSION).x LIBCTESTFW= $(top_builddir)/tools/ctestfw/libicuctestfw.$(SO_TARGET_VERSION).x LIBICUTOOLUTIL= $(top_builddir)/tools/toolutil/libicutoolutil.$(SO_TARGET_VERSION).x LIBUSTDIO= $(top_builddir)/extra/ustdio/libustdio.$(SO_TARGET_VERSION).x ## Special 390 rules ## Build archive from object %.a : $(OBJECTS) $(AR) $(ARFLAGS) $@ $(OBJECTS) ## 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 $@ $< %.o: $(srcdir)/%.cpp $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< ## Dependency rules %.d : %.u @$(SHELL) -ec 'cat $< \ | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \ [ -s $@ ] || rm -f $@ ; rm -f $<' %.u : $(srcdir)/%.c @echo "Generating dependency information for $<" @$(SHELL) -ec 'touch $*.u > /dev/null 2>&1' @$(SHELL) -ec '$(GEN_DEPS.c) -f $*.u $< > /dev/null 2>&1' %.u : $(srcdir)/%.cpp @echo "Generating dependency information for $<" @$(SHELL) -ec 'touch $*.u > /dev/null 2>&1' @$(SHELL) -ec '$(GEN_DEPS.cc) -f $*.u $< > /dev/null 2>&1' ## Versioned libraries rules %.$(SO): %.$(SO_TARGET_VERSION).$(SO) $(RM) $@ && ln -s $*.$(SO_TARGET_VERSION).$(SO) $@ ## End 390-specific setup