summaryrefslogtreecommitdiff
path: root/icu/makefile.mk
diff options
context:
space:
mode:
Diffstat (limited to 'icu/makefile.mk')
-rw-r--r--icu/makefile.mk286
1 files changed, 286 insertions, 0 deletions
diff --git a/icu/makefile.mk b/icu/makefile.mk
new file mode 100644
index 000000000000..b4a9d7dd3bbf
--- /dev/null
+++ b/icu/makefile.mk
@@ -0,0 +1,286 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+PRJ=.
+
+PRJNAME=icu
+TARGET=so_icu
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+
+.INCLUDE : icuversion.mk
+
+.IF "$(ICU_MICRO)"!="0"
+TARFILE_NAME=icu4c-$(ICU_MAJOR)_$(ICU_MINOR)_$(ICU_MICRO)-src
+TARFILE_MD5=2f6ecca935948f7db92d925d88d0d078
+.ELSE
+TARFILE_NAME=icu4c-$(ICU_MAJOR)_$(ICU_MINOR)-src
+TARFILE_MD5=
+.ENDIF
+TARFILE_ROOTDIR=icu
+
+PATCH_FILES=${TARFILE_NAME}.patch icu-mp.patch
+
+# ADDITIONAL_FILES=
+
+.IF "$(GUI)"=="UNX"
+.IF "$(COMNAME)"=="sunpro5"
+#.IF "$(BUILD_TOOLS)$/cc"=="$(shell +-which cc)"
+#CC:=$(COMPATH)$/bin$/cc
+#CXX:=$(COMPATH)$/bin$/CC
+#.ENDIF # "$(BUILD_TOOLS)$/cc"=="$(shell +-which cc)"
+.ENDIF # "$(COMNAME)"=="sunpro5"
+
+.IF "$(SYSBASE)"!=""
+icu_CFLAGS+=-I$(SYSBASE)$/usr$/include
+.IF "$(COMNAME)"=="sunpro5"
+icu_CFLAGS+=$(C_RESTRICTIONFLAGS)
+.ENDIF # "$(COMNAME)"=="sunpro5"
+# add SYSBASE libraries and make certain that they are found *after* the
+# icu build internal libraries - in case that icu is available in SYSBASE
+# as well
+icu_LDFLAGS+= -L../lib -L../../lib -L../stubdata -L../../stubdata -L$(SYSBASE)$/usr$/lib
+.ENDIF # "$(SYSBASE)"!=""
+
+.IF "$(OS)"=="MACOSX"
+.IF "$(EXTRA_CFLAGS)"!=""
+CPP:=gcc -E $(EXTRA_CFLAGS)
+CXX:=g++ $(EXTRA_CFLAGS)
+CC:=gcc $(EXTRA_CFLAGS)
+.EXPORT : CPP
+.ENDIF # "$(EXTRA_CFLAGS)"!=""
+.ENDIF # "$(OS)"=="MACOSX"
+
+icu_CFLAGS+=-O $(ARCH_FLAGS) $(EXTRA_CDEFS)
+icu_LDFLAGS+=$(EXTRA_LINKFLAGS)
+icu_CXXFLAGS+=-O $(ARCH_FLAGS) $(EXTRA_CDEFS)
+
+# remove conversion and transliteration data to reduce binary size.
+CONFIGURE_ACTION=rm data/mappings/ucm*.mk data/translit/trn*.mk ;
+
+# until someone introduces SOLARIS 64-bit builds
+.IF "$(OS)"=="SOLARIS"
+DISABLE_64BIT=--enable-64bit-libs=no
+.ENDIF # "$(OS)"=="SOLARIS"
+
+.IF "$(HAVE_LD_HASH_STYLE)" == "TRUE"
+LDFLAGSADD += -Wl,--hash-style=both
+.ENDIF
+
+.IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)" == "TRUE"
+LDFLAGSADD += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
+.ENDIF
+
+CONFIGURE_DIR=source
+
+CONFIGURE_ACTION+=sh -c 'CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS) $(LDFLAGSADD)" ./configure --enable-layout --enable-static --enable-shared=yes $(DISABLE_64BIT)'
+
+#CONFIGURE_FLAGS=--enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no
+CONFIGURE_FLAGS=
+
+# Use of
+# CONFIGURE_ACTION=sh -c 'CFLAGS=-O CXXFLAGS=-O ./configure'
+# CONFIGURE_FLAGS=--enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no
+# doesn't work as it would result in
+# sh -c 'CFLAGS=-O CXXFLAGS=-O ./configure' --enable-layout ...
+# note the position of the single quotes.
+
+BUILD_DIR=$(CONFIGURE_DIR)
+BUILD_ACTION=$(AUGMENT_LIBRARY_PATH) $(GNUMAKE) -j$(EXTMAXPROCESS)
+OUT2LIB= \
+ $(BUILD_DIR)$/lib$/libicudata$(DLLPOST).$(ICU_MAJOR)$(ICU_MINOR).$(ICU_MICRO) \
+ $(BUILD_DIR)$/lib$/libicudata$(DLLPOST).$(ICU_MAJOR)$(ICU_MINOR) \
+ $(BUILD_DIR)$/lib$/libicudata$(DLLPOST) \
+ $(BUILD_DIR)$/lib$/libicuuc$(DLLPOST).$(ICU_MAJOR)$(ICU_MINOR).$(ICU_MICRO) \
+ $(BUILD_DIR)$/lib$/libicuuc$(DLLPOST).$(ICU_MAJOR)$(ICU_MINOR) \
+ $(BUILD_DIR)$/lib$/libicuuc$(DLLPOST) \
+ $(BUILD_DIR)$/lib$/libicui18n$(DLLPOST).$(ICU_MAJOR)$(ICU_MINOR).$(ICU_MICRO) \
+ $(BUILD_DIR)$/lib$/libicui18n$(DLLPOST).$(ICU_MAJOR)$(ICU_MINOR) \
+ $(BUILD_DIR)$/lib$/libicui18n$(DLLPOST) \
+ $(BUILD_DIR)$/lib$/libicule$(DLLPOST).$(ICU_MAJOR)$(ICU_MINOR).$(ICU_MICRO) \
+ $(BUILD_DIR)$/lib$/libicule$(DLLPOST).$(ICU_MAJOR)$(ICU_MINOR) \
+ $(BUILD_DIR)$/lib$/libicule$(DLLPOST) \
+ $(BUILD_DIR)$/lib$/libicutu$(DLLPOST).$(ICU_MAJOR)$(ICU_MINOR).$(ICU_MICRO) \
+ $(BUILD_DIR)$/lib$/libicutu$(DLLPOST).$(ICU_MAJOR)$(ICU_MINOR) \
+ $(BUILD_DIR)$/lib$/libicutu$(DLLPOST)
+
+OUT2BIN= \
+ $(BUILD_DIR)$/bin$/genccode \
+ $(BUILD_DIR)$/bin$/genbrk \
+ $(BUILD_DIR)$/bin$/gencmn
+
+.ENDIF
+
+.IF "$(GUI)"=="WNT"
+CONFIGURE_DIR=source
+.IF "$(COM)"=="GCC"
+CONFIGURE_ACTION=rm data/mappings/ucm*.mk data/translit/trn*.mk ;
+.IF "$(MINGW_SHARED_GCCLIB)"=="YES"
+icu_LDFLAGS+=-shared-libgcc
+.ENDIF
+.IF "$(USE_MINGW)"=="cygwin"
+icu_LDFLAGS+=-L$(COMPATH)/lib/mingw -L$(COMPATH)/lib/w32api
+.ENDIF
+icu_LDFLAGS+=-L$(COMPATH)$/lib
+icu_LIBS=
+.IF "$(MINGW_SHARED_GXXLIB)"=="YES"
+icu_LIBS+=$(MINGW_SHARED_LIBSTDCPP)
+.ENDIF
+icu_LDFLAGS+=-Wl,--enable-runtime-pseudo-reloc-v2
+CONFIGURE_ACTION+=sh -c 'CFLAGS="-O -D_MT" CXXFLAGS="-O -D_MT" LDFLAGS="$(icu_LDFLAGS)" LIBS="$(icu_LIBS)" ./configure --build=i586-pc-mingw32 --enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no'
+
+#CONFIGURE_FLAGS=--enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no
+CONFIGURE_FLAGS=
+
+# Use of
+# CONFIGURE_ACTION=sh -c 'CFLAGS=-O CXXFLAGS=-O ./configure'
+# CONFIGURE_FLAGS=--enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no
+# doesn't work as it would result in
+# sh -c 'CFLAGS=-O CXXFLAGS=-O ./configure' --enable-layout ...
+# note the position of the single quotes.
+
+BUILD_DIR=$(CONFIGURE_DIR)
+BUILD_ACTION=$(GNUMAKE)
+OUT2LIB=
+
+OUT2BIN= \
+ $(BUILD_DIR)$/lib$/icudt$(ICU_MAJOR)$(ICU_MINOR)$(DLLPOST) \
+ $(BUILD_DIR)$/lib$/icuuc$(ICU_MAJOR)$(ICU_MINOR)$(DLLPOST) \
+ $(BUILD_DIR)$/lib$/icuin$(ICU_MAJOR)$(ICU_MINOR)$(DLLPOST) \
+ $(BUILD_DIR)$/lib$/icule$(ICU_MAJOR)$(ICU_MINOR)$(DLLPOST) \
+ $(BUILD_DIR)$/lib$/icutu$(ICU_MAJOR)$(ICU_MINOR)$(DLLPOST) \
+ $(BUILD_DIR)$/bin$/genccode.exe \
+ $(BUILD_DIR)$/bin$/genbrk.exe \
+ $(BUILD_DIR)$/bin$/gencmn.exe
+
+.ELSE
+BUILD_DIR=source
+.IF "full_debug" == ""
+
+# Activating the debug mechanism produces incompatible libraries, you'd have
+# at least to relink all modules that are directly using ICU. Note that library
+# names get a 'd' appended and you'd have to edit the solenv/inc/libs.mk
+# ICU*LIB macros as well. Normally you don't want all this.
+#
+# Instead, use the normal already existing Release build and edit the
+# corresponding *.vcproj file of the section you're interested in. Make sure
+# that
+# - for the VCCLCompilerTool section the following line exists:
+# DebugInformationFormat="3"
+# - and for the VCLinkerTool the line
+# GenerateDebugInformation="TRUE"
+# Then delete the corresponding Release output directory, and delete the target
+# flag files
+# $(OUTPATH)/misc/build/so_built_so_icu
+# $(OUTPATH)/misc/build/so_predeliver_so_icu
+# and run dmake again, after which you may copy the resulting libraries to your
+# OOo/SO installation.
+ICU_BUILD_VERSION=Debug
+ICU_BUILD_LIBPOST=d
+.ELSE
+ICU_BUILD_VERSION=Release
+ICU_BUILD_LIBPOST=
+.ENDIF
+
+CONFIGURE_ACTION+= $(PERL) ..$/..$/..$/..$/..$/createmak.pl ..$/..$/..$/..$/..$/createmak.cfg .
+
+.IF "$(CCNUMVER)"<="001400000000"
+BUILD_ACTION=cd allinone && nmake /f all.mak EXFLAGS="-EHsc" && cd ..$/..
+.ELSE
+BUILD_ACTION=cd allinone && nmake /f all.mak EXFLAGS="-EHa -Zc:wchar_t-" && cd ..$/..
+.ENDIF
+
+OUT2LIB= \
+ $(BUILD_DIR)$/..$/lib$/icudata.lib \
+ $(BUILD_DIR)$/..$/lib$/icuin$(ICU_BUILD_LIBPOST).lib \
+ $(BUILD_DIR)$/..$/lib$/icuuc$(ICU_BUILD_LIBPOST).lib \
+ $(BUILD_DIR)$/..$/lib$/icule$(ICU_BUILD_LIBPOST).lib \
+ $(BUILD_DIR)$/..$/lib$/icutu$(ICU_BUILD_LIBPOST).lib
+
+OUT2BIN= \
+ $(BUILD_DIR)$/..$/bin$/icudt$(ICU_MAJOR)$(ICU_MINOR).dll \
+ $(BUILD_DIR)$/..$/bin$/icuin$(ICU_MAJOR)$(ICU_MINOR)$(ICU_BUILD_LIBPOST).dll \
+ $(BUILD_DIR)$/..$/bin$/icuuc$(ICU_MAJOR)$(ICU_MINOR)$(ICU_BUILD_LIBPOST).dll \
+ $(BUILD_DIR)$/..$/bin$/icule$(ICU_MAJOR)$(ICU_MINOR)$(ICU_BUILD_LIBPOST).dll \
+ $(BUILD_DIR)$/..$/bin$/icutu$(ICU_MAJOR)$(ICU_MINOR)$(ICU_BUILD_LIBPOST).dll \
+ $(BUILD_DIR)$/..$/bin$/genccode.exe \
+ $(BUILD_DIR)$/..$/bin$/genbrk.exe \
+ $(BUILD_DIR)$/..$/bin$/gencmn.exe
+
+.ENDIF
+.ENDIF # "$(GUI)"=="WNT"
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : set_ext.mk
+.INCLUDE : target.mk
+.INCLUDE : tg_ext.mk
+
+.IF "$(BINARY_PATCH_FILES)"!=""
+
+$(PACKAGE_DIR)$/so_add_binary : $(PACKAGE_DIR)$/$(ADD_FILES_FLAG_FILE)
+ cd $(PACKAGE_DIR) && gunzip -c $(BACK_PATH)$(BINARY_PATCH_FILES) | tar -xvf -
+ $(TOUCH) $(PACKAGE_DIR)$/so_add_binary
+
+$(PACKAGE_DIR)$/$(CONFIGURE_FLAG_FILE) : $(PACKAGE_DIR)$/so_add_binary
+
+.ENDIF
+
+.IF "$(GUI)$(COM)"=="WNTGCC"
+ALLTAR : \
+ $(LB)$/icudata.lib \
+ $(LB)$/icuin$(ICU_BUILD_LIBPOST).lib \
+ $(LB)$/icuuc$(ICU_BUILD_LIBPOST).lib \
+ $(LB)$/icule$(ICU_BUILD_LIBPOST).lib \
+ $(LB)$/icutu$(ICU_BUILD_LIBPOST).lib
+
+$(LB)$/icudata.lib : $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
+ $(TOUCH) $@
+
+$(LB)$/icuin$(ICU_BUILD_LIBPOST).lib : $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
+ $(TOUCH) $@
+
+$(LB)$/icuuc$(ICU_BUILD_LIBPOST).lib : $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
+ $(TOUCH) $@
+
+$(LB)$/icule$(ICU_BUILD_LIBPOST).lib : $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
+ $(TOUCH) $@
+
+$(LB)$/icutu$(ICU_BUILD_LIBPOST).lib : $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
+ $(TOUCH) $@
+.ENDIF
+
+# Since you never know what will be in a patch (for example, it may already
+# patch at configure level) or in the case of a binary patch, we remove the
+# entire package directory if a patch is newer.
+# Changes in this makefile could also make a complete build necessary if
+# configure is affected.
+$(PACKAGE_DIR)$/$(UNTAR_FLAG_FILE) : makefile.mk
+