summaryrefslogtreecommitdiff
path: root/icu
diff options
context:
space:
mode:
authorHans-Joachim Lankenau <hjs@openoffice.org>2009-03-24 11:56:29 +0000
committerHans-Joachim Lankenau <hjs@openoffice.org>2009-03-24 11:56:29 +0000
commit7e99702f8e6a692ff8bcbfcfc1d81d2bd784584b (patch)
tree28b05f25877a4c2a545f1c23139c911e9f83fb00 /icu
parenteff57ef93e3d0d08eb19ff50440e05d6224a85a5 (diff)
CWS-TOOLING: integrate CWS obo36
2009-03-19 14:29:45 +0100 obo r269745 : #i71528#,#i96957# new build process for windows 2009-01-23 10:47:46 +0100 obo r266788 : CWS-TOOLING: rebase CWS obo36 to trunk@266428 (milestone: DEV300:m39)
Diffstat (limited to 'icu')
-rw-r--r--icu/createmak.cfg455
-rw-r--r--icu/createmak.pl1117
-rw-r--r--icu/makefile.mk10
-rw-r--r--icu/makefiles.zipbin92150 -> 0 bytes
4 files changed, 1577 insertions, 5 deletions
diff --git a/icu/createmak.cfg b/icu/createmak.cfg
new file mode 100644
index 000000000000..a06f0550f7c7
--- /dev/null
+++ b/icu/createmak.cfg
@@ -0,0 +1,455 @@
+[Copy]
+SOURCE=<HEADER>
+InputPath=<INPUTPATH>
+"<TARGET>" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ <<tempfile.bat
+ @echo off
+ <TARGETPATH>
+<<
+
+[Deps]
+SOURCE=.\<SOURCEFILE>.<EXT>
+"$(INTDIR)\<SOURCEFILE>.obj": $(SOURCE) "$(INTDIR)" <HEADER_LIST>
+
+[Cpp]
+CPP=cl.exe
+[Link]
+LINK32=link.exe
+[CDefs_Common]
+
+[RSC_Template]
+RSC=rc.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\<FILEOUT>.res" /i "..\common" /d "NDEBUG"
+SOURCE=<FILE>
+"$(INTDIR)\<FILEOUT>.res" : $(SOURCE) "$(INTDIR)"
+ $(RSC) $(RSC_PROJ) $(SOURCE)
+
+[General_CFlags]
+CPP_PROJ_INCLUDES=<AddIncDirs>
+CDEFS=<PreProcDefs>
+COPT=-nologo -O2 -Ob2
+CPDBOBJ=-FD -Fo"$(INTDIR)\\" -Fd"$(INTDIR)\\"
+CTOOLSFLAGS=-nologo -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+CDEF1FLAGS= -D "_WINDOWS" -D "_MBCS"
+
+[CFlags_common]
+CPP_PROJ=-nologo -MD -Za -Zi -W3 -GF -O2 -Ob2 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+
+[CFlags_i18n]
+CPP_PROJ=-MD -W3 -Oi -Op -GF -FD -GS -Gy -Za -Zi $(EXCEPTIONSWITCH) $(COPT) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/i18n.pch" $(CPDBOBJ) -c
+
+[CFlags_extra_uconv]
+CPP_PROJ=-MD -W3 -Op -GF -Gy $(EXCEPTIONSWITCH) $(COPT) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/uconv.pch" $(CPDBOBJ) -c
+
+[CFlags_layout]
+CPP_PROJ=-Za -GF -Gy -W3 $(EXCEPTIONSWITCH) -O2 $(CPP_PROJ_INCLUDES) $(CDEFS) -D "LAYOUT_EXPORTS" -D "_WINDOWS" -D "_MBCS" -D "_USRDLL" $(CPDBOBJ) -c
+
+[CFlags_io]
+CPP_PROJ=-Za -GF -Gy -W3 $(EXCEPTIONSWITCH) -O2 $(CPP_PROJ_INCLUDES) $(CDEFS) -D "LAYOUT_EXPORTS" -D "_WINDOWS" -D "_MBCS" -D "_USRDLL" $(CPDBOBJ) -c
+
+[CFlags_layoutex]
+CPP_PROJ=-MT -W3 -Op -GF -Gy $(EXCEPTIONSWITCH) $(COPT) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/layoutex.pch" $(CPDBOBJ) -c
+
+[CFlags_stubdata]
+CPP_PROJ=-MD -W3 -Op -GF -Gy -Za $(EXCEPTIONSWITCH) $(COPT) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/stubdata.pch" $(CPDBOBJ) -c
+
+[CFlags_test_cintltst]
+CPP_PROJ=-MT -Za -O2 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+
+[CFlags_test_intltest]
+CPP_PROJ=-nologo -MT -Za -Zi -Ox -Ob0 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+
+[CFlags_test_iotest]
+CPP_PROJ=-nologo -MD -Za -Zi -Ox -Ob0 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+
+[CFlags_test_letest]
+CPP_PROJ=-nologo -MD -Za -Zi -Ox -Ob0 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+
+[CFlags_tools_ctestfw]
+CPP_PROJ=-nologo -MD -O2 -Op -FD -Za -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/icutest.pch" $(CPDBOBJ) -c
+
+[CFlags_tools_genbrk]
+CPP_PROJ=-nologo -MD -Za -O2 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+
+[CFlags_tools_gencase]
+CPP_PROJ=-nologo -MD -GF -Za -Zi -W3 $(EXCEPTIONSWITCH) $(COPT) $(CPDBOBJ) -c
+
+[CFlags_tools_genccode]
+CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_gencmn]
+CPP_PROJ=-O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_genctd]
+CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_gencnval]
+CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_gennames]
+CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_gennorm]
+CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_genpname]
+CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_genprops]
+CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_genrb]
+CPP_PROJ=-Za $(CTOOLSFLAGS)
+
+[CFlags_tools_genrb.derb]
+CPP_PROJ=-Za -GX $(CTOOLSFLAGS)
+
+[CFlags_tools_gensprep]
+CPP_PROJ=-Za $(CTOOLSFLAGS)
+
+[CFlags_tools_gentest]
+CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_genuca]
+CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_gencase]
+CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_genbidi]
+CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_icupkg]
+CPP_PROJ=-O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_icuswap]
+CPP_PROJ=-O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_makeconv]
+CPP_PROJ=-Za $(CTOOLSFLAGS)
+
+[CFlags_tools_pkgdata]
+CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_toolutil]
+CPP_PROJ=-MD -O2 $(CTOOLSFLAGS)
+
+[CommonLinkFlags]
+PDBOUT=/pdb:"<PDBFILE>" /out:"<OUTFILE>"
+COMMONLINKFLAGS=/incremental:no /machine:I386 /nologo $(PDBOUT)
+COMMONLINKFLAGS_CONSOLE=$(COMMONLINKFLAGS) /subsystem:console
+COMMONLINKFLAGS_DLL=$(COMMONLINKFLAGS) /dll
+
+[LinkFlags_common]
+LINK32_FLAGS=icudata.lib kernel32.lib user32.lib advapi32.lib shell32.lib $(COMMONLINKFLAGS_DLL) /base:"0x4a800000" /implib:"$(OUTDIR)\icuuc.lib" /libpath:"..\..\lib"
+
+[LinkFlags_i18n]
+LINK32_FLAGS=icuuc.lib $(COMMONLINKFLAGS_DLL) /base:"0x4a900000" /implib:"$(OUTDIR)\icuin.lib" /libpath:"..\..\lib"
+
+[LinkFlags_extra_uconv]
+LINK32_FLAGS=icuuc.lib icuin.lib uconvmsg.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib" /libpath:"Release"
+
+[LinkFlags_layout]
+LINK32_FLAGS=..\..\lib\icuuc.lib $(COMMONLINKFLAGS_DLL) /implib:"$(OUTDIR)\icule.lib"
+
+[LinkFlags_io]
+LINK32_FLAGS=icuuc.lib icuin.lib $(COMMONLINKFLAGS_DLL) /libpath:"..\..\lib" /implib:"$(OUTDIR)\icuio.lib"
+
+[LinkFlags_layoutex]
+LINK32_FLAGS=..\..\lib\icuuc.lib ..\..\lib\icule.lib $(COMMONLINKFLAGS_DLL) /implib:"$(OUTDIR)\iculx.lib"
+
+[LinkFlags_stubdata]
+LINK32_FLAGS=kernel32.lib user32.lib /nologo /dll /incremental:yes /machine:I386 $(PDBOUT) /implib:"..\..\lib\icudata.lib"
+
+[LinkFlags_test_cintltst]
+LINK32_FLAGS=icuuc.lib icuin.lib icutest.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib\\"
+
+[LinkFlags_test_intltest]
+LINK32_FLAGS=$(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib"
+
+[LinkFlags_test_iotest]
+LINK32_FLAGS=icuuc.lib icuin.lib icutu.lib icuio.lib icutest.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib"
+
+[LinkFlags_test_letest]
+LINK32_FLAGS=icuuc.lib icuin.lib icutu.lib icule.lib iculx.lib icutest.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_ctestfw]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_DLL) /implib:"$(OUTDIR)\icutest.lib" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genbrk]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gencmn]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genctd]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gencnval]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genccode]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gennames]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gennorm]
+LINK32_FLAGS=icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genpname]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genprops]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genrb]
+LINK32_FLAGS=icuin.lib icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genrb.derb]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gensprep]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gentest]
+LINK32_FLAGS=icuuc.lib icutu.lib icutest.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genuca]
+LINK32_FLAGS=icuin.lib icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gencase]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genbidi]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_icupkg]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_icuswap]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_makeconv]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_pkgdata]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"../toolutil/release" /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_toolutil]
+LINK32_FLAGS=kernel32.lib ..\..\..\lib\icuin.lib $(COMMONLINKFLAGS_DLL) /NODEFAULTLIB:libcmt /implib:"$(OUTDIR)\icutu.lib" /libpath:"..\..\..\lib"
+
+[LinkTemplate]
+<OUTFILE> : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+ if exist $@.manifest mt.exe -manifest $@.manifest -outputresource:$@;<MANIFEST>
+
+[AdditionalLinkObjects_common]
+ $(OUTDIR)\icudata.lib
+
+[AdditionalLinkObjects_i18n]
+ "$(OUTDIR)\icuuc.lib"
+
+[AdditionalLinkObjects_extra_uconv]
+ "$(INTDIR)\uconvmsg.lib" \
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icuin.lib"
+
+[AdditionalLinkObjects_layout]
+ "$(OUTDIR)\icuuc.lib"
+
+[AdditionalLinkObjects_io]
+ "$(OUTDIR)\icuuc.lib"
+
+[AdditionalLinkObjects_layoutex]
+ "$(OUTDIR)\icuuc.lib" \
+ "$(OUTDIR)\icuin.lib" \
+ "$(OUTDIR)\icule.lib"
+
+[AdditionalLinkObjects_test_cintltst]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutest.lib" \
+ "..\..\..\lib\icuin.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_test_intltest]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutest.lib" \
+ "..\..\..\lib\icuin.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_test_letest]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutest.lib" \
+ "..\..\..\lib\icuin.lib" \
+ "..\..\..\lib\icule.lib" \
+ "..\..\..\lib\iculx.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genbrk]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genccode]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_gencmn]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genctd]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_gencnval]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_gennames]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_gennorm]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genpname]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genprops]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genrb]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icuin.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genrb.derb]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icudata.lib"
+
+[AdditionalLinkObjects_tools_gensprep]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_gentest]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genuca]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icuin.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_gencase]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genbidi]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_icupkg]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_icuswap]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_makeconv]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_pkgdata]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_toolutil]
+ "$(OUTDIR)\icuuc.lib"
+
+
+[Rules]
+.c{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.c{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+[AllTargetTools]
+ALL : "$(OUTDIR)\<MAKFILE>.exe" ".\<RELPATH>\bin\<MAKFILE>.exe"
+
+[AllInOnePrj]
+<PRJ> :
+ cd "$(MAKEDIR)\<PRJDIR>"
+ $(MAKE) /$(MAKEFLAGS) /F <PRJMAK> EXCEPTIONSWITCH="$(EXFLAGS)"
+ cd "<ALLINONEDIR>"
+
+[HeadSectionCommon]
+NULL=
+!IF "$(CFG)" == "<MAKFILE> - Win32 Release"
+
+OUTDIR=<OUTDIR>
+INTDIR=<INTDIR>
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/\$(NULL)" mkdir "$(OUTDIR)"
+
+"$(INTDIR)" :
+ if not exist "$(INTDIR)/\$(NULL)" mkdir "$(INTDIR)"
+
+!IF "$(CFG)" == "<MAKFILE> - Win32 Release"
+
+ALL : <ALLTARGETS>
+
+[Special_stubdata]
+<OUTFILE> : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ @if not exist "..\..\bin" mkdir "..\..\bin"
+ @if not exist "..\..\lib" mkdir "..\..\lib"
+ @if not exist "..\..\include" mkdir "..\..\include"
+ @if not exist "..\..\include\unicode" mkdir "..\..\include\unicode"
+ @if not exist "..\..\include\layout" mkdir "..\..\include\layout"
+ echo "File with stubdata build time, used as a dependency to trigger fresh data build, since stubdata dll will overwrite the real one." > .\stubdatabuilt.txt
+ $(LINK32) $(LINK32_FLAGS) $(LINK32_OBJS)
+
+[Special_extra_uconv]
+SOURCE=.\makedata.mak
+InputPath=.\makedata.mak
+
+"$(INTDIR)\uconvmsg.lib" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ <<tempfile.bat
+ @echo off
+ nmake /nologo /f makedata.mak icup=.\..\..\.. CFG=Release
+<<
+
+
+
+[End] \ No newline at end of file
diff --git a/icu/createmak.pl b/icu/createmak.pl
new file mode 100644
index 000000000000..5558c9415bfb
--- /dev/null
+++ b/icu/createmak.pl
@@ -0,0 +1,1117 @@
+:
+eval 'exec perl -wS $0 ${1+"$@"}'
+ if 0;
+#*************************************************************************
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# $RCSfile: checksize.pl,v $
+#
+# $Revision: 1.3 $
+#
+# last change: $Author: rt $ $Date: 2006/04/21 10:48:45 $
+#
+# The Contents of this file are made available subject to
+# the terms of GNU Lesser General Public License Version 2.1.
+#
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2005 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library 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 for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#*************************************************************************
+#
+use XML::Parser;
+# ------------------------------------------------------------------------
+# Other global stuff
+$is_debug=0;
+my $path = $ENV{'INPATH'} . "/";
+my $quot = '"';
+my %template_hash=();
+my %vcproj_hash=();
+# ------------------------------------------------------------------------
+# Global stuff for parsing the *.vcproj files (XML::Parser)
+#
+my $ConfigurationGlobal = 1; # Release = 1, Debug=0
+my $Configuration = undef;
+my %configelements = ();
+my %files = ();
+my %files2copy = ();
+my %files_special = ();
+my $Release = 1;
+ # Release = 1, Debug = 0, undef = 2
+my $file_tmp = ""; # temporary storage for file name
+my $CustomSection = 0;
+# ------------------------------------------------------------------------
+# ------------------------------------------------------------------------
+# e.g. %object_hash with Key = blabla.cpp
+# contains a Hash:
+# Header: "..\\common\\unicode\\utypes.h ..\\common\\unicode\\uset.h"
+# CFlags: Common (set in templates file) or special sequence
+# CDefs: Common (set in templates file) or special sequence
+# ------------------------------------------------------------------------
+my $configfile = shift;
+my $sourcePath = shift;
+if ( !$configfile ) {
+ $configfile = "createmak.cfg";
+}
+if ( !$sourcePath ) {
+ $inpath = $ENV{"INPATH"};
+ $sourcePath = $inpath . "\\misc\\build\\icu\\source";
+}
+$dir = "";
+$header = "";
+$sep = "\\\\";
+
+%project_by_id =();
+%project_by_name = ();
+%project_dependencies = ();
+my @builddeps = prepare_allinone_all_mak(\%project_by_id,\%project_by_name,\%project_dependencies,$sourcePath);
+
+fillTemplateHash($configfile);
+
+create_allinone_all_mak(\@builddeps,\%project_by_id,$sourcePath);
+my @dirs = ();
+foreach $projectname(keys %project_by_name)
+{
+ my $dir = $project_by_name{$projectname}[1];
+ $dir =~ /\.\.\\(.+)\\(.+)\.vcproj/;
+ my $dir1 = $1;
+ my $dir2 = $2;
+ if ( $dir1 !~ /$dir2$/ ) {
+ $dir1 .= "\.$dir2";
+ }
+ print "$dir1 - $dir2\n" if ($is_debug);
+ push @dirs, $dir1;
+}
+
+# set nonpro switch (linking against debug runtime if nonpro=1)
+my $nonpro = ($ENV{"PROEXT"} ne ".pro");
+print "Non Product Build" if ($nonpro);
+
+foreach $dir(@dirs)
+{
+ next if ($dir eq "data.makedata"); # very special don't overwrite this file
+ # ------------------------------------------------------------------------
+ # Reset global stuff for parsing the *.vcproj files (XML::Parser)
+ #
+ $Configuration = $ConfigurationGlobal; # Release = 1, Debug=0
+ %configelements = ();
+ %files = ();
+ # contains all relevant *.c,*.cpp,*.h,*.rc files
+ %files2copy = ();
+ %files_special = ();
+ $Release = 2;
+ # Release = 1, Debug = 0, undef = 2
+ $file_tmp = ""; # temporary storage for file name
+ $CustomSection = 0;
+ # ------------------------------------------------------------------------
+
+ my $extra_mak = "";
+ ($dir, $extra_mak) = handle_extra_mak_files($dir); # handle e.g. tools/genrb.derb entires
+
+ my @mak=(); # Array for make file *.mak
+ my %deps=();
+ my %object_hash=();
+ my %collected_header=();
+ my %collect_header_target_hash=();
+ my %collect_object_target_hash=();
+ my $vcproj_file = "";
+ my $resource_file = "";
+
+ # $dir : common,i18n,...
+ chomp $dir;
+ next if ( $dir eq "" );
+ my $fullpath = $sourcePath . "\\" . $dir;
+ if ( $extra_mak eq "" ) {
+ if ($dir =~ /(.+)+\\(.+)$/)
+ {
+ $vcproj_file = $fullpath ."\\$2.vcproj";
+ } else
+ {
+ $vcproj_file = $fullpath ."\\$dir.vcproj";
+ }
+ } else
+ {
+ $vcproj_file = $fullpath . "\\" . $extra_mak . ".vcproj";
+ }
+
+
+ # Parse the *.vcproj file
+ my $parser = new XML::Parser(ErrorContext => 2);
+ $parser->setHandlers(Start => \&start_handler,
+ Char => \&char_handler);
+ $parser->parsefile($vcproj_file);
+ if ( $file_tmp ) {
+ # save a file which hasn't been saved yet
+ $files{ $file_tmp } = 1; # save it now
+ $file_tmp = ""; # has been saved now reset it
+ }
+
+ # is there a resource file?
+ foreach $i (keys %files)
+ {
+ if ($i =~ /\.rc/)
+ {
+ $resource_file = $i;
+ }
+ }
+ # Fill hash %deps for dependencies for all files in directory ($testdir)
+ # %files contains all relevant files from *.vcproj
+
+ getAllFilesDeps($fullpath,\%deps,\%files);
+ my $includedir = $configelements{"Release"}{"OutputDirectory"}; # e.g. OutputDirectory = ..\..\lib
+ $includedir =~ s/lib/include/;
+ foreach $file( sort keys %deps)
+ {
+ $file =~ /(.+)\.(.+)/;
+ my $name = $1;
+ my $ext = $2;
+ next if (!defined $name);
+ $object = "\$(INTDIR)\\" . "$name.obj";
+ $collect_object_target_hash{$object}=1;
+
+ createMakDepSection($dir,$name,$ext,$deps{$file},\@mak,\%files_special);
+ }
+ my %all_target_hash=();
+ foreach $header(sort keys %files2copy)
+ {
+ my $dir;
+ my $file;
+ #$pathdepth = "..\\..";
+ $file = $header;
+ $header =~ s/^\.\\//;
+ $inputpath = $file;
+ $target = $includedir . "\\" . $header;
+ $target =~ /.+\\(.+)\\.+$/;
+ $targetpath = $configelements{"Release"}{"CommandLine"};
+ chomp $targetpath;
+ # set %all_target_hash and @mak
+ createCopySection($file,$inputpath,$target,$targetpath,\@mak,\%all_target_hash);
+ $collect_header_target_hash{$target}=1;
+ }
+ my $test = $configelements{"Release"}{"OutputFile"};
+ $all_target_hash{$test}=1;
+
+ # set name of the *.mak file
+ my $mak_file="";
+ if ( $extra_mak eq "" ) {
+ $mak_file = $vcproj_file;
+ $mak_file =~ s/vcproj/mak/;
+ } else
+ {
+ # extra_mak eg. derb, stringperf
+ $mak_file = $fullpath . "\\$extra_mak" . "\.mak";
+ }
+
+ # generate the content of the *.mak file
+ # in @mak array
+ print "extra_mak=$extra_mak\n" if ($is_debug);
+ print "mak_file=$mak_file\n" if ($is_debug);
+ open(MAKFILE, ">$mak_file") || die "Can't open $mak_file\n";
+ print_all_target($fullpath, \%all_target_hash);
+
+ # $extra_mak handles further *.mak files in a directory
+ print_flags($dir,$extra_mak,'CFlags',$nonpro); # depends on directory
+ print_simple_flag("Rules");
+ print_simple_flag("Link");
+ print_common_linkflags();
+# print_flags($fullpath,$extra_mak,'LinkFlags'); # depends on directory
+# print_lib32_objs($fullpath,$extra_mak,\%collect_object_target_hash,$resource_file);
+ print_flags($dir,$extra_mak,'LinkFlags'); # depends on directory
+ print_lib32_objs($dir,$extra_mak,\%collect_object_target_hash,$resource_file);
+
+ # write @mak array into the *.mak file
+ foreach $line(@mak)
+ {
+ print MAKFILE $line;
+ }
+ $|=1;
+ print "."; # user entertainment
+ $|=0;
+}
+print "\ndone\n";
+exit;
+
+############################################################################
+sub getKey #01.04.2008 09:46
+############################################################################
+ {
+ my $line = shift;
+ $line =~ /\[(.+)\]/;
+ return $1;
+} ##getKey
+
+############################################################################
+sub fillTemplateHash #01.04.2008 10:48
+############################################################################
+ {
+ my $file = shift;
+ open (TEMPLATE, "< $file") || die "Can't open template file $file\n";
+ my $key = "";
+ while ( $line=<TEMPLATE> ) {
+ if ( $line =~ /\[.+\]/ ) {
+ print $line if ($is_debug);
+ if ( $key ne "" ) {
+ $template_hash{$key}=[@cmdlines];
+ @cmdlines="";
+ $key="";
+ }
+ $key = getKey( $line );
+ } else
+ {
+ push @cmdlines, $line;
+ }
+ } # while
+} ##fillTemplateHash
+
+############################################################################
+sub createCopySection #01.04.2008 11:37
+############################################################################
+ {
+ my $header = shift;
+ my $inputpath = shift;
+ my $target = shift;
+ my $targetpath = shift;
+ my $ref_make_file = shift; # Array written later to make file *.mak
+ my $ref_all_target_hash = shift; # reference to fill all_target_hash;
+ if ( $target !~ /\\include/ && $target !~ /\\bin/) {
+ return; # $target contains nonsense
+ }
+ if ( !$targetpath ) {
+ # $targetpath is empty! (Due to missing entry in *.vcproj file)
+ # Generate $targetpath here from $target
+ my $t = $target;
+ $t =~ /(.+)\\(.+)$/;
+ $targetpath = "copy \"\$(InputPath)\" " . $1;
+ chomp $targetpath;
+ }
+ $targetpath =~ s/\r$//; # remove x0A from EOL if the is one
+ my @template = @{$template_hash{"Copy"}};
+ my $line = "";
+ foreach $line(@template)
+ {
+ $line =~ s/<HEADER>/$header/g;
+ $line =~ s/<INPUTPATH>/$inputpath/g;
+ $line =~ s/<TARGET>/$target/g;
+ $line =~ s/<TARGETPATH>/$targetpath/;
+ push @{$ref_make_file}, $line; # from template
+ $$ref_all_target_hash{$target} = 1; # "\"$target\" ";
+ # save for target ALL:
+ }
+} ##createCopySection
+
+############################################################################
+sub createMakDepSection #01.04.2008 13:36
+############################################################################
+ {
+ # creates the dependency section in the make file
+ my $dir = shift;
+ my $source = shift;
+ my $extension = shift;
+ my $ref_header_list = shift;
+ my $ref_make_file = shift; # Array written later to make file *.mak
+ my $ref_special_file = shift; # hash for special files (compiler flags, include paths)
+ my $header_list = "";
+ my $special_flag = 0;
+
+ return if ( !defined $source );
+ foreach $header(@{$ref_header_list})
+ {
+ if ( ($header =~ /^\.\.\\.+/) && (-e $header )) {
+ $header_list = $header_list . " " . $header; # this header is located in an other directory
+ } else
+ {
+ $header_list = $header_list . " .\\" . $header;
+ }
+ }
+
+ #special handling
+ # compile this file with other compiler switches
+ my $file = $source . "\." . $extension;
+ $dir =~ s/\\/_/;
+ my @template = @{$template_hash{"CFlags_$dir"}};
+ if ( defined $$ref_special_file{"AdditionalIncludeDirectories"}{$file} ) {
+ $special_flag = 1;
+ my $includepath = $$ref_special_file{"AdditionalIncludeDirectories"}{$file};
+ $includepath =~ s/\;/\/I /g; # subst ; with /I for multiple paths
+ $line = "CPP_SWITCH_INCLUDE=/I $includepath\n";
+ push @{$ref_make_file}, $line;
+ foreach $line(@template)
+ {
+ if ( $line =~ /CPP_PROJ/)
+ {
+ $line =~ s/CPP_PROJ=/CPPX_PROJ=/;
+ $line =~ s/\$\(CDEFS\)/\$\(CDEFS\) \$\(CPP_SWITCH_INCLUDE\)/; # include $(CPP_SWITCH_INCLUDE)
+ push @{$ref_make_file}, $line;
+ }
+ }
+ }
+ if ( $$ref_special_file{"DisableLanguageExtensions"}{$file} )
+ {
+ # FALSE = /Ze
+ $special_flag = 1;
+ foreach $line(@template)
+ {
+ if ( $line =~ /CPP_PROJ/)
+ {
+ $line =~ s/CPP_PROJ=/CPPX_PROJ=/;
+ $line =~ s/-Za/-Ze/;
+ if ( $nonpro )
+ {
+ # if non product link against debug libraries
+ $line =~ s/-MD/-MDd/;
+ $line =~ s/-MT/-MTd/;
+ }
+ push @{$ref_make_file}, $line;
+ }
+ }
+ }
+
+ @template = @{$template_hash{"Deps"}};
+ my $line = "";
+ foreach $line(@template)
+ {
+ $line =~ s/<SOURCEFILE>/$source/g;
+ $line =~ s/<EXT>/$extension/g;
+ $line =~ s/<HEADER_LIST>/$header_list/g;
+ push @{$ref_make_file}, $line;
+ }
+
+ if ( $special_flag )
+ {
+ pop @{$ref_make_file}; # remove empty line
+ push @{$ref_make_file},"\t\$(CPP) @<<\n";
+ push @{$ref_make_file},"\t\$(CPPX_PROJ) \$(SOURCE)\n";
+ push @{$ref_make_file},"<<\n\n";
+ $special_flag = 0;
+ }
+
+} ##createMakDepSection
+
+
+############################################################################
+sub getFilenameFromPath #10.04.2008 13:03
+############################################################################
+{
+ my $path = shift;
+ $path =~ /.+\\(.+)$/;
+ return $1;
+} ##getFilenameFromPath
+
+############################################################################
+sub getAllFilesDeps #08.04.2008 09:39
+############################################################################
+{
+ my $path = shift;
+ my $ref_deps = shift;
+ my $ref_allfiles = shift; # contains all relevant files from *.vcproj
+ my %local_header_hash=(); # contains all local header
+
+ my @all_files = keys %{$ref_allfiles};
+
+ # collect lokal header names in %header_hash
+ foreach $file(@all_files)
+ {
+ if ( $file =~ /.+\.h/ ) {
+ chomp $file;
+ $local_header_hash{$file} = 1;
+ }
+ }
+
+ foreach $file(@all_files)
+ {
+ my @header_deps=();
+ my $skip = 0;
+
+ $file =~ s/^\.\\//; # remove leading .\
+
+ # exclude sub directories and several file extensions
+ # *.dep,*.h,*.in,*.mak,*.pl,*.txt,*.vcproj.*.rc and origs of patch files (*.*~) and
+ # .cvsignore (files beginning with .)
+ next if ( (-d "$path$sep$file") || ($file =~ /.+(_|\~|dep|h|in|mak|pl|txt|vcproj|rc)$/) || ($file =~ /^\.+./));
+ parse_header_deps($path,$file,\@header_deps,\%local_header_hash);
+ handle_dep_to_other_directory($path,$file,\@header_deps,$$ref_vcproj{$file}) if ($$ref_vcproj{$file});
+ $$ref_deps{$file}=[@header_deps];
+ }
+} ##getAllFilesDeps
+
+ ############################################################################
+ sub parse_header_deps #14.06.2006 18:04
+ ############################################################################
+ {
+ # get includes from c/cpp file
+ # call create_deps(path,file,\$link_obj)
+ #
+ my $path = shift;
+ my $cfile = shift;
+ my $ref_header_deps = shift;
+ my $ref_local_header_hash = shift;
+
+ my $fullpath = $path . $sep . $cfile;
+ my $unicodedep="";
+ open(IN, "<$fullpath") || die "can't open $fullpath\n";
+ while ( $line = <IN> ) {
+ next if ($line !~ /^.?\#include.+/); # handle include lines only
+ if ($line =~ /.+?\s(.+)/)
+ {
+ $header = $1;
+ if ( ($header !~ /^<.+/) && ($header !~ /.+\.c.+$/) ) {
+ # no <stdio> etc. header
+ $header =~ s/\s+\/\*.+\*\///; # delete <blanks>/* ... */
+ $header =~ s/\s+\/\/.+//; # delete <blanks>//......
+ $header =~ s/\//\\/; # subst. / with \
+ $header =~ s/^\"/\".\\/;
+ $header =~ s/\"//g;
+ $header =~ s/\.\\//;
+ my $test = $$ref_local_header_hash{$header};
+ my $header_fullpath = $path . "\\" . $header;
+ if ( $test || (($header =~ /\\/) && (-e $header_fullpath))) {
+ push @{$ref_header_deps}, $header;
+ }
+ }
+ }
+ }
+ } ##parse_header_deps
+
+############################################################################
+sub handle_dep_to_other_directory #16.04.2008 15:11
+############################################################################
+{
+ # there has been an additional include directoy detected
+ # now try to find out which header (parsed from c/cpp-file)
+ # comes from this directory by checking: does it exist there?
+ my $path = shift;
+ my $file = shift;
+ my $ref_header_deps = shift;
+ my $path_additional = shift;
+ my $search_path = $path . "\\" . $path_additional;
+ my $counter = 0;
+ foreach $header(@{$ref_header_deps})
+ {
+ my $full_path = $search_path . "\\" . $header;
+ if ( -e "$full_path" )
+ {
+ $$ref_header_deps[$counter] = $path_additional . "\\" . $header;
+ }
+ $counter++
+ }
+} ##handle_dep_to_other_directory
+
+############################################################################
+sub print_lib32_objs #18.04.2008 12:54
+############################################################################
+ {
+ # generate Link section
+ my $path = shift;
+ my $extra_mak = shift;
+ my $ref_objecthash = shift;
+ my $resource_file = shift;
+ # output link objects
+ print MAKFILE "LINK32_OBJS= \\\n";
+ # print objects
+ foreach $object(sort keys %{$ref_objecthash})
+ {
+ print MAKFILE "\t$object \\\n";
+ }
+
+ # print *.res if *.rc exists
+ if ( $resource_file ne "" ) {
+ my $res_file = $resource_file;
+ $res_file =~ s/\.rc/\.res/;
+ $res_file =~ /(.+)\\(.+)$/;
+ $res_file = $2;
+ print MAKFILE "\t\$(INTDIR)\\$res_file \\\n";
+ }
+
+ # add import libs and res files
+ print_flags($path,$extra_mak,"AdditionalLinkObjects");
+ my $outfile = $configelements{"Release"}{"OutputFile"};
+
+ # section for linking
+ print_link_template($path,$outfile);
+
+ # section for creating res files
+ # setting for rsc, res target etc.
+ print "resource_file=$resource_file\n" if ($is_debug);
+ print_rsc_template($resource_file) if ($resource_file);
+ print_simple_flag("Special_extra_uconv") if ($outfile =~ /uconv/);
+} ##print_lib32_objs
+
+############################################################################
+sub print_all_target #26.06.2008 13:27
+############################################################################
+ {
+ my $path = shift;
+ my $ref_all_target_hash = shift;
+ my $filename = getFilenameFromPath($path);
+ my $outdir = $configelements{"Release"}{"OutputDirectory"};
+ print MAKFILE "NULL=\n";
+ print MAKFILE "OUTDIR=$outdir\n";
+ print MAKFILE "OutDir=$outdir\n";
+ print MAKFILE "INTDIR=.\\Release\n\n";
+ print MAKFILE "ALL: ";
+ foreach $target(sort keys %{$ref_all_target_hash})
+ {
+ if ( $target =~ /\.exe/ ) {
+ my $out = $target;
+ $out =~ s/.\\Release/\.\.\\\.\.\\\.\.\\bin/;
+ $out =~ s/\$\(OutDir\)/\.\.\\\.\.\\\.\.\\bin/;
+ $out =~ s/\//\\/; # convert / to \
+ $target = $out;
+ }
+ print MAKFILE "\"$target\" ";
+ }
+
+ # Append [Target_<dir>] item e.g. ../../icuxy36.dll
+ my $targetkey = "Target_" . $filename;
+ my @target = ();
+ if ( exists $template_hash{$targetkey} ) {
+ @target = @{$template_hash{$targetkey}};
+ }
+ my $additional_target="";
+ foreach $additional_target(@target)
+ {
+ print MAKFILE $additional_target if ($additional_target ne "");
+ }
+ print MAKFILE "\n\n";
+ print MAKFILE "\"\$(OUTDIR)\" : \n";
+ print MAKFILE "\tif not exist \"\$(OUTDIR)/\$(NULL)\" mkdir \"\$(OUTDIR)\"\n\n";
+ print MAKFILE "!IF \"\$(OUTDIR)\" != \"\$(INTDIR)\"\n";
+ print MAKFILE "\"\$(INTDIR)\" : \n";
+ print MAKFILE "\tif not exist \"\$(INTDIR)/\$(NULL)\" mkdir \"\$(INTDIR)\"\n";
+ print MAKFILE "!ENDIF\n";
+ print MAKFILE "\n\n";
+} ##print_all_target
+
+############################################################################
+sub print_simple_flag #18.04.2008 13:39
+############################################################################
+{
+ my $simple_flag = shift;
+ my @template = @{$template_hash{$simple_flag}};
+ foreach $line(@template)
+ {
+ print MAKFILE $line;
+ }
+} ##print_rules
+
+############################################################################
+sub print_link_template #18.04.2008 13:39
+############################################################################
+{
+ my $dir = shift;
+ my $outfile = shift;
+ my $manifest;
+ # set resource id for manifest file
+ if ( $outfile =~ /\.exe/ ) {
+ $manifest = 1;
+ } else
+ {
+ $manifest = 2;
+ }
+ my @template = ();
+ if ($dir =~ /stubdata/ ) {
+ @template = @{$template_hash{"Special_stubdata"}};
+ } else
+ {
+ @template = @{$template_hash{"LinkTemplate"}};
+ }
+
+ print MAKFILE "\n"; # insert blank line
+ foreach $line(@template)
+ {
+ $line =~ s/<OUTFILE>/$outfile/;
+ $line =~ s/<MANIFEST>/$manifest/;
+ print MAKFILE $line;
+ }
+
+ # insert special stuff for
+ # extras/uconv/uconv.mak
+ if ( $dir =~ /uconv/ ) {
+ print_flags($dir,"","Special");
+ }
+
+ # for *.exe files an additional
+ # copy section is required to get
+ # the stuff into the global bin directory
+ my %dummy = ();
+ my @mak = ();
+ if( $manifest ==1 )
+ {
+ # source,inputpath,target,action
+ my $out = $outfile;
+ $out =~ s/.\\.*Release/\.\.\\\.\.\\\.\.\\bin/;
+ $out =~ s/\$\(OutDir\)/\.\.\\\.\.\\\.\.\\bin/;
+ $out =~ s/\//\\/; # subst / with \
+ $outfile =~ s/\//\\/; # subst / with \
+ createCopySection($outfile,$outfile,$out,"copy \"\$(InputPath)\" .\\..\\..\\..\\bin",\@mak,\%dummy);
+ foreach $line(@mak)
+ {
+ print MAKFILE $line;
+ }
+ }
+} ##print_rules
+
+############################################################################
+sub print_rsc_template #04.11.2008 14:48
+############################################################################
+ {
+ # print resource compiler setting + resource target
+ my $resourcefile = shift;
+ # skip this if no res file required
+
+ return if (!$resourcefile);
+ $resfile = $resourcefile;
+ #remove file extension (.res)
+ $resfile =~ /(.+)\\(.+)\.(.+)/;
+ $resfile = $2;
+
+ my @template = @{$template_hash{"RSC_Template"}};
+ print MAKFILE "\n"; # insert blank line
+ foreach $line(@template)
+ {
+ $line =~ s/<FILE>/$resourcefile/;
+ $line =~ s/<FILEOUT>/$resfile/;
+ print MAKFILE $line;
+ }
+} ##print_rsc_template
+
+############################################################################
+sub print_flags #18.04.2008 14:19
+############################################################################
+{
+ # CFlags, LinkFlags
+ my $dir = shift;
+ my $extra_mak = shift; # eg. derb.mak, stringperf.mak
+ my $flag = shift;
+ my $nonpro = shift;
+ my @template = ();
+ my $switch = "";
+ $dir =~ s/\\/_/g if ($dir); # change \ to _
+ $switch = "$flag" . "_" . "$dir" if ($dir);
+ handle_CFlags() if ($flag eq "CFlags"); # get and print Preprocessor defines
+ $switch .= "\." . $extra_mak if ( $extra_mak ne "" ) ;
+ if ( exists $template_hash{$switch} ) {
+ @template = @{$template_hash{$switch}};
+ foreach $line(@template)
+ {
+ if ( $nonpro )
+ {
+ # if non product link against debug libraries
+ $line =~ s/-MD/-MDd/;
+ $line =~ s/-MT/-MTd/;
+ }
+ print MAKFILE $line;
+ }
+ }
+} ##print_flags
+
+############################################################################
+sub handle_CFlags #28.01.2009 11:20
+############################################################################
+ {
+
+ my $ppdefs = $configelements{"Release"}{"PreprocessorDefinitions"};
+ my $ppinc = $configelements{"Release"}{"AdditionalIncludeDirectories"};
+ my @template = @{$template_hash{"General_CFlags"}};
+ $ppdefs =~ s/;/ -D/g; # subst ; with -D switch
+ $ppdefs = "-D" . $ppdefs;
+ $ppinc =~ s/(;|,)/ -I/g; # subst ; with -I switch
+ $ppinc = "-I" . $ppinc;
+ print "ppdefs=$ppdefs\n" if ($is_debug);
+ print "ppinc =$ppinc\n" if ($is_debug);
+ foreach $line(@template)
+ {
+ $line =~ s/<AddIncDirs>/$ppinc/;
+ $line =~ s/<PreProcDefs>/$ppdefs/;
+ print MAKFILE $line;
+ }
+} ##handle_CFlags
+
+############################################################################
+sub print_common_linkflags #21.11.2008 11:47
+############################################################################
+ {
+ my @template = @{$template_hash{"CommonLinkFlags"}};
+ my $outfile = $configelements{"Release"}{"OutputFile"};
+ my $pdbfile = $configelements{"Release"}{"ProgramDatabaseFile"};
+ $pdbfile =~ s/\//\\/; # subst / with \
+ $outfile =~ s/\//\\/; # subst / with \
+ print "PATH=$path OUTFILE=$outfile\n" if ($is_debug);
+ foreach $line(@template)
+ {
+ $line =~ s/<OUTFILE>/$outfile/;
+ $line =~ s/<PDBFILE>/$pdbfile/;
+ print MAKFILE $line;
+ }
+} ##print_common_linkflags
+
+############################################################################
+sub handle_extra_mak_files #25.08.2008 14:32
+############################################################################
+{
+ # extract extra filename for *.mak file
+ # e.g input: tools\genrb.derb
+ # output: derb
+ my $direntry = shift;
+ my $out = "";
+ my $dir = "";
+ if ( $direntry =~ /(.+)\.(.+)$/ ) {
+ $dir = $1;
+ $out = $2;
+ } else
+ {
+ $dir = $direntry;
+ }
+ return ($dir,$out);
+} ##handle_extra_mak_files
+
+############################################################################
+sub prepare_allinone_all_mak
+############################################################################
+{
+ # Read in allinone.sln
+ # Fills hashes and returns an array with build order
+ # uses topographical sorting
+
+ my $href_project_by_id = shift;
+ my $href_project_by_name = shift;
+ my $href_project_dependencies = shift;
+ my $sourcePath = shift;
+
+ my $allslnfile = $sourcePath . "\\allinone\\allinone.sln";
+ my @projectdeps;
+ my $projectname;
+ my $projectpath;
+ my $projectid;
+
+ # fill hash tables
+ open (SLN, "< $allslnfile") || die "Can't open $allslnfile\n";
+ while ($line = <SLN>)
+ {
+ my @project = ();
+ if ( $line =~ /^Project\(/ ) {
+ @project = split( /,/, $line);
+ if ( $#project ) {
+ $projectname = "";
+ $projectpath = "";
+ $projectid = "";
+ @projectdeps = ();
+ my @subarray = ();
+ @subarray = split( /=/, $project[0]);
+ $projectname = $subarray[1];
+ $projectname =~ s/\"//g; # remove "
+ $projectpath = $project[1];
+ $projectid = $project[2];
+ $projectid =~ s/\"//g; # remove "
+ $projectid =~ s/.+\{//g; # remove til {
+ $projectid =~ s/\}\n//g; # remove }<CR>
+ my @pnp = ($projectname,$projectpath);
+ my @pip = ($projectid,$projectpath);
+ $$href_project_by_id{$projectid}=[@pnp];
+ $$href_project_by_name{$projectname} =[@pip];
+ }
+ } # $line =~ /^Project\(/
+ if ( $line =~ /ProjectSection\(/ ) {
+ $psect = 1;
+ next;
+ }
+ if ( $line =~ /EndProjectSection/ ) {
+ $psect = 0;
+ $$href_project_dependencies{$projectid}=[@projectdeps];
+ next;
+ }
+ if ( $psect ) {
+ my @tarray = split(/=/, $line);
+ $depends_on_id = $tarray[0];
+ $depends_on_id =~ s/.+\{//g;
+ $depends_on_id =~ s/\}.+//g;
+ print "+$depends_on_id-\n" if ($is_debug);
+
+ push @projectdeps, $depends_on_id;
+ }
+ }
+ ########################################
+ # sort here and generate build order
+ ########################################
+ $objektzahl=0;
+ %hashindex=();
+
+ foreach $projectid(keys %{$href_project_by_id})
+ {
+ if ( $$href_project_dependencies{$projectid} )
+ {
+ @deps = @{$$href_project_dependencies{$projectid}};
+ } else
+ {
+ @deps = ();
+ }
+ for $counter(0..$#deps)
+ {
+ $v = find_or_create_element($deps[$counter]);
+ $n = find_or_create_element($projectid);
+ push @{$nachfolgerliste[$v]},$n;
+ }
+ }
+
+ for $n (0..$objektzahl-1)
+ {
+ $vorgaengerzahl[$n]=0;
+ }
+ for $v (0..$objektzahl-1)
+ {
+ for $n (@{$nachfolgerliste[$v]})
+ {
+ ++$vorgaengerzahl[$n];
+ }
+ }
+
+ @hilfsliste=();
+ for $n (0..$objektzahl-1)
+ {
+ push(@hilfsliste,$n) if ($vorgaengerzahl[$n]==0)
+ }
+
+ $ausgabe=0;
+ @builddep =();
+ while (defined($v=pop(@hilfsliste)))
+ {
+ push @builddep, $name[$v]; # save build order by project_id;
+ ++$ausgabe;
+ for $n (@{$nachfolgerliste[$v]})
+ {
+ --$vorgaengerzahl[$n];
+ push(@hilfsliste,$n) if ($vorgaengerzahl[$n]==0);
+ }
+ } # while
+ die "Cyclic dependencies found! Stopping now.\n" if $ausgabe<$objektzahl;
+ ##############################################################
+ # End of sorting stuff
+ ##############################################################
+
+ return @builddep;
+ ###############################################################
+ ###########################
+ # sub for sorting only
+ ###########################
+ sub find_or_create_element
+ {
+ my ($str)=@_;
+ my ($idx)=$hashindex{$str};
+ if (!defined($idx)) { # new element ...
+ $idx=$objektzahl++;
+ $hashindex{$str}=$idx;
+ $name[$idx]=$str;
+ @{$nachfolgerliste[$idx]}=();
+ }
+ return $idx;
+ } # find_or_create_element
+} # prepare_allinone_all_mak
+
+############################################################################
+sub create_allinone_all_mak #09.02.2009 09:22
+############################################################################
+{
+ my $ref_buildorder = shift;
+ my $href_project_by_id = shift;
+ my $sourcePath = shift;
+ my $allmakfile = $sourcePath . "\\allinone\\all.mak";
+ open (ALLMAK, ">$allmakfile") || die "Can't write to $allmakfile \n";
+ print ALLMAK "ALL: ";
+ foreach $proj(@{$ref_buildorder})
+ {
+ print ALLMAK $$href_project_by_id{$proj}[0];
+ }
+ print ALLMAK "\n\n";
+
+ foreach $proj( @{$ref_buildorder} )
+ {
+ print "$proj $$href_project_by_id{$proj}[0] $$href_project_by_id{$proj}[1]\n";
+ my $prjdir = $$href_project_by_id{$proj}[1];
+ $prjdir =~ /(.+)\\(.+)$/;
+ $prjdir = $1;
+ $prjname = $2;
+ $prjdir =~ s/^.+\"//;
+ $prjname =~ s/\"$//;
+ $prjname =~ s/vcproj/mak/;
+ $allinonehelpstring = $prjdir;
+ $allinonehelpstring =~ s/^\.+\\//; # remove ..\
+ my $backcount = "";
+ while ($allinonehelpstring=~ /.+\\/g) # counts the occuring \
+ {
+ $backcount .= "..\\";
+ }
+ $allinonedir = $backcount . "..\\allinone";
+
+ # write all.mak
+ $$href_project_by_id{$proj}[0] =~ s/^\s+//;
+ if ( $$href_project_by_id{$proj}[0] ne "makedata" )
+ {
+ my @template = @{$template_hash{"AllInOnePrj"}};
+ foreach $line(@template)
+ {
+ $line =~ s/<PRJ>/$$href_project_by_id{$proj}[0]/;
+ $line =~ s/<PRJDIR>/$prjdir/;
+ $line =~ s/<PRJMAK>/$prjname/;
+ $line =~ s/<ALLINONEDIR>/$allinonedir/;
+ print ALLMAK $line;
+ }
+ } else
+ {
+ #special code snippet
+ print ALLMAK "makedata : \n";
+ print ALLMAK " cd \"..\\data\"\n";
+ print ALLMAK " nmake /f makedata.mak icumake=\$(MAKEDIR)\\..\\data cfg=Release\n";
+ print ALLMAK " cd \"..\\allinone\"\n\n";
+ }
+ }
+ close ALLMAK;
+} ##create_allinone_all_mak
+
+############################################################################
+
+# ------------------------------------------------------------------------
+# XML parser handling
+# ------------------------------------------------------------------------
+
+############################################################################
+sub start_handler
+############################################################################
+{
+ my $p = shift; # pointer to parser
+ my $el = shift; # element
+
+ # Deal with attributes
+
+ my $CompilerSection = 0;
+ my $LinkerSection = 0;
+ my $ConfigSection = ($el eq "Configuration");
+
+ while (@_)
+ {
+ # shift if ( $el eq "FileConfiguration" );
+ my $att = shift;
+ my $val = shift;
+ $CustomSection = 0;
+ if ($special_file && defined $att & $att ne "Name")
+ {
+ print "$special_file - $att - $val\n";
+ my @param = ($att,$val);
+ $files_special{ $special_file } = [@param]; # files with special compiler switch
+ @test = @{$files_special{ $special_file }};
+ print "test=@test\n";
+ $special_file="";
+ }
+ if ( $ConfigSection && $att eq "Name" && $val eq "Release|Win32" ) {
+ $Release = 1;
+ $config = "Release"; # Release
+ }
+ if ( $ConfigSection && $att eq "Name" && $val eq "Debug|Win32" ) {
+ $Release = 0; # Debug
+ $config = "Debug";
+ }
+ if ( $att eq "Name" && $val eq "VCCLCompilerTool" ) {
+ $CompilerSection = 1;
+ }
+ if ( $att eq "Name" && $val eq "VCLinkerTool" ) {
+ $LinkerSection = 1;
+ }
+ if ( $att eq "Name" && $val eq "VCCustomBuildTool" ) {
+ $CustomSection = 1;
+ }
+
+ # For Configuration Infos like compiler defines etc.
+ if ( $att eq "PreprocessorDefinitions" && $CompilerSection ) {
+ $configelements{$config}{$att} = $val;
+ }
+ if ( $att eq "AdditionalIncludeDirectories" && $CompilerSection ) {
+ #$configelements{$config}{$att} = $val;
+ if ( ($file_tmp ne "") && ($val ne "") ) {
+ $files{ $file_tmp } = 1; # save it now
+ $file_tmp =~ s/^\.\\//; # remove leading .\
+ $files_special{"AdditionalIncludeDirectories"}{$file_tmp} = $val;
+ print "Include $val: $file_tmp\n" if ($is_debug);
+ $file_tmp = ""; # has been saved now reset it
+ } else
+ {
+ $configelements{$config}{$att} = $val;
+ }
+ }
+ if ( ($att eq "DisableLanguageExtensions") && $CompilerSection ) {
+ #$configelements{$config}{$att} = $val;
+ if ( ($file_tmp ne "") && ($val ne "")) {
+ $files{ $file_tmp } = 1; # save it now
+ $file_tmp =~ s/^\.\\//; # remove leading .\
+ $files_special{"DisableLanguageExtensions"}{$file_tmp} = $val;
+ print "-Ze: $file_tmp\n" if ($is_debug);
+ $file_tmp = ""; # has been saved now reset it
+ }
+ }
+ if ( $att eq "OutputDirectory" ) {
+ $configelements{$config}{$att} = $val;
+ }
+ if ( $att eq "OutputFile" && $LinkerSection ) {
+ $configelements{$config}{$att} = $val;
+ }
+ if ( $att eq "ProgramDatabaseFile" ) {
+ $configelements{$config}{$att} = $val;
+ }
+ if ( $att eq "ImportLibrary" && $LinkerSection ) {
+ $configelements{$config}{$att} = $val;
+ }
+ if ($att eq "CommandLine") {
+ $configelements{$config}{$att} = $val;
+ }
+ if (($att eq "PreprocessorDefinitions") && $ConfigSection) {
+ $configelements{$config}{$att} = $val;
+ }
+
+ # Is the file in the step before a header
+ # which has to be copied into the global
+ # include path?
+ if ( $file_tmp ne "" )
+ {
+ $config = "Release";
+ if ( ($att eq "CommandLine") && ($el eq "Tool") )
+ {
+ if ( $file_tmp =~ /.+\.h$/ ) {
+ $files2copy{ $file_tmp } = $val; # unicode + layout header to copy
+ $file_tmp = ""; # has been saved now reset it
+ }
+ }
+ } # if $file_tmp
+
+ # For files
+ if ( $att eq "RelativePath" ) {
+ if ( $file_tmp ) {
+ # no special file (include dir / compiler switch)
+ $files{ $file_tmp } = 1; # save it now
+ $file_tmp = ""; # has been saved now reset it
+ }
+ # store temporary the file name
+ $file_tmp = $val if ($val !~ /\.mk$/); # no *.mk files
+ }
+ } # while @_
+} # End start_handler
+
+############################################################################
+sub char_handler
+############################################################################
+{
+} # End char_handler
diff --git a/icu/makefile.mk b/icu/makefile.mk
index da0836955c36..7c82f5c99013 100644
--- a/icu/makefile.mk
+++ b/icu/makefile.mk
@@ -1,7 +1,7 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2008 by Sun Microsystems, Inc.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -65,7 +65,7 @@ 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
+# 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../../stubdata -L$(SYSBASE)$/usr$/lib
@@ -209,12 +209,12 @@ ICU_BUILD_VERSION=Release
ICU_BUILD_LIBPOST=
.ENDIF
-CONFIGURE_ACTION+= $(COPY:s/+//) ..$/..$/..$/..$/..$/makefiles.zip . $(BUILD_ACTION_SEP) unzip makefiles.zip
+CONFIGURE_ACTION+= $(PERL) ..$/..$/..$/..$/..$/createmak.pl ..$/..$/..$/..$/..$/createmak.cfg .
.IF "$(CCNUMVER)"<="001400000000"
-BUILD_ACTION=cd allinone && nmake /f all.mak CFG="all - Win32 Release" EXFLAGS="-EHsc" && cd ..$/..
+BUILD_ACTION=cd allinone && nmake /f all.mak EXFLAGS="-EHsc" && cd ..$/..
.ELSE
-BUILD_ACTION=cd allinone && nmake /f all.mak CFG="all - Win32 Release" EXFLAGS="-EHa -Zc:wchar_t-" && cd ..$/..
+BUILD_ACTION=cd allinone && nmake /f all.mak EXFLAGS="-EHa -Zc:wchar_t-" && cd ..$/..
.ENDIF
OUT2LIB= \
diff --git a/icu/makefiles.zip b/icu/makefiles.zip
deleted file mode 100644
index 86ed8ca6d9a1..000000000000
--- a/icu/makefiles.zip
+++ /dev/null
Binary files differ