tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

mh-os390 (5748B)


      1 ## -*-makefile-*-
      2 ## Copyright (C) 2016 and later: Unicode, Inc. and others.
      3 ## License & terms of use: http://www.unicode.org/copyright.html
      4 ## os/390, z/OS specific setup 
      5 ## Copyright (c) 1999-2014, International Business Machines Corporation and
      6 ## others. All Rights Reserved.
      7 
      8 ###################################################################
      9 #                    IMPORTANT NOTE                               #
     10 ###################################################################
     11 # Before you try to run the Makefile, make sure you have the      #
     12 # environment variables set.                                      #
     13 #                                                                 #
     14 # To build a version of ICU that does not use IEEE Floating point #
     15 #                                                                 #
     16 #   export ICU_IS_NOT_IEEE754=1                                   #
     17 ###################################################################
     18 BUILD_HOST_ICU=OS390
     19 ifeq (${ICU_IS_NOT_IEEE754}, 1)
     20 ICU_IEEE=-mzos-float-kind=hex -DIEEE_754=0
     21 else
     22 ICU_IEEE=-mzos-float-kind=ieee -DIEEE_754=1
     23 endif
     24 ifeq (${TARGET_ICU_ARCH},)
     25 TARGET_ICU_ARCH=arch10
     26 endif
     27 ifeq (${ICU_PLUGINS_DD},1)
     28 DEFS+=-DICU_PLUGINS_DD
     29 endif
     30 
     31 ## Flags for position independent code
     32 SHAREDLIBCFLAGS += -fPIC
     33 SHAREDLIBCXXFLAGS += -fPIC
     34 # For a dynamically called DLL module to share access to the POSIX external
     35 # variables, with its caller, the DLL module must define these _SHR_* macros.
     36 SHAREDLIBCPPFLAGS +=-D_SHR_TZNAME -D_SHR_TIMEZONE
     37 CFLAGS +=$(ICU_IEEE) -march=$(TARGET_ICU_ARCH) -mzos-service="$(LIBICU)v$(SO_TARGET_VERSION)"
     38 CXXFLAGS +=$(ICU_IEEE) -march=$(TARGET_ICU_ARCH) -mzos-service="$(LIBICU)v$(SO_TARGET_VERSION)"
     39 ARFLAGS =-cr
     40 LIBCFLAGS +=-fvisibility=hidden
     41 LIBCXXFLAGS +=-fvisibility=hidden
     42 
     43 ## Commands to compile
     44 # _CXX_STEPS="-1" is a prelink step when compiling C and C++, and
     45 # it's only needed for long function names
     46 COMPILE.c=$(COMPILE_LINK_ENVVAR) $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) -c
     47 COMPILE.cc=$(COMPILE_LINK_ENVVAR) $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c
     48 
     49 ## Commands for shared library (dll)
     50 SHLIB.c=$(COMPILE_LINK_ENVVAR) $(CC) --shared $(LDFLAGS)
     51 SHLIB.cc=$(COMPILE_LINK_ENVVAR) $(CXX) --shared $(LDFLAGS)
     52 
     53 ## Compiler switch to embed a runtime search path
     54 LD_RPATH=-I
     55 
     56 ## Environment variable to set a runtime search path
     57 LDLIBRARYPATH_ENVVAR = LIBPATH
     58 
     59 ## Versioned target for a shared library.
     60 FINAL_SO_TARGET=$(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO)
     61 MIDDLE_SO_TARGET=$(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO)
     62 
     63 ## Versioned import library names.
     64 IMPORT_LIB=$(basename $(notdir $(SO_TARGET))).x
     65 MIDDLE_IMPORT_LIB=$(basename $(notdir $(MIDDLE_SO_TARGET))).x
     66 FINAL_IMPORT_LIB=$(basename $(notdir $(FINAL_SO_TARGET))).x
     67 
     68 ## Non-shared intermediate object suffix
     69 STATIC_O = o
     70 
     71 ## ICU_PDS_NAME_PREFIX sets the prefix of the PDS dataset name while keeping the ICU version number.
     72 ## To use custom names set ICU_PDS_NAME and ICU_PDS_NAME_SUFFIX
     73 ifeq ($(ICU_PDS_NAME_PREFIX),)
     74 ICU_PDS_NAME_PREFIX=LICU
     75 endif
     76 ifeq ($(ICU_PDS_NAME),)
     77 PDS_FULL_NAME=${ICU_PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}
     78 else
     79 PDS_FULL_NAME=${ICU_PDS_NAME}
     80 endif
     81 BATCH_STUB_TARGET=${PDS_FULL_NAME}DA${ICU_PDS_NAME_SUFFIX}
     82 PKGDATA_DEFS+=-DU_LIBICUDATA_NAME=\"$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)\" -DBATCH_STUB_TARGET=\"$(BATCH_STUB_TARGET)\"
     83 BATCH_COMMON_TARGET=$(LIBDIR)/${PDS_FULL_NAME}UC${ICU_PDS_NAME_SUFFIX}
     84 BATCH_I18N_TARGET=$(LIBDIR)/${PDS_FULL_NAME}IN${ICU_PDS_NAME_SUFFIX}
     85 BATCH_IO_TARGET=$(LIBDIR)/${PDS_FULL_NAME}IO${ICU_PDS_NAME_SUFFIX}
     86 BATCH_LAYOUT_TARGET=$(LIBDIR)/${PDS_FULL_NAME}LE${ICU_PDS_NAME_SUFFIX}
     87 BATCH_LAYOUTEX_TARGET=$(LIBDIR)/${PDS_FULL_NAME}LX${ICU_PDS_NAME_SUFFIX}
     88 
     89 BATCH_LIBICUDT=$(top_builddir)/stubdata/${BATCH_STUB_TARGET}.x
     90 BATCH_LIBICUUC=${BATCH_COMMON_TARGET}.x
     91 BATCH_LIBICUI18N=${BATCH_I18N_TARGET}.x
     92 BATCH_LIBICULE=${BATCH_LAYOUT_TARGET}.x
     93 BATCH_LIBICULX=${BATCH_LAYOUTEX_TARGET}.x
     94 
     95 ## Link commands to link to ICU libs
     96 LIBICUDT=$(top_builddir)/stubdata/$(LIBICU)data$(ICULIBSUFFIX)$(STUB_SUFFIX)$(SO_TARGET_VERSION).x
     97 LIBICUUC=$(LIBDIR)/$(LIBICU)uc$(ICULIBSUFFIX)$(SO_TARGET_VERSION).x
     98 LIBICUI18N=$(LIBDIR)/$(LIBICU)i18n$(ICULIBSUFFIX)$(SO_TARGET_VERSION).x
     99 LIBICULX=$(LIBDIR)/$(LIBICU)lx$(ICULIBSUFFIX)$(SO_TARGET_VERSION).x
    100 LIBICUIO=$(LIBDIR)/$(LIBICU)io$(ICULIBSUFFIX)$(SO_TARGET_VERSION).x
    101 LIBCTESTFW=$(top_builddir)/tools/ctestfw/$(LIBICU)test$(ICULIBSUFFIX)$(SO_TARGET_VERSION).x
    102 LIBICUTOOLUTIL=$(LIBDIR)/$(LIBICU)tu$(ICULIBSUFFIX)$(SO_TARGET_VERSION).x
    103 
    104 ifneq (${ICUDATA_CHAR},e)
    105 #SH# if [ "$ICUDATA_CHAR" != "e" ]; then
    106 ## We're in ASCII mode.
    107 CFLAGS		+= -Wc,'ascii'
    108 CXXFLAGS	+= -Wc,'ascii'
    109 endif
    110 SO = so
    111 
    112 ## Special 390 rules
    113 
    114 ## Build archive from object
    115 %.a : $(OBJECTS)
    116 	$(AR) $(ARFLAGS) $@ $(OBJECTS)
    117 
    118 ## Compilation and dependency rules
    119 %.$(STATIC_O): $(srcdir)/%.c
    120 	$(call SILENT_COMPILE,$(strip $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS)) -MMD -MT "$*.d $*.o $*.$(STATIC_O)" -o $@ $<)
    121 %.o: $(srcdir)/%.c
    122 	$(call SILENT_COMPILE,$(strip $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS)) -MMD -MT "$*.d $*.o $*.$(STATIC_O)" -o $@ $<)
    123 %.$(STATIC_O): $(srcdir)/%.cpp
    124 	$(call SILENT_COMPILE,$(strip $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS)) -MMD -MT "$*.d $*.o $*.$(STATIC_O)" -o $@ $<)
    125 %.o: $(srcdir)/%.cpp
    126 	$(call SILENT_COMPILE,$(strip $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS)) -MMD -MT "$*.d $*.o $*.$(STATIC_O)" -o $@ $<)
    127 
    128 ## Versioned libraries rules
    129 %$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO)
    130 	$(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@
    131 %.$(SO): %$(SO_TARGET_VERSION).$(SO)
    132 	$(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@
    133 
    134 ## Install libraries as executable
    135 INSTALL-L=$(INSTALL_PROGRAM)
    136 
    137 ## End 390-specific setup