xref: /AOO41X/main/odk/util/check.pl (revision de7f73ee4053aca9c92b675a62b3597b9dd84d1c)
1#*************************************************************************
2#
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# Copyright 2000, 2010 Oracle and/or its affiliates.
6#
7# OpenOffice.org - a multi-platform office productivity suite
8#
9# This file is part of OpenOffice.org.
10#
11# OpenOffice.org is free software: you can redistribute it and/or modify
12# it under the terms of the GNU Lesser General Public License version 3
13# only, as published by the Free Software Foundation.
14#
15# OpenOffice.org is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18# GNU Lesser General Public License version 3 for more details
19# (a copy is included in the LICENSE file that accompanied this code).
20#
21# You should have received a copy of the GNU Lesser General Public License
22# version 3 along with OpenOffice.org.  If not, see
23# <http://www.openoffice.org/license.html>
24# for a copy of the LGPLv3 License.
25#
26#*************************************************************************
27
28#
29# check - a perl script to check some files and directories if they exists
30# A first simple check if the SDK was built completely.
31#
32#use IO::File;
33
34$return = 0;
35
36$StartDir = "$ARGV[0]";
37$OperatingSystem = "$ARGV[1]";
38$ExePrefix = "$ARGV[2]";
39
40print "Check for $OperatingSystem\n";
41
42if (-d "$StartDir") {
43    # check binaries
44    print "check binaries: ";
45    if (-d "$StartDir/bin") {
46    my @binarylist = ( "idlc","ucpp","cppumaker","javamaker",
47               "regcompare","autodoc",
48               "unoapploader", "uno-skeletonmaker" );
49
50    foreach $i (@binarylist)
51    {
52        if (! -e "$StartDir/bin/$i$ExePrefix") {
53        $return++;
54        print "\nERROR: \"$StartDir/bin/$i$ExePrefix\" is missing\n";
55        } else {
56        print "+";
57        }
58    }
59
60    if ($OperatingSystem eq "windows" || $OperatingSystem eq "mingw") {
61        if ($OperatingSystem eq "windows" && ! -e "$StartDir/bin/climaker.exe") {
62        $return++;
63        print "\nERROR: \"$StartDir/bin/climaker.exe\" is missing\n";
64        } else {
65        print "+";
66        }
67    }
68    if ($OperatingSystem eq "macosx") {
69        if (! -e "$StartDir/bin/addsym-macosx.sh") {
70        $return++;
71        print "\nERROR: \"$StartDir/bin/addsym-macosx.sh\" is missing\n";
72        } else {
73        print "+";
74        }
75    }
76    } else {
77    $return++;
78    }
79    print "\n";
80
81    # packaging files
82    print "check packaging files: ";
83    if (-d "$StartDir/docs") {
84    my @filelist = ( "install.html",
85             "notsupported.html","sdk_styles.css","tools.html",
86             "images/arrow-1.gif", "images/arrow-3.gif",
87             "images/odk-footer-logo.gif",
88             "images/bg_table.png","images/bg_table2.png",
89             "images/bg_table3.png", "images/nav_down.png",
90             "images/nav_home.png","images/nav_left.png",
91             "images/nav_right.png","images/nav_up.png",
92             "images/sdk_head-1.png", "images/sdk_head-2.png",
93             "images/sdk_line-1.gif", "images/sdk_line-2.gif",
94             "common/ref/idl.css", "images/nada.gif",
95             "images/arrow-2.gif", "images/bluball.gif",
96             "images/orc-main-app_32.png", "images/ooo-main-app_32.png");
97
98    foreach $i (@filelist)
99    {
100        if (! -e "$StartDir/docs/$i") {
101        $return++;
102        print "\nERROR: \"$StartDir/docs/$i\" is missing\n";
103        } else {
104        print "+";
105        }
106    }
107    } else {
108    $return++;
109    }
110    print "\n";
111
112    #check configure files
113    print "check config files: ";
114    if ($OperatingSystem eq "windows" || $OperatingSystem eq "mingw") {
115    if (! -e "$StartDir/setsdkenv_windows.bat") {
116        print "\nERROR: \"$StartDir/setsdkenv_windows.bat\" is missing\n";
117        $return++;
118    }
119    if (! -e "$StartDir/setsdkenv_windows.template") {
120        print "\nERROR: \"$StartDir/setsdkenv_windows.template\" is missing\n";
121        $return++;
122    }
123    if (! -e "$StartDir/cfgWin.js") {
124        print "\nERROR: \"$StartDir/cfgWin.js\" is missing\n";
125        $return++;
126    }
127    } else {
128    if (! -e "$StartDir/configure.pl") {
129        print "\nERROR: \"$StartDir/configure.pl\" is missing\n";
130        $return++;
131    }
132    if (! -e "$StartDir/config.guess") {
133        print "\nERROR: \"$StartDir/config.guess\" is missing\n";
134        $return++;
135    }
136    if (! -e "$StartDir/config.sub") {
137        print "\nERROR: \"$StartDir/config.sub\" is missing\n";
138        $return++;
139       }
140    if (! -e "$StartDir/setsdkenv_unix") {
141        print "\nERROR: \"$StartDir/setsdkenv_unix\" is missing\n";
142        $return++;
143    }
144    if (! -e "$StartDir/setsdkenv_unix.sh.in") {
145        print "\nERROR: \"$StartDir/setsdkenv_unix.sh.in\" is missing\n";
146        $return++;
147    }
148    if (! -e "$StartDir/setsdkenv_unix.csh.in") {
149        print "\nERROR: \"$StartDir/setsdkenv_unix.csh.in\" is missing\n";
150        $return++;
151    }
152    }
153    print "\n";
154
155    #check setting files
156    print "check setting files: ";
157    if (-d "$StartDir/settings") {
158    if (! -e "$StartDir/settings/settings.mk") {
159        print "\nERROR: \"$StartDir/settings/settings.mk\" is missing\n";
160        $return++;
161    }
162    if (! -e "$StartDir/settings/std.mk") {
163        print "\nERROR: \"$StartDir/settings/std.mk\" is missing\n";
164        $return++;
165    }
166    if (! -e "$StartDir/settings/stdtarget.mk") {
167        print "\nERROR: \"$StartDir/settings/stdtarget.mk\" is missing\n";
168        $return++;
169    }
170    } else {
171    $return++;
172    }
173    print "\n";
174
175    #check cpp docu, it is only a first and simple check
176    # improvement required
177    print "check cpp docu: ";
178    if (-d "$StartDir/docs/cpp/ref") {
179    if (! -e "$StartDir/docs/cpp/ref/index.html") {
180        print "\nERROR: \"$StartDir/docs/cpp/ref/index.html\" is missing\n";
181        $return++;
182    }
183    if (! -d "$StartDir/docs/cpp/ref/index-files") {
184        print "\nERROR: \"$StartDir/docs/cpp/ref/index-files\" is missing\n";
185        $return++;
186    }
187    if (! -e "$StartDir/docs/cpp/ref/index-files/index-10.html") {
188        print "\nERROR: \"$StartDir/docs/cpp/ref/index-files/index-10.html\" is missing\n";
189        $return++;
190    }
191
192    my @dir_list = ( "com","com/sun","com/sun/star","com/sun/star/uno",
193             "com/sun/star/uno/Any","com/sun/star/uno/Type",
194             "com/sun/star/uno/Array","com/sun/star/uno/WeakReferenceHelper",
195             "com/sun/star/uno/Reference","com/sun/star/uno/WeakReference",
196             "com/sun/star/uno/Environment","com/sun/star/uno/Sequence",
197             "com/sun/star/uno/BaseReference","com/sun/star/uno/Mapping",
198             "com/sun/star/uno/ContextLayer","com/sun/star/uno/TypeDescription",
199             "osl","osl/File","osl/Pipe","osl/FileStatus","osl/FileBase",
200             "osl/Guard","osl/Mutex","osl/VolumeInfo","osl/GetGlobalMutex",
201             "osl/Security","osl/Profile","osl/DatagramSocket","osl/SocketAddr",
202             "osl/StreamPipe","osl/ResettableGuard","osl/AcceptorSocket",
203             "osl/ClearableGuard","osl/VolumeDevice","rtl","rtl/Uri","rtl/math",
204             "rtl/OUStringHash","rtl/MalformedUriException","rtl/OUStringBuffer",
205             "rtl/OUString","rtl/Reference","rtl/ByteSequence","rtl/OLocale",
206             "rtl/Logfile","rtl/OString","rtl/IReference","rtl/OStringBuffer",
207             "rtl/OStringHash","_typelib_CompoundTypeDescription","cppu",
208             "cppu/ContextEntry_Init","cppu/ImplInheritanceHelper10",
209             "cppu/ImplInheritanceHelper11","cppu/ImplInheritanceHelper12",
210             "cppu/WeakAggImplHelper1","cppu/WeakAggImplHelper2",
211             "cppu/WeakAggImplHelper3","cppu/WeakAggImplHelper4",
212             "cppu/WeakAggImplHelper5","cppu/WeakAggImplHelper6",
213             "cppu/WeakAggImplHelper7","cppu/WeakAggImplHelper8",
214             "cppu/WeakAggImplHelper9",
215             "cppu/OMultiTypeInterfaceContainerHelperInt32","cppu/AccessControl",
216             "cppu/OPropertyArrayHelper","cppu/ImplHelper1","cppu/ImplHelper2",
217             "cppu/ImplHelper3","cppu/ImplHelper4","cppu/ImplHelper5",
218             "cppu/ImplHelper6","cppu/ImplHelper7","cppu/ImplHelper8",
219             "cppu/ImplHelper9","cppu/WeakComponentImplHelper10",
220             "cppu/WeakComponentImplHelper11","cppu/WeakComponentImplHelper12",
221             "cppu/UnoUrl","cppu/WeakComponentImplHelper1",
222             "cppu/WeakComponentImplHelper2","cppu/WeakComponentImplHelper3",
223             "cppu/WeakComponentImplHelper4","cppu/WeakComponentImplHelper5",
224             "cppu/WeakComponentImplHelper6","cppu/WeakComponentImplHelper7",
225             "cppu/WeakComponentImplHelper8","cppu/WeakComponentImplHelper9",
226             "cppu/OInterfaceIteratorHelper",
227             "cppu/OMultiTypeInterfaceContainerHelper","cppu/UnoUrlDescriptor",
228             "cppu/IPropertyArrayHelper","cppu/OBroadcastHelperVar",
229             "cppu/OComponentHelper","cppu/OWeakAggObject",
230             "cppu/ImplementationEntry","cppu/WeakImplHelper10",
231             "cppu/WeakImplHelper11","cppu/WeakImplHelper12",
232             "cppu/OPropertySetHelper","cppu/ImplHelper10","cppu/ImplHelper11",
233             "cppu/ImplHelper12","cppu/WeakAggImplHelper10",
234             "cppu/WeakAggImplHelper11","cppu/WeakAggImplHelper12",
235             "cppu/ImplInheritanceHelper1","cppu/ImplInheritanceHelper2",
236             "cppu/ImplInheritanceHelper3","cppu/ImplInheritanceHelper4",
237             "cppu/ImplInheritanceHelper5","cppu/ImplInheritanceHelper6",
238             "cppu/ImplInheritanceHelper7","cppu/ImplInheritanceHelper8",
239             "cppu/ImplInheritanceHelper9","cppu/OTypeCollection",
240             "cppu/WeakAggComponentImplHelper10",
241             "cppu/WeakAggComponentImplHelper11",
242             "cppu/WeakAggComponentImplHelper12",
243             "cppu/WeakAggComponentImplHelper1",
244             "cppu/WeakAggComponentImplHelper2",
245             "cppu/WeakAggComponentImplHelper3",
246             "cppu/WeakAggComponentImplHelper4",
247             "cppu/WeakAggComponentImplHelper5",
248             "cppu/WeakAggComponentImplHelper6",
249             "cppu/WeakAggComponentImplHelper7",
250             "cppu/WeakAggComponentImplHelper8",
251             "cppu/WeakAggComponentImplHelper9",
252             "cppu/OMultiTypeInterfaceContainerHelperVar",
253             "cppu/OInterfaceContainerHelper","cppu/OImplementationId",
254             "cppu/AggImplInheritanceHelper1","cppu/AggImplInheritanceHelper2",
255             "cppu/AggImplInheritanceHelper3","cppu/AggImplInheritanceHelper4",
256             "cppu/AggImplInheritanceHelper5","cppu/AggImplInheritanceHelper6",
257             "cppu/AggImplInheritanceHelper7","cppu/AggImplInheritanceHelper8",
258             "cppu/AggImplInheritanceHelper9","cppu/AggImplInheritanceHelper10",
259             "cppu/AggImplInheritanceHelper11","cppu/AggImplInheritanceHelper12",
260             "cppu/WeakImplHelper1","cppu/WeakImplHelper2","cppu/WeakImplHelper3",
261             "cppu/WeakImplHelper4","cppu/WeakImplHelper5","cppu/WeakImplHelper6",
262             "cppu/WeakImplHelper7","cppu/WeakImplHelper8","cppu/WeakImplHelper9",
263             "cppu/OWeakObject","__store_FindData","_rtl_StandardModuleCount",
264             "RTUik","RTConstValue","_typelib_TypeDescriptionReference",
265             "_typelib_InterfaceMethodTypeDescription","store","RegistryKey",
266             "_typelib_Union_Init","_sal_Sequence","_typelib_Parameter_Init",
267             "_typelib_TypeDescription","_uno_Environment",
268             "_typelib_InterfaceAttributeTypeDescription",
269             "_rtl_ModuleCount","_uno_ExtEnvironment",
270             "_typelib_IndirectTypeDescription",
271             "Registry_Api","_oslFileStatus",
272             "_typelib_InterfaceMemberTypeDescription","RegistryValueList",
273             "RegistryTypeWriter_Api","_rtl_TextEncodingInfo",
274             "namespace_anonymous_1",
275             "_oslVolumeInfo","_uno_Interface",
276             "_typelib_InterfaceTypeDescription","_uno_Mapping","Registry",
277             "RegistryTypeReader_Api","_typelib_Uik",
278             "_typelib_ArrayTypeDescription",
279             "RegistryKeyArray","RegistryTypeReader","RegistryKeyNames",
280             "RTConstValueUnion","_typelib_UnionTypeDescription","_uno_Any",
281             "RegistryTypeWriter","_rtl_Locale","_typelib_CompoundMember_Init",
282             "_typelib_EnumTypeDescription","_typelib_MethodParameter");
283
284    foreach $i (@dir_list)
285    {
286        if (! -d "$StartDir/docs/cpp/ref/names/$i") {
287        $return++;
288        print "\nERROR: \"$StartDir/docs/cpp/ref/names/$i\" is missing\n";
289        } else {
290        print "+";
291        }
292    }
293    } else {
294    $return++;
295    }
296    print "\n";
297
298    #check java docu, it is only a first and simple check
299    # improvement required
300    my $solar_java = $ENV{"SOLAR_JAVA"};
301    my $JDK = $ENV{"JDK"};
302    if (defined($solar_java) && $solar_java ne "" && (!defined($JDK) || $JDK ne "gcj")) {
303    print "check java docu: ";
304    if (-d "$StartDir/docs/java/ref") {
305        if (! -e "$StartDir/docs/java/ref/index.html") {
306        print "\nERROR: \"$StartDir/docs/java/ref/index.html\" is missing\n";
307        $return++;
308        }
309
310        my @dir_list = ( "lib","lib/uno","lib/uno/helper","lib/uno/helper/class-use",
311                 "uno","uno/class-use","comp","comp/helper",
312                 "comp/helper/class-use");
313
314        foreach $i (@dir_list)
315        {
316        if (! -d "$StartDir/docs/java/ref/com/sun/star/$i") {
317            $return++;
318            print "\nERROR: \"$StartDir/docs/java/ref/com/sun/star/$i\" is missing\n";
319        } else {
320            print "+";
321        }
322        }
323    } else {
324        $return++;
325    }
326    print "\n";
327    }
328
329    #check idl docu, it is only a first and simple check
330    # improvement required
331    print "check idl docu: ";
332    if (-d "$StartDir/docs/common/ref") {
333    if (! -e "$StartDir/docs/common/ref/module-ix.html") {
334        print "\nERROR: \"$StartDir/docs/common/ref/module-ix.html\" is missing\n";
335        $return++;
336    }
337    if (! -d "$StartDir/docs/common/ref/index-files") {
338        print "\nERROR: \"$StartDir/docs/common/ref/index-files\" is missing\n";
339        $return++;
340    }
341    if (! -e "$StartDir/docs/common/ref/index-files/index-10.html") {
342        print "\nERROR: \"$StartDir/docs/common/ref/index-files/index-10.html\" is missing\n";
343        $return++;
344    }
345
346    my @idl_dirlist = ( "accessibility",
347                "animations",
348                "auth",
349                "awt",
350                "awt/tab",
351                "awt/tree",
352                "awt/grid",
353                "beans",
354                "bridge",
355                "bridge/oleautomation",
356                "chart",
357                "chart2",
358                "chart2/data",
359                "configuration",
360                "configuration/backend",
361                "configuration/backend/xml",
362                "configuration/bootstrap",
363                "connection",
364                "container",
365                "datatransfer",
366                "datatransfer/clipboard",
367                "datatransfer/dnd",
368                "deployment",
369                "deployment/ui",
370                "document",
371                "drawing",
372                "drawing/framework",
373                "embed",
374                "form",
375                "form/binding",
376                "form/component",
377                "form/control",
378                "form/inspection",
379                "form/runtime",
380                "form/submission",
381                "form/validation",
382                "formula",
383                "frame",
384                "frame/status",
385                "gallery",
386                "geometry",
387                "graphic",
388                "i18n",
389                "image",
390                "inspection",
391                "installation",
392                "io",
393                "java",
394                "lang",
395                "ldap",
396                "linguistic2",
397                "loader",
398                "logging",
399                "mail",
400                "media",
401                "mozilla",
402                "packages",
403                "packages/manifest",
404                "packages/zip",
405                "plugin",
406                "presentation",
407                "reflection",
408                "registry",
409                "rendering",
410                "report",
411                "report/inspection",
412                "resource",
413                "scanner",
414                "script",
415                "script/browse",
416                "script/provider",
417                "sdb",
418                "sdb/application",
419                "sdb/tools",
420                "sdbc",
421                "sdbcx",
422                "security",
423                "setup",
424                "sheet",
425                "smarttags",
426                "style",
427                "svg",
428                "sync",
429                "sync2",
430                "system",
431                "table",
432                "task",
433                "test",
434                "test/bridge",
435                "test/performance",
436                "text",
437                "text/fieldmaster",
438                "text/textfield",
439                "text/textfield/docinfo",
440                "ucb",
441                "ui",
442                "ui/dialogs",
443                "uno",
444                "uri",
445                "util",
446                "util/logging",
447                "view",
448                "xforms",
449                "xml",
450                "xml/crypto",
451                "xml/crypto/sax",
452                "xml/csax",
453                "xml/dom",
454                "xml/dom/events",
455                "xml/dom/views",
456                "xml/input",
457                "xml/sax",
458                "xml/wrapper",
459                "xml/xpath",
460                "xsd" );
461
462    foreach $i (@idl_dirlist)
463    {
464        if (! -d "$StartDir/docs/common/ref/com/sun/star/$i") {
465        $return++;
466        print "\nERROR: \"$StartDir/docs/common/ref/com/sun/star/$i\" is missing\n";
467        } else {
468        print "+";
469        }
470    }
471    } else {
472    $return++;
473    }
474    print "\n";
475
476} else {
477    $return++;
478}
479
480if( $return != 0 )
481{
482    print "ERROR\n";
483    unlink "$ARGV[3]";
484} else {
485    print "OK\n";
486}
487exit $return;
488