xref: /trunk/main/odk/cfgWin.js (revision 7477dbb9)
1d71964d5SAndrew Rist// *************************************************************
2d71964d5SAndrew Rist//
3d71964d5SAndrew Rist//  Licensed to the Apache Software Foundation (ASF) under one
4d71964d5SAndrew Rist//  or more contributor license agreements.  See the NOTICE file
5d71964d5SAndrew Rist//  distributed with this work for additional information
6d71964d5SAndrew Rist//  regarding copyright ownership.  The ASF licenses this file
7d71964d5SAndrew Rist//  to you under the Apache License, Version 2.0 (the
8d71964d5SAndrew Rist//  "License"); you may not use this file except in compliance
9d71964d5SAndrew Rist//  with the License.  You may obtain a copy of the License at
10d71964d5SAndrew Rist//
11d71964d5SAndrew Rist//    http://www.apache.org/licenses/LICENSE-2.0
12d71964d5SAndrew Rist//
13d71964d5SAndrew Rist//  Unless required by applicable law or agreed to in writing,
14d71964d5SAndrew Rist//  software distributed under the License is distributed on an
15d71964d5SAndrew Rist//  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16d71964d5SAndrew Rist//  KIND, either express or implied.  See the License for the
17d71964d5SAndrew Rist//  specific language governing permissions and limitations
18d71964d5SAndrew Rist//  under the License.
19d71964d5SAndrew Rist//
20d71964d5SAndrew Rist// *************************************************************
21*7477dbb9SJürgen Schmidt
22cdf0e10cSrcweir// This script asks for variables, which are necessary for building the
23cdf0e10cSrcweir// examples of the Office Development Kit. The script duplicates the template
24cdf0e10cSrcweir// script and inserts the variables into the copied script.
25cdf0e10cSrcweir// The Script was developed for the operating systems Microsoft Windows.
26*7477dbb9SJürgen Schmidtvar regKeyOfficeCurrentUser6432Node = "HKEY_CURRENT_USER\\Software\\Wow6432Node\\OpenOffice\\UNO\\InstallPath\\";
27*7477dbb9SJürgen Schmidtvar regKeyOfficeLocaleMachine6432Node = "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\OpenOffice\\UNO\\InstallPath\\";
28599cc5b4SOliver-Rainer Wittmannvar regKeyOfficeCurrentUser = "HKEY_CURRENT_USER\\Software\\OpenOffice\\UNO\\InstallPath\\";
29599cc5b4SOliver-Rainer Wittmannvar regKeyOfficeLocaleMachine = "HKEY_LOCAL_MACHINE\\Software\\OpenOffice\\UNO\\InstallPath\\";
30cdf0e10cSrcweirvar regKeyDotNetInstallRoot = "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\.NETFramework\\InstallRoot";
31cdf0e10cSrcweirvar regKeyDotNet1_1 = "HKLM\\Software\\Microsoft\\.NETFramework\\policy\\v1.1\\4322";
32cdf0e10cSrcweirvar sDirDotNet1_1 = "v1.1.4322";
33cdf0e10cSrcweirvar regKeyDotNet2_0 = "HKLM\\Software\\Microsoft\\.NETFramework\\Policy\\v2.0\\50727";
34cdf0e10cSrcweirvar sDirDotNet2_0 = "v2.0.50727";
35cdf0e10cSrcweir
36cdf0e10cSrcweirvar regKeyJDK = "HKLM\\Software\\JavaSoft\\Java Development Kit\\";
37cdf0e10cSrcweir//var regKeyVC70 = "HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\7.0\\Setup\\VC\\ProductDir";
38cdf0e10cSrcweir//var regKeyVC71 = "HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\7.1\\Setup\\VC\\ProductDir";
39cdf0e10cSrcweirvar regKeyVC90 = "HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\Setup\\VC\\ProductDir";
40cdf0e10cSrcweir
41cdf0e10cSrcweir//var regKeyVCExpress80 = "HKLM\\SOFTWARE\\Microsoft\\VCExpress\\8.0\\Setup\\VC\\ProductDir";
42cdf0e10cSrcweirvar regKeyVCExpress90 = "HKLM\\SOFTWARE\\Microsoft\\VCExpress\\9.0\\Setup\\VC\\ProductDir";
43b3ba5bc7SJürgen Schmidtvar regKeyVCExpress90_2 = "HKLM\\SOFTWARE\\Wow6432Node\\Microsoft\\VCExpress\\9.0\\Setup\\VC\\ProductDir";
44cdf0e10cSrcweirvar regKeyWindowsSDK = "HKLM\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\CurrentInstallFolder";
45cdf0e10cSrcweir
46cdf0e10cSrcweirvar WshShell = WScript.CreateObject("WScript.Shell");
47cdf0e10cSrcweirvar WshSysEnv = WshShell.Environment("process");
48cdf0e10cSrcweirvar aFileSystemObject =  new ActiveXObject("Scripting.FileSystemObject");
49cdf0e10cSrcweirvar stdin = WScript.StdIn;
50cdf0e10cSrcweirvar stdout = WScript.StdOut;
51cdf0e10cSrcweir
52cdf0e10cSrcweirstdout.WriteLine("\n" +
53cdf0e10cSrcweir" *** Configure your SDK environment ***\n\n" +
54cdf0e10cSrcweir" NOTE: This script is working only for Windows 2000, Windows XP or newer versions!\n");
55cdf0e10cSrcweir
56cdf0e10cSrcweirvar oo_sdk_name=WshSysEnv("OO_SDK_NAME");
57cdf0e10cSrcweirvar stldebug="";
58cdf0e10cSrcweirvar oo_sdk_home=getSdkHome();
59cdf0e10cSrcweirvar oo_user_sdk_dir=WshSysEnv("APPDATA") + "\\" + oo_sdk_name;
60cdf0e10cSrcweirvar oo_user_sdk_env_script=oo_user_sdk_dir + "\\setsdkenv_windows.bat";
61cdf0e10cSrcweir
62cdf0e10cSrcweirvar office_home=getOfficeHome();
63cdf0e10cSrcweirvar office_base_home=getOfficeBaseHome();
64cdf0e10cSrcweir
65cdf0e10cSrcweirvar oo_sdk_make_home=getMakeHome();
66cdf0e10cSrcweirvar oo_sdk_zip_home=getZipHome();
67985d02c7SAriel Constenla-Hailevar oo_sdk_cat_home=getCatHome();
68985d02c7SAriel Constenla-Hailevar oo_sdk_sed_home=getSedHome();
69cdf0e10cSrcweirvar oo_sdk_manifest_used="";
70cdf0e10cSrcweirvar oo_sdk_windowssdk="";
71cdf0e10cSrcweirvar oo_sdk_cpp_home=getCppHome();
72cdf0e10cSrcweirvar oo_sdk_cli_home=getCliHome();
73cdf0e10cSrcweirvar oo_sdk_java_home=getJavaHome();
74cdf0e10cSrcweirvar oo_sdk_out=getOutputDir();
75cdf0e10cSrcweirvar sdk_auto_deployment=getAutoDeployment();
76cdf0e10cSrcweir
77cdf0e10cSrcweirwriteBatFile(oo_user_sdk_dir, oo_user_sdk_env_script);
78cdf0e10cSrcweir
79cdf0e10cSrcweirstdout.Write(
80cdf0e10cSrcweir	"\n ******************************************************************\n" +
81cdf0e10cSrcweir    " * ... \"" + oo_user_sdk_env_script + "\"\n" +
82cdf0e10cSrcweir    " * batch file has been prepared.\n" +
83cdf0e10cSrcweir    " * This batch file will be used in the future to prepare your\n" +
84cdf0e10cSrcweir	" * personal configured SDK environment.\n" +
85cdf0e10cSrcweir	" ******************************************************************\n\n");
86cdf0e10cSrcweir//    " * For each time you want to use this configured SDK environment,\n" +
87cdf0e10cSrcweir//    " * you have to run the \"setsdkenv_windows.bat\" file in a new shell!\n" +
88cdf0e10cSrcweir
89cdf0e10cSrcweir// done -------------------------------------------------------------------------
90cdf0e10cSrcweir
91cdf0e10cSrcweir
92cdf0e10cSrcweirfunction skipChoice(msg)
93cdf0e10cSrcweir{
94cdf0e10cSrcweir	stdout.Write("\n Do you want to skip the choice of " + msg + " (YES/NO) [YES]:");
95cdf0e10cSrcweir	var sChoice = stdin.ReadLine();
96cdf0e10cSrcweir    if (sChoice == "" || sChoice.toLowerCase() == "yes")
97cdf0e10cSrcweir	   return true;
98cdf0e10cSrcweir
99cdf0e10cSrcweir	return false;
100cdf0e10cSrcweir}
101cdf0e10cSrcweir
102cdf0e10cSrcweirfunction getSdkHome()
103cdf0e10cSrcweir{
104cdf0e10cSrcweir	var sSuggestedHome = WshSysEnv("OO_SDK_HOME");
105cdf0e10cSrcweir    if (sSuggestedHome.length == 0) {
106cdf0e10cSrcweir        var scriptname = WScript.ScriptFullName;
107cdf0e10cSrcweir        sSuggestedHome = scriptname.substr(0,scriptname.length-10);
108cdf0e10cSrcweir    }
109cdf0e10cSrcweir
110cdf0e10cSrcweir    while(true)
111cdf0e10cSrcweir    {
112cdf0e10cSrcweir        stdout.Write("\n Enter the Office Software Development Kit directory [" +
113cdf0e10cSrcweir                     sSuggestedHome + "]:");
114cdf0e10cSrcweir        var sHome = stdin.ReadLine();
115cdf0e10cSrcweir        if (sHome.length == 0)
116cdf0e10cSrcweir        {
117cdf0e10cSrcweir            //No user input, use default.
118cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
119cdf0e10cSrcweir            {
120cdf0e10cSrcweir                stdout.WriteLine("\n Error: Could not find directory \"" +
121cdf0e10cSrcweir                                 sSuggestedHome + "\". An SDK is required, please" +
122cdf0e10cSrcweir								 " specify the path to a valid installation.");
123cdf0e10cSrcweir                continue;
124cdf0e10cSrcweir            }
125cdf0e10cSrcweir            sHome = sSuggestedHome;
126cdf0e10cSrcweir        }
127cdf0e10cSrcweir        else
128cdf0e10cSrcweir        {
129cdf0e10cSrcweir            //validate the user input
130cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
131cdf0e10cSrcweir            {
132cdf0e10cSrcweir                stdout.WriteLine("\n Error: The directory \"" + sHome +
133cdf0e10cSrcweir                                 "\" does not exist. Please enter the path to a" +
134cdf0e10cSrcweir								 "valid SDK installation.");
135cdf0e10cSrcweir                continue;
136cdf0e10cSrcweir            }
137cdf0e10cSrcweir        }
138cdf0e10cSrcweir        //Check if this is an sdk folder by looking for the idl sub - dir
139cdf0e10cSrcweir        var idlDir = sHome + "\\idl";
140cdf0e10cSrcweir        if (! aFileSystemObject.FolderExists(idlDir))
141cdf0e10cSrcweir        {
142cdf0e10cSrcweir            stdout.WriteLine("\n Error: Could not find directory \"" +
143cdf0e10cSrcweir                             idlDir + "\". An SDK is required, please specify " +
144cdf0e10cSrcweir                             "the path to a valid SDK installation.");
145cdf0e10cSrcweir            continue;
146cdf0e10cSrcweir        }
147cdf0e10cSrcweir
148cdf0e10cSrcweir        if (aFileSystemObject.FileExists(sHome + "\\lib\\stlport_vc71_stldebug.lib")) {
149cdf0e10cSrcweir		    stldebug="_stldebug";
150cdf0e10cSrcweir		}
151cdf0e10cSrcweir
152cdf0e10cSrcweir        return sHome;
153cdf0e10cSrcweir    }
154cdf0e10cSrcweir}
155cdf0e10cSrcweir
156cdf0e10cSrcweirfunction getOfficeOrUre()
157cdf0e10cSrcweir{
158cdf0e10cSrcweir    var suggestion = "Office";
159cdf0e10cSrcweir    var choice;
160cdf0e10cSrcweir    while (choice != "office" && choice != "ure") {
161cdf0e10cSrcweir        stdout.Write(
162cdf0e10cSrcweir            "\n Use an installed Office or an installed UNO Runtime"
163cdf0e10cSrcweir            + " Environment (Office/URE) [" + suggestion + "]:");
164cdf0e10cSrcweir        choice = stdin.ReadLine();
165cdf0e10cSrcweir        if (choice == "") {
166cdf0e10cSrcweir            choice = suggestion;
167cdf0e10cSrcweir        }
168cdf0e10cSrcweir        choice = choice.toLowerCase();
169cdf0e10cSrcweir    }
170cdf0e10cSrcweir    return choice;
171cdf0e10cSrcweir}
172cdf0e10cSrcweir
173cdf0e10cSrcweirfunction getOfficeHome()
174cdf0e10cSrcweir{
175cdf0e10cSrcweir    var sSuggestedHome = WshSysEnv("OFFICE_HOME");
176cdf0e10cSrcweir    if (sSuggestedHome.length == 0)
177cdf0e10cSrcweir    {
178cdf0e10cSrcweir        try {
179*7477dbb9SJürgen Schmidt            sSuggestedHome = WshShell.RegRead(regKeyOfficeCurrentUser6432Node);
180*7477dbb9SJürgen Schmidt	    //The registry entry points to the program folder but we need the
181*7477dbb9SJürgen Schmidt	    //installation folder
182cdf0e10cSrcweir        } catch(exc) {}
183cdf0e10cSrcweir        if (sSuggestedHome.length == 0)
184*7477dbb9SJürgen Schmidt        {
185*7477dbb9SJürgen Schmidt            try {
186*7477dbb9SJürgen Schmidt                sSuggestedHome = WshShell.RegRead(regKeyOfficeLocaleMachine6432Node);
187*7477dbb9SJürgen Schmidt                //The registry entry points to the program folder but we need
188*7477dbb9SJürgen Schmidt		//the installation folder
189*7477dbb9SJürgen Schmidt            } catch (exc) {}
190*7477dbb9SJürgen Schmidt        }
191*7477dbb9SJürgen Schmidt 	if (sSuggestedHome.length == 0)
192cdf0e10cSrcweir        {
193cdf0e10cSrcweir            try {
194cdf0e10cSrcweir                sSuggestedHome = WshShell.RegRead(regKeyOfficeLocaleMachine);
195cdf0e10cSrcweir                //The registry entry points to the program folder but we need
196*7477dbb9SJürgen Schmidt		//the installation folder
197*7477dbb9SJürgen Schmidt            } catch (exc) {}
198*7477dbb9SJürgen Schmidt        }
199*7477dbb9SJürgen Schmidt 	if (sSuggestedHome.length == 0)
200*7477dbb9SJürgen Schmidt        {
201*7477dbb9SJürgen Schmidt            try {
202*7477dbb9SJürgen Schmidt                sSuggestedHome = WshShell.RegRead(regKeyOfficeLocaleMachine);
203*7477dbb9SJürgen Schmidt                //The registry entry points to the program folder but we need
204*7477dbb9SJürgen Schmidt		//the installation folder
205cdf0e10cSrcweir            } catch (exc) {}
206cdf0e10cSrcweir        }
207cdf0e10cSrcweir
208cdf0e10cSrcweir		var index=0;
209cdf0e10cSrcweir        if ((index = sSuggestedHome.lastIndexOf("\\")) != -1)
210cdf0e10cSrcweir		   sSuggestedHome = sSuggestedHome.substr(0, index);
211cdf0e10cSrcweir
212cdf0e10cSrcweir        if (sSuggestedHome.length == 0)
213cdf0e10cSrcweir		   sSuggestedHome = searchOffice();
214cdf0e10cSrcweir    }
215cdf0e10cSrcweir
216cdf0e10cSrcweir    while(true)
217cdf0e10cSrcweir    {
218cdf0e10cSrcweir        stdout.Write("\n Enter the Office base installation directory [" +
219cdf0e10cSrcweir                     sSuggestedHome + "]:");
220cdf0e10cSrcweir        var sHome = stdin.ReadLine();
221cdf0e10cSrcweir        if (sHome.length == 0)
222cdf0e10cSrcweir        {
223cdf0e10cSrcweir            //No user input, use default.
224cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
225cdf0e10cSrcweir            {
226cdf0e10cSrcweir                stdout.WriteLine("\n Error: Could not find directory \"" +
227cdf0e10cSrcweir                                 sSuggestedHome + "\" An office installation is " +
228cdf0e10cSrcweir								 "required, please specify the path to a valid " +
229cdf0e10cSrcweir								 "office installation.");
230cdf0e10cSrcweir                sSuggestedHome = "";
231cdf0e10cSrcweir                continue;
232cdf0e10cSrcweir            }
233cdf0e10cSrcweir            sHome = sSuggestedHome;
234cdf0e10cSrcweir        } else
235cdf0e10cSrcweir        {
236cdf0e10cSrcweir            //validate the user input
237cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
238cdf0e10cSrcweir            {
239cdf0e10cSrcweir                stdout.WriteLine("\n Error: The directory \"" + sHome +
240cdf0e10cSrcweir                                 "\" does not exist. Please specify the path to " +
241cdf0e10cSrcweir								 "a valid office installation.");
242cdf0e10cSrcweir                continue;
243cdf0e10cSrcweir            }
244cdf0e10cSrcweir        }
245cdf0e10cSrcweir        //Check if this is a valid office installtion folder by looking for the
246cdf0e10cSrcweir		//program sub-directory
247cdf0e10cSrcweir        var progDir = sHome + "\\program";
248cdf0e10cSrcweir        if (! aFileSystemObject.FolderExists(progDir))
249cdf0e10cSrcweir        {
250cdf0e10cSrcweir            stdout.WriteLine("\n Error: Could not find directory \"" +
251cdf0e10cSrcweir                             progDir + "\". An office installation is required, " +
252cdf0e10cSrcweir							 "please specify the path to a valid office " +
253cdf0e10cSrcweir							 "installation.");
254cdf0e10cSrcweir            continue;
255cdf0e10cSrcweir        }
256cdf0e10cSrcweir        return sHome;
257cdf0e10cSrcweir    }
258cdf0e10cSrcweir}
259cdf0e10cSrcweir
260cdf0e10cSrcweirfunction searchOffice()
261cdf0e10cSrcweir{
262cdf0e10cSrcweir	var tmp = oo_sdk_home;
263cdf0e10cSrcweir	var officepath ="";
264cdf0e10cSrcweir	var index=-1;
265cdf0e10cSrcweir
266*7477dbb9SJürgen Schmidt	if ((index = tmp.lastIndexOf("\\sdk")) != -1) {
267cdf0e10cSrcweir	   tmp = tmp.substr(0, index);
268cdf0e10cSrcweir	}
269cdf0e10cSrcweir
270cdf0e10cSrcweir	if (aFileSystemObject.FileExists(tmp + "\\program\\soffice.exe")) {
271cdf0e10cSrcweir	   return tmp;
272cdf0e10cSrcweir	}
273cdf0e10cSrcweir
274cdf0e10cSrcweir	return "";
275cdf0e10cSrcweir}
276cdf0e10cSrcweir
277cdf0e10cSrcweir
278cdf0e10cSrcweirfunction getOfficeBaseHome()
279cdf0e10cSrcweir{
280cdf0e10cSrcweir	var officebase = oo_sdk_home;
281cdf0e10cSrcweir	var index=officebase.lastIndexOf("\\");
282cdf0e10cSrcweir
283cdf0e10cSrcweir	officebase = officebase.substr(0, index);
284cdf0e10cSrcweir
285cdf0e10cSrcweir	return officebase;
286cdf0e10cSrcweir}
287cdf0e10cSrcweir
288cdf0e10cSrcweirfunction getMakeHome()
289cdf0e10cSrcweir{
290cdf0e10cSrcweir    var sSuggestedHome = WshSysEnv("OO_SDK_MAKE_HOME");
291cdf0e10cSrcweir
292cdf0e10cSrcweir    while(true)
293cdf0e10cSrcweir    {
294cdf0e10cSrcweir        stdout.Write("\n Enter GNU make (3.79.1 or higher) tools directory [" +
295cdf0e10cSrcweir                     sSuggestedHome + "]:");
296cdf0e10cSrcweir        var sHome = stdin.ReadLine();
297cdf0e10cSrcweir        if (sHome.length == 0)
298cdf0e10cSrcweir        {
299cdf0e10cSrcweir            //No user input, use default.
300cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
301cdf0e10cSrcweir            {
302cdf0e10cSrcweir                stdout.WriteLine("\n Error: Could not find directory \"" +
303cdf0e10cSrcweir								 sSuggestedHome + "\". GNU make is required, " +
304cdf0e10cSrcweir								 "please specify a GNU make tools directory.");
305cdf0e10cSrcweir                sSuggestedHome = "";
306cdf0e10cSrcweir                continue;
307cdf0e10cSrcweir            }
308cdf0e10cSrcweir            sHome = sSuggestedHome;
309cdf0e10cSrcweir        } else
310cdf0e10cSrcweir        {
311cdf0e10cSrcweir            //validate the user input
312cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
313cdf0e10cSrcweir            {
314cdf0e10cSrcweir                stdout.WriteLine("\n Error: The directory \"" + sHome +
315cdf0e10cSrcweir                                 "\" does not exist. GNU make is required, " +
316cdf0e10cSrcweir								 "please specify a GNU make tools directory.");
317cdf0e10cSrcweir                continue;
318cdf0e10cSrcweir            }
319cdf0e10cSrcweir        }
320cdf0e10cSrcweir        //Check for the make executable
321cdf0e10cSrcweir        var sMakePath = sHome + "\\make.exe";
322cdf0e10cSrcweir        if (! aFileSystemObject.FileExists(sMakePath))
323cdf0e10cSrcweir	{
324cdf0e10cSrcweir		sMakePath = sHome + "\\mingw32-make.exe";
325cdf0e10cSrcweir	}
326cdf0e10cSrcweir        if (! aFileSystemObject.FileExists(sMakePath))
327cdf0e10cSrcweir        {
328cdf0e10cSrcweir            stdout.WriteLine("\n Error: Could not find \"" + sMakePath +
329cdf0e10cSrcweir							 "\". GNU make is required, please specify a GNU " +
330cdf0e10cSrcweir							 "make tools directory.");
331cdf0e10cSrcweir            continue;
332cdf0e10cSrcweir        }
333cdf0e10cSrcweir        return sHome;
334cdf0e10cSrcweir    }
335cdf0e10cSrcweir}
336cdf0e10cSrcweir
337cdf0e10cSrcweirfunction getZipHome()
338cdf0e10cSrcweir{
339cdf0e10cSrcweir    var sSuggestedHome = WshSysEnv("OO_SDK_ZIP_HOME");
340*7477dbb9SJürgen Schmidt
341*7477dbb9SJürgen Schmidt    if (sSuggestedHome.length == 0 && oo_sdk_make_home.length > 0) {
342*7477dbb9SJürgen Schmidt       sSuggestedHome = oo_sdk_make_home;
343*7477dbb9SJürgen Schmidt    }
344cdf0e10cSrcweir
345cdf0e10cSrcweir    while(true)
346cdf0e10cSrcweir    {
347cdf0e10cSrcweir        stdout.Write("\n Enter a zip (2.3 or higher) tools directory [" +
348cdf0e10cSrcweir                     sSuggestedHome + "]:");
349cdf0e10cSrcweir        var sHome = stdin.ReadLine();
350cdf0e10cSrcweir        if (sHome.length == 0)
351cdf0e10cSrcweir        {
352cdf0e10cSrcweir            //No user input, use default.
353cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
354cdf0e10cSrcweir            {
355cdf0e10cSrcweir                stdout.WriteLine("\n Error: Could not find directory \"" +
356cdf0e10cSrcweir								 sSuggestedHome + "\". zip is required, please " +
357cdf0e10cSrcweir								 "specify a zip tools directory.");
358cdf0e10cSrcweir                sSuggestedHome = "";
359cdf0e10cSrcweir                continue;
360cdf0e10cSrcweir            }
361cdf0e10cSrcweir            sHome = sSuggestedHome;
362cdf0e10cSrcweir        }
363cdf0e10cSrcweir        else
364cdf0e10cSrcweir        {
365cdf0e10cSrcweir            //validate the user input
366cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
367cdf0e10cSrcweir            {
368cdf0e10cSrcweir                stdout.WriteLine("\n Error: The directory \"" + sHome +
369cdf0e10cSrcweir                                 "\" does not exist. zip is required, please " +
370cdf0e10cSrcweir								 "specify a zip tools directory.");
371cdf0e10cSrcweir                continue;
372cdf0e10cSrcweir            }
373cdf0e10cSrcweir        }
374cdf0e10cSrcweir        //Check for the make executable
375cdf0e10cSrcweir        var sZipPath = sHome + "\\zip.exe";
376cdf0e10cSrcweir        if (! aFileSystemObject.FileExists(sZipPath))
377cdf0e10cSrcweir        {
378cdf0e10cSrcweir            stdout.WriteLine("\n Error: Could not find \"" + sZipPath +
379cdf0e10cSrcweir                             "\". zip is required, please specify a zip tools " +
380cdf0e10cSrcweir							 "directory.");
381cdf0e10cSrcweir            continue;
382cdf0e10cSrcweir        }
383cdf0e10cSrcweir        return sHome;
384cdf0e10cSrcweir    }
385cdf0e10cSrcweir}
386cdf0e10cSrcweir
387985d02c7SAriel Constenla-Hailefunction getCatHome()
388985d02c7SAriel Constenla-Haile{
389985d02c7SAriel Constenla-Haile    var sSuggestedHome = WshSysEnv("OO_SDK_CAT_HOME");
390985d02c7SAriel Constenla-Haile
391*7477dbb9SJürgen Schmidt    if (sSuggestedHome.length == 0 && oo_sdk_make_home.length > 0) {
392*7477dbb9SJürgen Schmidt       sSuggestedHome = oo_sdk_make_home;
393*7477dbb9SJürgen Schmidt    }
394*7477dbb9SJürgen Schmidt
395985d02c7SAriel Constenla-Haile    while(true)
396985d02c7SAriel Constenla-Haile    {
397985d02c7SAriel Constenla-Haile        stdout.Write("\n Enter a cat (2.0 or higher) tools directory [" +
398985d02c7SAriel Constenla-Haile                     sSuggestedHome + "]:");
399985d02c7SAriel Constenla-Haile        var sHome = stdin.ReadLine();
400985d02c7SAriel Constenla-Haile        if (sHome.length == 0)
401985d02c7SAriel Constenla-Haile        {
402985d02c7SAriel Constenla-Haile            //No user input, use default.
403985d02c7SAriel Constenla-Haile            if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
404985d02c7SAriel Constenla-Haile            {
405985d02c7SAriel Constenla-Haile                stdout.WriteLine("\n Error: Could not find directory \"" +
406985d02c7SAriel Constenla-Haile                                 sSuggestedHome + "\". cat is required, please " +
407985d02c7SAriel Constenla-Haile                                 "specify a cat tools directory." +
408985d02c7SAriel Constenla-Haile                                 "\nYou can get cat from " +
409985d02c7SAriel Constenla-Haile                                 "http://sourceforge.net/projects/unxutils/files/latest/download");
410985d02c7SAriel Constenla-Haile                sSuggestedHome = "";
411985d02c7SAriel Constenla-Haile                continue;
412985d02c7SAriel Constenla-Haile            }
413985d02c7SAriel Constenla-Haile            sHome = sSuggestedHome;
414985d02c7SAriel Constenla-Haile        }
415985d02c7SAriel Constenla-Haile        else
416985d02c7SAriel Constenla-Haile        {
417985d02c7SAriel Constenla-Haile            //validate the user input
418985d02c7SAriel Constenla-Haile            if ( ! aFileSystemObject.FolderExists(sHome))
419985d02c7SAriel Constenla-Haile            {
420985d02c7SAriel Constenla-Haile                stdout.WriteLine("\n Error: The directory \"" + sHome +
421985d02c7SAriel Constenla-Haile                                 "\" does not exist. cat is required, please " +
422985d02c7SAriel Constenla-Haile                                 "specify a cat tools directory." +
423985d02c7SAriel Constenla-Haile                                 "\nYou can get cat from " +
424985d02c7SAriel Constenla-Haile                                 "http://sourceforge.net/projects/unxutils/files/latest/download");
425985d02c7SAriel Constenla-Haile                continue;
426985d02c7SAriel Constenla-Haile            }
427985d02c7SAriel Constenla-Haile        }
428985d02c7SAriel Constenla-Haile        //Check for the make executable
429985d02c7SAriel Constenla-Haile        var sCatPath = sHome + "\\cat.exe";
430985d02c7SAriel Constenla-Haile        if (! aFileSystemObject.FileExists(sCatPath))
431985d02c7SAriel Constenla-Haile        {
432985d02c7SAriel Constenla-Haile            stdout.WriteLine("\n Error: Could not find \"" + sCatPath +
433985d02c7SAriel Constenla-Haile                             "\". cat is required, please specify a cat tools " +
434985d02c7SAriel Constenla-Haile                             "directory." +
435985d02c7SAriel Constenla-Haile                             "\nYou can get cat from " +
436985d02c7SAriel Constenla-Haile                             "http://sourceforge.net/projects/unxutils/files/latest/download");
437985d02c7SAriel Constenla-Haile            continue;
438985d02c7SAriel Constenla-Haile        }
439985d02c7SAriel Constenla-Haile        return sHome;
440985d02c7SAriel Constenla-Haile    }
441985d02c7SAriel Constenla-Haile}
442985d02c7SAriel Constenla-Haile
443985d02c7SAriel Constenla-Hailefunction getSedHome()
444985d02c7SAriel Constenla-Haile{
445985d02c7SAriel Constenla-Haile    var sSuggestedHome = WshSysEnv("OO_SDK_SED_HOME");
446985d02c7SAriel Constenla-Haile
447*7477dbb9SJürgen Schmidt    if (sSuggestedHome.length == 0 && oo_sdk_make_home.length > 0) {
448*7477dbb9SJürgen Schmidt       sSuggestedHome = oo_sdk_make_home;
449*7477dbb9SJürgen Schmidt    }
450*7477dbb9SJürgen Schmidt
451985d02c7SAriel Constenla-Haile    while(true)
452985d02c7SAriel Constenla-Haile    {
453985d02c7SAriel Constenla-Haile        stdout.Write("\n Enter a sed (3.02 or higher) tools directory [" +
454985d02c7SAriel Constenla-Haile                     sSuggestedHome + "]:");
455985d02c7SAriel Constenla-Haile        var sHome = stdin.ReadLine();
456985d02c7SAriel Constenla-Haile        if (sHome.length == 0)
457985d02c7SAriel Constenla-Haile        {
458985d02c7SAriel Constenla-Haile            //No user input, use default.
459985d02c7SAriel Constenla-Haile            if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
460985d02c7SAriel Constenla-Haile            {
461985d02c7SAriel Constenla-Haile                stdout.WriteLine("\n Error: Could not find directory \"" +
462985d02c7SAriel Constenla-Haile                                 sSuggestedHome + "\". sed is required, please " +
463985d02c7SAriel Constenla-Haile                                 "specify a sed tools directory." +
464985d02c7SAriel Constenla-Haile                                 "\nYou can get sed from " +
465985d02c7SAriel Constenla-Haile                                 "http://sourceforge.net/projects/unxutils/files/latest/download");
466985d02c7SAriel Constenla-Haile                sSuggestedHome = "";
467985d02c7SAriel Constenla-Haile                continue;
468985d02c7SAriel Constenla-Haile            }
469985d02c7SAriel Constenla-Haile            sHome = sSuggestedHome;
470985d02c7SAriel Constenla-Haile        }
471985d02c7SAriel Constenla-Haile        else
472985d02c7SAriel Constenla-Haile        {
473985d02c7SAriel Constenla-Haile            //validate the user input
474985d02c7SAriel Constenla-Haile            if ( ! aFileSystemObject.FolderExists(sHome))
475985d02c7SAriel Constenla-Haile            {
476985d02c7SAriel Constenla-Haile                stdout.WriteLine("\n Error: The directory \"" + sHome +
477985d02c7SAriel Constenla-Haile                                 "\" does not exist. sed is required, please " +
478985d02c7SAriel Constenla-Haile                                 "specify a sed tools directory." +
479985d02c7SAriel Constenla-Haile                                 "\nYou can get sed from " +
480985d02c7SAriel Constenla-Haile                                 "http://sourceforge.net/projects/unxutils/files/latest/download");
481985d02c7SAriel Constenla-Haile                continue;
482985d02c7SAriel Constenla-Haile            }
483985d02c7SAriel Constenla-Haile        }
484985d02c7SAriel Constenla-Haile        //Check for the make executable
485985d02c7SAriel Constenla-Haile        var sSedPath = sHome + "\\sed.exe";
486985d02c7SAriel Constenla-Haile        if (! aFileSystemObject.FileExists(sSedPath))
487985d02c7SAriel Constenla-Haile        {
488985d02c7SAriel Constenla-Haile            stdout.WriteLine("\n Error: Could not find \"" + sSedPath +
489985d02c7SAriel Constenla-Haile                             "\". sed is required, please specify a sed tools " +
490985d02c7SAriel Constenla-Haile                             "directory." +
491985d02c7SAriel Constenla-Haile                             "\nYou can get sed from " +
492985d02c7SAriel Constenla-Haile                             "http://sourceforge.net/projects/unxutils/files/latest/download");
493985d02c7SAriel Constenla-Haile            continue;
494985d02c7SAriel Constenla-Haile        }
495985d02c7SAriel Constenla-Haile        return sHome;
496985d02c7SAriel Constenla-Haile    }
497985d02c7SAriel Constenla-Haile}
498985d02c7SAriel Constenla-Haile
499cdf0e10cSrcweirfunction getCppHome()
500cdf0e10cSrcweir{
501cdf0e10cSrcweir    var sSuggestedHome = WshSysEnv("OO_SDK_CPP_HOME");
502cdf0e10cSrcweir    if (sSuggestedHome.length == 0)
503cdf0e10cSrcweir    {
504cdf0e10cSrcweir        var sVC="";
505cdf0e10cSrcweir        try {
506cdf0e10cSrcweir            sVC = WshShell.RegRead(regKeyVCExpress90);
507cdf0e10cSrcweir        }catch (exc) {}
508cdf0e10cSrcweir        if (sVC.length == 0)
509cdf0e10cSrcweir        {
510b3ba5bc7SJürgen Schmidt	   try {
511b3ba5bc7SJürgen Schmidt	       sVC = WshShell.RegRead(regKeyVCExpress90_2);
512b3ba5bc7SJürgen Schmidt	   }catch (exc) {}
513b3ba5bc7SJürgen Schmidt	}
514b3ba5bc7SJürgen Schmidt	if (sVC.length == 0)
515b3ba5bc7SJürgen Schmidt        {
516b3ba5bc7SJürgen Schmidt	   try {
517b3ba5bc7SJürgen Schmidt	       sVC = WshShell.RegRead(regKeyVC90);
518b3ba5bc7SJürgen Schmidt	   }catch (exc) {}
519b3ba5bc7SJürgen Schmidt	}
520b3ba5bc7SJürgen Schmidt	// check Windows SDK if VC 9
521cdf0e10cSrcweir        if (sVC.length > 0)
522cdf0e10cSrcweir        {
523cdf0e10cSrcweir		    oo_sdk_manifest_used="true";
524cdf0e10cSrcweir			try {
525cdf0e10cSrcweir				oo_sdk_windowssdk = WshShell.RegRead(regKeyWindowsSDK);
526cdf0e10cSrcweir			}catch (exc) {}
527cdf0e10cSrcweir		}
528cdf0e10cSrcweir        if (sVC.length == 0)
529cdf0e10cSrcweir        {
530cdf0e10cSrcweir	        try {
531cdf0e10cSrcweir				sVC = WshShell.RegRead(regKeyVCExpress80);
532cdf0e10cSrcweir			}catch (exc) {}
533cdf0e10cSrcweir	        if (sVC.length > 0)
534cdf0e10cSrcweir			   oo_sdk_manifest_used="true";
535cdf0e10cSrcweir		}
536cdf0e10cSrcweir        if (sVC.length == 0)
537cdf0e10cSrcweir        {
538cdf0e10cSrcweir	        try {
539cdf0e10cSrcweir				sVC = WshShell.RegRead(regKeyVC80);
540cdf0e10cSrcweir			}catch (exc) {}
541cdf0e10cSrcweir	        if (sVC.length > 0)
542cdf0e10cSrcweir			   oo_sdk_manifest_used="true";
543cdf0e10cSrcweir		}
544cdf0e10cSrcweir        if (sVC.length == 0)
545cdf0e10cSrcweir        {
546cdf0e10cSrcweir	        try {
547cdf0e10cSrcweir				sVC = WshShell.RegRead(regKeyVC71);
548cdf0e10cSrcweir			}catch (exc) {}
549cdf0e10cSrcweir		}
550cdf0e10cSrcweir        if (sVC.length > 0)
551cdf0e10cSrcweir        {
552cdf0e10cSrcweir            sVC += "bin";
553cdf0e10cSrcweir            if (aFileSystemObject.FileExists(sVC + "\\cl.exe"))
554cdf0e10cSrcweir                sSuggestedHome = sVC;
555cdf0e10cSrcweir        }
556cdf0e10cSrcweir    }
557cdf0e10cSrcweir
558cdf0e10cSrcweir    var bSkip = false;
559cdf0e10cSrcweir    while(true)
560cdf0e10cSrcweir    {
561cdf0e10cSrcweir        stdout.Write("\n Enter the directory of the C++ compiler (optional) [" +
562cdf0e10cSrcweir                     sSuggestedHome + "]:");
563cdf0e10cSrcweir        var sHome = stdin.ReadLine();
564cdf0e10cSrcweir        if (sHome.length == 0)
565cdf0e10cSrcweir        {
566cdf0e10cSrcweir            //No user input, check OO_SDK_CPP_HOME or suggested value
567cdf0e10cSrcweir	    if ( sSuggestedHome.length == 0 ) {
568cdf0e10cSrcweir		bSkip = true;
569cdf0e10cSrcweir	    } else {
570cdf0e10cSrcweir	        if ( !aFileSystemObject.FolderExists(sSuggestedHome) )
571cdf0e10cSrcweir		{
572cdf0e10cSrcweir		    stdout.WriteLine("\n Error: Could not find directory \"" +
573cdf0e10cSrcweir				     sSuggestedHome + "\".");
574cdf0e10cSrcweir		    sSuggestedHome = "";
575cdf0e10cSrcweir		    bSkip = true;
576cdf0e10cSrcweir		}
577cdf0e10cSrcweir	    }
578cdf0e10cSrcweir
579cdf0e10cSrcweir            sHome = sSuggestedHome;
580cdf0e10cSrcweir        } else
581cdf0e10cSrcweir        {
582cdf0e10cSrcweir            //validate the user input
583cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
584cdf0e10cSrcweir            {
585cdf0e10cSrcweir                stdout.WriteLine("\n Error: Could not find directory \"" +
586cdf0e10cSrcweir                                 sHome + "\".");
587cdf0e10cSrcweir                bSkip = true;
588cdf0e10cSrcweir            }
589cdf0e10cSrcweir        }
590cdf0e10cSrcweir
591cdf0e10cSrcweir		if ( !bSkip) {
592cdf0e10cSrcweir		    //Check if the C++ compiler exist
593cdf0e10cSrcweir		    var cl = sHome + "\\cl.exe";
594cdf0e10cSrcweir		    var mt = sHome + "\\mt.exe";
595cdf0e10cSrcweir
596cdf0e10cSrcweir			if (! aFileSystemObject.FileExists(cl))
597cdf0e10cSrcweir			{
598cdf0e10cSrcweir				stdout.WriteLine("\n Error: Could not find the C++ compiler \""
599cdf0e10cSrcweir								 + cl + "\".");
600cdf0e10cSrcweir				sHome = "";
601cdf0e10cSrcweir				bSkip = true;
602cdf0e10cSrcweir			} else {
603cdf0e10cSrcweir			    if (aFileSystemObject.FileExists(mt)) {
604cdf0e10cSrcweir				    oo_sdk_vc8_used="true";
605cdf0e10cSrcweir				}
606cdf0e10cSrcweir			}
607cdf0e10cSrcweir		}
608cdf0e10cSrcweir
609cdf0e10cSrcweir		if ( bSkip ) {
610cdf0e10cSrcweir		   if ( skipChoice("the C++ compiler") ) {
611cdf0e10cSrcweir			   return "";
612cdf0e10cSrcweir		   } else {
613cdf0e10cSrcweir			   bSkip = false;
614cdf0e10cSrcweir			   continue;
615cdf0e10cSrcweir		   }
616cdf0e10cSrcweir		}
617cdf0e10cSrcweir
618cdf0e10cSrcweir        return sHome;
619cdf0e10cSrcweir    }
620cdf0e10cSrcweir}
621cdf0e10cSrcweir
622cdf0e10cSrcweirfunction getCliHome()
623cdf0e10cSrcweir{
624cdf0e10cSrcweir    var sSuggestedHome = WshSysEnv("OO_SDK_CLI_HOME");
625cdf0e10cSrcweir
626cdf0e10cSrcweir    if (sSuggestedHome.length == 0)
627cdf0e10cSrcweir    {
628cdf0e10cSrcweir        try {
629cdf0e10cSrcweir            var _ver = WshShell.RegRead(regKeyDotNet2_0);
630cdf0e10cSrcweir            if (_ver.length > 0)
631cdf0e10cSrcweir            {
632cdf0e10cSrcweir                sSuggestedHome = WshShell.RegRead(regKeyDotNetInstallRoot);
633cdf0e10cSrcweir                sSuggestedHome += sDirDotNet2_0;
634cdf0e10cSrcweir                if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
635cdf0e10cSrcweir                    sSuggestedHome = "";
636cdf0e10cSrcweir            }
637cdf0e10cSrcweir
638cdf0e10cSrcweir			if (sSuggestedHome.length == 0)
639cdf0e10cSrcweir			{
640cdf0e10cSrcweir				_ver = WshShell.RegRead(regKeyDotNet1_1);
641cdf0e10cSrcweir				if (_ver.length > 0)
642cdf0e10cSrcweir				{
643cdf0e10cSrcweir					sSuggestedHome = WshShell.RegRead(regKeyDotNetInstallRoot);
644cdf0e10cSrcweir					sSuggestedHome += sDirDotNet1_1;
645cdf0e10cSrcweir					if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
646cdf0e10cSrcweir					   sSuggestedHome = "";
647cdf0e10cSrcweir				}
648cdf0e10cSrcweir			}
649cdf0e10cSrcweir		} catch (exc) {}
650cdf0e10cSrcweir    }
651cdf0e10cSrcweir
652cdf0e10cSrcweir    var bSkip = false;
653cdf0e10cSrcweir    while(true)
654cdf0e10cSrcweir    {
655cdf0e10cSrcweir        stdout.Write("\n Enter the directory of the C# and VB.NET compilers (optional) [" + sSuggestedHome + "]:");
656cdf0e10cSrcweir        var sHome = stdin.ReadLine();
657cdf0e10cSrcweir        if (sHome.length == 0)
658cdf0e10cSrcweir        {
659cdf0e10cSrcweir            //No user input, check OO_SDK_CLI_HOME or suggested value
660cdf0e10cSrcweir			if ( sSuggestedHome.length == 0 ) {
661cdf0e10cSrcweir			    bSkip = true;
662cdf0e10cSrcweir			} else {
663cdf0e10cSrcweir			    if ( !aFileSystemObject.FolderExists(sSuggestedHome) )
664cdf0e10cSrcweir				{
665cdf0e10cSrcweir					stdout.WriteLine("\n Error: Could not find directory \"" +
666cdf0e10cSrcweir									 sSuggestedHome + "\".");
667cdf0e10cSrcweir					sSuggestedHome = "";
668cdf0e10cSrcweir					bSkip = true;
669cdf0e10cSrcweir				}
670cdf0e10cSrcweir			}
671cdf0e10cSrcweir
672cdf0e10cSrcweir		    sHome = sSuggestedHome;
673cdf0e10cSrcweir        }
674cdf0e10cSrcweir        else
675cdf0e10cSrcweir        {
676cdf0e10cSrcweir            //validate the user input
677cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
678cdf0e10cSrcweir            {
679cdf0e10cSrcweir                stdout.WriteLine("\n Error: The directory \"" + sHome +
680cdf0e10cSrcweir                                 "\" does not exist.");
681cdf0e10cSrcweir                bSkip = true;
682cdf0e10cSrcweir            }
683cdf0e10cSrcweir        }
684cdf0e10cSrcweir
685cdf0e10cSrcweir		if ( !bSkip ) {
686cdf0e10cSrcweir		    //Check if the C# and VB.NET compiler exist
687cdf0e10cSrcweir		    var csc = sHome + "\\csc.exe";
688cdf0e10cSrcweir		    var vbc = sHome + "\\vbc.exe";
689cdf0e10cSrcweir
690cdf0e10cSrcweir			if (! aFileSystemObject.FileExists(csc))
691cdf0e10cSrcweir			{
692cdf0e10cSrcweir				stdout.WriteLine("\n Error: Could not find the C# compiler \"" +
693cdf0e10cSrcweir								 csc + "\".");
694cdf0e10cSrcweir				bSkip = true;
695cdf0e10cSrcweir			}
696cdf0e10cSrcweir			if (! aFileSystemObject.FileExists(vbc))
697cdf0e10cSrcweir			{
698cdf0e10cSrcweir				stdout.WriteLine("\n Error: Could not find the VB.NET compiler \"" +
699cdf0e10cSrcweir								 vbc + "\".");
700cdf0e10cSrcweir				bSkip = true;
701cdf0e10cSrcweir			}
702cdf0e10cSrcweir		}
703cdf0e10cSrcweir
704cdf0e10cSrcweir		if ( bSkip ) {
705cdf0e10cSrcweir		   if ( skipChoice("the C# and VB.NET compilers") ) {
706cdf0e10cSrcweir			   return "";
707cdf0e10cSrcweir		   } else {
708cdf0e10cSrcweir			   bSkip = false;
709cdf0e10cSrcweir			   continue;
710cdf0e10cSrcweir		   }
711cdf0e10cSrcweir		}
712cdf0e10cSrcweir
713cdf0e10cSrcweir        return sHome;
714cdf0e10cSrcweir    }
715cdf0e10cSrcweir}
716cdf0e10cSrcweir
717cdf0e10cSrcweirfunction getJavaHome()
718cdf0e10cSrcweir{
719cdf0e10cSrcweir    var sSuggestedHome = WshSysEnv("OO_SDK_JAVA_HOME");
720cdf0e10cSrcweir    if (sSuggestedHome.length == 0)
721cdf0e10cSrcweir    {
722cdf0e10cSrcweir        try {
723cdf0e10cSrcweir            var currentVersion = WshShell.RegRead(regKeyJDK + "CurrentVersion");
724cdf0e10cSrcweir            if (currentVersion.length > 0)
725cdf0e10cSrcweir            {
726cdf0e10cSrcweir                sSuggestedHome = WshShell.RegRead(regKeyJDK + currentVersion +
727cdf0e10cSrcweir												  "\\JavaHome");
728cdf0e10cSrcweir                if ( ! aFileSystemObject.FolderExists(sSuggestedHome) )
729cdf0e10cSrcweir                    sSuggestedHome = "";
730cdf0e10cSrcweir            }
731cdf0e10cSrcweir        } catch (exc) {}
732cdf0e10cSrcweir    }
733cdf0e10cSrcweir
734cdf0e10cSrcweir    var bSkip = false;
735cdf0e10cSrcweir    while(true)
736cdf0e10cSrcweir    {
737cdf0e10cSrcweir        stdout.Write("\n Enter JAVA SDK (1.4.1_01 or higher) installation directory (optional) [" + sSuggestedHome + "]:");
738cdf0e10cSrcweir        var sHome = stdin.ReadLine();
739cdf0e10cSrcweir        if (sHome.length == 0)
740cdf0e10cSrcweir        {
741cdf0e10cSrcweir            //No user input, check OO_SDK_JAVA_HOME or suggested value
742cdf0e10cSrcweir			if ( sSuggestedHome.length == 0 ) {
743cdf0e10cSrcweir			    bSkip = true;
744cdf0e10cSrcweir			} else {
745cdf0e10cSrcweir			    if ( !aFileSystemObject.FolderExists(sSuggestedHome) )
746cdf0e10cSrcweir				{
747cdf0e10cSrcweir					stdout.WriteLine("\n Error: Could not find directory \"" +
748cdf0e10cSrcweir									 sSuggestedHome + "\".");
749cdf0e10cSrcweir					sSuggestedHome = "";
750cdf0e10cSrcweir					bSkip=true;
751cdf0e10cSrcweir				}
752cdf0e10cSrcweir			}
753cdf0e10cSrcweir
754cdf0e10cSrcweir			sHome = sSuggestedHome;
755cdf0e10cSrcweir        } else
756cdf0e10cSrcweir        {
757cdf0e10cSrcweir            //validate the user input
758cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
759cdf0e10cSrcweir            {
760cdf0e10cSrcweir                stdout.WriteLine("\n Error: The directory \"" + sHome +
761cdf0e10cSrcweir                                 "\" does not exist.");
762cdf0e10cSrcweir				bSkip = true;
763cdf0e10cSrcweir            }
764cdf0e10cSrcweir        }
765cdf0e10cSrcweir
766cdf0e10cSrcweir		if ( !bSkip) {
767cdf0e10cSrcweir		    //Check if this is an sdk folder by looking for the javac compiler
768cdf0e10cSrcweir			var javacompiler = sHome + "\\bin\\javac.exe";
769cdf0e10cSrcweir			if (! aFileSystemObject.FileExists(javacompiler))
770cdf0e10cSrcweir			{
771cdf0e10cSrcweir				stdout.WriteLine("\n Error: Could not find \"" +
772cdf0e10cSrcweir								 javacompiler + "\".");
773cdf0e10cSrcweir				bSkip = true;
774cdf0e10cSrcweir			}
775cdf0e10cSrcweir        }
776cdf0e10cSrcweir
777cdf0e10cSrcweir		if ( bSkip ) {
778cdf0e10cSrcweir		   if ( skipChoice("the Java SDK") ) {
779cdf0e10cSrcweir			   return "";
780cdf0e10cSrcweir		   } else {
781cdf0e10cSrcweir			   bSkip = false;
782cdf0e10cSrcweir			   continue;
783cdf0e10cSrcweir		   }
784cdf0e10cSrcweir		}
785cdf0e10cSrcweir
786cdf0e10cSrcweir        return sHome;
787cdf0e10cSrcweir    }
788cdf0e10cSrcweir}
789cdf0e10cSrcweir
790cdf0e10cSrcweirfunction getOutputDir()
791cdf0e10cSrcweir{
792cdf0e10cSrcweir	var defaultdir = "c:\\" + oo_sdk_name;
793cdf0e10cSrcweir    var sSuggestedDir = WshSysEnv("OO_SDK_OUT");
794cdf0e10cSrcweir	if (sSuggestedDir.length == 0)
795cdf0e10cSrcweir	   sSuggestedDir = defaultdir;
796cdf0e10cSrcweir
797cdf0e10cSrcweir    var bSkip = false;
798cdf0e10cSrcweir    while(true)
799cdf0e10cSrcweir    {
800cdf0e10cSrcweir        stdout.Write(
801cdf0e10cSrcweir			"\n Default output directory is the \"c:\\" + oo_sdk_name + "\".\n" +
802cdf0e10cSrcweir            " Enter an existent directory if you prefer a different one. But note" +
803cdf0e10cSrcweir			" that only\n a path without spaces is allowed because of a" +
804cdf0e10cSrcweir			" limitation of gnu make. (optional) [" + sSuggestedDir + "]:");
805cdf0e10cSrcweir        var sDir = stdin.ReadLine();
806cdf0e10cSrcweir        if (sDir.length == 0)
807cdf0e10cSrcweir        {
808cdf0e10cSrcweir            //No user input, check OO_SDK_OUT or suggested value
809cdf0e10cSrcweir			if ( sSuggestedDir.length == 0 ) {
810cdf0e10cSrcweir			    bSkip = true;
811cdf0e10cSrcweir			} else {
812cdf0e10cSrcweir				if (sSuggestedDir == oo_user_sdk_dir || sSuggestedDir == defaultdir) {
813cdf0e10cSrcweir				    var fso = new ActiveXObject("Scripting.FileSystemObject");
814cdf0e10cSrcweir					if ( !fso.FolderExists(sSuggestedDir) )
815cdf0e10cSrcweir						fso.CreateFolder(sSuggestedDir);
816cdf0e10cSrcweir				}
817cdf0e10cSrcweir			    if ( !aFileSystemObject.FolderExists(sSuggestedDir) )
818cdf0e10cSrcweir				{
819cdf0e10cSrcweir					stdout.WriteLine("\n Error: Could not find directory \"" +
820cdf0e10cSrcweir									 sSuggestedDir + "\".");
821cdf0e10cSrcweir					sSuggestedDir = "";
822cdf0e10cSrcweir					bSkip = true;
823cdf0e10cSrcweir				}
824cdf0e10cSrcweir			}
825cdf0e10cSrcweir
826cdf0e10cSrcweir            sDir = sSuggestedDir;
827cdf0e10cSrcweir        }
828cdf0e10cSrcweir        else
829cdf0e10cSrcweir        {
830cdf0e10cSrcweir			if (sDir.indexOf(' ') != -1) {
831cdf0e10cSrcweir				stdout.WriteLine("\n Error: your specified output directory " +
832cdf0e10cSrcweir								 "\"" + sDir + "\" " +
833cdf0e10cSrcweir								 "contains one or more spaces.\n        That " +
834cdf0e10cSrcweir								 "causes problems with gnu make. Please specifiy" +
835cdf0e10cSrcweir								 " a directory without spaces.");
836cdf0e10cSrcweir				bSkip = true;
837cdf0e10cSrcweir			}
838cdf0e10cSrcweir            //validate the user input
839cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sDir))
840cdf0e10cSrcweir            {
841cdf0e10cSrcweir                stdout.WriteLine("\n Error: Could not find directory \"" +
842cdf0e10cSrcweir                                 sDir + "\".");
843cdf0e10cSrcweir                bSkip = true;
844cdf0e10cSrcweir            }
845cdf0e10cSrcweir        }
846cdf0e10cSrcweir
847cdf0e10cSrcweir		if ( bSkip ) {
848cdf0e10cSrcweir		   if ( skipChoice("a special output directory") ) {
849cdf0e10cSrcweir			   return "";
850cdf0e10cSrcweir		   } else {
851cdf0e10cSrcweir			   bSkip = false;
852cdf0e10cSrcweir			   continue;
853cdf0e10cSrcweir		   }
854cdf0e10cSrcweir		}
855cdf0e10cSrcweir
856cdf0e10cSrcweir        return sDir;
857cdf0e10cSrcweir    }
858cdf0e10cSrcweir}
859cdf0e10cSrcweir
860cdf0e10cSrcweirfunction getAutoDeployment()
861cdf0e10cSrcweir{
862cdf0e10cSrcweir    var sSuggestedAuto = WshSysEnv("SDK_AUTO_DEPLOYMENT");
863cdf0e10cSrcweir    if (sSuggestedAuto.length == 0)
864cdf0e10cSrcweir        sSuggestedAuto = "YES";
865cdf0e10cSrcweir
866cdf0e10cSrcweir    while(true)
867cdf0e10cSrcweir    {
868cdf0e10cSrcweir        stdout.Write("\n Automatic deployment of UNO components (YES/NO) ["+
869cdf0e10cSrcweir                     sSuggestedAuto + "]:");
870cdf0e10cSrcweir        var sAuto = stdin.ReadLine();
871cdf0e10cSrcweir        if (sAuto.length == 0)
872cdf0e10cSrcweir            sAuto = sSuggestedAuto;
873cdf0e10cSrcweir        else
874cdf0e10cSrcweir        {
875cdf0e10cSrcweir            sAutoU = sAuto.toUpperCase();
876cdf0e10cSrcweir            if (sAutoU != "YES" && sAutoU != "NO")
877cdf0e10cSrcweir            {
878cdf0e10cSrcweir                stdout.WriteLine("\n Error: The value \"" + sAuto + "\" is " +
879cdf0e10cSrcweir								 "invalid. Please answer YES or NO.")
880cdf0e10cSrcweir                    continue;
881cdf0e10cSrcweir            }
882cdf0e10cSrcweir            sAuto = sAutoU;
883cdf0e10cSrcweir        }
884cdf0e10cSrcweir        return sAuto;
885cdf0e10cSrcweir    }
886cdf0e10cSrcweir}
887cdf0e10cSrcweir
888cdf0e10cSrcweir//The function uses sp2bv.exe to obtain a file URL from a
889cdf0e10cSrcweir//system path. The URL is already escaped for use as bootstrap variable.
890cdf0e10cSrcweir//($ -> \$). Then the resulting string is escaped for use in a bat file.
891cdf0e10cSrcweir//That is % signs are made to double % (% -> %%);
892cdf0e10cSrcweirfunction makeBootstrapFileUrl(systemPath)
893cdf0e10cSrcweir{
894cdf0e10cSrcweir    var oExec = WshShell.Exec("sp2bv.exe \"" + systemPath + "\"");
895cdf0e10cSrcweir    var output="";
896cdf0e10cSrcweir    while (true)
897cdf0e10cSrcweir    {
898cdf0e10cSrcweir        if (!oExec.StdOut.AtEndOfStream)
899cdf0e10cSrcweir        {
900cdf0e10cSrcweir            var next = oExec.StdOut.Read(1);
901cdf0e10cSrcweir            if (next == '%')
902cdf0e10cSrcweir                output += "%%";
903cdf0e10cSrcweir            else
904cdf0e10cSrcweir                output += next;
905cdf0e10cSrcweir        }
906cdf0e10cSrcweir        else
907cdf0e10cSrcweir            break;
908cdf0e10cSrcweir    }
909cdf0e10cSrcweir    return output;
910cdf0e10cSrcweir}
911cdf0e10cSrcweir
912cdf0e10cSrcweirfunction writeBatFile(fdir, file)
913cdf0e10cSrcweir{
914cdf0e10cSrcweir    var fso = new ActiveXObject("Scripting.FileSystemObject");
915cdf0e10cSrcweir    if ( !fso.FolderExists(fdir) )
916cdf0e10cSrcweir       fso.CreateFolder(fdir);
917cdf0e10cSrcweir    var newFile = fso.CreateTextFile(file, true);
918cdf0e10cSrcweir
919cdf0e10cSrcweir    newFile.Write(
920cdf0e10cSrcweir        "@echo off\n" +
921cdf0e10cSrcweir        "REM This script sets all enviroment variables, which\n" +
922cdf0e10cSrcweir        "REM are necessary for building the examples of the Office Development Kit.\n" +
923cdf0e10cSrcweir        "REM The Script was developed for the operating systems Windows.\n" +
924cdf0e10cSrcweir        "REM The SDK name\n" +
925*7477dbb9SJürgen Schmidt        "REM Example: @set \"OO_SDK_NAME=openoffice4.0_sdk\"\n" +
926*7477dbb9SJürgen Schmidt        "@set \"OO_SDK_NAME=" + oo_sdk_name  +
927*7477dbb9SJürgen Schmidt        "\"\n\n" +
928cdf0e10cSrcweir        "REM Installation directory of the Software Development Kit.\n" +
929*7477dbb9SJürgen Schmidt        "REM Example: @set \"OO_SDK_HOME=C:\\Program Files\\OpenOffice\\4\\sdk\"\n" +
930*7477dbb9SJürgen Schmidt        "@set \"OO_SDK_HOME=" + oo_sdk_home  +
931*7477dbb9SJürgen Schmidt        "\"\n\n" +
932cdf0e10cSrcweir        "REM Office installation directory.\n" +
933*7477dbb9SJürgen Schmidt        "REM Example: @set \"OFFICE_HOME=C:\\Program Files\\OpenOffice 4\"\n" +
934*7477dbb9SJürgen Schmidt        "@set \"OFFICE_HOME=" + office_home +
935*7477dbb9SJürgen Schmidt        "\"\n\n" +
936cdf0e10cSrcweir        "REM Directory of the make command.\n" +
937*7477dbb9SJürgen Schmidt        "REM Example: @set \"OO_SDK_MAKE_HOME=C:\\UnxUtils\\usr\\local\\wbin\"\n" +
938*7477dbb9SJürgen Schmidt        "@set \"OO_SDK_MAKE_HOME=" + oo_sdk_make_home +
939*7477dbb9SJürgen Schmidt        "\"\n\n" +
940b3ba5bc7SJürgen Schmidt	"REM Directory of the zip tool.\n" +
941*7477dbb9SJürgen Schmidt	"REM Example: @set \"OO_SDK_ZIP_HOME=C:\\UnxUtils\\usr\\local\\wbin\"\n" +
942*7477dbb9SJürgen Schmidt	"@set \"OO_SDK_ZIP_HOME=" + oo_sdk_zip_home +
943*7477dbb9SJürgen Schmidt        "\"\n\n" +
944985d02c7SAriel Constenla-Haile        "REM Directory of the cat tool.\n" +
945*7477dbb9SJürgen Schmidt        "REM Example: @set \"OO_SDK_CAT_HOME=C:\\UnxUtils\\usr\\local\\wbin\"\n" +
946*7477dbb9SJürgen Schmidt        "@set \"OO_SDK_CAT_HOME=" + oo_sdk_cat_home +
947*7477dbb9SJürgen Schmidt        "\"\n\n" +
948985d02c7SAriel Constenla-Haile        "REM Directory of the sed tool.\n" +
949*7477dbb9SJürgen Schmidt        "REM Example: @set \"OO_SDK_SED_HOME=C:\\UnxUtils\\usr\\local\\wbin\"\n" +
950*7477dbb9SJürgen Schmidt        "@set \"OO_SDK_SED_HOME=" + oo_sdk_sed_home +
951*7477dbb9SJürgen Schmidt        "\"\n\n" +
952cdf0e10cSrcweir        "REM Directory of the C++ compiler.\n" +
953*7477dbb9SJürgen Schmidt        "REM Example: @set \"OO_SDK_CPP_HOME=C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\bin\"\n" +
954*7477dbb9SJürgen Schmidt        "@set \"OO_SDK_CPP_HOME=" + oo_sdk_cpp_home +
955*7477dbb9SJürgen Schmidt	"\"\n@set \"CPP_MANIFEST=" + oo_sdk_manifest_used +
956*7477dbb9SJürgen Schmidt	"\"\n@set \"CPP_WINDOWS_SDK=" + oo_sdk_windowssdk +
957*7477dbb9SJürgen Schmidt        "\"\n\n" +
958cdf0e10cSrcweir        "REM Directory of the C# and VB.NET compilers.\n" +
959*7477dbb9SJürgen Schmidt        "REM Example: @set \"OO_SDK_CLI_HOME=C:\\WINXP\\Microsoft.NET\\Framework\\v1.0.3705\"\n" +
960*7477dbb9SJürgen Schmidt        "@set \"OO_SDK_CLI_HOME=" + oo_sdk_cli_home +
961*7477dbb9SJürgen Schmidt        "\"\n\n" +
962cdf0e10cSrcweir        "REM Java SDK installation directory.\n" +
963*7477dbb9SJürgen Schmidt        "REM Example: @set \"OO_SDK_JAVA_HOME=C:\\Program Files\\Java\\jdk1.6.0_05\"\n" +
964*7477dbb9SJürgen Schmidt        "@set \"OO_SDK_JAVA_HOME=" + oo_sdk_java_home +
965*7477dbb9SJürgen Schmidt        "\"\n\n" +
966cdf0e10cSrcweir        "REM Special output directory\n" +
967*7477dbb9SJürgen Schmidt        "REM Example: @set \"OO_SDK_OUT=C:\\" + oo_sdk_name + "\"\n" +
968*7477dbb9SJürgen Schmidt        "@set \"OO_SDK_OUT=" + oo_sdk_out +
969*7477dbb9SJürgen Schmidt        "\"\n\n" +
970cdf0e10cSrcweir        "REM Automatic deployment\n" +
971*7477dbb9SJürgen Schmidt        "REM Example: @set \"SDK_AUTO_DEPLOYMENT=YES\"\n" +
972*7477dbb9SJürgen Schmidt        "@set \"SDK_AUTO_DEPLOYMENT=" + sdk_auto_deployment +
973*7477dbb9SJürgen Schmidt        "\"\n\n" +
974*7477dbb9SJürgen Schmidt	"REM Check installation path for the Office Development Kit.\n" +
975cdf0e10cSrcweir        "if not defined OO_SDK_HOME (\n" +
976cdf0e10cSrcweir        "   echo Error: the variable OO_SDK_HOME is missing!\n" +
977cdf0e10cSrcweir        "   goto :error\n" +
978cdf0e10cSrcweir        " )\n" +
979*7477dbb9SJürgen Schmidt        "\n\n" +
980cdf0e10cSrcweir        "REM Check installation path for GNU make.\n" +
981cdf0e10cSrcweir        "if not defined OO_SDK_MAKE_HOME (\n" +
982cdf0e10cSrcweir        "   echo Error: the variable OO_SDK_MAKE_HOME is missing!\n" +
983cdf0e10cSrcweir        "   goto :error\n" +
984cdf0e10cSrcweir        " )\n" +
985cdf0e10cSrcweir        "\n" +
986cdf0e10cSrcweir        "REM Check installation path for the zip tool.\n" +
987cdf0e10cSrcweir        "if not defined OO_SDK_ZIP_HOME (\n" +
988cdf0e10cSrcweir        "   echo Error: the variable OO_SDK_ZIP_HOME is missing!\n" +
989cdf0e10cSrcweir        "   goto :error\n" +
990cdf0e10cSrcweir        " )\n" +
991cdf0e10cSrcweir        "\n" +
992985d02c7SAriel Constenla-Haile        "REM Check installation path for the cat tool.\n" +
993985d02c7SAriel Constenla-Haile        "if not defined OO_SDK_CAT_HOME (\n" +
994985d02c7SAriel Constenla-Haile        "   echo Error: the variable OO_SDK_CAT_HOME is missing!\n" +
995985d02c7SAriel Constenla-Haile        "   goto :error\n" +
996985d02c7SAriel Constenla-Haile        " )\n" +
997985d02c7SAriel Constenla-Haile        "\n" +
998985d02c7SAriel Constenla-Haile        "REM Check installation path for the sed tool.\n" +
999985d02c7SAriel Constenla-Haile        "if not defined OO_SDK_SED_HOME (\n" +
1000985d02c7SAriel Constenla-Haile        "   echo Error: the variable OO_SDK_SED_HOME is missing!\n" +
1001985d02c7SAriel Constenla-Haile        "   goto :error\n" +
1002985d02c7SAriel Constenla-Haile        " )\n" +
1003985d02c7SAriel Constenla-Haile        "\n" +
1004cdf0e10cSrcweir        "REM Set library path. \n" +
1005*7477dbb9SJürgen Schmidt        "@set \"LIB=%OO_SDK_HOME%\\lib;%LIB%\"\n" +
1006cdf0e10cSrcweir        "if defined CPP_WINDOWS_SDK (\n" +
1007*7477dbb9SJürgen Schmidt        "   @set \"LIB=%LIB%;%CPP_WINDOWS_SDK%\\lib\"\n" +
1008cdf0e10cSrcweir        " )\n" +
1009cdf0e10cSrcweir        "\n" +
1010cdf0e10cSrcweir        "REM Set office program path.\n" +
1011cdf0e10cSrcweir        "if defined OFFICE_HOME (\n" +
1012*7477dbb9SJürgen Schmidt        "   @set \"OFFICE_PROGRAM_PATH=%OFFICE_HOME%\\program\"\n" +
1013b3ba5bc7SJürgen Schmidt        " )" +
1014cdf0e10cSrcweir        "\n" +
1015b3ba5bc7SJürgen Schmidt        "REM Set UNO path, necessary to ensure that the cpp examples using the\n" +
1016b3ba5bc7SJürgen Schmidt	"REM new UNO bootstrap mechanism use the configured office installation\n" +
1017b3ba5bc7SJürgen Schmidt	 "REM (only set when using an Office).\n" +
1018b3ba5bc7SJürgen Schmidt	"if defined OFFICE_HOME (\n" +
1019*7477dbb9SJürgen Schmidt	"   @set \"UNO_PATH=%OFFICE_PROGRAM_PATH%\"\n" +
1020b3ba5bc7SJürgen Schmidt	" )\n" +
1021*7477dbb9SJürgen Schmidt        "\n\n" +
1022*7477dbb9SJürgen Schmidt        "@set \"OO_SDK_OFFICE_BIN_DIR=%OFFICE_PROGRAM_PATH%\"\n" +
1023*7477dbb9SJürgen Schmidt        "@set \"OO_SDK_OFFICE_LIB_DIR=%OFFICE_BASE_PROGRAM_PATH%\"\n" +
1024*7477dbb9SJürgen Schmidt        "@set \"OO_SDK_OFFICE_JAVA_DIR=%OFFICE_BASE_PROGRAM_PATH%\\classes\"\n" +
1025cdf0e10cSrcweir        "\n" +
1026cdf0e10cSrcweir        "REM Set classpath\n" +
1027*7477dbb9SJürgen Schmidt        "@set \"CLASSPATH=%OO_SDK_OFFICE_JAVA_DIR%\\juh.jar;%OO_SDK_OFFICE_JAVA_DIR%\\jurt.jar;%OO_SDK_OFFICE_JAVA_DIR%\\ridl.jar;%OO_SDK_OFFICE_JAVA_DIR%\\unoloader.jar;%OO_SDK_OFFICE_JAVA_DIR%\\unoil.jar\"\n" +
1028cdf0e10cSrcweir        "\n" +
1029cdf0e10cSrcweir        "REM Add directory of the SDK tools to the path.\n" +
1030*7477dbb9SJürgen Schmidt        "set \"PATH=%OO_SDK_HOME%\\bin;%OO_SDK_OFFICE_BIN_DIR%;%OO_SDK_OFFICE_BIN_DIR%;%OO_SDK_HOME%\\WINexample.out\\bin;%OO_SDK_MAKE_HOME%;%OO_SDK_ZIP_HOME%;%OO_SDK_CAT_HOME%;%OO_SDK_SED_HOME%;%PATH%\"\n" +
1031cdf0e10cSrcweir        "\n" +
1032cdf0e10cSrcweir        "REM Set PATH appropriate to the output directory\n" +
1033cdf0e10cSrcweir        "if defined OO_SDK_OUT (\n" +
1034*7477dbb9SJürgen Schmidt        "   @set \"PATH=%OO_SDK_OUT%\\WINexample.out\\bin;%PATH%\"\n" +
1035cdf0e10cSrcweir        " ) else (\n" +
1036*7477dbb9SJürgen Schmidt        "   @set \"PATH=%OO_SDK_HOME%\\WINexample.out\\bin;%PATH%\"\n" +
1037cdf0e10cSrcweir        " )\n" +
1038cdf0e10cSrcweir        "\n" +
1039cdf0e10cSrcweir        "REM Add directory of the Win SDK to the path, if necessary.\n" +
1040cdf0e10cSrcweir        "if defined CPP_WINDOWS_SDK (\n" +
1041*7477dbb9SJürgen Schmidt	"   @set \"PATH=%CPP_WINDOWS_SDK\\bin%;%PATH%\"\n" +
1042*7477dbb9SJürgen Schmidt	"   @set \"INCLUDE=%CPP_WINDOWS_SDK\\Include%;%INCLUDE%\"\n" +
1043cdf0e10cSrcweir        ")\n" +
1044cdf0e10cSrcweir        "REM Add directory of the C# and VB.NET compilers to the path, if necessary.\n" +
1045*7477dbb9SJürgen Schmidt        "if defined OO_SDK_CLI_HOME @set \"PATH=%OO_SDK_CLI_HOME%;%PATH%\"\n" +
1046cdf0e10cSrcweir        "\n" +
1047cdf0e10cSrcweir        "REM Add directory of the Java tools to the path, if necessary.\n" +
1048*7477dbb9SJürgen Schmidt        "if defined OO_SDK_JAVA_HOME @set \"PATH=%OO_SDK_JAVA_HOME%\\bin;%OO_SDK_JAVA_HOME%\\jre\\bin;%PATH%\"\n" +
1049cdf0e10cSrcweir        "\n" +
1050cdf0e10cSrcweir        "REM Set environment for C++ compiler tools, if necessary.\n" +
1051cdf0e10cSrcweir        "if defined OO_SDK_CPP_HOME call \"%OO_SDK_CPP_HOME%\\VCVARS32.bat\"\n" +
1052cdf0e10cSrcweir        "\n" +
1053cdf0e10cSrcweir        "REM Set tilte to identify the prepared shell.\n" +
1054cdf0e10cSrcweir        "title Shell prepared for SDK\n" +
1055cdf0e10cSrcweir        "\nREM Prepare shell with all necessary environment variables.\n" +
1056cdf0e10cSrcweir        "echo.\n" +
1057cdf0e10cSrcweir        "echo  ******************************************************************\n" +
1058cdf0e10cSrcweir        "echo  *\n" +
1059cdf0e10cSrcweir        "echo  * SDK environment is prepared for Windows\n" +
1060cdf0e10cSrcweir        "echo  *\n" +
1061cdf0e10cSrcweir        "echo  * SDK = %OO_SDK_HOME%\n" +
1062cdf0e10cSrcweir        "echo  * Office = %OFFICE_HOME%\n" +
1063cdf0e10cSrcweir        "echo  * Make = %OO_SDK_MAKE_HOME%\n" +
1064cdf0e10cSrcweir        "echo  * Zip = %OO_SDK_ZIP_HOME%\n" +
1065985d02c7SAriel Constenla-Haile        "echo  * cat = %OO_SDK_CAT_HOME%\n" +
1066985d02c7SAriel Constenla-Haile        "echo  * sed = %OO_SDK_SED_HOME%\n" +
1067cdf0e10cSrcweir        "echo  * C++ Compiler = %OO_SDK_CPP_HOME%\n" +
1068cdf0e10cSrcweir        "echo  * C# and VB.NET compilers = %OO_SDK_CLI_HOME%\n" +
1069cdf0e10cSrcweir        "echo  * Java = %OO_SDK_JAVA_HOME%\n" +
1070cdf0e10cSrcweir        "echo  * Special Output directory = %OO_SDK_OUT%\n" +
1071cdf0e10cSrcweir        "echo  * Auto deployment = %SDK_AUTO_DEPLOYMENT%\n" +
1072cdf0e10cSrcweir        "echo  *\n" +
1073cdf0e10cSrcweir        "echo  ******************************************************************\n" +
1074cdf0e10cSrcweir        "echo.\n" +
1075cdf0e10cSrcweir        "goto end\n" +
1076cdf0e10cSrcweir        "\n" +
1077cdf0e10cSrcweir        " :error\n" +
1078cdf0e10cSrcweir        "Error: Please insert the necessary environment variables into the batch file.\n" +
1079cdf0e10cSrcweir        "\n" +
1080cdf0e10cSrcweir        " :end\n"
1081cdf0e10cSrcweir        );
1082cdf0e10cSrcweir        newFile.Close();
1083cdf0e10cSrcweir}
1084