]> OCCT Git - occt-wok.git/commitdiff
0022691: WOK configuration improvement
authorbugmaster <bugmaster@opencascade.com>
Thu, 24 May 2012 10:13:23 +0000 (14:13 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 24 May 2012 10:19:15 +0000 (14:19 +0400)
67 files changed:
.gitattributes
adm/UDLIST
src/VAS/FILES [new file with mode: 0644]
src/VAS/Products.tcl [new file with mode: 0644]
src/VAS/VAS.tcl [new file with mode: 0644]
src/VAS/WOK.tcl [new file with mode: 0644]
src/WOKBuilderDef/CMPLRS.edl
src/WOKBuilderDef/CMPLRS_AIX.edl [new file with mode: 0644]
src/WOKBuilderDef/CMPLRS_BSD.edl [new file with mode: 0644]
src/WOKBuilderDef/CMPLRS_HP.edl [new file with mode: 0644]
src/WOKBuilderDef/CMPLRS_LIN.edl [new file with mode: 0644]
src/WOKBuilderDef/CMPLRS_MAC.edl [new file with mode: 0644]
src/WOKBuilderDef/CMPLRS_SIL.edl [new file with mode: 0644]
src/WOKBuilderDef/CMPLRS_SUN.edl [new file with mode: 0644]
src/WOKBuilderDef/CMPLRS_WNT.edl [new file with mode: 0644]
src/WOKBuilderDef/CODEGEN.edl
src/WOKBuilderDef/CSF.edl
src/WOKBuilderDef/CSF_AIX.edl [new file with mode: 0644]
src/WOKBuilderDef/CSF_AO1.edl [new file with mode: 0644]
src/WOKBuilderDef/CSF_BSD.edl [new file with mode: 0644]
src/WOKBuilderDef/CSF_HP.edl [new file with mode: 0644]
src/WOKBuilderDef/CSF_LIN.edl [new file with mode: 0644]
src/WOKBuilderDef/CSF_MAC.edl [new file with mode: 0644]
src/WOKBuilderDef/CSF_SIL.edl [new file with mode: 0644]
src/WOKBuilderDef/CSF_SUN.edl [new file with mode: 0644]
src/WOKBuilderDef/CSF_WNT.edl [new file with mode: 0644]
src/WOKBuilderDef/JAVA.edl
src/WOKBuilderDef/LINK.edl
src/WOKStepsDef/WOKSteps_package.edl
src/WOKStepsDef/WOKSteps_package_wnt.edl
src/WOKTclLib/FILES
src/WOKTclLib/OS.tcl
src/WOKTclLib/Wok_Init.tcl
src/WOKTclLib/osutils.tcl
src/WOKTclLib/templates/draw.bat [new file with mode: 0644]
src/WOKTclLib/templates/env.bat [new file with mode: 0644]
src/WOKTclLib/templates/env.sh [new file with mode: 0644]
src/WOKTclLib/templates/msvc.bat [new file with mode: 0644]
src/WOKTclLib/templates/template.vc10 [new file with mode: 0644]
src/WOKTclLib/templates/template.vc10x [new file with mode: 0644]
src/WOKTclLib/templates/template.vc7 [new file with mode: 0644]
src/WOKTclLib/templates/template.vc7x [new file with mode: 0644]
src/WOKTclLib/templates/template.vc8 [new file with mode: 0644]
src/WOKTclLib/templates/template.vc8x [new file with mode: 0644]
src/WOKTclLib/templates/template.vc9 [new file with mode: 0644]
src/WOKTclLib/templates/template.vc9x [new file with mode: 0644]
src/WOKTclLib/templates/template_dll.rc [new file with mode: 0644]
src/WOKTclLib/templates/vcproj.user.vc9x [new file with mode: 0644]
src/WOKTclLib/wok-comm.el
src/WOKTclLib/woksh.el
src/WOKTclLib/wutils.tcl
src/WOKsite/.tclshrc
src/WOKsite/CreateFactory.tcl
src/WOKsite/DEFAULT.edl
src/WOKsite/FILES
src/WOKsite/tclshrc.tcl
src/WOKsite/wok_confgui.bat [new file with mode: 0644]
src/WOKsite/wok_confgui.sh [new file with mode: 0644]
src/WOKsite/wok_deps.tcl [new file with mode: 0644]
src/WOKsite/wok_depsgui.tcl [new file with mode: 0644]
src/WOKsite/wok_env.bat [new file with mode: 0644]
src/WOKsite/wok_env.sh [new file with mode: 0644]
src/WOKsite/wok_init.bat [new file with mode: 0644]
src/WOKsite/wok_init.sh [new file with mode: 0644]
src/WOKsite/wok_tclsh.bat [new file with mode: 0644]
src/WOKsite/wok_tclsh.sh [new file with mode: 0644]
src/WOKsite/wok_tclshrc.tcl [new file with mode: 0644]

index 5d11379b400b1893059bf41ea36f5f37902f0cd6..9741fc2c583994931b24dfb1bde728fa3ac3d822 100644 (file)
@@ -16,6 +16,8 @@
 *.edl       eol=lf
 *.mm        eol=lf
 *.el        eol=lf
+*.xpm       eol=lf
+*.xbm       eol=lf
 *.sh        eol=lf
 *.csh       eol=lf
 *.tcl       eol=lf
 *.xib       eol=lf
 *.plist     eol=lf
 *.java      eol=lf
+*.mam       eol=lf
+*.mamx      eol=lf
+*.min       eol=lf
+*.minx      eol=lf
 FILES       eol=lf
 PACKAGES    eol=lf
 EXTERNLIB   eol=lf
@@ -43,6 +49,8 @@ UDLIST      eol=lf
 *.sln       eol=crlf
 *.res       eol=crlf
 *.resx      eol=crlf
+*.mak       eol=crlf
+*.makx      eol=crlf
 *.dll       binary
 *.so        binary
 *.dylib     binary
index 09686a742e6ee8b51cac044f507097f1e972c0c6..621352eb62de9daec05085d50574ea97270e0030 100644 (file)
@@ -1,3 +1,4 @@
+r VAS
 n CDLFront
 n CPPClient
 n CPPExt
diff --git a/src/VAS/FILES b/src/VAS/FILES
new file mode 100644 (file)
index 0000000..9e9477b
--- /dev/null
@@ -0,0 +1,3 @@
+srcinc:::WOK.tcl
+srcinc:::Products.tcl
+srcinc:::VAS.tcl
diff --git a/src/VAS/Products.tcl b/src/VAS/Products.tcl
new file mode 100644 (file)
index 0000000..b09aa7e
--- /dev/null
@@ -0,0 +1,6 @@
+;#
+;# Retourne la liste ordonnee des noms de Modules
+;# 
+proc VAS:Products {{plat {}}} {
+   return [list WOK]
+}
diff --git a/src/VAS/VAS.tcl b/src/VAS/VAS.tcl
new file mode 100644 (file)
index 0000000..7f99c10
--- /dev/null
@@ -0,0 +1,36 @@
+# Definitions for a product: VAS
+
+# List of toolkits 
+proc VAS:toolkits { } {
+    return {}
+}
+
+# List of non-toolkits (resource units, executables etc., with associated info)
+proc VAS:ressources { } {
+    return [list [list both r VAS {} ]]
+}
+
+# Product name 
+proc VAS:name { } {
+    return VAS
+}
+
+# And short alias
+proc VAS:alias { } {
+    return VAS
+}
+
+# Dependency on other products
+proc VAS:depends { } {
+    return {}
+}
+
+proc VAS:CompileWith { } {
+}
+
+proc VAS:LinksoWith { } {
+}
+
+proc VAS:Export { } {
+    return [list source runtime wokadm api]
+}
diff --git a/src/VAS/WOK.tcl b/src/VAS/WOK.tcl
new file mode 100644 (file)
index 0000000..4cd2965
--- /dev/null
@@ -0,0 +1,120 @@
+;#
+;# Liste des toolkits WOK sous forme de full path
+;# 
+proc WOK:toolkits { } {
+    return {TKWOK TKWOKTcl TKTCPPExt TKCDLFront TKCPPExt TKCPPClient TKIDLFront TKCPPJini TKCPPIntExt TKCSFDBSchema}
+}
+;#
+;# Autres UDs a prendre. Listes de triplets
+;# { ar typ UD str } Tous les types de UD vont dans un sous directory nomme root/str
+;# Ils seront dans CAS3.0/str de l'archive de type ar (source/runtime)
+;# { ar typ UD {}  } Tous les types de UD vont dans root/UD/src => CAS3.0/src
+;#
+proc WOK:ressources { } {
+    return [list \
+               [list both r WOKBuilderDef {}]\
+               [list both r WOKStepsDef {}]\
+               [list both r WOKEntityDef {}]\
+               [list both r WOKTclLib {}] \
+               [list both r WOKsite {}] \
+               [list both x WOKSH {}] \
+               [list both x WOKLibs {}] \
+           ]
+}
+;#
+;# retourne une liste de triplets {type <full path1> <target directory>/name}
+;# permet de faire : cp <full path> $CASROOT/<target directory>/name
+;# On peut ainsi embarquer des fichiers d'un peu partout et les dispatcher sous 
+;# la racine d'arrivee et ce avec un autre nom.
+;# rien n'empeche de CALCULER automatiquement des paths dans cette proc.
+;# type = source/runtime/both pour dire si le fichier va dans l'archive en question.
+;# une deux (ou les deux) type d'archive fabriquees. 
+;#
+proc WOK:freefiles { } {
+    return 
+}
+;#
+;# Nom du module 
+;#
+proc WOK:name { } {
+    return WOK
+}
+;#
+;# Nom du module 
+;#
+proc WOK:alias { } {
+    return WOK
+}
+;#
+;#
+;#
+proc WOK:depends { } {
+    return {}
+}
+;#
+;# Pre-requis pour la compilation ( -I ... )
+;# Returns a list of directory that should be used in -I directives
+;# while compiling c or c++ files.
+;#
+proc WOK:CompileWith { {plat {}}} {
+    
+    set l {}
+    switch -- [OS:os] {
+       HP-UX {
+       }
+       Linux {
+           lappend l "-I[lindex [wokparam -v %CSF_JavaHome] 0]/include"
+           lappend l "-I[lindex [wokparam -v %CSF_JavaHome] 0]/include/linux"
+           lappend l "[lindex [wokparam -v %CSF_TCL_HOME] 0]/include"
+           lappend l "[lindex [lindex [wokparam -v %STLPortInclude] 0] 0]" 
+       }
+
+       SunOS {
+           lappend l "/usr/openwin/include"
+           lappend l "/usr/dt/include"
+           lappend l "[lindex [wokparam -v %CSF_CXX_INCLUDE] 0]"
+           lappend l "-I[lindex [wokparam -v %CSF_JavaHome] 0]/include"
+           lappend l "-I[lindex [wokparam -v %CSF_JavaHome] 0]/include/solaris"
+           lappend l "[lindex [wokparam -v %CSF_TCL_HOME] 0]/include"
+       }
+
+       IRIX {
+       }
+    }
+    return $l
+}
+;#
+;# Pre-requis pour la compilation ( -L ... )
+;# Returns a list of directory that should be used in -L directives
+;# while creating shareable.
+;#
+proc WOK:LinksoWith {{plat {}} } {
+    
+    set l {}
+    switch -- [OS:os] {
+       HP-UX {
+       }
+       Linux {
+           lappend l /usr/X11R6/lib
+       }
+
+       SunOS {
+           lappend l "-L[wokparam -v %CSF_TCL_HOME]/lib -R[wokparam -v %CSF_TCL_HOME]/lib -ltcl"
+           lappend l "-L[wokparam -v %CSF_TCL_HOME]/lib -R[wokparam -v %CSF_TCL_HOME]/lib -ltk"
+       }
+
+       IRIX {
+       }
+    }
+    return $l
+}
+;#
+;# Returns a list of exported features.
+;# source : Source files
+;# runtime: Shareables
+;# wokadm : WOK admin files
+;# api    : Public include files
+;#
+proc WOK:Export { } {
+    return [list source runtime wokadm api]
+}
index 01c63cb00e1e55c4c786f5ad7b54cd945f922613..84228d8de4a81fba1e7af13bc0b2cf4e7966bdfc 100755 (executable)
+--
+-- WOK Compilers configuration file.
+--
+@ifnotdefined (%CMPLRS_EDL) then
+  @set %CMPLRS_EDL = "";
+
+  @ifnotdefined (%CSF_EDL) then
+    @uses "CSF.edl";
+  @endif;
 
-@ifnotdefined ( %CMPLRS_EDL ) then
- @set %CMPLRS_EDL = "";
-
- @ifnotdefined( %CSF_EDL ) then
-   @uses "CSF.edl";
- @endif;
-
- @ifnotdefined( %CMPLRS_Unit_C_Options ) then
-   @set %CMPLRS_Unit_C_Options = "" ;
- @endif;
- @ifnotdefined( %CMPLRS_Unit_CXX_Options ) then
-   @set %CMPLRS_Unit_CXX_Options = "" ;
- @endif;
-
- @set %CMPLRS_C_PDBName          = "PDBName";
- @set %CMPLRS_C_Object           = "Object";
- @set %CMPLRS_C_Files            = "Files";
- @set %CMPLRS_C_TmpFile          = "DTmpFile";
- @set %CMPLRS_C_Header           = "Header";
- @set %CMPLRS_C_InputDirective   = "InputDirective";
- @set %CMPLRS_C_Directives       = "Directives";
- @set %CMPLRS_C_Template         = "CmdLine";
- @set %CMPLRS_C_Footer           = "Footer";
- @set %CMPLRS_CXX_PDBName        = "PDBName";
- @set %CMPLRS_CXX_Object         = "Object";
- @set %CMPLRS_CXX_Files          = "Files";
- @set %CMPLRS_CXX_TmpFile        = "DTmpFile";
- @set %CMPLRS_CXX_Header         = "Header";
- @set %CMPLRS_CXX_InputDirective = "InputDirective";
- @set %CMPLRS_CXX_Directives     = "Directives";
- @set %CMPLRS_CXX_Template       = "CmdLine";
- @set %CMPLRS_CXX_Footer         = "Footer";
- @set %CMPLRS_F77_PDBName        = "PDBName";
- @set %CMPLRS_F77_Object         = "Object";
- @set %CMPLRS_F77_Files          = "Files";
- @set %CMPLRS_F77_TmpFile        = "DTmpFile";
- @set %CMPLRS_F77_Header         = "Header";
- @set %CMPLRS_F77_InputDirective = "InputDirective";
- @set %CMPLRS_F77_Directives     = "Directives";
- @set %CMPLRS_F77_Template       = "CmdLine";
- @set %CMPLRS_F77_Footer         = "Footer";
-
- @set %CMPLRS_CXX_Extensions = "toto.cxx toto.C toto.cpp";
- @set %CMPLRS_C_Extensions   = "toto.c";
- @set %CMPLRS_F77_Extensions = "toto.f ";
- @set %CMPLRS_Tools = "CMPLRS_C CMPLRS_CXX CMPLRS_F77";
-
-    @if ( %CSF_CREATECOMP_DEP == "Yes" ) then
-       @set %CMPLRS_CXX_WOKDirectives = "-MD ";
-       @set %CMPLRS_C_WOKDirectives   = "-MD ";
-    @else
-       @set %CMPLRS_CXX_WOKDirectives = "";
-       @set %CMPLRS_C_WOKDirectives   = "";
-    @endif;
+  @ifnotdefined (%CMPLRS_Unit_C_Options) then
+    @set %CMPLRS_Unit_C_Options = "";
+  @endif;
 
+  @ifnotdefined (%CMPLRS_Unit_CXX_Options) then
+    @set %CMPLRS_Unit_CXX_Options = "";
+  @endif;
 
- @if ( %DBMS == "OBJS" ) then
-    @set %CMPLRS_CXX_DBMSOpt = "-DOBJS";
- @endif;
+  @set %CMPLRS_C_PDBName          = "PDBName";
+  @set %CMPLRS_C_Object           = "Object";
+  @set %CMPLRS_C_Files            = "Files";
+  @set %CMPLRS_C_TmpFile          = "DTmpFile";
+  @set %CMPLRS_C_Header           = "Header";
+  @set %CMPLRS_C_InputDirective   = "InputDirective";
+  @set %CMPLRS_C_Directives       = "Directives";
+  @set %CMPLRS_C_Template         = "CmdLine";
+  @set %CMPLRS_C_Footer           = "Footer";
+  @set %CMPLRS_CXX_PDBName        = "PDBName";
+  @set %CMPLRS_CXX_Object         = "Object";
+  @set %CMPLRS_CXX_Files          = "Files";
+  @set %CMPLRS_CXX_TmpFile        = "DTmpFile";
+  @set %CMPLRS_CXX_Header         = "Header";
+  @set %CMPLRS_CXX_InputDirective = "InputDirective";
+  @set %CMPLRS_CXX_Directives     = "Directives";
+  @set %CMPLRS_CXX_Template       = "CmdLine";
+  @set %CMPLRS_CXX_Footer         = "Footer";
+  @set %CMPLRS_F77_PDBName        = "PDBName";
+  @set %CMPLRS_F77_Object         = "Object";
+  @set %CMPLRS_F77_Files          = "Files";
+  @set %CMPLRS_F77_TmpFile        = "DTmpFile";
+  @set %CMPLRS_F77_Header         = "Header";
+  @set %CMPLRS_F77_InputDirective = "InputDirective";
+  @set %CMPLRS_F77_Directives     = "Directives";
+  @set %CMPLRS_F77_Template       = "CmdLine";
+  @set %CMPLRS_F77_Footer         = "Footer";
+
+  @set %CMPLRS_CXX_Extensions = "toto.cxx toto.C toto.cpp";
+  @set %CMPLRS_C_Extensions   = "toto.c";
+  @set %CMPLRS_F77_Extensions = "toto.f ";
+  @set %CMPLRS_Tools = "CMPLRS_C CMPLRS_CXX CMPLRS_F77";
+
+  @if (%CSF_CREATECOMP_DEP == "Yes") then
+    @set %CMPLRS_CXX_WOKDirectives = "-MD ";
+    @set %CMPLRS_C_WOKDirectives   = "-MD ";
+  @else
+    @set %CMPLRS_CXX_WOKDirectives = "";
+    @set %CMPLRS_C_WOKDirectives   = "";
+  @endif;
 
- @if ( %DBMS == "DFLT" ) then
+  @if (%DBMS == "OBJS") then
+    @set %CMPLRS_CXX_DBMSOpt = "-DOBJS";
+  @endif;
+  @if (%DBMS == "DFLT") then
     @set %CMPLRS_CXX_DBMSOpt = "-DCSFDB -DHAVE_WOK_CONFIG_H  -DHAVE_CONFIG_H ";
- @endif;
 @endif;
 
@ifnotdefined ( %DebugMode ) then
 @ifnotdefined (%DebugMode) then
     @set %DebugMode = "False";
- @endif;
-
- @if ( %Station == "wnt" ) then
+  @endif;
 
+  @if (%Station == "wnt") then
     --WARNING : For WNT, it is necessary to have $set symbol_name=%symbol_value%
     --          WITHOUT BLANK before and after equal sign !
-    --          WITHOUT double quote 
-
-    @set %CMPLRS_CXX_InOutPut = "-c -Tp <source.c> -Fo<object.obj> -Fd<PDBName>" ;
-    @set %CMPLRS_C_InOutPut = "-c -Tc <source.c> -Fo<object.obj> -Fd<PDBName>" ;
-    @set %CMPLRS_F77_InOutPut = "-c <Source.f> -object:<Object.obj> -pdbfile:<Pdbfile.pdb>" ;
-
-    @ifdefined ( %UnitType ) then
-       @if (%UnitType != "executable") then
-          @string %CMPLRS_ExportBehaviour = " -D__" %Entity "_DLL";
-       @else
-          @set %CMPLRS_ExportBehaviour = " -DStandard_EXPORT= ";
-       @endif;
+    --          WITHOUT double quote
+
+    @set %CMPLRS_CXX_InOutPut = "-c -Tp <source.c> -Fo<object.obj> -Fd<PDBName>";
+    @set %CMPLRS_C_InOutPut   = "-c -Tc <source.c> -Fo<object.obj> -Fd<PDBName>";
+    @set %CMPLRS_F77_InOutPut = "-c <Source.f> -object:<Object.obj> -pdbfile:<Pdbfile.pdb>";
+
+    @ifdefined (%UnitType) then
+      @if (%UnitType != "executable") then
+        @string %CMPLRS_ExportBehaviour = " -D__" %Entity "_DLL";
+      @else
+        @set %CMPLRS_ExportBehaviour = " -DStandard_EXPORT= ";
+      @endif;
     @endif;
 
-    @ifnotdefined ( %UnitType ) then
-       @set %CMPLRS_ExportBehaviour = "";
+    @ifnotdefined (%UnitType) then
+      @set %CMPLRS_ExportBehaviour = "";
     @endif;
 
-    @template CMPLRS_C_PDBName ( %PDBName ) is
-     $-Fd%PDBName \^
+    @template CMPLRS_C_PDBName (%PDBName) is
+      $-Fd%PDBName \^
     @end;
 
-    @template CMPLRS_CXX_PDBName ( %PDBName ) is
-     $-Fd%PDBName \^
+    @template CMPLRS_CXX_PDBName (%PDBName) is
+      $-Fd%PDBName \^
     @end;
 
-    @template CMPLRS_F77_PDBName ( %PDBName ) is
-     $-pdbfile:%PDBName \^
+    @template CMPLRS_F77_PDBName (%PDBName) is
+      $-pdbfile:%PDBName \^
     @end;
 
-    @template CMPLRS_C_Files ( %InputDir , %Source ,
-                                            %OutputDir ,  %ObjectName ) is
-     $-c -Tc %InputDir/%Source -Fo%OutputDir/%ObjectName \^
+    @template CMPLRS_C_Files (%InputDir,  %Source,
+                              %OutputDir, %ObjectName) is
+      $-c -Tc %InputDir/%Source -Fo%OutputDir/%ObjectName \^
     @end;
 
-    @template CMPLRS_CXX_Files ( %InputDir , %Source ,
-                                            %OutputDir ,  %ObjectName ) is
-     $-c -Tp %InputDir/%Source -Fo%OutputDir/%ObjectName \^
+    @template CMPLRS_CXX_Files (%InputDir,  %Source,
+                                %OutputDir, %ObjectName) is
+      $-c -Tp %InputDir/%Source -Fo%OutputDir/%ObjectName \^
     @end;
 
-    @template CMPLRS_F77_Files ( %InputDir , %Source ,
-                                            %OutputDir ,  %ObjectName ) is
-     $-c %InputDir/%Source -object:%OutputDir/%ObjectName \^
+    @template CMPLRS_F77_Files (%InputDir,  %Source,
+                                %OutputDir, %ObjectName) is
+      $-c %InputDir/%Source -object:%OutputDir/%ObjectName \^
     @end;
 
-    @template CMPLRS_C_Object ( %BaseName ) is
-     $%BaseName.obj \^
+    @template CMPLRS_C_Object (%BaseName) is
+      $%BaseName.obj \^
     @end;
 
-    @template CMPLRS_CXX_Object ( %BaseName ) is
-     $%BaseName.obj \^
+    @template CMPLRS_CXX_Object (%BaseName) is
+      $%BaseName.obj \^
     @end;
 
-    @template CMPLRS_F77_Object ( %BaseName ) is
-     $%BaseName.obj \^
+    @template CMPLRS_F77_Object (%BaseName) is
+      $%BaseName.obj \^
     @end;
 
-    @template CMPLRS_C_Production ( %OutputDir, %BaseName ) is
-     $ %BaseName.obj %BaseName.m
+    @template CMPLRS_C_Production (%OutputDir, %BaseName) is
+      $ %BaseName.obj %BaseName.m
     @end;
 
-    @template CMPLRS_CXX_Production ( %OutputDir, %BaseName ) is
-     $ %BaseName.obj %BaseName.m
+    @template CMPLRS_CXX_Production (%OutputDir, %BaseName) is
+      $ %BaseName.obj %BaseName.m
     @end;
 
-    @template CMPLRS_F77_Production ( %OutputDir, %BaseName ) is
-     $ %BaseName.obj %BaseName.m
+    @template CMPLRS_F77_Production (%OutputDir, %BaseName) is
+      $ %BaseName.obj %BaseName.m
     @end;
 
- @else
 @else
     --WARNING : For UNIX, it is necessary to have $set symbol_name="symbol_value"
-    --          WITH double quote 
+    --          WITH double quote
 
-    @set %CMPLRS_CXX_InOutPut = "-c <Source.cxx> -o <Object.o>" ;
-    @set %CMPLRS_C_InOutPut = "-c <Source.c> -o <Object.o>" ;
-    @set %CMPLRS_F77_InOutPut = "-c <Source.f> -o <Object.o>" ;
+    @set %CMPLRS_CXX_InOutPut = "-c <Source.cxx> -o <Object.o>";
+    @set %CMPLRS_C_InOutPut   = "-c <Source.c> -o <Object.o>";
+    @set %CMPLRS_F77_InOutPut = "-c <Source.f> -o <Object.o>";
 
-    @set %CMPLRS_ExportBehaviour = "" ;
+    @set %CMPLRS_ExportBehaviour = "";
 
-    @template CMPLRS_C_PDBName ( %PDBName ) is
-     $ \^
+    @template CMPLRS_C_PDBName (%PDBName) is
+      $ \^
     @end;
 
-    @template CMPLRS_CXX_PDBName ( %PDBName ) is
-     $ \^
+    @template CMPLRS_CXX_PDBName (%PDBName) is
+      $ \^
     @end;
 
-    @template CMPLRS_F77_PDBName ( %PDBName ) is
-     $ \^
+    @template CMPLRS_F77_PDBName (%PDBName) is
+      $ \^
     @end;
 
-    @template CMPLRS_C_Files ( %InputDir , %Source ,
-                                            %OutputDir ,  %ObjectName ) is
-     $-c %InputDir/%Source -o %OutputDir/%ObjectName \
+    @template CMPLRS_C_Files (%InputDir,  %Source,
+                              %OutputDir, %ObjectName) is
+      $-c %InputDir/%Source -o %OutputDir/%ObjectName \
     @end;
 
-    @template CMPLRS_CXX_Files ( %InputDir , %Source ,
-                                              %OutputDir ,  %ObjectName ) is
-     $-c %InputDir/%Source -o %OutputDir/%ObjectName \
+    @template CMPLRS_CXX_Files (%InputDir,  %Source,
+                                %OutputDir, %ObjectName) is
+      $-c %InputDir/%Source -o %OutputDir/%ObjectName \
     @end;
 
-    @template CMPLRS_F77_Files ( %InputDir , %Source ,
-                                              %OutputDir ,  %ObjectName ) is
-     $-c %InputDir/%Source -o %OutputDir/%ObjectName \
+    @template CMPLRS_F77_Files (%InputDir,  %Source,
+                                %OutputDir, %ObjectName) is
+      $-c %InputDir/%Source -o %OutputDir/%ObjectName \
     @end;
 
-    @template CMPLRS_C_Object ( %BaseName ) is
-     $%BaseName.o \
+    @template CMPLRS_C_Object (%BaseName) is
+      $%BaseName.o \
     @end;
 
-    @template CMPLRS_CXX_Object ( %BaseName ) is
-     $%BaseName.o \
+    @template CMPLRS_CXX_Object (%BaseName) is
+      $%BaseName.o \
     @end;
 
-    @template CMPLRS_F77_Object ( %BaseName ) is
-     $%BaseName.o \
+    @template CMPLRS_F77_Object (%BaseName) is
+      $%BaseName.o \
     @end;
 
-    @template CMPLRS_C_Production ( %OutputDir, %BaseName ) is
-     $ %BaseName.o %BaseName.m
+    @template CMPLRS_C_Production (%OutputDir, %BaseName) is
+      $ %BaseName.o %BaseName.m
     @end;
 
-    @template CMPLRS_CXX_Production ( %OutputDir, %BaseName ) is
-     $ %BaseName.o %BaseName.m
+    @template CMPLRS_CXX_Production (%OutputDir, %BaseName) is
+      $ %BaseName.o %BaseName.m
     @end;
 
-    @template CMPLRS_F77_Production ( %OutputDir, %BaseName ) is
-     $ %BaseName.o %BaseName.m
+    @template CMPLRS_F77_Production (%OutputDir, %BaseName) is
+      $ %BaseName.o %BaseName.m
     @end;
- @endif;
 @endif;
 
- @template CMPLRS_IncDirective (%IncDirectory) is
-  $-I%IncDirectory \
- @end;
 @template CMPLRS_IncDirective (%IncDirectory) is
+    $-I%IncDirectory \
 @end;
 
@if ( %Station != "wnt" ) then
 @if (%Station != "wnt") then
     @template CMPLRS_ValDirective (%Symbol) is
-     $${%Symbol}\^
-    @end;
-    @template CMPLRS_SetDirective (%Symbol , %Value) is
-     $setenv %Symbol "%Value"\^
+      $${%Symbol}\^
     @end;
 
-    @template CMPLRS_UnitSetDirectives (
-                                       %IncDirectives ,
-                                       %OutputDir ) is
-     $set IncDirectives="%IncDirectives"
-     $set OutputDir="%OutputDir"
+    @template CMPLRS_SetDirective (%Symbol, %Value) is
+      $setenv %Symbol "%Value"\^
     @end;
 
-    @template CMPLRS_C_Header (
-                                       %Unit_C_Options ,
-                                       %CMPLRS_C_ModeOpt,
-                                       %CMPLRS_ExportBehaviour ,
-                                       %C_PDBName ) is
-     $set Unit_C_Options="%Unit_C_Options"
-     $set C_ModeOpt="%CMPLRS_C_ModeOpt"
-     $set C_Export="%CMPLRS_ExportBehaviour"
-     $set C_PDBName="%C_PDBName"
+    @template CMPLRS_UnitSetDirectives (%IncDirectives,
+                                        %OutputDir) is
+      $set IncDirectives="%IncDirectives"
+      $set OutputDir="%OutputDir"
     @end;
 
-    @template CMPLRS_CXX_Header (
-                                       %Unit_CXX_Options ,
-                                       %CMPLRS_CXX_ModeOpt ,
-                                       %CMPLRS_ExportBehaviour ,
-                                       %CMPLRS_CXX_DBMSOpt ,
-                                       %CXX_PDBName ) is 
-     $set Unit_CXX_Options="%Unit_CXX_Options"
-     $set CXX_ModeOpt="%CMPLRS_CXX_ModeOpt"
-     $set CXX_Export="%CMPLRS_ExportBehaviour"
-     $set CXX_DBMSOpt="%CMPLRS_CXX_DBMSOpt"
-     $set CXX_PDBName="%CXX_PDBName"
+    @template CMPLRS_C_Header (%Unit_C_Options,
+                               %CMPLRS_C_ModeOpt,
+                               %CMPLRS_ExportBehaviour,
+                               %C_PDBName) is
+      $set Unit_C_Options="%Unit_C_Options"
+      $set C_ModeOpt="%CMPLRS_C_ModeOpt"
+      $set C_Export="%CMPLRS_ExportBehaviour"
+      $set C_PDBName="%C_PDBName"
     @end;
 
-    @template CMPLRS_F77_Header (
-                                       %CMPLRS_F77_ModeOpt ,
-                                       %F77_PDBName ) is 
-     $set F77_ModeOpt="%CMPLRS_F77_ModeOpt"
-     $set F77_PDBName="%F77_PDBName"
+    @template CMPLRS_CXX_Header (%Unit_CXX_Options,
+                                 %CMPLRS_CXX_ModeOpt,
+                                 %CMPLRS_ExportBehaviour,
+                                 %CMPLRS_CXX_DBMSOpt,
+                                 %CXX_PDBName) is
+      $set Unit_CXX_Options="%Unit_CXX_Options"
+      $set CXX_ModeOpt="%CMPLRS_CXX_ModeOpt"
+      $set CXX_Export="%CMPLRS_ExportBehaviour"
+      $set CXX_DBMSOpt="%CMPLRS_CXX_DBMSOpt"
+      $set CXX_PDBName="%CXX_PDBName"
     @end;
 
- @else
-    @template CMPLRS_ValDirective (%Symbol) is
-     $%%Symbol%\^
-    @end;
-    @template CMPLRS_SetDirective (%Symbol , %Value) is
-     $set %Symbol=%Value\^
+    @template CMPLRS_F77_Header (%CMPLRS_F77_ModeOpt,
+                                 %F77_PDBName) is
+      $set F77_ModeOpt="%CMPLRS_F77_ModeOpt"
+      $set F77_PDBName="%F77_PDBName"
     @end;
 
-    @template CMPLRS_UnitSetDirectives (
-                                       %IncDirectives ,
-                                       %OutputDir ) is
-     $set IncDirectives=%IncDirectives
-     $set OutputDir=%OutputDir
-    @end;
+  @else
 
-    @template CMPLRS_C_Header (
-                                       %Unit_C_Options ,
-                                       %CMPLRS_C_ModeOpt,
-                                       %CMPLRS_ExportBehaviour ,
-                                       %C_PDBName ) is
-     $set Unit_C_Options=%Unit_C_Options
-     $set C_ModeOpt=%CMPLRS_C_ModeOpt
-     $set C_Export=%CMPLRS_ExportBehaviour
-     $set C_PDBName=%C_PDBName
-    @end;
-
-    @template CMPLRS_CXX_Header (
-                                       %Unit_CXX_Options ,
-                                       %CMPLRS_CXX_ModeOpt ,
-                                       %CMPLRS_ExportBehaviour ,
-                                       %CMPLRS_CXX_DBMSOpt ,
-                                       %CXX_PDBName ) is 
-     $set Unit_CXX_Options=%Unit_CXX_Options
-     $set CXX_ModeOpt=%CMPLRS_CXX_ModeOpt
-     $set CXX_Export=%CMPLRS_ExportBehaviour
-     $set CXX_DBMSOpt=%CMPLRS_CXX_DBMSOpt
-     $set CXX_PDBName=%CXX_PDBName
+    @template CMPLRS_ValDirective (%Symbol) is
+      $%%Symbol%\^
     @end;
 
-    @template CMPLRS_F77_Header (
-                                       %CMPLRS_F77_ModeOpt ,
-                                       %F77_PDBName ) is 
-     $set F77_ModeOpt=%CMPLRS_F77_ModeOpt
-     $set F77_PDBName=%F77_PDBName
+    @template CMPLRS_SetDirective (%Symbol, %Value) is
+      $set %Symbol=%Value\^
     @end;
 
- @endif ;
-
-    @set %CMPLRS_CXX_COMPILER   = %CSF_CXX_COMPILER ;
-    @set %CMPLRS_CXX_SysOptions = %CSF_CXX_SysOptions ;
-    @set %CMPLRS_CXX_Options    = %CSF_CXX_Options ;
-    @set %CMPLRS_CXX_INCLUDE    = %CSF_CXX_INCLUDE ;
-    @string %CMPLRS_CXX_INCLUDE += %CSF_JAVA_INCLUDE ;
-
-    @set %CMPLRS_C_COMPILER     = %CSF_C_COMPILER ;
-    @set %CMPLRS_C_SysOptions   = %CSF_C_SysOptions;
-    @set %CMPLRS_C_Options      = %CSF_C_Options;
-    @set %CMPLRS_C_INCLUDE      = %CSF_C_INCLUDE ;
-    @set %CMPLRS_C_INCLUDE      = %CSF_C_INCLUDE ;
-
-    @set %CMPLRS_F77_COMPILER   = %CSF_F77_COMPILER ;
-    @set %CMPLRS_F77_SysOptions = %CSF_F77_SysOptions;
-    @set %CMPLRS_F77_Options    = %CSF_F77_Options;
-
-
-    @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , 
-                                   %CMPLRS_F77_WOKDirectives , %Source , %OutputDir ,    %BaseName , %Entity ) is
-    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
-    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
-    $ touch %OutputDir/%BaseName.m
-    @end;
-    @template CMPLRS_F77_OptLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt  ) is
-    $Following parameters make up F77 compilation command in this order:
-    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
-    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
-    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
+    @template CMPLRS_UnitSetDirectives (%IncDirectives,
+                                        %OutputDir) is
+      $set IncDirectives=%IncDirectives
+      $set OutputDir=%OutputDir
     @end;
 
---     #         ###   #     #     --
---     #          #    ##    #     --
---     #          #    # #   #     --
---     #          #    #  #  #     --
---     #          #    #   # #     --
---     #          #    #    ##     --
---     #######   ###   #     #     --
-
- @if ( %Station == "lin" ) then
-
-    @template CMPLRS_C_DTmpFile (%TmpFile) is
-     $>& %TmpFile \
+    @template CMPLRS_C_Header (%Unit_C_Options,
+                               %CMPLRS_C_ModeOpt,
+                               %CMPLRS_ExportBehaviour,
+                               %C_PDBName) is
+      $set Unit_C_Options=%Unit_C_Options
+      $set C_ModeOpt=%CMPLRS_C_ModeOpt
+      $set C_Export=%CMPLRS_ExportBehaviour
+      $set C_PDBName=%C_PDBName
     @end;
 
-    @template CMPLRS_CXX_DTmpFile (%TmpFile) is
-     $>& %TmpFile \
+    @template CMPLRS_CXX_Header (%Unit_CXX_Options,
+                                 %CMPLRS_CXX_ModeOpt,
+                                 %CMPLRS_ExportBehaviour,
+                                 %CMPLRS_CXX_DBMSOpt,
+                                 %CXX_PDBName) is
+      $set Unit_CXX_Options=%Unit_CXX_Options
+      $set CXX_ModeOpt=%CMPLRS_CXX_ModeOpt
+      $set CXX_Export=%CMPLRS_ExportBehaviour
+      $set CXX_DBMSOpt=%CMPLRS_CXX_DBMSOpt
+      $set CXX_PDBName=%CXX_PDBName
     @end;
 
-    @template CMPLRS_F77_DTmpFile (%TmpFile) is
-     $ \
+    @template CMPLRS_F77_Header (%CMPLRS_F77_ModeOpt,
+                                 %F77_PDBName) is
+      $set F77_ModeOpt=%CMPLRS_F77_ModeOpt
+      $set F77_PDBName=%F77_PDBName
     @end;
 
-    @if ( %DebugMode == "True" ) then
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
---  @set %CMPLRS_CXX_ModeOpt = "-g -O0 -DDEB -D_DEBUG";
---  @set %CMPLRS_C_ModeOpt   = "-g -O0 -DDEB -D_DEBUG";
---  @set %CMPLRS_F77_ModeOpt = "-g     -DDEB -D_DEBUG";
-       @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb ;
-       @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOptDeb ;
-       @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb ;
-    @else
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
---  @set %CMPLRS_CXX_ModeOpt = "-O3 -DNDEBUG -DNo_Exception";
---  @set %CMPLRS_C_ModeOpt   = "-O3 -DNDEBUG -DNo_Exception";
---  @set %CMPLRS_F77_ModeOpt = "-O3 -DNDEBUG -DNo_Exception";
-       @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt ;
-       @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOpt ;
-       @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt ;
-    @endif;
+  @endif;
 
-    @set %CMPLRS_CXX_WOKDirectives = "-MD ";
-    @set %CMPLRS_C_WOKDirectives   = "-MD ";
-    @set %CMPLRS_F77_WOKDirectives = "";
+  @set %CMPLRS_CXX_COMPILER   = %CSF_CXX_COMPILER;
+  @set %CMPLRS_CXX_SysOptions = %CSF_CXX_SysOptions;
+  @set %CMPLRS_CXX_Options    = %CSF_CXX_Options;
+  @set %CMPLRS_CXX_INCLUDE    = %CSF_CXX_INCLUDE;
+  @string %CMPLRS_CXX_INCLUDE += %CSF_JAVA_INCLUDE;
 
+  @set %CMPLRS_C_COMPILER     = %CSF_C_COMPILER;
+  @set %CMPLRS_C_SysOptions   = %CSF_C_SysOptions;
+  @set %CMPLRS_C_Options      = %CSF_C_Options;
+  @set %CMPLRS_C_INCLUDE      = %CSF_C_INCLUDE;
+  @set %CMPLRS_C_INCLUDE      = %CSF_C_INCLUDE;
 
-    @template CMPLRS_F77_OptLine (
-                                       %CMPLRS_F77_COMPILER ,
-                                       %CMPLRS_F77_SysOptions ,
-                                       %CMPLRS_F77_ModeOpt 
-                                        ) is
-    $Following parameters make up F77 compilation command in this order:
-    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
-    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
-    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
-    @end;
+  @set %CMPLRS_F77_COMPILER   = %CSF_F77_COMPILER;
+  @set %CMPLRS_F77_SysOptions = %CSF_F77_SysOptions;
+  @set %CMPLRS_F77_Options    = %CSF_F77_Options;
 
-   @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , 
-                                   %CMPLRS_F77_WOKDirectives , %Source , %OutputDir ,    %BaseName , %Entity ) is
+  @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt,
+                                %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is
     $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
     $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
     $ touch %OutputDir/%BaseName.m
-    @end;
-
-
-    @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER ,
-                                              %CMPLRS_C_SysOptions ,
-                                              %CMPLRS_C_Options ,
-                                              %CMPLRS_C_ModeOpt ,
-                                              %CMPLRS_C_INCLUDE ,
-                                             %IncDirectives ,
-                                              %CMPLRS_Unit_C_Options ,
-                                              %CMPLRS_C_WOKDirectives ,
-                                              %Entity ) is
-    $Following parameters make up C compilation command in this order:
-    $CMPLRS_C_COMPILER     = %CMPLRS_C_COMPILER 
-    $CMPLRS_C_SysOptions   = %CMPLRS_C_SysOptions
-    $CMPLRS_C_Options      = %CMPLRS_C_Options 
-    $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options 
-    $CMPLRS_C_INCLUDE      = %CMPLRS_C_INCLUDE
-    $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives
-    $Dynamic include directives are :
-    $%IncDirectives
-    @end;
-    @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER ,
-                                              %CMPLRS_C_SysOptions ,
-                                              %CMPLRS_C_Options ,
-                                              %CMPLRS_C_ModeOpt ,
-                                             %CMPLRS_CXX_DBMSOpt ,
---                                              %C_Export ,
-                                             %CMPLRS_C_INCLUDE ,
-                                              %IncDirectives ,
-                                              %CMPLRS_Unit_C_Options ,
-                                              %CMPLRS_C_WOKDirectives ,
-                                              %Source ,
-                                             %BaseName, 
-                                             %OutputDir ,
-                                              %TmpFile , %Entity ) is
-      $cd %OutputDir &&  %CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt  %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o 
-      $set stat = $status
-      $echo '$C_COMPILER  %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile
-      $if ( $stat == 0 ) then
-      $  if ( -e %OutputDir/%BaseName.d ) then
-      $   sed -e '/:/d' -e 's/\\/ /g'  %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m
-      $  endif
-      $endif
-      $set status = $stat
-    @end;
-
-    @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER,
-                                               %CMPLRS_CXX_SysOptions ,
-                                                %CMPLRS_CXX_Options ,
-                                                %CMPLRS_CXX_ModeOpt , %CMPLRS_CXX_DBMSOpt ,
-                                               %CMPLRS_CXX_INCLUDE ,
-                                               %CMPLRS_CXX_WOKDirectives ,
-                                                %IncDirectives ,
-                                                %DBDirectives ,
-                                                %Entity ) is
-    $Following parameters make up C++ compilation command in this order:
-    $CMPLRS_CXX_COMPILER      = %CMPLRS_CXX_COMPILER
-    $CMPLRS_CXX_SysOptions    = %CMPLRS_CXX_SysOptions
-    $CMPLRS_CXX_Options       = %CMPLRS_CXX_Options
-    $CMPLRS_CXX_ModeOpt       = %CMPLRS_CXX_ModeOpt
-    $CMPLRS_CXX_DBMSOpt       = %CMPLRS_CXX_DBMSOpt
-    $CMPLRS_CXX_INCLUDE       = %CMPLRS_CXX_INCLUDE
-    $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives
-    $Dynamic include directives are :
-    $%IncDirectives
-    @end;
-
-    @template CMPLRS_CXX_CmdLine ( %CMPLRS_CXX_COMPILER,
-                                               %CMPLRS_CXX_SysOptions ,
-                                                %CMPLRS_CXX_Options ,
-                                                %CMPLRS_CXX_ModeOpt , 
-                                               %CMPLRS_CXX_DBMSOpt ,
-                                               %CMPLRS_CXX_INCLUDE ,
-                                               %CMPLRS_CXX_WOKDirectives ,
-                                                %IncDirectives ,
-                                                %DBDirectives ,
-                                                %Source,
-                                               %BaseName,
-                                                %OutputDir ,
-                                                %TmpFile , %Entity ) is
-      $cd %OutputDir && %CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o  >& %TmpFile
-      $set stat = $status
-      
-      $if ( $stat == 0 ) then
-      $  if ( -e %OutputDir/%BaseName.d ) then
-      $    sed -e '/:/d' -e 's/\\/ /g'  %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m
-      $  endif
-      $endif
-      $if( -e %TmpFile ) grep ':' %TmpFile
-      $/bin/rm -f %TmpFile
-      $set status = $stat
-    
-    @end;
-
-
- @endif;
-
-
-
---      #####  #     # #     #      --
---     #     # #     # ##    #      --
---     #       #     # # #   #      --
---      #####  #     # #  #  #      --
---           # #     # #   # #      --
---     #     # #     # #    ##      --
---      #####   #####  #     #      --
-
-
- @if ( %Station == "sun" ) then
-    @template CMPLRS_DBDirective (%DBDirectory) is
-     $ -ptr%DBDirectory \
-    @end;
-
-    @template CMPLRS_C_DTmpFile (%TmpFile) is
-     $ \
-    @end;
-
-    @template CMPLRS_CXX_DTmpFile (%TmpFile) is
-     $>& %TmpFile \
-    @end;
-
-    @template CMPLRS_F77_DTmpFile (%TmpFile) is
-     $ \
-    @end;
-
-    @if ( %DebugMode == "True" ) then
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
---  @set %CMPLRS_CXX_ModeOpt = "-g0 -DDEB +w";
---  @set %CMPLRS_C_ModeOpt   = "-g0 -DDEB +w";
---  @set %CMPLRS_F77_ModeOpt = "-g";
-       @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb ;
-       @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOptDeb ;
-       @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb ;
-    @else
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
---  @set %CMPLRS_CXX_ModeOpt = "-O2 -DNo_Exception +w ";
---  @set %CMPLRS_C_ModeOpt   = "-O2 -DNo_Exception +w ";
---  @set %CMPLRS_F77_ModeOpt = "-O2";
-       @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt ;
-       @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOpt ;
-       @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt ;
-    @endif;
-
-    @set %CMPLRS_CXX_WOKDirectives = "-H ";
-    @set %CMPLRS_C_WOKDirectives   = "";
-    @set %CMPLRS_F77_WOKDirectives = "";
-
-    @if ( %DBMS == "OBJS" ) then
-       @set %CMPLRS_CXX_DBMSOpt = "-mt -DOBJS -I/PRODUCTS/OS5.0/sunpro/include";
-    @endif;
+  @end;
 
-    @template CMPLRS_F77_OptLine (
-                                       %CMPLRS_F77_COMPILER ,
-                                       %CMPLRS_F77_SysOptions ,
-                                       %CMPLRS_F77_ModeOpt 
-                                        ) is
+  @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt) is
     $Following parameters make up F77 compilation command in this order:
     $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
     $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
     $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
-    @end;
-
-    @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , 
-                                   %CMPLRS_F77_WOKDirectives , %Source , %OutputDir ,    %BaseName , %Entity ) is
-    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
-    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
-    $ touch %OutputDir/%BaseName.m
-    @end;
-
-
-    @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER ,
-                                              %CMPLRS_C_SysOptions ,
-                                              %CMPLRS_C_Options ,
-                                              %CMPLRS_C_ModeOpt ,
-                                              %CMPLRS_C_INCLUDE ,
-                                              %IncDirectives ,
-                                              %CMPLRS_Unit_C_Options ,
-                                              %CMPLRS_C_WOKDirectives ,
-                                              %Entity ) is
-    $Following parameters make up C compilation command in this order:
-    $CMPLRS_C_COMPILER     = %CMPLRS_C_COMPILER 
-    $CMPLRS_C_SysOptions   = %CMPLRS_C_SysOptions
-    $CMPLRS_C_Options      = %CMPLRS_C_Options 
-    $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options 
-    $CMPLRS_C_INCLUDE      = %CMPLRS_C_INCLUDE
-    $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives
-    $Dynamic include directives are :
-    $%IncDirectives
-    @end;
-
-   @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER ,
-                                              %CMPLRS_C_SysOptions ,
-                                              %CMPLRS_C_Options ,
-                                              %CMPLRS_C_ModeOpt ,
-                                             %CMPLRS_CXX_DBMSOpt ,
-                                             %CMPLRS_C_INCLUDE ,
-                                              %IncDirectives ,
-                                              %CMPLRS_Unit_C_Options ,
-                                              %CMPLRS_C_WOKDirectives ,
-                                              %Source ,
-                                             %BaseName, 
-                                             %OutputDir ,
-                                              %TmpFile , %Entity ) is
-
-     $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt  %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source  -o %OutputDir/%BaseName.o 
-     $set stat = $status
-     $echo  '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile
-     $if ( $stat == 0 ) then
-     $ cpp  %IncDirectives -Usun -DSOLARIS -M  %Source \^
-     $      | sed -e '1d' -e 's/.*://g' -e 's/[         *]*//g' -e 's%/./%/%g' -e 's%//%/%g' \^
-     $      | sort -u  >  %OutputDir/%BaseName.m
-     $endif
-     $set status = $stat
-    @end;
-
-    @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER,
-                                               %CMPLRS_CXX_SysOptions ,
-                                                %CMPLRS_CXX_Options ,
-                                                %CMPLRS_CXX_ModeOpt , 
-                                                %CMPLRS_CXX_DBMSOpt ,
-                                               %CMPLRS_CXX_INCLUDE ,
-                                               %CMPLRS_CXX_WOKDirectives ,
-                                                %IncDirectives ,
-                                                %DBDirectives ,
-                                                %Entity ) is
-    $Following parameters make up C++ compilation command in this order:
-    $CMPLRS_CXX_COMPILER      = %CMPLRS_CXX_COMPILER
-    $CMPLRS_CXX_SysOptions    = %CMPLRS_CXX_SysOptions
-    $CMPLRS_CXX_Options       = %CMPLRS_CXX_Options
-    $CMPLRS_CXX_ModeOpt       = %CMPLRS_CXX_ModeOpt
-    $CMPLRS_CXX_DBMSOpt       = %CMPLRS_CXX_DBMSOpt
-    $CMPLRS_CXX_INCLUDE       = %CMPLRS_CXX_INCLUDE
-    $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives
-    $Dynamic include directives are :
-    $%IncDirectives
-    @end;
-
-    @template CMPLRS_CXX_CmdLine ( %CMPLRS_CXX_COMPILER, 
-                                                %CMPLRS_CXX_SysOptions ,
-                                                %CMPLRS_CXX_Options ,
-                                                %CMPLRS_CXX_ModeOpt , 
-                                                %CMPLRS_CXX_DBMSOpt ,
-                                               %CMPLRS_CXX_INCLUDE ,
-                                               %CMPLRS_CXX_WOKDirectives ,
-                                                %IncDirectives ,
-                                                %DBDirectives ,
-                                                %Source,
-                                               %BaseName,
-                                                %OutputDir ,
-                                                %TmpFile , %Entity) is
-     $%CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options         %CMPLRS_CXX_INCLUDE  %CMPLRS_CXX_DBMSOpt  %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source  -o %OutputDir/%BaseName.o  >& %TmpFile
-     $set stat = $status
-     $echo '$CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options $INCDIRS %CMPLRS_CXX_INCLUDE  %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/cxx.compile
-     $if ( $stat == 0 ) then
-     $  sed -e 's/     //g' -e '/Compilation failed/d' -e '/:/d' -e 's%/\./%/%g'  -e 's%//%/%g' %TmpFile \^
-     $| grep -v 'detected.$' | sort -u  > %OutputDir/%BaseName.m
-     $endif
-     $if( -e %TmpFile ) grep ':' %TmpFile 
-     $/bin/rm -f %TmpFile
-     $set status = $stat
-    @end;
-
- @endif;
-
---     #     # #     # #######     --
---     #  #  # ##    #    #        --
---     #  #  # # #   #    #        --
---     #  #  # #  #  #    #        --
---     #  #  # #   # #    #        --
---     #  #  # #    ##    #        --
---      ## ##  #     #    #        --
-
- @if ( %Station == "wnt" ) then
-    @template CMPLRS_C_DTmpFile (%TmpFile) is
-     $ ;
-    @end;
-
-    @template CMPLRS_CXX_DTmpFile (%TmpFile) is
-     $ ;
-    @end;
-
-    @template CMPLRS_F77_DTmpFile (%TmpFile) is
-     $ ;
-    @end;
-
-    @if ( %DebugMode == "True" ) then
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
---  @set %CMPLRS_CXX_ModeOpt = "-DDEB -D_DEBUG";
---  @set %CMPLRS_C_ModeOpt   = "-DDEB -D_DEBUG";
---  @set %CMPLRS_CXX_SysOptions = "-nologo -MDd -W3 -Gm -GX -Od -Zi";
---  @set %CMPLRS_C_SysOptions = "-nologo -MDd -W3 -Gm -GX -Od -Zi";
---  @set %CMPLRS_F77_ModeOpt = "-DDEB -D_DEBUG";
-       @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb ;
-       @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOptDeb ;
-       @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb ;
-    @else
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
---  @set %CMPLRS_CXX_ModeOpt = "-DNDEBUG -DNo_Exception";
---  @set %CMPLRS_C_ModeOpt   = "-DNDEBUG -DNo_Exception";
---  @set %CMPLRS_CXX_SysOptions = "-nologo -MD -W3 -GX -O2 ";
---  @set %CMPLRS_C_SysOptions = "-nologo -MD -W3 -GX -O2 ";
---  @set %CMPLRS_F77_ModeOpt = "-DNDEBUG -DNo_Exception";
-       @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt ;
-       @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOpt ;
-       @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt ;
-    @endif;
-
-    @set %CMPLRS_CXX_WOKDirectives = "";
-    @set %CMPLRS_C_WOKDirectives   = "";
-    @set %CMPLRS_F77_WOKDirectives = "";
-
-    @if ( %DBMS == "OBJS" ) then
-       @set %CMPLRS_CXX_DBMSOpt = "-DOBJS";
-    @endif;
-    @if ( %DBMS == "DFLT" ) then
-       @set %CMPLRS_CXX_DBMSOpt = "-DCSFDB";
-    @endif;
-
-    @template CMPLRS_C_Footer (
-                                        %CMPLRS_C_Options,
-                                        %CMPLRS_ExportBehaviour ,
-                                        %IncDirectives,
-                                        %Unit_C_Options ,
-                                        %InputDir ,
-                                        %Source,
-                                        %BaseName,
-                                        %OutputDir ) is
-     $set cmplrs_status=%status%;
-     $@acpp.exe -M -m -+ %CMPLRS_C_Options -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives %Unit_C_Options \^
-     $ %InputDir/%Source -o %OutputDir%BaseName.m;
-     $set status=%cmplrs_status%;
-    @end;
-
-    @template CMPLRS_CXX_Footer(
-                                       %CMPLRS_CXX_Options,
-                                        %CMPLRS_ExportBehaviour ,
-                                        %IncDirectives,
-                                        %Unit_CXX_Options ,
-                                        %InputDir ,
-                                        %Source,
-                                        %BaseName,
-                                        %OutputDir) is 
-     $set cmplrs_status=%status%;
-     $@acpp.exe -M -m -+ %CMPLRS_CXX_Options -D__cplusplus -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives %Unit_CXX_Options \^
-     $ %InputDir/%Source -o %OutputDir%BaseName.m;
-     $set status=%cmplrs_status%;
-    @end;
-
-
---> wnt
-
-   @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER,
-                                               %CMPLRS_CXX_SysOptions ,
-                                                %CMPLRS_CXX_Options ,
-                                                %CMPLRS_ExportBehaviour ,
-                                                %CMPLRS_CXX_ModeOpt , 
-                                                %CMPLRS_CXX_DBMSOpt ,
-                                               %CMPLRS_CXX_INCLUDE ,
-                                               %CMPLRS_CXX_WOKDirectives ,
-                                                %IncDirectives ,
-                                                %DBDirectives ,
-                                                %Entity ) is
-    $Following parameters make up C++ compilation command in this order:
-    $CMPLRS_CXX_COMPILER      = %CMPLRS_CXX_COMPILER
-    $CMPLRS_CXX_SysOptions    = %CMPLRS_CXX_SysOptions
-    $CMPLRS_CXX_Options       = %CMPLRS_CXX_Options
-    $CMPLRS_ExportBehaviour   = %CMPLRS_ExportBehaviour
-    $CMPLRS_CXX_ModeOpt       = %CMPLRS_CXX_ModeOpt
-    $CMPLRS_CXX_DBMSOpt       = %CMPLRS_CXX_DBMSOpt
-    $CMPLRS_CXX_INCLUDE       = %CMPLRS_CXX_INCLUDE
-    $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives
-    $Dynamic include directives are :
-    $%IncDirectives
-    @end;
-
-
-
-  @template CMPLRS_CXX_CmdLine (
-             %CMPLRS_CXX_COMPILER, %CMPLRS_CXX_SysOptions, %CMPLRS_CXX_Options, %CMPLRS_CXX_ModeOpt,
-             %CMPLRS_CXX_DBMSOpt, %IncDirectives, %CMPLRS_CXX_INCLUDE, %PDBName, %Source,
-             %BaseName, %OutputDir, %CMPLRS_ExportBehaviour
-            ) is
-  $%CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_ExportBehaviour\^
-  $  %IncDirectives %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt \^
-  $ -Fd%PDBName -c -Tp %Source -Fo%OutputDir%BaseName.obj;
-  $set cmplrs_status=%status%;
-  $@acpp.exe -M -m -+ %CMPLRS_CXX_Options -D__cplusplus -D_DLL -D_MT %CMPLRS_ExportBehaviour  %IncDirectives %CMPLRS_CXX_INCLUDE\^
-  $ %Source -o %OutputDir%BaseName.m;
-  $set status=%cmplrs_status%;
   @end;
 
-  @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER ,
-                                            %CMPLRS_C_SysOptions ,
-                                            %CMPLRS_C_Options ,
-                                            %CMPLRS_C_ModeOpt ,
-                                            %IncDirectives ,
-                                            %CMPLRS_Unit_C_Options ,
-                                            %CMPLRS_C_WOKDirectives ,
-                                            %CMPLRS_ExportBehaviour ,
-                                            %Entity ) is
-  $Following parameters make up C compilation command in this order:
-  $CMPLRS_C_COMPILER      = %CMPLRS_C_COMPILER 
-  $CMPLRS_C_SysOptions    = %CMPLRS_C_SysOptions
-  $CMPLRS_C_Options       = %CMPLRS_C_Options 
-  $CMPLRS_C_ModeOpt       = %CMPLRS_C_ModeOpt
-  $CMPLRS_Unit_C_Options  = %CMPLRS_Unit_C_Options 
-  $CMPLRS_C_WOKDirectives = %CMPLRS_C_WOKDirectives
-  $CMPLRS_ExportBehaviour = %CMPLRS_ExportBehaviour
-  $Dynamic include directives are :
-  $%IncDirectives
-  @end;
-
-  @template CMPLRS_C_CmdLine (
-             %CMPLRS_C_COMPILER, %CMPLRS_C_SysOptions, %CMPLRS_C_Options, %CMPLRS_C_ModeOpt, %CMPLRS_CXX_DBMSOpt,
-             %IncDirectives, %PDBName, %Source,
-             %BaseName, %OutputDir, %CMPLRS_ExportBehaviour
-            ) is
-  $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_ExportBehaviour\^
-  $  %IncDirectives %CMPLRS_CXX_DBMSOpt %CMPLRS_C_ModeOpt \^
-  $ -Fd%PDBName -c -Tc %Source -Fo%OutputDir%BaseName.obj;
-  $set cmplrs_status=%status%;
-  $@acpp.exe -M -m -+ %CMPLRS_C_Options -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives\^
-  $ %Source -o %OutputDir%BaseName.m;
-  $set status=%cmplrs_status%;
-  @end;
-
-
- @endif;
-
-
---      #####    ###   #           --
---     #     #    #    #           --
---     #          #    #           --
---      #####     #    #           --
---           #    #    #           --
---     #     #    #    #           --
---      #####    ###   #######     --
-
- @if ( %Station == "sil" ) then
-    @set %CMPLRS_F77_Command = "f77 ";
-    @set %CMPLRS_F77_Options = "-n32 -mips3";
-
-    @if ( %DebugMode == "True" ) then
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
---  @set %CMPLRS_CXX_ModeOpt = "-g -gslim -DDEB";
---  @set %CMPLRS_C_ModeOpt   = "-g -gslim -DDEB";
---  @set %CMPLRS_F77_ModeOpt = "-g";
-       @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb ;
-       @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOptDeb ;
-       @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb ;
-    @else
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
---  @set %CMPLRS_CXX_ModeOpt = "-O3 -DNo_Exception  -D__INLINE_INTRINSICS -TARG:processor=R10000 ";
---  @set %CMPLRS_C_ModeOpt   = "-O3 -DNo_Exception -TARG:processor=R10000 ";
---  @set %CMPLRS_F77_ModeOpt = "-O3";
-       @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt ;
-       @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOpt ;
-       @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt ;
+  --
+  -- For Linux platforms
+  --
+  @if (%Station == "lin") then
+    @ifnotdefined (%CMPLRS_LIN_EDL) then
+      @uses "CMPLRS_LIN.edl";
     @endif;
+  @endif;
 
-    @set %CMPLRS_CXX_WOKDirectives = "-MDupdate ";
-    @set %CMPLRS_C_WOKDirectives   = "";
-    @set %CMPLRS_F77_WOKDirectives = "";
-
-    @if ( %DBMS == "OBJS" ) then
-       @set %CMPLRS_CXX_DBMSOpt = "-DOBJS -I/PRODUCTS/OS5.0/include";
+  --
+  -- For Windows platforms
+  --
+  @if (%Station == "wnt") then
+    @ifnotdefined (%CMPLRS_WNT_EDL) then
+      @uses "CMPLRS_WNT.edl";
     @endif;
+  @endif;
 
-
-    @template CMPLRS_F77_OptLine (
-                                       %CMPLRS_F77_COMPILER ,
-                                       %CMPLRS_F77_SysOptions ,
-                                       %CMPLRS_F77_ModeOpt ) is
-    $Following parameters make up F77 compilation command in this order:
-    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
-    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
-    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
-    @end;
-
-    @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , 
-                                   %CMPLRS_F77_WOKDirectives , %Source , %OutputDir ,    %BaseName , %Entity ) is
-    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
-    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
-    $ touch %OutputDir/%BaseName.m
-    @end;
-
-    @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER ,
-                                              %CMPLRS_C_SysOptions ,
-                                              %CMPLRS_C_Options ,
-                                              %CMPLRS_C_ModeOpt ,
-                                              %IncDirectives ,
-                                              %CMPLRS_Unit_C_Options ,
-                                              %CMPLRS_C_WOKDirectives ,
-                                              %Entity ) is
-    $Following parameters make up C compilation command in this order:
-    $CMPLRS_C_COMPILER     = %CMPLRS_C_COMPILER 
-    $CMPLRS_C_SysOptions   = %CMPLRS_C_SysOptions
-    $CMPLRS_C_Options      = %CMPLRS_C_Options 
-    $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options 
-    $CMPLRS_C_INCLUDE      = %CMPLRS_C_INCLUDE
-    $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives
-    $Dynamic include directives are :
-    $%IncDirectives
-    @end;
-
-    @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER ,
-                                              %CMPLRS_C_SysOptions ,
-                                              %CMPLRS_C_Options ,
-                                              %CMPLRS_C_ModeOpt ,
-                                              %CMPLRS_C_ModeOpt ,
-                                             %CMPLRS_C_INCLUDE ,
-                                             %CMPLRS_CXX_DBMSOpt ,
-                                              --%CMPLRS_C_Export ,
-                                              %IncDirectives ,
-                                              %CMPLRS_Unit_C_Options ,
-                                              %CMPLRS_C_WOKDirectives ,
-                                              %CMPLRS_C_PDBName ,
-                                              %Source ,
-                                             %BaseName, 
-                                             %OutputDir, %Entity ) is
-     $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o 
-     $set cmplrs_status = $status
-     $echo  '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile
-     $if ( $cmplrs_status == 0 ) then
-     $ /usr/lib/cpp %CMPLRS_C_Options %IncDirectives -M -DIRIX %Source | \^
-     $ sed -e '1d' -e 's/.*://g' -e 's/[        *]*//g' -e 's%/./%/%g' -e 's+//+/+g' |  sort -u  >  %OutputDir/%BaseName.m 
-     $endif
-     $set status = $cmplrs_status
-    @end;
-
-    @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER,
-                                               %CMPLRS_CXX_SysOptions ,
-                                                %CMPLRS_CXX_Options ,
-                                                %CMPLRS_CXX_ModeOpt , 
-                                                %CMPLRS_CXX_DBMSOpt ,
-                                               %CMPLRS_CXX_INCLUDE ,
-                                               %CMPLRS_CXX_WOKDirectives ,
-                                                %IncDirectives ,
-                                                %DBDirectives ,
-                                                %Entity ) is
-    $Following parameters make up C++ compilation command in this order:
-    $CMPLRS_CXX_COMPILER      = %CMPLRS_CXX_COMPILER
-    $CMPLRS_CXX_SysOptions    = %CMPLRS_CXX_SysOptions
-    $CMPLRS_CXX_Options       = %CMPLRS_CXX_Options
-    $CMPLRS_CXX_ModeOpt       = %CMPLRS_CXX_ModeOpt
-    $CMPLRS_CXX_DBMSOpt       = %CMPLRS_CXX_DBMSOpt
-    $CMPLRS_CXX_INCLUDE       = %CMPLRS_CXX_INCLUDE
-    $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives
-    $Dynamic include directives are :
-    $%IncDirectives
-    @end;
-
-    @template CMPLRS_CXX_CmdLine ( %CMPLRS_CXX_COMPILER, 
-                                                %CMPLRS_CXX_SysOptions ,
-                                                %CMPLRS_CXX_Options ,
-                                                %CMPLRS_CXX_ModeOpt , 
-                                                %CMPLRS_CXX_DBMSOpt ,
-                                               %CMPLRS_CXX_INCLUDE ,
-                                               %CMPLRS_CXX_WOKDirectives ,
-                                                %IncDirectives ,
-                                                %DBDirectives ,
-                                                %Source,
-                                               %BaseName,
-                                                %OutputDir ,
-                                                %TmpFile, %Entity ) is
-     $%CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE  %CMPLRS_CXX_DBMSOpt  %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives %TmpFile -c %Source  -o %OutputDir/%BaseName.o  
-     $set stat = $status
-     $echo '$CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options $INCDIRS %CMPLRS_CXX_INCLUDE  %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/cxx.compile
-     $if ( $stat == 0 ) then
-     $ if ( -e %TmpFile ) then
-     $  cat %TmpFile  | tr ' ' '\012' | sed  -e '1d' -e 's%/./%/%g' | grep -v '^#'| sort -u > %OutputDir/%BaseName.m
-     $ else
-     $  touch %OutputDir/%BaseName.m
-     $ endif
-     $endif
-     $ /bin/rm -f %TmpFile
-     $endif
-     $set status = $stat
-    @end;
-
- @endif;
-
-
-
---     #     # ######          #     # #     #     --
---     #     # #     #         #     #  #   #      --
---     #     # #     #         #     #   # #       --
---     ####### ######   #####  #     #    #        --
---     #     # #               #     #   # #       --
---     #     # #               #     #  #   #      --
---     #     # #                #####  #     #     --
-
- @if ( %Station == "hp" ) then
-    @template CMPLRS_DBDirective (%DBDirectory) is
-     $ -ptr%DBDirectory/ptrepository \
-    @end;
-
-    @set %CMPLRS_F77_Command = "f77 ";
-    @set %CMPLRS_F77_Options = "-PIC";
-
-    @if ( %DebugMode == "True" ) then
-       @set %CMPLRS_CXX_ModeOpt = "-g -DDEB";
-       @set %CMPLRS_C_ModeOpt   = "-g -DDEB";
-       @set %CMPLRS_F77_ModeOpt = "-g";
+  --
+  -- For MacOS platforms (not supported)
+  --
+  @if (%Station == "mac") then
+    @ifnotdefined (%CMPLRS_MAC_EDL) then
+      @uses "CMPLRS_MAC.edl";
     @endif;
+  @endif;
 
-    @if ( %DebugMode == "False" ) then
-       @set %CMPLRS_CXX_ModeOpt = "+O2 +Onomoveflops -DNo_Exception ";
-       @set %CMPLRS_C_ModeOpt   = "+O2 +Onomoveflops -DNo_Exception ";
-       @set %CMPLRS_F77_ModeOpt = "+O2 +Onomoveflops ";
+  --
+  -- For SunOS platforms (not supported)
+  --
+  @if (%Station == "sun") then
+    @ifnotdefined (%CMPLRS_SUN_EDL) then
+      @uses "CMPLRS_SUN.edl";
     @endif;
+  @endif;
 
-    @set %CMPLRS_CXX_WOKDirectives = "";
-    @set %CMPLRS_C_WOKDirectives   = "";
-    @set %CMPLRS_F77_WOKDirectives = "";
-
-    @if ( %DBMS == "OBJS" ) then
-       @set %CMPLRS_CXX_DBMSOpt = "-DOBJS -I/PRODUCTS/OS5.0/include ";
+  --
+  -- The IRIX platform is (not supported)
+  --
+  @if (%Station == "sil") then
+    @ifnotdefined (%CMPLRS_SIL_EDL) then
+      @uses "CMPLRS_SIL.edl";
     @endif;
+  @endif;
 
-    @template CMPLRS_F77_OptLine (
-                                       %CMPLRS_F77_COMPILER ,
-                                       %CMPLRS_F77_SysOptions ,
-                                       %CMPLRS_F77_ModeOpt ) is
-    $Following parameters make up F77 compilation command in this order:
-    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
-    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
-    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
-    @end;
-
-    @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , 
-                                   %CMPLRS_F77_WOKDirectives , %Source , %OutputDir ,    %BaseName , %Entity ) is
-    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
-    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
-    $ touch %OutputDir/%BaseName.m
-    @end;
-
-    @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER ,
-                                              %CMPLRS_C_SysOptions ,
-                                              %CMPLRS_C_Options ,
-                                              %CMPLRS_C_ModeOpt ,
-                                             %CMPLRS_C_INCLUDE ,
-                                              %CMPLRS_C_Export ,
-                                              %IncDirectives ,
-                                              %Unit_C_Options ,
-                                              %C_WOKDirectives ,
-                                              %C_PDBName ,
-                                              %Source ,
-                                             %BaseName, 
-                                             %OutputDir ,
-                                              %TmpFile ) is
-     $%CMPLRS_C_COMPILER %C_SysOptions %C_Options %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %C_ModeOpt %C_Export %IncDirectives %Unit_C_Options %C_WOKDirectives %C_PDBName %Files %DTmpFile
-     $if ( $status == 0 ) then
-     $ cc %IncDirectives -E %CMPLRS_C_Options  %Source | egrep -e '^#' | awk '{print $3}' \
-     $| sed -e 's/\"//g' -e '/^$/d'  -e 's%/./%/%g' | sort -u | grep -v %Source | grep '/' > %OutputDir/%BaseName.m
-     $endif
-     $set status = $stat
-    @end;
-    @template CMPLRS_CXX_CmdLine ( %CSF_CXX_COMPILER,
-                                                %CMPLRS_CXX_SysOptions ,
-                                                %CMPLRS_CXX_Options ,
-                                                %CMPLRS_CXX_ModeOpt , %CMPLRS_CXX_DBMSOpt ,
-                                               %CSF_CXX_INCLUDE ,
-                                               %CMPLRS_CXX_WOKDirectives ,
-                                                %IncDirectives ,
-                                                %DBDirectives ,
-                                                %Source,
-                                               %BaseName,
-                                                %OutputDir ,
-                                                %TmpFile ) is
-     $%CSF_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CSF_CXX_INCLUDE  %CMPLRS_CXX_DBMSOpt  %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source  -o %OutputDir/%BaseName.o  >& %TmpFile
-     $set stat = $status
-     $if ( $stat == 0 ) then
-     $ /opt/aCC/bin/aCC -I/opt/aCC/include -I/opt/aCC/include/iostream %IncDirectives -E %CMPLRS_CXX_Options %CMPLRS_CXX_DBMSOpt %Source | egrep -e '^#' | awk '{print $3}' \
-     $| sed -e 's/\"//g' -e '/^$/d' -e 's%/./%/%g' | sort -u | grep -v %Source | grep '/' > %OutputDir/%BaseName.m
-     $endif
-     $set status = $stat
-
-    @end;
-
- @endif;
-
-
---     #######   ###   #     #     --
---     #     #    #     #   #      --
---     #     #    #      # #       --
---     #######    #       #        --
---     #     #    #      # #       --
---     #     #    #     #   #      --
---     #     #   ###   #     #     --
-
- @if ( %Station == "aix" ) then
-    @if ( %DebugMode == "True" ) then
-       @set %CMPLRS_CXX_ModeOpt = "-g0 -DDEB -D_DEBUG";
-       @set %CMPLRS_C_ModeOpt   = "-g0 -DDEB -D_DEBUG";
-       @set %CMPLRS_F77_ModeOpt = "-g  -DDEB -D_DEBUG";
-    @else
-       @set %CMPLRS_CXX_ModeOpt = "-O2 ";
-       @set %CMPLRS_C_ModeOpt   = "-O2 ";
-       @set %CMPLRS_F77_ModeOpt  = "-O2 ";
+  --
+  -- The HP-UX platform is (not supported)
+  --
+  @if (%Station == "hp") then
+    @ifnotdefined (%CMPLRS_HP_EDL) then
+      @uses "CMPLRS_HP.edl";
     @endif;
+  @endif;
 
-    @set %CMPLRS_CXX_WOKDirectives = "";
-    @set %CMPLRS_C_WOKDirectives   = "";
-    @set %CMPLRS_F77_WOKDirectives = "";
-
-    @if ( %DBMS == "OBJS" ) then
-       @set %CMPLRS_CXX_DBMSOpt = "-DOBJS";
+  --
+  -- The AIX platform is (not supported)
+  --
+  @if (%Station == "aix") then
+    @ifnotdefined (%CMPLRS_AIX_EDL) then
+      @uses "CMPLRS_AIX.edl";
     @endif;
-
-
-
-    @template CMPLRS_F77_OptLine (
-                                       %CMPLRS_F77_COMPILER ,
-                                       %CMPLRS_F77_SysOptions ,
-                                       %CMPLRS_F77_ModeOpt ) is
-    $Following parameters make up F77 compilation command in this order:
-    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
-    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
-    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
-    @end;
-
-    @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , 
-                                   %CMPLRS_F77_WOKDirectives , %Source , %OutputDir ,    %BaseName , %Entity ) is
-    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
-    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
-    $ touch %OutputDir/%BaseName.m
-    @end;
-
-    @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER ,
-                                              %CMPLRS_C_SysOptions ,
-                                              %CMPLRS_C_Options ,
-                                              %CMPLRS_C_ModeOpt ,
-                                              %CMPLRS_C_Export ,
-                                              %IncDirectives ,
-                                              %CMPLRS_Unit_C_Options ,
-                                              %CMPLRS_C_WOKDirectives ,
-                                              %CMPLRS_C_PDBName ,
-                                              %Files ,
-                                             %BaseName, 
-                                             %OutputDir ,
-                                              %TmpFile ) is
-     $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_Export %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives %CMPLRS_C_PDBName %Files %DTmpFile
-
-     $if ( $status == 0 ) then
-     $ sed -e 's/ //g' -e '/:/d' %TmpFile | sort -u > %OutputDir/%BaseName.m
-     $endif
-     $if( -e %TmpFile ) grep ':' %TmpFile
-     $/bin/rm -f %TmpFile
-     $set status = $stat
-    @end;
-
-
-    @template CMPLRS_CXX_CmdLine ( %CSF_CXX_COMPILER, 
-                                                %CMPLRS_CXX_SysOptions,        
-                                                %CMPLRS_CXX_Options ,
-                                                %CMPLRS_CXX_ModeOpt , %CMPLRS_CXX_DBMSOpt ,
-                                               %CSF_CXX_INCLUDE ,
-                                               %CMPLRS_CXX_WOKDirectives ,
-                                                %IncDirectives ,
-                                                %DBDirectives ,
-                                                %Source,
-                                               %BaseName,
-                                                %OutputDir ,
-                                                %TmpFile ) is
-     $%CSF_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CSF_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt  %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source  -o %OutputDir/%BaseName.o  >& %TmpFile
-     $set stat = $status
-      $if ( $stat == 0 ) then
-     $ sed -e 's/ //g' -e '/:/d' %TmpFile | sort -u > %OutputDir/%BaseName.m
-     $endif
-     $if( -e %TmpFile ) grep ':' %TmpFile
-     $/bin/rm -f %TmpFile
-     $set status = $stat
-    @end;
-
- @endif;
-
- @if (  defined( %UnitType )  )  then
-  @if (  ( %UnitType == "idl" || %UnitType == "server" || %UnitType == "executable" ) &&
-         %Station != "wnt"
-  ) then
-   --@uses "ORBIX.edl";
-   @if ( %Station == "sun" ) then
-    @set %CMPLRS_CXX_Command = %CSF_CXX_COMPILER ;
-   @endif;
-   --@string %CMPLRS_CXX_Options += " -I" %ORBIX_Home "/include ";
   @endif;
- @endif;
-
-@endif;
-
---     #     #      #       ####     --
---     ##   ##     # #     #    #    --
---     # # # #    #   #    #         --
---     #  #  #   #     #   #         --
---     #     #   #######   #         --
---     #     #   #     #   #    #    --
---     #     #   #     #    ####     --
-
-@if ( %Station == "mac" ) then
 
-    @template CMPLRS_C_DTmpFile (%TmpFile) is
-     $>& %TmpFile \
-    @end;
-
-    @template CMPLRS_CXX_DTmpFile (%TmpFile) is
-     $>& %TmpFile \
-    @end;
-
-    @template CMPLRS_F77_DTmpFile (%TmpFile) is
-     $ \
-    @end;
-
-    @if ( %DebugMode == "True" ) then
---       @set %CMPLRS_CXX_ModeOpt = "-gdwarf-2 -O0 -DDEB -D_DEBUG";
---       @set %CMPLRS_C_ModeOpt   = "-gdwarf-2 -O0 -DDEB -D_DEBUG";
---       @set %CMPLRS_F77_ModeOpt = "-gdwarf-2     -DDEB -D_DEBUG";
-       @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb ;
-       @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOptDeb ;
-       @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb ;
-    @else
---       @set %CMPLRS_CXX_ModeOpt = "-O3 -DNDEBUG -DNo_Exception";
---       @set %CMPLRS_C_ModeOpt   = "-O3 -DNDEBUG -DNo_Exception";
---       @set %CMPLRS_F77_ModeOpt = "-O3 -DNDEBUG -DNo_Exception";
-       @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt ;
-       @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOpt ;
-       @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt ;
+  --
+  -- For FreeBSD platforms (not supported)
+  --
+  @if (%Station == "bsd") then
+    @ifnotdefined (%CMPLRS_BSD_EDL) then
+      @uses "CMPLRS_BSD.edl";
     @endif;
+  @endif;
 
-    @set %CMPLRS_CXX_WOKDirectives = "-MD ";
-    @set %CMPLRS_C_WOKDirectives   = "-MD ";
-    @set %CMPLRS_F77_WOKDirectives = "";
-
-
-    @template CMPLRS_F77_OptLine (
-                                       %CMPLRS_F77_COMPILER ,
-                                       %CMPLRS_F77_SysOptions ,
-                                       %CMPLRS_F77_ModeOpt 
-                                        ) is
-    $Following parameters make up F77 compilation command in this order:
-    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
-    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
-    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
-    @end;
-
-   @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , 
-                                   %CMPLRS_F77_WOKDirectives , %Source , %OutputDir ,    %BaseName , %Entity ) is
-    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
-    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
-    $ touch %OutputDir/%BaseName.m
-    @end;
-
-
-    @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER ,
-                                              %CMPLRS_C_SysOptions ,
-                                              %CMPLRS_C_Options ,
-                                              %CMPLRS_C_ModeOpt ,
-                                              %CMPLRS_C_INCLUDE ,
-                                              %IncDirectives ,
-                                              %CMPLRS_Unit_C_Options ,
-                                              %CMPLRS_C_WOKDirectives ,
-                                              %Entity ) is
-    $Following parameters make up C compilation command in this order:
-    $CMPLRS_C_COMPILER     = %CMPLRS_C_COMPILER 
-    $CMPLRS_C_SysOptions   = %CMPLRS_C_SysOptions
-    $CMPLRS_C_Options      = %CMPLRS_C_Options 
-    $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options 
-    $CMPLRS_C_INCLUDE      = %CMPLRS_C_INCLUDE
-    $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives
-    $Dynamic include directives are :
-    $%IncDirectives
-    @end;
-    @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER ,
-                                              %CMPLRS_C_SysOptions ,
-                                              %CMPLRS_C_Options ,
-                                              %CMPLRS_C_ModeOpt ,
-                                              %CMPLRS_CXX_DBMSOpt ,
---                                              %C_Export ,
-                                              %CMPLRS_C_INCLUDE ,
-                                              %IncDirectives ,
-                                              %CMPLRS_Unit_C_Options ,
-                                              %CMPLRS_C_WOKDirectives ,
-                                              %Source ,
-                                              %BaseName, 
-                                              %OutputDir ,
-                                              %TmpFile , %Entity ) is
-      $cd %OutputDir &&  %CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt  %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o 
-      $set stat = $status
-      $echo '$C_COMPILER  %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile
-      $if ( $stat == 0 ) then
-      $  if ( -e %OutputDir/%BaseName.d ) then
-      $   sed -e '/:/d' -e 's/\\/ /g'  %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m
-      $  endif
-      $endif
-      $set status = $stat
-    @end;
-
-    @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER,
-                                                %CMPLRS_CXX_SysOptions ,
-                                                %CMPLRS_CXX_Options ,
-                                                %CMPLRS_CXX_ModeOpt , %CMPLRS_CXX_DBMSOpt ,
-                                                %CMPLRS_CXX_INCLUDE ,
-                                                %CMPLRS_CXX_WOKDirectives ,
-                                                %IncDirectives ,
-                                                %DBDirectives ,
-                                                %Entity ) is
-    $Following parameters make up C++ compilation command in this order:
-    $CMPLRS_CXX_COMPILER      = %CMPLRS_CXX_COMPILER
-    $CMPLRS_CXX_SysOptions    = %CMPLRS_CXX_SysOptions
-    $CMPLRS_CXX_Options       = %CMPLRS_CXX_Options
-    $CMPLRS_CXX_ModeOpt       = %CMPLRS_CXX_ModeOpt
-    $CMPLRS_CXX_DBMSOpt       = %CMPLRS_CXX_DBMSOpt
-    $CMPLRS_CXX_INCLUDE       = %CMPLRS_CXX_INCLUDE
-    $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives
-    $Dynamic include directives are :
-    $%IncDirectives
-    @end;
-
-    @template CMPLRS_CXX_CmdLine ( %CMPLRS_CXX_COMPILER,
-                                                %CMPLRS_CXX_SysOptions ,
-                                                %CMPLRS_CXX_Options ,
-                                                %CMPLRS_CXX_ModeOpt , 
-                                                %CMPLRS_CXX_DBMSOpt ,
-                                                %CMPLRS_CXX_INCLUDE ,
-                                                %CMPLRS_CXX_WOKDirectives ,
-                                                %IncDirectives ,
-                                                %DBDirectives ,
-                                                %Source,
-                                                %BaseName,
-                                                %OutputDir ,
-                                                %TmpFile , %Entity ) is
-      $cd %OutputDir && %CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o  >& %TmpFile
-      $set stat = $status
-      
-      $if ( $stat == 0 ) then
-      $  if ( -e %OutputDir/%BaseName.d ) then
-      $    sed -e '/:/d' -e 's/\\/ /g'  %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m
-      $  endif
-      $endif
-      $if( -e %TmpFile ) grep ':' %TmpFile
-      $/bin/rm -f %TmpFile
-      $set status = $stat
-    
-   @end;
-
-@endif;
-
---     ######   #####  ######       --
---     #     # #     # #     #      --
---     #     # #       #     #      --
---     ######   #####  #     #      --
---     #     #       # #     #      --
---     #     # #     # #     #      --
---     ######   #####  ######       --
-
-
-@if ( %Station == "bsd" ) then
-
-    @template CMPLRS_C_DTmpFile (%TmpFile) is
-     $>& %TmpFile \
-    @end;
-
-    @template CMPLRS_CXX_DTmpFile (%TmpFile) is
-     $>& %TmpFile \
-    @end;
-
-    @template CMPLRS_F77_DTmpFile (%TmpFile) is
-     $ \
-    @end;
-
-    @if ( %DebugMode == "True" ) then
-       @set %CMPLRS_CXX_ModeOpt = "-g -O0 -DDEB -D_DEBUG";
-       @set %CMPLRS_C_ModeOpt   = "-g -O0 -DDEB -D_DEBUG";
-       @set %CMPLRS_F77_ModeOpt = "-g     -DDEB -D_DEBUG";
-    @else
-       @set %CMPLRS_CXX_ModeOpt = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -DNDEBUG -DNo_Exception";
-       @set %CMPLRS_C_ModeOpt   = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -DNDEBUG -DNo_Exception";
-       @set %CMPLRS_F77_ModeOpt = "-O -DNDEBUG -DNo_Exception";
+  @if (defined (%UnitType)) then
+    @if ( (%UnitType == "idl" || %UnitType == "server" || %UnitType == "executable") && %Station != "wnt") then
+      @if ( %Station == "sun" ) then
+        @set %CMPLRS_CXX_Command = %CSF_CXX_COMPILER;
+      @endif;
     @endif;
-
-    @set %CMPLRS_CXX_WOKDirectives = "-MD ";
-    @set %CMPLRS_C_WOKDirectives   = "-MD ";
-    @set %CMPLRS_F77_WOKDirectives = "";
-
-
-    @template CMPLRS_F77_OptLine (
-                                       %CMPLRS_F77_COMPILER ,
-                                       %CMPLRS_F77_SysOptions ,
-                                       %CMPLRS_F77_ModeOpt
-                                        ) is
-    $Following parameters make up F77 compilation command in this order:
-    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
-    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
-    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
-    @end;
-
-   @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt ,
-                                   %CMPLRS_F77_WOKDirectives , %Source , %OutputDir ,    %BaseName , %Entity ) is
-    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
-    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
-    $ touch %OutputDir/%BaseName.m
-    @end;
-
-
-    @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER ,
-                                              %CMPLRS_C_SysOptions ,
-                                              %CMPLRS_C_Options ,
-                                              %CMPLRS_C_ModeOpt ,
-                                              %CMPLRS_C_INCLUDE ,
-                                             %IncDirectives ,
-                                              %CMPLRS_Unit_C_Options ,
-                                              %CMPLRS_C_WOKDirectives ,
-                                              %Entity ) is
-    $Following parameters make up C compilation command in this order:
-    $CMPLRS_C_COMPILER     = %CMPLRS_C_COMPILER
-    $CMPLRS_C_SysOptions   = %CMPLRS_C_SysOptions
-    $CMPLRS_C_Options      = %CMPLRS_C_Options
-    $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options
-    $CMPLRS_C_INCLUDE      = %CMPLRS_C_INCLUDE
-    $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives
-    $Dynamic include directives are :
-    $%IncDirectives
-    @end;
-    @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER ,
-                                              %CMPLRS_C_SysOptions ,
-                                              %CMPLRS_C_Options ,
-                                              %CMPLRS_C_ModeOpt ,
-                                             %CMPLRS_CXX_DBMSOpt ,
---                                              %C_Export ,
-                                             %CMPLRS_C_INCLUDE ,
-                                              %IncDirectives ,
-                                              %CMPLRS_Unit_C_Options ,
-                                              %CMPLRS_C_WOKDirectives ,
-                                              %Source ,
-                                             %BaseName,
-                                             %OutputDir ,
-                                              %TmpFile , %Entity ) is
-      $cd %OutputDir &&  %CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt  %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o
-      $set stat = $status
-      $echo '$C_COMPILER  %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile
-      $if ( $stat == 0 ) then
-      $  if ( -e %OutputDir/%BaseName.d ) then
-      $   sed -e '/:/d' -e 's/\\/ /g'  %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m
-      $  endif
-      $endif
-      $set status = $stat
-    @end;
-
-    @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER,
-                                               %CMPLRS_CXX_SysOptions ,
-                                                %CMPLRS_CXX_Options ,
-                                                %CMPLRS_CXX_ModeOpt , %CMPLRS_CXX_DBMSOpt ,
-                                               %CMPLRS_CXX_INCLUDE ,
-                                               %CMPLRS_CXX_WOKDirectives ,
-                                                %IncDirectives ,
-                                                %DBDirectives ,
-                                                %Entity ) is
-    $Following parameters make up C++ compilation command in this order:
-    $CMPLRS_CXX_COMPILER      = %CMPLRS_CXX_COMPILER
-    $CMPLRS_CXX_SysOptions    = %CMPLRS_CXX_SysOptions
-    $CMPLRS_CXX_Options       = %CMPLRS_CXX_Options
-    $CMPLRS_CXX_ModeOpt       = %CMPLRS_CXX_ModeOpt
-    $CMPLRS_CXX_DBMSOpt       = %CMPLRS_CXX_DBMSOpt
-    $CMPLRS_CXX_INCLUDE       = %CMPLRS_CXX_INCLUDE
-    $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives
-    $Dynamic include directives are :
-    $%IncDirectives
-    @end;
-
-    @template CMPLRS_CXX_CmdLine ( %CMPLRS_CXX_COMPILER,
-                                               %CMPLRS_CXX_SysOptions ,
-                                                %CMPLRS_CXX_Options ,
-                                                %CMPLRS_CXX_ModeOpt ,
-                                               %CMPLRS_CXX_DBMSOpt ,
-                                               %CMPLRS_CXX_INCLUDE ,
-                                               %CMPLRS_CXX_WOKDirectives ,
-                                                %IncDirectives ,
-                                                %DBDirectives ,
-                                                %Source,
-                                               %BaseName,
-                                                %OutputDir ,
-                                                %TmpFile , %Entity ) is
-      $cd %OutputDir && %CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o  >& %TmpFile
-      $set stat = $status
-
-      $if ( $stat == 0 ) then
-      $  if ( -e %OutputDir/%BaseName.d ) then
-      $    sed -e '/:/d' -e 's/\\/ /g'  %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m
-      $  endif
-      $endif
-      $if( -e %TmpFile ) grep ':' %TmpFile
-      $/bin/rm -f %TmpFile
-      $set status = $stat
-
-    @end;
-
+  @endif;
 
 @endif;
-
diff --git a/src/WOKBuilderDef/CMPLRS_AIX.edl b/src/WOKBuilderDef/CMPLRS_AIX.edl
new file mode 100644 (file)
index 0000000..5af184f
--- /dev/null
@@ -0,0 +1,86 @@
+--
+-- This is compilers configuration file for AIX platform (not supported).
+-- Included into "CMPLRS.edl".
+--
+@ifnotdefined (%CMPLRS_AIX_EDL) then
+  @set %CMPLRS_AIX_EDL = "";
+
+  @if (%DebugMode == "True") then
+    @set %CMPLRS_CXX_ModeOpt = "-g0 -DDEB -D_DEBUG";
+    @set %CMPLRS_C_ModeOpt   = "-g0 -DDEB -D_DEBUG";
+    @set %CMPLRS_F77_ModeOpt = "-g  -DDEB -D_DEBUG";
+  @else
+    @set %CMPLRS_CXX_ModeOpt = "-O2 ";
+    @set %CMPLRS_C_ModeOpt   = "-O2 ";
+    @set %CMPLRS_F77_ModeOpt = "-O2 ";
+  @endif;
+
+  @set %CMPLRS_CXX_WOKDirectives = "";
+  @set %CMPLRS_C_WOKDirectives   = "";
+  @set %CMPLRS_F77_WOKDirectives = "";
+
+  @if (%DBMS == "OBJS") then
+    @set %CMPLRS_CXX_DBMSOpt = "-DOBJS";
+  @endif;
+
+  @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER,
+                                %CMPLRS_F77_SysOptions,
+                                %CMPLRS_F77_ModeOpt) is
+    $Following parameters make up F77 compilation command in this order:
+    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
+    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
+    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
+  @end;
+
+  @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt,
+                                %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is
+    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
+    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
+    $ touch %OutputDir/%BaseName.m
+  @end;
+
+  @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER,
+                              %CMPLRS_C_SysOptions,
+                              %CMPLRS_C_Options,
+                              %CMPLRS_C_ModeOpt,
+                              %CMPLRS_C_Export,
+                              %IncDirectives,
+                              %CMPLRS_Unit_C_Options,
+                              %CMPLRS_C_WOKDirectives,
+                              %CMPLRS_C_PDBName,
+                              %Files,
+                              %BaseName,
+                              %OutputDir,
+                              %TmpFile) is
+    $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_Export %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives %CMPLRS_C_PDBName %Files %DTmpFile
+    $if ( $status == 0 ) then
+    $ sed -e 's/ //g' -e '/:/d' %TmpFile | sort -u > %OutputDir/%BaseName.m
+    $endif
+    $if( -e %TmpFile ) grep ':' %TmpFile
+    $/bin/rm -f %TmpFile
+    $set status = $stat
+  @end;
+
+  @template CMPLRS_CXX_CmdLine (%CSF_CXX_COMPILER,
+                                %CMPLRS_CXX_SysOptions,
+                                %CMPLRS_CXX_Options,
+                                %CMPLRS_CXX_ModeOpt, %CMPLRS_CXX_DBMSOpt,
+                                %CSF_CXX_INCLUDE,
+                                %CMPLRS_CXX_WOKDirectives,
+                                %IncDirectives,
+                                %DBDirectives,
+                                %Source,
+                                %BaseName,
+                                %OutputDir,
+                                %TmpFile) is
+    $%CSF_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CSF_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt  %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source  -o %OutputDir/%BaseName.o  >& %TmpFile
+    $set stat = $status
+    $if ( $stat == 0 ) then
+    $ sed -e 's/ //g' -e '/:/d' %TmpFile | sort -u > %OutputDir/%BaseName.m
+    $endif
+    $if( -e %TmpFile ) grep ':' %TmpFile
+    $/bin/rm -f %TmpFile
+    $set status = $stat
+  @end;
+
+@endif;
diff --git a/src/WOKBuilderDef/CMPLRS_BSD.edl b/src/WOKBuilderDef/CMPLRS_BSD.edl
new file mode 100644 (file)
index 0000000..dd7ea3c
--- /dev/null
@@ -0,0 +1,140 @@
+--
+-- This is compilers configuration file for BSD platform (not supported).
+-- Included into "CMPLRS.edl".
+--
+@ifnotdefined (%CMPLRS_BSD_EDL) then
+  @set %CMPLRS_BSD_EDL = "";
+
+  @template CMPLRS_C_DTmpFile (%TmpFile) is
+    $>& %TmpFile \
+  @end;
+
+  @template CMPLRS_CXX_DTmpFile (%TmpFile) is
+    $>& %TmpFile \
+  @end;
+
+  @template CMPLRS_F77_DTmpFile (%TmpFile) is
+    $ \
+  @end;
+
+  @if (%DebugMode == "True") then
+    @set %CMPLRS_CXX_ModeOpt = "-g -O0 -DDEB -D_DEBUG";
+    @set %CMPLRS_C_ModeOpt   = "-g -O0 -DDEB -D_DEBUG";
+    @set %CMPLRS_F77_ModeOpt = "-g     -DDEB -D_DEBUG";
+  @else
+    @set %CMPLRS_CXX_ModeOpt = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -DNDEBUG -DNo_Exception";
+    @set %CMPLRS_C_ModeOpt   = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -DNDEBUG -DNo_Exception";
+    @set %CMPLRS_F77_ModeOpt = "-O -DNDEBUG -DNo_Exception";
+  @endif;
+
+  @set %CMPLRS_CXX_WOKDirectives = "-MD ";
+  @set %CMPLRS_C_WOKDirectives   = "-MD ";
+  @set %CMPLRS_F77_WOKDirectives = "";
+
+  @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER,
+                                %CMPLRS_F77_SysOptions,
+                                %CMPLRS_F77_ModeOpt) is
+    $Following parameters make up F77 compilation command in this order:
+    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
+    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
+    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
+  @end;
+
+  @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt,
+                                %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is
+    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
+    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
+    $ touch %OutputDir/%BaseName.m
+  @end;
+
+  @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER,
+                              %CMPLRS_C_SysOptions,
+                              %CMPLRS_C_Options,
+                              %CMPLRS_C_ModeOpt,
+                              %CMPLRS_C_INCLUDE,
+                              %IncDirectives,
+                              %CMPLRS_Unit_C_Options,
+                              %CMPLRS_C_WOKDirectives,
+                              %Entity) is
+    $Following parameters make up C compilation command in this order:
+    $CMPLRS_C_COMPILER     = %CMPLRS_C_COMPILER
+    $CMPLRS_C_SysOptions   = %CMPLRS_C_SysOptions
+    $CMPLRS_C_Options      = %CMPLRS_C_Options
+    $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options
+    $CMPLRS_C_INCLUDE      = %CMPLRS_C_INCLUDE
+    $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives
+    $Dynamic include directives are :
+    $%IncDirectives
+  @end;
+
+  @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER,
+                              %CMPLRS_C_SysOptions,
+                              %CMPLRS_C_Options,
+                              %CMPLRS_C_ModeOpt,
+                              %CMPLRS_CXX_DBMSOpt,
+                              %CMPLRS_C_INCLUDE,
+                              %IncDirectives,
+                              %CMPLRS_Unit_C_Options,
+                              %CMPLRS_C_WOKDirectives,
+                              %Source,
+                              %BaseName,
+                              %OutputDir,
+                              %TmpFile, %Entity) is
+    $cd %OutputDir &&  %CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt  %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o
+    $set stat = $status
+    $echo '$C_COMPILER  %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile
+    $if ( $stat == 0 ) then
+    $  if ( -e %OutputDir/%BaseName.d ) then
+    $   sed -e '/:/d' -e 's/\\/ /g'  %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m
+    $  endif
+    $endif
+    $set status = $stat
+  @end;
+
+  @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER,
+                                %CMPLRS_CXX_SysOptions,
+                                %CMPLRS_CXX_Options,
+                                %CMPLRS_CXX_ModeOpt, %CMPLRS_CXX_DBMSOpt,
+                                %CMPLRS_CXX_INCLUDE,
+                                %CMPLRS_CXX_WOKDirectives,
+                                %IncDirectives,
+                                %DBDirectives,
+                                %Entity) is
+    $Following parameters make up C++ compilation command in this order:
+    $CMPLRS_CXX_COMPILER      = %CMPLRS_CXX_COMPILER
+    $CMPLRS_CXX_SysOptions    = %CMPLRS_CXX_SysOptions
+    $CMPLRS_CXX_Options       = %CMPLRS_CXX_Options
+    $CMPLRS_CXX_ModeOpt       = %CMPLRS_CXX_ModeOpt
+    $CMPLRS_CXX_DBMSOpt       = %CMPLRS_CXX_DBMSOpt
+    $CMPLRS_CXX_INCLUDE       = %CMPLRS_CXX_INCLUDE
+    $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives
+    $Dynamic include directives are :
+    $%IncDirectives
+  @end;
+
+  @template CMPLRS_CXX_CmdLine (%CMPLRS_CXX_COMPILER,
+                                %CMPLRS_CXX_SysOptions,
+                                %CMPLRS_CXX_Options,
+                                %CMPLRS_CXX_ModeOpt,
+                                %CMPLRS_CXX_DBMSOpt,
+                                %CMPLRS_CXX_INCLUDE,
+                                %CMPLRS_CXX_WOKDirectives,
+                                %IncDirectives,
+                                %DBDirectives,
+                                %Source,
+                                %BaseName,
+                                %OutputDir,
+                                %TmpFile, %Entity) is
+    $cd %OutputDir && %CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o  >& %TmpFile
+    $set stat = $status
+    $if ( $stat == 0 ) then
+    $  if ( -e %OutputDir/%BaseName.d ) then
+    $    sed -e '/:/d' -e 's/\\/ /g'  %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m
+    $  endif
+    $endif
+    $if( -e %TmpFile ) grep ':' %TmpFile
+    $/bin/rm -f %TmpFile
+    $set status = $stat
+  @end;
+
+@endif;
diff --git a/src/WOKBuilderDef/CMPLRS_HP.edl b/src/WOKBuilderDef/CMPLRS_HP.edl
new file mode 100644 (file)
index 0000000..b151002
--- /dev/null
@@ -0,0 +1,94 @@
+--
+-- This is compilers configuration file for HP-UX platform (not supported).
+-- Included into "CMPLRS.edl".
+--
+@ifnotdefined (%CMPLRS_HP_EDL) then
+  @set %CMPLRS_HP_EDL = "";
+
+  @template CMPLRS_DBDirective (%DBDirectory) is
+    $ -ptr%DBDirectory/ptrepository \
+  @end;
+
+  @set %CMPLRS_F77_Command = "f77 ";
+  @set %CMPLRS_F77_Options = "-PIC";
+
+  @if (%DebugMode == "True") then
+    @set %CMPLRS_CXX_ModeOpt = "-g -DDEB";
+    @set %CMPLRS_C_ModeOpt   = "-g -DDEB";
+    @set %CMPLRS_F77_ModeOpt = "-g";
+  @endif;
+
+  @if (%DebugMode == "False") then
+    @set %CMPLRS_CXX_ModeOpt = "+O2 +Onomoveflops -DNo_Exception ";
+    @set %CMPLRS_C_ModeOpt   = "+O2 +Onomoveflops -DNo_Exception ";
+    @set %CMPLRS_F77_ModeOpt = "+O2 +Onomoveflops ";
+  @endif;
+
+  @set %CMPLRS_CXX_WOKDirectives = "";
+  @set %CMPLRS_C_WOKDirectives   = "";
+  @set %CMPLRS_F77_WOKDirectives = "";
+
+  @if (%DBMS == "OBJS") then
+    @set %CMPLRS_CXX_DBMSOpt = "-DOBJS -I/PRODUCTS/OS5.0/include ";
+  @endif;
+
+  @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER,
+                                %CMPLRS_F77_SysOptions,
+                                %CMPLRS_F77_ModeOpt) is
+    $Following parameters make up F77 compilation command in this order:
+    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
+    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
+    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
+  @end;
+
+  @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt,
+                                %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is
+    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
+    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
+    $ touch %OutputDir/%BaseName.m
+  @end;
+
+  @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER,
+                              %CMPLRS_C_SysOptions,
+                              %CMPLRS_C_Options,
+                              %CMPLRS_C_ModeOpt,
+                              %CMPLRS_C_INCLUDE,
+                              %CMPLRS_C_Export,
+                              %IncDirectives,
+                              %Unit_C_Options,
+                              %C_WOKDirectives,
+                              %C_PDBName,
+                              %Source,
+                              %BaseName,
+                              %OutputDir,
+                              %TmpFile) is
+    $%CMPLRS_C_COMPILER %C_SysOptions %C_Options %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %C_ModeOpt %C_Export %IncDirectives %Unit_C_Options %C_WOKDirectives %C_PDBName %Files %DTmpFile
+    $if ( $status == 0 ) then
+    $ cc %IncDirectives -E %CMPLRS_C_Options  %Source | egrep -e '^#' | awk '{print $3}' \
+    $| sed -e 's/\"//g' -e '/^$/d'  -e 's%/./%/%g' | sort -u | grep -v %Source | grep '/' > %OutputDir/%BaseName.m
+    $endif
+    $set status = $stat
+  @end;
+
+  @template CMPLRS_CXX_CmdLine (%CSF_CXX_COMPILER,
+                                %CMPLRS_CXX_SysOptions,
+                                %CMPLRS_CXX_Options,
+                                %CMPLRS_CXX_ModeOpt, %CMPLRS_CXX_DBMSOpt,
+                                %CSF_CXX_INCLUDE,
+                                %CMPLRS_CXX_WOKDirectives,
+                                %IncDirectives,
+                                %DBDirectives,
+                                %Source,
+                                %BaseName,
+                                %OutputDir,
+                                %TmpFile) is
+    $%CSF_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CSF_CXX_INCLUDE  %CMPLRS_CXX_DBMSOpt  %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source  -o %OutputDir/%BaseName.o  >& %TmpFile
+    $set stat = $status
+    $if ( $stat == 0 ) then
+    $ /opt/aCC/bin/aCC -I/opt/aCC/include -I/opt/aCC/include/iostream %IncDirectives -E %CMPLRS_CXX_Options %CMPLRS_CXX_DBMSOpt %Source | egrep -e '^#' | awk '{print $3}' \
+    $| sed -e 's/\"//g' -e '/^$/d' -e 's%/./%/%g' | sort -u | grep -v %Source | grep '/' > %OutputDir/%BaseName.m
+    $endif
+    $set status = $stat
+  @end;
+
+@endif;
diff --git a/src/WOKBuilderDef/CMPLRS_LIN.edl b/src/WOKBuilderDef/CMPLRS_LIN.edl
new file mode 100644 (file)
index 0000000..5a59905
--- /dev/null
@@ -0,0 +1,141 @@
+--
+-- This is compilers configuration file for Linux platform.
+-- Included into "CMPLRS.edl".
+--
+@ifnotdefined (%CMPLRS_LIN_EDL) then
+  @set %CMPLRS_LIN_EDL = "";
+
+  @template CMPLRS_C_DTmpFile (%TmpFile) is
+    $>& %TmpFile \
+  @end;
+
+  @template CMPLRS_CXX_DTmpFile (%TmpFile) is
+    $>& %TmpFile \
+  @end;
+
+  @template CMPLRS_F77_DTmpFile (%TmpFile) is
+    $ \
+  @end;
+
+  @if (%DebugMode == "True") then
+    @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb;
+    @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOptDeb;
+    @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb;
+  @else
+    @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt;
+    @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOpt;
+    @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt;
+  @endif;
+
+  @set %CMPLRS_CXX_WOKDirectives = "-MD ";
+  @set %CMPLRS_C_WOKDirectives   = "-MD ";
+  @set %CMPLRS_F77_WOKDirectives = "";
+
+  @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER,
+                                %CMPLRS_F77_SysOptions,
+                                %CMPLRS_F77_ModeOpt) is
+    $Following parameters make up F77 compilation command in this order:
+    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
+    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
+    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
+  @end;
+
+  @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt,
+                                %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is
+    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
+    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
+    $ touch %OutputDir/%BaseName.m
+  @end;
+
+  @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER,
+                              %CMPLRS_C_SysOptions,
+                              %CMPLRS_C_Options,
+                              %CMPLRS_C_ModeOpt,
+                              %CMPLRS_C_INCLUDE,
+                              %IncDirectives,
+                              %CMPLRS_Unit_C_Options,
+                              %CMPLRS_C_WOKDirectives,
+                              %Entity) is
+    $Following parameters make up C compilation command in this order:
+    $CMPLRS_C_COMPILER     = %CMPLRS_C_COMPILER
+    $CMPLRS_C_SysOptions   = %CMPLRS_C_SysOptions
+    $CMPLRS_C_Options      = %CMPLRS_C_Options
+    $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options
+    $CMPLRS_C_INCLUDE      = %CMPLRS_C_INCLUDE
+    $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives
+    $Dynamic include directives are :
+    $%IncDirectives
+  @end;
+
+  @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER,
+                              %CMPLRS_C_SysOptions,
+                              %CMPLRS_C_Options,
+                              %CMPLRS_C_ModeOpt,
+                              %CMPLRS_CXX_DBMSOpt,
+                              %CMPLRS_C_INCLUDE,
+                              %IncDirectives,
+                              %CMPLRS_Unit_C_Options,
+                              %CMPLRS_C_WOKDirectives,
+                              %Source,
+                              %BaseName,
+                              %OutputDir,
+                              %TmpFile, %Entity) is
+    $cd %OutputDir && %CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt  %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o
+    $set stat = $status
+    $echo '$C_COMPILER  %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile
+    $if ( $stat == 0 ) then
+    $  if ( -e %OutputDir/%BaseName.d ) then
+    $    sed -e '/:/d' -e 's/\\/ /g' %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m
+    $  endif
+    $endif
+    $set status = $stat
+  @end;
+
+  @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER,
+                                %CMPLRS_CXX_SysOptions,
+                                %CMPLRS_CXX_Options,
+                                %CMPLRS_CXX_ModeOpt, %CMPLRS_CXX_DBMSOpt,
+                                %CMPLRS_CXX_INCLUDE,
+                                %CMPLRS_CXX_WOKDirectives,
+                                %IncDirectives,
+                                %DBDirectives,
+                                %Entity) is
+    $Following parameters make up C++ compilation command in this order:
+    $CMPLRS_CXX_COMPILER      = %CMPLRS_CXX_COMPILER
+    $CMPLRS_CXX_SysOptions    = %CMPLRS_CXX_SysOptions
+    $CMPLRS_CXX_Options       = %CMPLRS_CXX_Options
+    $CMPLRS_CXX_ModeOpt       = %CMPLRS_CXX_ModeOpt
+    $CMPLRS_CXX_DBMSOpt       = %CMPLRS_CXX_DBMSOpt
+    $CMPLRS_CXX_INCLUDE       = %CMPLRS_CXX_INCLUDE
+    $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives
+    $Dynamic include directives are :
+    $%IncDirectives
+  @end;
+
+  @template CMPLRS_CXX_CmdLine (%CMPLRS_CXX_COMPILER,
+                                %CMPLRS_CXX_SysOptions,
+                                %CMPLRS_CXX_Options,
+                                %CMPLRS_CXX_ModeOpt,
+                                %CMPLRS_CXX_DBMSOpt,
+                                %CMPLRS_CXX_INCLUDE,
+                                %CMPLRS_CXX_WOKDirectives,
+                                %IncDirectives,
+                                %DBDirectives,
+                                %Source,
+                                %BaseName,
+                                %OutputDir,
+                                %TmpFile, %Entity) is
+    $cd %OutputDir && %CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o  >& %TmpFile
+    $set stat = $status
+
+    $if ( $stat == 0 ) then
+    $  if ( -e %OutputDir/%BaseName.d ) then
+    $    sed -e '/:/d' -e 's/\\/ /g'  %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m
+    $  endif
+    $endif
+    $if( -e %TmpFile ) grep ':' %TmpFile
+    $/bin/rm -f %TmpFile
+    $set status = $stat
+  @end;
+
+@endif;
diff --git a/src/WOKBuilderDef/CMPLRS_MAC.edl b/src/WOKBuilderDef/CMPLRS_MAC.edl
new file mode 100644 (file)
index 0000000..d63c521
--- /dev/null
@@ -0,0 +1,140 @@
+--
+-- This is compilers configuration file for MacOS platform (not supported).
+-- Included into "CMPLRS.edl".
+--
+@ifnotdefined (%CMPLRS_MAC_EDL) then
+  @set %CMPLRS_MAC_EDL = "";
+
+  @template CMPLRS_C_DTmpFile (%TmpFile) is
+    $>& %TmpFile \
+  @end;
+
+  @template CMPLRS_CXX_DTmpFile (%TmpFile) is
+    $>& %TmpFile \
+  @end;
+
+  @template CMPLRS_F77_DTmpFile (%TmpFile) is
+    $ \
+  @end;
+
+  @if (%DebugMode == "True") then
+    @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb;
+    @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOptDeb;
+    @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb;
+  @else
+    @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt;
+    @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOpt;
+    @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt;
+  @endif;
+
+  @set %CMPLRS_CXX_WOKDirectives = "-MD ";
+  @set %CMPLRS_C_WOKDirectives   = "-MD ";
+  @set %CMPLRS_F77_WOKDirectives = "";
+
+  @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER,
+                                %CMPLRS_F77_SysOptions,
+                                %CMPLRS_F77_ModeOpt) is
+    $Following parameters make up F77 compilation command in this order:
+    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
+    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
+    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
+  @end;
+
+  @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt,
+                                %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is
+    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
+    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
+    $ touch %OutputDir/%BaseName.m
+  @end;
+
+  @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER,
+                              %CMPLRS_C_SysOptions,
+                              %CMPLRS_C_Options,
+                              %CMPLRS_C_ModeOpt,
+                              %CMPLRS_C_INCLUDE,
+                              %IncDirectives,
+                              %CMPLRS_Unit_C_Options,
+                              %CMPLRS_C_WOKDirectives,
+                              %Entity) is
+    $Following parameters make up C compilation command in this order:
+    $CMPLRS_C_COMPILER     = %CMPLRS_C_COMPILER
+    $CMPLRS_C_SysOptions   = %CMPLRS_C_SysOptions
+    $CMPLRS_C_Options      = %CMPLRS_C_Options
+    $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options
+    $CMPLRS_C_INCLUDE      = %CMPLRS_C_INCLUDE
+    $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives
+    $Dynamic include directives are :
+    $%IncDirectives
+  @end;
+
+  @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER,
+                              %CMPLRS_C_SysOptions,
+                              %CMPLRS_C_Options,
+                              %CMPLRS_C_ModeOpt,
+                              %CMPLRS_CXX_DBMSOpt,
+                              %CMPLRS_C_INCLUDE,
+                              %IncDirectives,
+                              %CMPLRS_Unit_C_Options,
+                              %CMPLRS_C_WOKDirectives,
+                              %Source,
+                              %BaseName,
+                              %OutputDir,
+                              %TmpFile, %Entity) is
+    $cd %OutputDir &&  %CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt  %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o
+    $set stat = $status
+    $echo '$C_COMPILER  %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile
+    $if ( $stat == 0 ) then
+    $  if ( -e %OutputDir/%BaseName.d ) then
+    $   sed -e '/:/d' -e 's/\\/ /g'  %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m
+    $  endif
+    $endif
+    $set status = $stat
+  @end;
+
+  @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER,
+                                %CMPLRS_CXX_SysOptions,
+                                %CMPLRS_CXX_Options,
+                                %CMPLRS_CXX_ModeOpt, %CMPLRS_CXX_DBMSOpt,
+                                %CMPLRS_CXX_INCLUDE,
+                                %CMPLRS_CXX_WOKDirectives,
+                                %IncDirectives,
+                                %DBDirectives,
+                                %Entity) is
+    $Following parameters make up C++ compilation command in this order:
+    $CMPLRS_CXX_COMPILER      = %CMPLRS_CXX_COMPILER
+    $CMPLRS_CXX_SysOptions    = %CMPLRS_CXX_SysOptions
+    $CMPLRS_CXX_Options       = %CMPLRS_CXX_Options
+    $CMPLRS_CXX_ModeOpt       = %CMPLRS_CXX_ModeOpt
+    $CMPLRS_CXX_DBMSOpt       = %CMPLRS_CXX_DBMSOpt
+    $CMPLRS_CXX_INCLUDE       = %CMPLRS_CXX_INCLUDE
+    $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives
+    $Dynamic include directives are :
+    $%IncDirectives
+  @end;
+
+  @template CMPLRS_CXX_CmdLine (%CMPLRS_CXX_COMPILER,
+                                %CMPLRS_CXX_SysOptions,
+                                %CMPLRS_CXX_Options,
+                                %CMPLRS_CXX_ModeOpt,
+                                %CMPLRS_CXX_DBMSOpt,
+                                %CMPLRS_CXX_INCLUDE,
+                                %CMPLRS_CXX_WOKDirectives,
+                                %IncDirectives,
+                                %DBDirectives,
+                                %Source,
+                                %BaseName,
+                                %OutputDir,
+                                %TmpFile, %Entity) is
+    $cd %OutputDir && %CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o  >& %TmpFile
+    $set stat = $status
+    $if ( $stat == 0 ) then
+    $  if ( -e %OutputDir/%BaseName.d ) then
+    $    sed -e '/:/d' -e 's/\\/ /g'  %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m
+    $  endif
+    $endif
+    $if( -e %TmpFile ) grep ':' %TmpFile
+    $/bin/rm -f %TmpFile
+    $set status = $stat
+  @end;
+
+@endif;
diff --git a/src/WOKBuilderDef/CMPLRS_SIL.edl b/src/WOKBuilderDef/CMPLRS_SIL.edl
new file mode 100644 (file)
index 0000000..bf75f49
--- /dev/null
@@ -0,0 +1,138 @@
+--
+-- This is compilers configuration file for IRIX platform (not supported).
+-- Included into "CMPLRS.edl".
+--
+@ifnotdefined (%CMPLRS_SIL_EDL) then
+  @set %CMPLRS_SIL_EDL = "";
+
+  @set %CMPLRS_F77_Command = "f77 ";
+  @set %CMPLRS_F77_Options = "-n32 -mips3";
+
+  @if (%DebugMode == "True") then
+    @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb;
+    @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOptDeb;
+    @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb;
+  @else
+    @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt;
+    @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOpt;
+    @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt;
+  @endif;
+
+  @set %CMPLRS_CXX_WOKDirectives = "-MDupdate ";
+  @set %CMPLRS_C_WOKDirectives   = "";
+  @set %CMPLRS_F77_WOKDirectives = "";
+
+  @if (%DBMS == "OBJS") then
+    @set %CMPLRS_CXX_DBMSOpt = "-DOBJS -I/PRODUCTS/OS5.0/include";
+  @endif;
+
+  @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER,
+                                %CMPLRS_F77_SysOptions,
+                                %CMPLRS_F77_ModeOpt) is
+    $Following parameters make up F77 compilation command in this order:
+    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
+    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
+    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
+  @end;
+
+  @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt,
+                                %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is
+    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
+    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
+    $ touch %OutputDir/%BaseName.m
+  @end;
+
+  @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER,
+                              %CMPLRS_C_SysOptions,
+                              %CMPLRS_C_Options,
+                              %CMPLRS_C_ModeOpt,
+                              %IncDirectives,
+                              %CMPLRS_Unit_C_Options,
+                              %CMPLRS_C_WOKDirectives,
+                              %Entity) is
+    $Following parameters make up C compilation command in this order:
+    $CMPLRS_C_COMPILER     = %CMPLRS_C_COMPILER
+    $CMPLRS_C_SysOptions   = %CMPLRS_C_SysOptions
+    $CMPLRS_C_Options      = %CMPLRS_C_Options
+    $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options
+    $CMPLRS_C_INCLUDE      = %CMPLRS_C_INCLUDE
+    $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives
+    $Dynamic include directives are :
+    $%IncDirectives
+  @end;
+
+  @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER,
+                              %CMPLRS_C_SysOptions,
+                              %CMPLRS_C_Options,
+                              %CMPLRS_C_ModeOpt,
+                              %CMPLRS_C_ModeOpt,
+                              %CMPLRS_C_INCLUDE,
+                              %CMPLRS_CXX_DBMSOpt,
+                              %IncDirectives,
+                              %CMPLRS_Unit_C_Options,
+                              %CMPLRS_C_WOKDirectives,
+                              %CMPLRS_C_PDBName,
+                              %Source,
+                              %BaseName,
+                              %OutputDir, %Entity) is
+    $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o
+    $set cmplrs_status = $status
+    $echo  '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile
+    $if ( $cmplrs_status == 0 ) then
+    $ /usr/lib/cpp %CMPLRS_C_Options %IncDirectives -M -DIRIX %Source | \^
+    $ sed -e '1d' -e 's/.*://g' -e 's/[       *]*//g' -e 's%/./%/%g' -e 's+//+/+g' |  sort -u  >  %OutputDir/%BaseName.m
+    $endif
+    $set status = $cmplrs_status
+  @end;
+
+  @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER,
+                                %CMPLRS_CXX_SysOptions,
+                                %CMPLRS_CXX_Options,
+                                %CMPLRS_CXX_ModeOpt,
+                                %CMPLRS_CXX_DBMSOpt,
+                                %CMPLRS_CXX_INCLUDE,
+                                %CMPLRS_CXX_WOKDirectives,
+                                %IncDirectives,
+                                %DBDirectives,
+                                %Entity) is
+    $Following parameters make up C++ compilation command in this order:
+    $CMPLRS_CXX_COMPILER      = %CMPLRS_CXX_COMPILER
+    $CMPLRS_CXX_SysOptions    = %CMPLRS_CXX_SysOptions
+    $CMPLRS_CXX_Options       = %CMPLRS_CXX_Options
+    $CMPLRS_CXX_ModeOpt       = %CMPLRS_CXX_ModeOpt
+    $CMPLRS_CXX_DBMSOpt       = %CMPLRS_CXX_DBMSOpt
+    $CMPLRS_CXX_INCLUDE       = %CMPLRS_CXX_INCLUDE
+    $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives
+    $Dynamic include directives are :
+    $%IncDirectives
+  @end;
+
+  @template CMPLRS_CXX_CmdLine (%CMPLRS_CXX_COMPILER,
+                                %CMPLRS_CXX_SysOptions,
+                                %CMPLRS_CXX_Options,
+                                %CMPLRS_CXX_ModeOpt,
+                                %CMPLRS_CXX_DBMSOpt,
+                                %CMPLRS_CXX_INCLUDE,
+                                %CMPLRS_CXX_WOKDirectives,
+                                %IncDirectives,
+                                %DBDirectives,
+                                %Source,
+                                %BaseName,
+                                %OutputDir,
+                                %TmpFile, %Entity) is
+    $%CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE  %CMPLRS_CXX_DBMSOpt  %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives %TmpFile -c %Source  -o %OutputDir/%BaseName.o
+    $set stat = $status
+    $echo '$CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options $INCDIRS %CMPLRS_CXX_INCLUDE  %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/cxx.compile
+    $if ( $stat == 0 ) then
+    $ if ( -e %TmpFile ) then
+    $  cat %TmpFile  | tr ' ' '\012' | sed  -e '1d' -e 's%/./%/%g' | grep -v '^#'| sort -u > %OutputDir/%BaseName.m
+    $ else
+    $  touch %OutputDir/%BaseName.m
+    $ endif
+    $endif
+    $ /bin/rm -f %TmpFile
+    $endif
+    $set status = $stat
+  @end;
+
+@endif;
diff --git a/src/WOKBuilderDef/CMPLRS_SUN.edl b/src/WOKBuilderDef/CMPLRS_SUN.edl
new file mode 100644 (file)
index 0000000..1c31b0c
--- /dev/null
@@ -0,0 +1,149 @@
+--
+-- This is compilers configuration file for SunOS platform (not supported).
+-- Included into "CMPLRS.edl".
+--
+@ifnotdefined (%CMPLRS_SUN_EDL) then
+  @set %CMPLRS_SUN_EDL = "";
+
+  @template CMPLRS_DBDirective (%DBDirectory) is
+    $ -ptr%DBDirectory \
+  @end;
+
+  @template CMPLRS_C_DTmpFile (%TmpFile) is
+    $ \
+  @end;
+
+  @template CMPLRS_CXX_DTmpFile (%TmpFile) is
+    $>& %TmpFile \
+  @end;
+
+  @template CMPLRS_F77_DTmpFile (%TmpFile) is
+    $ \
+  @end;
+
+  @if (%DebugMode == "True") then
+    @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb;
+    @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOptDeb;
+    @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb;
+  @else
+    @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt;
+    @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOpt;
+    @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt;
+  @endif;
+
+  @set %CMPLRS_CXX_WOKDirectives = "-H ";
+  @set %CMPLRS_C_WOKDirectives   = "";
+  @set %CMPLRS_F77_WOKDirectives = "";
+
+  @if (%DBMS == "OBJS") then
+    @set %CMPLRS_CXX_DBMSOpt = "-mt -DOBJS -I/PRODUCTS/OS5.0/sunpro/include";
+  @endif;
+
+  @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER,
+                                %CMPLRS_F77_SysOptions,
+                                %CMPLRS_F77_ModeOpt) is
+    $Following parameters make up F77 compilation command in this order:
+    $CMPLRS_F77_COMPILER   = %CMPLRS_F77_COMPILER
+    $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions
+    $CMPLRS_F77_ModeOpt    = %CMPLRS_F77_ModeOpt
+  @end;
+
+  @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt,
+                                %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is
+    $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives  -c %Source -o %OutputDir/%BaseName.o
+    $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile
+    $ touch %OutputDir/%BaseName.m
+  @end;
+
+  @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER,
+                              %CMPLRS_C_SysOptions,
+                              %CMPLRS_C_Options,
+                              %CMPLRS_C_ModeOpt,
+                              %CMPLRS_C_INCLUDE,
+                              %IncDirectives,
+                              %CMPLRS_Unit_C_Options,
+                              %CMPLRS_C_WOKDirectives,
+                              %Entity) is
+    $Following parameters make up C compilation command in this order:
+    $CMPLRS_C_COMPILER     = %CMPLRS_C_COMPILER
+    $CMPLRS_C_SysOptions   = %CMPLRS_C_SysOptions
+    $CMPLRS_C_Options      = %CMPLRS_C_Options
+    $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options
+    $CMPLRS_C_INCLUDE      = %CMPLRS_C_INCLUDE
+    $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives
+    $Dynamic include directives are :
+    $%IncDirectives
+  @end;
+
+  @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER,
+                              %CMPLRS_C_SysOptions,
+                              %CMPLRS_C_Options,
+                              %CMPLRS_C_ModeOpt,
+                              %CMPLRS_CXX_DBMSOpt,
+                              %CMPLRS_C_INCLUDE,
+                              %IncDirectives,
+                              %CMPLRS_Unit_C_Options,
+                              %CMPLRS_C_WOKDirectives,
+                              %Source,
+                              %BaseName,
+                              %OutputDir,
+                              %TmpFile, %Entity) is
+    $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt  %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source  -o %OutputDir/%BaseName.o
+    $set stat = $status
+    $echo  '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt  -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile
+    $if ( $stat == 0 ) then
+    $ cpp  %IncDirectives -Usun -DSOLARIS -M  %Source \^
+    $      | sed -e '1d' -e 's/.*://g' -e 's/[       *]*//g' -e 's%/./%/%g' -e 's%//%/%g' \^
+    $      | sort -u  >  %OutputDir/%BaseName.m
+    $endif
+    $set status = $stat
+  @end;
+
+  @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER,
+                                %CMPLRS_CXX_SysOptions,
+                                %CMPLRS_CXX_Options,
+                                %CMPLRS_CXX_ModeOpt,
+                                %CMPLRS_CXX_DBMSOpt,
+                                %CMPLRS_CXX_INCLUDE,
+                                %CMPLRS_CXX_WOKDirectives,
+                                %IncDirectives,
+                                %DBDirectives,
+                                %Entity) is
+    $Following parameters make up C++ compilation command in this order:
+    $CMPLRS_CXX_COMPILER      = %CMPLRS_CXX_COMPILER
+    $CMPLRS_CXX_SysOptions    = %CMPLRS_CXX_SysOptions
+    $CMPLRS_CXX_Options       = %CMPLRS_CXX_Options
+    $CMPLRS_CXX_ModeOpt       = %CMPLRS_CXX_ModeOpt
+    $CMPLRS_CXX_DBMSOpt       = %CMPLRS_CXX_DBMSOpt
+    $CMPLRS_CXX_INCLUDE       = %CMPLRS_CXX_INCLUDE
+    $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives
+    $Dynamic include directives are :
+    $%IncDirectives
+  @end;
+
+  @template CMPLRS_CXX_CmdLine (%CMPLRS_CXX_COMPILER,
+                                %CMPLRS_CXX_SysOptions,
+                                %CMPLRS_CXX_Options,
+                                %CMPLRS_CXX_ModeOpt,
+                                %CMPLRS_CXX_DBMSOpt,
+                                %CMPLRS_CXX_INCLUDE,
+                                %CMPLRS_CXX_WOKDirectives,
+                                %IncDirectives,
+                                %DBDirectives,
+                                %Source,
+                                %BaseName,
+                                %OutputDir,
+                                %TmpFile, %Entity) is
+    $%CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options         %CMPLRS_CXX_INCLUDE  %CMPLRS_CXX_DBMSOpt  %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source  -o %OutputDir/%BaseName.o  >& %TmpFile
+    $set stat = $status
+    $echo '$CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options $INCDIRS %CMPLRS_CXX_INCLUDE  %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/cxx.compile
+    $if ( $stat == 0 ) then
+    $  sed -e 's/      //g' -e '/Compilation failed/d' -e '/:/d' -e 's%/\./%/%g'  -e 's%//%/%g' %TmpFile \^
+    $| grep -v 'detected.$' | sort -u  > %OutputDir/%BaseName.m
+    $endif
+    $if( -e %TmpFile ) grep ':' %TmpFile
+    $/bin/rm -f %TmpFile
+    $set status = $stat
+  @end;
+
+@endif;
diff --git a/src/WOKBuilderDef/CMPLRS_WNT.edl b/src/WOKBuilderDef/CMPLRS_WNT.edl
new file mode 100644 (file)
index 0000000..c85cff0
--- /dev/null
@@ -0,0 +1,138 @@
+--
+-- This is configuration file for Windows platform.
+-- Included into "CMPLRS.edl".
+--
+@ifnotdefined (%CMPLRS_WNT_EDL) then
+  @set %CMPLRS_WNT_EDL = "";
+
+  @template CMPLRS_C_DTmpFile (%TmpFile) is
+    $ ;
+  @end;
+
+  @template CMPLRS_CXX_DTmpFile (%TmpFile) is
+    $ ;
+  @end;
+
+  @template CMPLRS_F77_DTmpFile (%TmpFile) is
+    $ ;
+  @end;
+
+  @if (%DebugMode == "True") then
+    @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb;
+    @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOptDeb;
+    @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb;
+  @else
+    @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt;
+    @set %CMPLRS_C_ModeOpt   = %CSF_C_ModeOpt;
+    @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt;
+  @endif;
+
+  @set %CMPLRS_CXX_WOKDirectives = "";
+  @set %CMPLRS_C_WOKDirectives   = "";
+  @set %CMPLRS_F77_WOKDirectives = "";
+
+  @if (%DBMS == "OBJS") then
+     @set %CMPLRS_CXX_DBMSOpt = "-DOBJS";
+  @endif;
+  @if (%DBMS == "DFLT") then
+    @set %CMPLRS_CXX_DBMSOpt = "-DCSFDB";
+  @endif;
+
+  @template CMPLRS_C_Footer (%CMPLRS_C_Options,
+                             %CMPLRS_ExportBehaviour,
+                             %IncDirectives,
+                             %Unit_C_Options,
+                             %InputDir,
+                             %Source,
+                             %BaseName,
+                             %OutputDir) is
+    $set cmplrs_status=%status%;
+    $@acpp.exe -M -m -+ %CMPLRS_C_Options -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives %Unit_C_Options \^
+    $ %InputDir/%Source -o %OutputDir%BaseName.m;
+    $set status=%cmplrs_status%;
+  @end;
+
+  @template CMPLRS_CXX_Footer(%CMPLRS_CXX_Options,
+                              %CMPLRS_ExportBehaviour,
+                              %IncDirectives,
+                              %Unit_CXX_Options,
+                              %InputDir,
+                              %Source,
+                              %BaseName,
+                              %OutputDir) is
+    $set cmplrs_status=%status%;
+    $@acpp.exe -M -m -+ %CMPLRS_CXX_Options -D__cplusplus -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives %Unit_CXX_Options \^
+    $ %InputDir/%Source -o %OutputDir%BaseName.m;
+    $set status=%cmplrs_status%;
+  @end;
+
+  @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER,
+                                %CMPLRS_CXX_SysOptions,
+                                %CMPLRS_CXX_Options,
+                                %CMPLRS_ExportBehaviour,
+                                %CMPLRS_CXX_ModeOpt,
+                                %CMPLRS_CXX_DBMSOpt,
+                                %CMPLRS_CXX_INCLUDE,
+                                %CMPLRS_CXX_WOKDirectives,
+                                %IncDirectives,
+                                %DBDirectives,
+                                %Entity) is
+    $Following parameters make up C++ compilation command in this order:
+    $CMPLRS_CXX_COMPILER      = %CMPLRS_CXX_COMPILER
+    $CMPLRS_CXX_SysOptions    = %CMPLRS_CXX_SysOptions
+    $CMPLRS_CXX_Options       = %CMPLRS_CXX_Options
+    $CMPLRS_ExportBehaviour   = %CMPLRS_ExportBehaviour
+    $CMPLRS_CXX_ModeOpt       = %CMPLRS_CXX_ModeOpt
+    $CMPLRS_CXX_DBMSOpt       = %CMPLRS_CXX_DBMSOpt
+    $CMPLRS_CXX_INCLUDE       = %CMPLRS_CXX_INCLUDE
+    $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives
+    $Dynamic include directives are :
+    $%IncDirectives
+  @end;
+
+  @template CMPLRS_CXX_CmdLine (%CMPLRS_CXX_COMPILER, %CMPLRS_CXX_SysOptions, %CMPLRS_CXX_Options, %CMPLRS_CXX_ModeOpt,
+                                %CMPLRS_CXX_DBMSOpt, %IncDirectives, %CMPLRS_CXX_INCLUDE, %PDBName, %Source,
+                                %BaseName, %OutputDir, %CMPLRS_ExportBehaviour) is
+    $%CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_ExportBehaviour\^
+    $  %IncDirectives %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt \^
+    $ -Fd%PDBName -c -Tp %Source -Fo%OutputDir%BaseName.obj;
+    $set cmplrs_status=%status%;
+    $@acpp.exe -M -m -+ %CMPLRS_CXX_Options -D__cplusplus -D_DLL -D_MT %CMPLRS_ExportBehaviour  %IncDirectives %CMPLRS_CXX_INCLUDE\^
+    $ %Source -o %OutputDir%BaseName.m;
+    $set status=%cmplrs_status%;
+  @end;
+
+  @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER,
+                              %CMPLRS_C_SysOptions,
+                              %CMPLRS_C_Options,
+                              %CMPLRS_C_ModeOpt,
+                              %IncDirectives,
+                              %CMPLRS_Unit_C_Options,
+                              %CMPLRS_C_WOKDirectives,
+                              %CMPLRS_ExportBehaviour,
+                              %Entity) is
+    $Following parameters make up C compilation command in this order:
+    $CMPLRS_C_COMPILER      = %CMPLRS_C_COMPILER
+    $CMPLRS_C_SysOptions    = %CMPLRS_C_SysOptions
+    $CMPLRS_C_Options       = %CMPLRS_C_Options
+    $CMPLRS_C_ModeOpt       = %CMPLRS_C_ModeOpt
+    $CMPLRS_Unit_C_Options  = %CMPLRS_Unit_C_Options
+    $CMPLRS_C_WOKDirectives = %CMPLRS_C_WOKDirectives
+    $CMPLRS_ExportBehaviour = %CMPLRS_ExportBehaviour
+    $Dynamic include directives are :
+    $%IncDirectives
+  @end;
+
+  @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER, %CMPLRS_C_SysOptions, %CMPLRS_C_Options, %CMPLRS_C_ModeOpt, %CMPLRS_CXX_DBMSOpt,
+                              %IncDirectives, %PDBName, %Source,
+                              %BaseName, %OutputDir, %CMPLRS_ExportBehaviour) is
+    $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_ExportBehaviour\^
+    $  %IncDirectives %CMPLRS_CXX_DBMSOpt %CMPLRS_C_ModeOpt \^
+    $ -Fd%PDBName -c -Tc %Source -Fo%OutputDir%BaseName.obj;
+    $set cmplrs_status=%status%;
+    $@acpp.exe -M -m -+ %CMPLRS_C_Options -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives\^
+    $ %Source -o %OutputDir%BaseName.m;
+    $set status=%cmplrs_status%;
+  @end;
+
+@endif;
index 53b046eb732b17e7b9bd70838b646a54a573ae90..0108d59d430bb41ea708080c4400662a52d8bc8d 100755 (executable)
@@ -3,87 +3,60 @@
 -- History:    Thu Jul 11 17:31:05 1996        Jean GAUTIER    Creation
 -- Copyright:   Matra Datavision 1996
 
-@ifnotdefined ( %CODEGEN_EDL) then
-@set %CODEGEN_EDL = "";
+@ifnotdefined (%CODEGEN_EDL) then
+  @set %CODEGEN_EDL = "";
+
+  @set %CODEGEN_Tools = "CODEGEN_LEX CODEGEN_YACC";
+
+  @set %CODEGEN_LEX_Template    = "CODEGEN_LEX_CmdLine";
+  @set %CODEGEN_LEX_Extensions  = "toto.lex";
+
+  @set %CODEGEN_YACC_Template   = "CODEGEN_YACC_CmdLine";
+  @set %CODEGEN_YACC_Extensions = "toto.yacc";
+
+  -- assume flex and bison in PATH
+  @set %CODEGEN_LEX_CmdPath  = "flex";
+  @set %CODEGEN_YACC_CmdPath = "bison";
+
+  --@if (%Station == "wnt") then
+  --  @set %CODEGEN_FlexBisHome = "%WOKHOME%/lib/wnt";
+  --@endif;
+  --@if (%Station == "lin") then
+  --  @set %CODEGEN_FlexBisHome = "/usr/bin";
+  --@endif;
+  --@if (%Station == "mac") then
+  --  @set %CODEGEN_FlexBisHome = "/sw/bin";
+  --@endif;
+  --@ifnotdefined (%CODEGEN_FlexBisHome) then
+  --  @set %CODEGEN_FlexBisHome = "/PRODUCTS/flexbis-253-125/bin";
+  --@endif;
+  --@string %CODEGEN_LEX_CmdPath  = %CODEGEN_FlexBisHome "/bin/flex";
+  --@string %CODEGEN_YACC_CmdPath = %CODEGEN_FlexBisHome "/bin/bison";
+
+  @template CODEGEN_LEX_Production (%BaseName) is
+    $lex.%BaseName.c
+  @end;
+
+  @template CODEGEN_LEX_OptLine (%CODEGEN_LEX_CmdPath) is
+    $%CODEGEN_LEX_CmdPath -f -P <Module> -L -8 -f <LexFile>
+  @end;
+
+  @template CODEGEN_LEX_CmdLine (%CODEGEN_LEX_CmdPath, %Source, %BaseName, %OutputDir) is
+    $cd %OutputDir;
+    $%CODEGEN_LEX_CmdPath -P%BaseName -L -8 -f %Source
+  @end;
+
+  @template CODEGEN_YACC_Production (%BaseName) is
+    $%BaseName.tab.h %BaseName.tab.c
+  @end;
+
+  @template CODEGEN_YACC_OptLine (%CODEGEN_YACC_CmdPath) is
+    $%CODEGEN_YACC_CmdPath -d -b <Module> -p <Module> <YaccFile>
+  @end;
+
+  @template CODEGEN_YACC_CmdLine (%CODEGEN_YACC_CmdPath, %Source, %BaseName, %OutputDir) is
+    $cd %OutputDir;
+    $%CODEGEN_YACC_CmdPath -d -b %BaseName -p %BaseName %Source -o %BaseName.tab.c
+  @end;
 
-@set %CODEGEN_Tools = "CODEGEN_LEX CODEGEN_YACC";
-
-@set %CODEGEN_LEX_Template    = "CODEGEN_LEX_CmdLine";
-@set %CODEGEN_LEX_Extensions  = "toto.lex";
-
-@set %CODEGEN_YACC_Template   = "CODEGEN_YACC_CmdLine";
-@set %CODEGEN_YACC_Extensions = "toto.yacc";
-
-@if ( %Station != "wnt" ) then
-
- @if ( %Station == "lin" ) then
-  @set %CODEGEN_FlexBisHome = "${WOKHOME}/lib/lin";
- @else
-  @if ( %Station == "mac" ) then
-   @set %CODEGEN_FlexBisHome = "/sw";
-  @else
-   @set %CODEGEN_FlexBisHome = "/PRODUCTS/flexbis-253-125/bin";
-  @endif;
- @endif;
-
-@template CODEGEN_LEX_Production ( %BaseName ) is
-$lex.%BaseName.c
-@end;
-
-@template CODEGEN_LEX_OptLine  (%CODEGEN_FlexBisHome) is
-$%CODEGEN_FlexBisHome/flex -f -P<Module>  -L -8 -f <LexFile>
-@end;
-
-@template CODEGEN_LEX_CmdLine  ( %CODEGEN_FlexBisHome, %Source, %BaseName, %OutputDir ) is
-$cd %OutputDir
-$%CODEGEN_FlexBisHome/flex -f -P%BaseName  -L -8 -f %Source
-@end;
-
-
-@template CODEGEN_YACC_Production ( %CODEGEN_FlexBisHome, %BaseName ) is
-$%BaseName.tab.h %BaseName.tab.c
-@end;
-
-@template CODEGEN_YACC_OptLine (%CODEGEN_FlexBisHome) is
-$%CODEGEN_FlexBisHome/bison -d -b <Module> -p <Module> <YaccFile>
-@end;
-
-@template CODEGEN_YACC_CmdLine ( %CODEGEN_FlexBisHome, %Source, %BaseName, %OutputDir ) is
-$cd %OutputDir
-$%CODEGEN_FlexBisHome/bison -d -b %BaseName -p %BaseName %Source -o %BaseName.tab.c
-@end;
-
-@else
-
-@template CODEGEN_LEX_Production ( %BaseName ) is
-$lex.%BaseName.c
-@end;
-
-@template CODEGEN_LEX_OptLine  (%CODEGEN_LEX_CmdPath) is
-$%CODEGEN_LEX_CmdPath -f -P <Module>  -L -8 -f <LexFile>
-@end;
-
-@set %CODEGEN_LEX_CmdPath = "%WOKHOME%/lib/wnt/flex";
-
-@template CODEGEN_LEX_CmdLine  ( %CODEGEN_LEX_CmdPath, %Source, %BaseName, %OutputDir ) is
-$cd %OutputDir;
-$%CODEGEN_LEX_CmdPath -P%BaseName -L -8 -f %Source
-@end;
-
-@template CODEGEN_YACC_Production ( %BaseName ) is
-$%BaseName.tab.h %BaseName.tab.c
-@end;
-
-@set %CODEGEN_YACC_CmdPath = "%WOKHOME%/lib/wnt/bison";
-
-@template CODEGEN_YACC_OptLine (%CODEGEN_YACC_CmdPath) is
-$%CODEGEN_YACC_CmdPath -d -b <Module> -p <Module> <YaccFile>
-@end;
-
-@template CODEGEN_YACC_CmdLine (%CODEGEN_YACC_CmdPath, %Source, %BaseName, %OutputDir ) is
-$cd %OutputDir;
-$%CODEGEN_YACC_CmdPath -d -b %BaseName -p %BaseName %Source -o %BaseName.tab.c
-@end;
-
-@endif;
 @endif;
index 40a564b6662fde814914a3db62305b81833a841c..7247247d81288bb7c40e9cb161cbe84de1af4867 100755 (executable)
+--
 -- WOK Build process configuration file.
 -- This file contains the definiton of parameters used during compilation
 -- and link process launched by the commands umake or wprocess.
--- The items you have to modify are surrounded py a comment beginning with the
--- string "--<<TODO" .
--- This mainly concerns the actual location of the C++, C compilers.
--- Several platforms are listed. Each beginning by a comment. For
--- example : "-- For Linux platforms".
--- You just need to adapt the part for the platform you want. 
 --
-@ifnotdefined ( %CSF_EDL ) then
-   @set %CSF_EDL = "";
-
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
---  @set %CSF_SYMBOLS = "C_COMPILER C_SysOptions C_Options CXX_COMPILER CXX_SysOptions CXX_Options F77_COMPILER F77_SysOptions F77_Options CSF_LINKER CXX_COMPILERLINKER CSF_VirtualDevice CSF_LINKER_CheckOpt CSF_LINKER_CheckOut LINKER_DBMSOpt LINKER_SysShared LINKER_SysExeC LINKER_SysExeW LINKER_SysOpt LINKER_SysLib LINKER_CheckOpt LINKER_CheckOut LibraryHeaderLib LibraryHeaderOpt JavaHome JavaLibs C_INCLUDE CXX_INCLUDE TCL_INCLUDE JAVA_COMPILER JAVA_JNI JAVA_INCLUDE X11_INCLUDE XMU_INCLUDE MOTIF_INCLUDE OPENGL_INCLUDE SOCKETLibs FPELibs ThreadLibs kernel32 advapi32 gdi32 user32 glu32 opengl32 wsock32 dpsLibs XwLibs OpenGlLibs MotifLibs TclLibs TclTkLibs DOXIGEN_HOME GRAPVIZ_HOME" ;
-    @set %CSF_SYMBOLS = "C_COMPILER C_SysOptions C_Options C_ModeOpt C_ModeOptDeb CXX_COMPILER CXX_SysOptions CXX_Options CXX_ModeOpt CXX_ModeOptDeb F77_COMPILER F77_SysOptions F77_Options F77_ModeOpt F77_ModeOptDeb CSF_LINKER CXX_COMPILERLINKER CSF_VirtualDevice CSF_LINKER_CheckOpt CSF_LINKER_CheckOut LINKER_DBMSOpt LINKER_SysShared LINKER_SysExeC LINKER_SysExeW LINKER_SysOpt LINKER_SysLib LINKER_CheckOpt LINKER_CheckOut LibraryHeaderLib LibraryHeaderOpt JavaHome JavaLibs C_INCLUDE CXX_INCLUDE TCL_INCLUDE JAVA_COMPILER JAVA_JNI JAVA_INCLUDE X11_INCLUDE XMU_INCLUDE MOTIF_INCLUDE OPENGL_INCLUDE SOCKETLibs FPELibs ThreadLibs kernel32 advapi32 gdi32 user32 glu32 opengl32 wsock32 dpsLibs XwLibs OpenGlLibs MotifLibs TclLibs TclTkLibs DOXIGEN_HOME GRAPVIZ_HOME" ;
-
-  @set %CSF_CREATECOMP_DEP = "Yes" ;
-  @set %CSF_USE_EXTERNLIB  = "Yes" ;
-
-
---<< TODO : Place here the location where the tarball has been downloaded. >> 
-  @set %CSF_WOKHOME = "${WOKHOME}" ;
--->> END TODO
-
-   @set %CSF_C_COMPILER = "";
-   @set %CSF_C_SysOptions  = "";
-   @set %CSF_C_Options  = "";
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
-   @set %CSF_C_ModeOpt  = "";
-   @set %CSF_C_ModeOptDeb  = "";
-
-   @set %CSF_CXX_COMPILER = "";
-   @set %CSF_CXX_SysOptions  = "";
-   @set %CSF_CXX_Options  = "";
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
-   @set %CSF_CXX_ModeOpt  = "";
-   @set %CSF_CXX_ModeOptDeb  = "";
-
-   @set %CSF_F77_COMPILER = "";
-   @set %CSF_F77_SysOptions  = "";
-   @set %CSF_F77_Options  = "";
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
-   @set %CSF_F77_ModeOpt  = "";
-   @set %CSF_F77_ModeOptDeb  = "";
-
-   @set %CSF_LINKER = "";
-   @set %CSF_CSF_VirtualDevice = "";
-   @set %CSF_LINKER_DBMSOpt = "";
-   @set %CSF_LINKER_SysShared = "";
-   @set %CSF_LINKER_SysExe = "";
-   @set %CSF_LINKER_SysExeC = "";
-   @set %CSF_LINKER_SysExeW = "";
-   @set %CSF_LINKER_SysOpt = "";
-   @set %CSF_LINKER_SysLib = "";
-   @set %CSF_LINKER_CheckOpt = "";
-   @set %CSF_LINKER_CheckOut = "";
-
-   @set %CSF_LibraryHeaderLib = "";
-   @set %CSF_LibraryHeaderOpt = "";
-
-   @set %CSF_JavaHome = "";
-   @set %CSF_JavaLibs = "";
-
-   @string %CSF_C_INCLUDE   = " -I" %CSF_WOKHOME "/lib ";
-   @string %CSF_CXX_INCLUDE = " -I" %CSF_WOKHOME "/lib ";
-
-   @set %CSF_TCL_HOME = "";
-   @set %CSF_TCL_INCLUDE = "";
-   @set %CSF_JAVA_INCLUDE = "";
-
-   @set %CSF_X11_INCLUDE = "";
-   @set %CSF_X11_INCLUDE_EXTENSION = "";
-   @set %CSF_XMU_INCLUDE = "";
-   @set %CSF_MOTIF_INCLUDE = "";
-   @set %CSF_OPENGL_INCLUDE = "";
-
-   @set %CSF_SOCKETLibs  = "";
-   @set %CSF_RISCRETURNObject = "" ;
-   @set %CSF_FPELibs = "" ;
-   @set %CSF_ThreadLibs = "" ;
-
-   @set %CSF_kernel32 = "" ;
-   @set %CSF_advapi32 = "" ;
-   @set %CSF_gdi32 = "" ;
-   @set %CSF_user32 = "" ;
-   @set %CSF_glu32 = "" ;
-   @set %CSF_opengl32 = "" ;
-   @set %CSF_wsock32 = "" ;
-
-   @set %CSF_AviLibs = "" ;
-
-   @set %CSF_dpsLibs = "" ;
-   @set %CSF_XwLibs = "" ;
-   @set %CSF_OpenGlLibs = "" ;
-   @set %CSF_MotifLibs = "" ;
-
-   @set %CSF_TclLibs = "" ;
-   @set %CSF_TclTkLibs = "" ;
-
-   @set %CSF_OODBLibs = "";
-   @set %CSF_STANDARDDB = "StandardTRAN";
-   @set %STLPortHome = "";
-
-   @ifnotdefined ( %DBMS ) then
-     @set %DBMS = "DFLT";
-   @endif;
-
-   @if ( %DBMS == "DFLT") then
-      @set %CSF_STANDARDDB = "StandardCSFDB";
-   @endif;
-
-   @if ( %DBMS == "OBJY" ) then
-      @set %CSF_STANDARDDB = "StandardOBJY";
-   @endif;
-
-   @if ( %DBMS == "OBJS" ) then
-      @set %CSF_STANDARDDB = "StandardOBJS";
-   @endif;
-
-   --
-   -- For Linux platforms
-   --
-   @if ( %Station == "lin" ) then
-      @if ( %DBMS == "OBJS" ) then
-        @set %CSF_OODBLibs = "";
-      @endif;
-
-      --<< TODO : If applicable , modify the location of the C++ compiler. 
-      @set %CSF_CXX_COMPILER = "/usr/bin/g++ ";
-      -->> END TODO
-      @set %STLPortHome = "";
-      @if ( %STLPortHome != "") then
-        @string %STLPortInclude = "-I" %STLPortHome "/stlport ";
-       @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_gcc";
-      @else
-        @set %STLPortInclude = "";
-       @set %STLPortLib = "";
-      @endif;
-      @set %CSF_CXX_SysOptions  = "-fPIC -funsigned-char -Wall -fmessage-length=0";
-      @string %CSF_CXX_Options  = "-DLIN -DLININTEL -DOCC_CONVERT_SIGNALS " %STLPortInclude;
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
-      @set %CSF_CXX_ModeOpt = " -O3 -DNDEBUG -DNo_Exception ";
-      @set %CSF_CXX_ModeOptDeb = " -g -O0 -DDEB -D_DEBUG ";
-
-      --<< TODO : If applicable , modify the location of the c compiler. 
-      @set %CSF_C_COMPILER = "/usr/bin/gcc ";
-      @string %CSF_C_INCLUDE +=  "";
-      -->> END TODO
-
-      @set %CSF_C_SysOptions  = "-fPIC -funsigned-char -Wall -fexceptions";
-      @set %CSF_C_Options  = "-DLIN -DLININTEL ";
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
-      @set %CSF_C_ModeOpt = " -O3 -DNDEBUG -DNo_Exception ";
-      @set %CSF_C_ModeOptDeb = " -g -O0 -DDEB -D_DEBUG ";
-
-      --<< TODO : If applicable , modify the location of the Fortran compiler. 
-      @set %CSF_F77_COMPILER = "/usr/bin/f77 ";
-      -->> END TODO
-
-      @set %CSF_F77_SysOptions  = "-fPIC ";
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
-      @set %CSF_F77_ModeOpt = " -O3 -DNDEBUG -DNo_Exception ";
-      @set %CSF_F77_ModeOptDeb = " -g -DDEB -D_DEBUG ";
-
-      @string %CSF_LINKER = "/usr/bin/ld " %STLPortLib;
-      @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER ;
-      @set %CSF_LINKER_DBMSOpt = "";
-      @set %CSF_LINKER_SysShared = "-shared ";
-      @set %CSF_LINKER_SysExe = "";
-      @set %CSF_LINKER_SysOpt = "";
-      @set %CSF_LINKER_SysLib = "-ldl -lc ";
-      @set %CSF_LINKER_CheckOpt = "-nostartfiles ";
-      @set %CSF_LINKER_CheckOut = "-o /dev/null ";
-      @set %CSF_SOCKETLibs = " -ldl" ;
-
-      --<< TODO : If applicable , modify the root location where TCL is installed.
-      @set %CSF_TCL_HOME = "/usr";
-      -->> END TODO
-
-      @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include ";
-
-      --<< TODO : If applicable , modify the root location where Java is installed.
-      @set %CSF_JavaHome        = "/PRODUCTS/java/lin/jdk1.2.2";
-      -->> END TODO
-
-      @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I"  %CSF_JavaHome "/include/linux ";
-      @set %CSF_JAVA_COMPILER   = "javac";
-      @set %CSF_JAVA_JNI        = "javah";
-
-      @set %CSF_DOXIGEN         = "/PRODUCTS/maintenance/Linux/doxygen-1.4.1/bin/doxygen";
-      @set %CSF_GRAPHVIZ_HOME    = "/PRODUCTS/maintenance/Linux/graphviz/bin";
-
-      @set %CSF_X11_INCLUDE = "-I/usr/X11R6/include ";
-      @set %CSF_OPENGL_INCLUDE = "-I/usr/X11R6/include ";
-
-      @set %CSF_ThreadLibs = "-lpthread" ;
-      @set %X11_LIB = "/usr/X11R6/lib";
-
-      @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu -lXi ";
-
-      @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL " ;
-
-      @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib  -ltcl "; 
-      @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib  -ltk -L" %X11_LIB " -lX11";
-   @endif;
-
-   --
-   -- For SunOS platforms
-   --
-   @if ( %Station == "sun" ) then
-      @if ( %DBMS == "OBJS" ) then
-        @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.2/sunpro/lib/ -los -losthr -loscol -losmop";
-      @endif;
-
-      --<< TODO : If applicable , modify the location of the C++ compiler. 
-      @set %CSF_CXX_COMPILER = "/opt/DEV5_1/SUNWspro/bin/CC";
-      -->> END TODO
-
-      @set %STLPortHome = "";
-      @if ( %STLPortHome != "") then
-        @string %STLPortInclude = "-I" %STLPortHome "/stlport";
-       @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_sunpro42";
-      @else
-        @set %STLPortInclude = "";
-       @set %STLPortLib = "";
-      @endif;
-      @set %CSF_CXX_SysOptions  = "-PIC -xchip=ultra -xarch=v8 -vdelx -Usun -instances=static " ;
-      @string %CSF_CXX_Options  = "-DSOLARIS -DOCC_CONVERT_SIGNALS "%STLPortInclude ;
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
-      @set %CSF_CXX_ModeOpt = " -O2 -DNo_Exception +w ";
-      @set %CSF_CXX_ModeOptDeb = " -g0 -DDEB +w ";
-      --yan @string %CSF_CXX_INCLUDE += " -I/opt/DEV5_1/SUNWspro/SC4.2/include/CC ";
-      @string %CSF_CXX_INCLUDE +=  " -I" %CSF_CXX_COMPILER "/../../SC4.2/include/CC ";
-
-      --<< TODO : If applicable , modify the location of the c compiler. 
-      @set %CSF_C_COMPILER   = "/opt/DEV5_1/SUNWspro/bin/cc ";
-      @string %CSF_C_INCLUDE +=  "";
-      -->> END TODO
-
-      @set %CSF_C_SysOptions    = "-K PIC -Usun ";
-      @set %CSF_C_Options    = "-DSOLARIS ";
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
-      @set %CSF_C_ModeOpt = " -O2 -DNo_Exception +w ";
-      @set %CSF_C_ModeOptDeb = " -g0 -DDEB +w ";
-
-      @set %CSF_F77_COMPILER = "f77 ";
-      @set %CSF_F77_SysOptions  = "-PIC";
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
-      @set %CSF_F77_ModeOpt = " -O2 ";
-      @set %CSF_F77_ModeOptDeb = " -g ";
-
-      @set %CSF_LINKER = "/usr/ccs/bin/ld ";
-      @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER ;
-      @if ( %DBMS == "OBJS" ) then
-         @set %CSF_LINKER_DBMSOpt = "-mt ";
-      @endif;
-      @set %CSF_LINKER_SysShared = "-G ";
-      @set %CSF_LINKER_SysExe = "";
-      @set %CSF_LINKER_SysOpt = "-xchip=ultra -xarch=v8 ";
-      @set %CSF_LINKER_SysLib = " -lC -lc ";
-      @set %CSF_LINKER_CheckOpt = "";
-      @set %CSF_LINKER_CheckOut = "-o /dev/null ";
-
-      --<< TODO : If applicable , modify the root location where Java is installed.
-      @set %CSF_JavaHome        = "/PRODUCTS/java/jdk1.2";
-      -->> END TODO
-
-      @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I"  %CSF_JavaHome "/include/solaris ";
-      @string %CSF_JavaLibs     = " -L" %CSF_JavaHome "/jre/lib/sparc/ -ljava ";
-      @set %CSF_JAVA_COMPILER   = "javac";
-      @set %CSF_JAVA_JNI        = "javah";
-
-      @set %CSF_DOXIGEN         = "/dn02/users_Sun/cascade/doxigen/bin/doxigen";
-      @set %CSF_GRAPHVIZ_HOME    = "/dn02/users_Sun/cascade/graphviz";
-
-
-      @set %CSF_SOCKETLibs = "-lsocket -lnsl -lsunmath -lm -ldl  -lc " ;
-      ---@set %CSF_RISCRETURNObject = "/missing/missing/risc_return.o" ;
-      @set %CSF_RISCRETURNObject = "/dn01/KAS/dev/Gallery/src/EngineStarter/risc_return.o" ;
-      --<< TODO : If applicable , modify the root location where TCL is installed.
-      @set %CSF_TCL_HOME = "/PRODUCTS/tcltk-84";
-      -->> END TODO
-
-      @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include -DUSE_NON_CONST ";
-      @string %CSF_TclLibs     = "-L" %CSF_TCL_HOME "/lib -R" %CSF_TCL_HOME "/lib -ltcl8.4 "; 
-      @string %CSF_TclTkLibs   = "-L" %CSF_TCL_HOME "/lib -R" %CSF_TCL_HOME "/lib -ltk8.4 "; 
-
-
-      @set %X11_LIB            = "/usr/openwin/lib";
-      @set %CSF_X11_INCLUDE    = "-I/usr/openwin/include/X11 ";
-      @set %CSF_OPENGL_INCLUDE = "-I/usr/openwin/include ";
-
-      @set %CSF_ThreadLibs = "-lpthread" ;
-
-      @string %CSF_dpsLibs = "-L" %X11_LIB " -ldps" ;
-      @string %CSF_XwLibs  = "-L" %X11_LIB " -lX11 -lXext -lXmu";
-      @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL " ;
-      @string %CSF_MotifLibs = "-L/usr/dt/lib -lXm -L" %X11_LIB " -lXt -lX11";
-
-   @endif;
-
-   --
-   -- For Windows platform. The lines below works with MS Visual Studio installed on D:/DevTools
-   --
-
-   @if (%Station == "wnt") then
-
-      --<< TODO : If applicable , modify the root location where C++ compiler is installed.
-      @set %CSF_CXX_COMPILER = "D:/DevTools/VStudio/VC7/bin/cl ";
-      -->> END TODO
-      @set %STLPortHome = "";
-      @if ( %STLPortHome != "") then
-        @string %STLPortInclude = "-I" %STLPortHome "/stlport ";
-       @string %STLPortLib = %STLPortHome "/lib/stlport_vc6.lib";
-      @else
-        @set %STLPortInclude = "";
-       @set %STLPortLib = "";
-      @endif;
-
-      @string %CSF_CXX_Options  = "-DWNT -D_WINDOWS -DWIN32 " %STLPortInclude;
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
---  @set %CSF_CXX_SysOptions  = "-nologo -MD -W3 -GX -Ob1 -Zi ";
-      @set %CSF_CXX_SysOptions  = " -nologo -W3 ";
-      @set %CSF_CXX_ModeOpt = " -MD -GX -O2 -DNDEBUG -DNo_Exception ";
-      @set %CSF_CXX_ModeOptDeb = " -MDd -Gm -GX -Od -Zi -DDEB -D_DEBUG ";
-
-      --<< TODO : If applicable , modify the root location where c compiler is installed (same as above).
-      @set %CSF_C_COMPILER   = "D:/DevTools/VStudio/VC7/bin/cl ";
-      @string %CSF_C_INCLUDE +=  "";
-      -->> END TODO
-
-      @set %CSF_C_Options    = "-DWNT -D_WINDOWS -DWIN32 ";
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
---  @set %CSF_C_SysOptions  = "-nologo -MD -W3 -GX -Ob1 -Zi ";
-      @set %CSF_C_SysOptions  = " -nologo -W3 ";
-      @set %CSF_C_ModeOpt = " -MD -GX -O2 -DNDEBUG -DNo_Exception ";
-      @set %CSF_C_ModeOptDeb = " -MDd -Gm -GX -Od -Zi -DDEB -D_DEBUG ";
-
-      --<< TODO : If applicable , modify the root location where the Fortran compiler is installed.
-      @set %CSF_F77_COMPILER = "D:/DevTools/VStudio/DF98/bin/fl32 ";
-      -->> END TODO
-
-      @set %CSF_F77_SysOptions  = "-nologo -libs:dll -Zi ";
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
-      @set %CSF_F77_ModeOpt = " -DNDEBUG -DNo_Exception ";
-      @set %CSF_F77_ModeOptDeb = " -DDEB -D_DEBUG ";
-
-      @set %CSF_LINKER = "D:/DevTools/VStudio/VC7/bin/link ";
-      @set %CSF_CXX_COMPILERLINKER = %CSF_LINKER ;
-      @set %CSF_VirtualDevice = "Q:";
-      @set %CSF_LINKER_DBMSOpt = "";
-      @set %CSF_LINKER_SysShared = "-subsystem:windows -dll ";
-      @set %CSF_LINKER_SysExe = "CSF_LINKER_SysExeC";
-      @set %CSF_LINKER_SysExeC = "-subsystem:CONSOLE";
-      @set %CSF_LINKER_SysExeW = "-subsystem:WINDOWS";
-      @set %CSF_LINKER_SysOpt = "-nologo -incremental:no -machine:IX86 -debug ";
-      @set %CSF_LINKER_SysLib = "";
-
-      @set %CSF_LibraryHeaderLib = "D:/DevTools/VStudio/VC7/bin/lib ";
-      @set %CSF_LibraryHeaderOpt = "-nologo ";
-
-      --<< TODO : If applicable , modify the root location where Java is installed.
-      @string %CSF_JavaHome     = "D:/jdk1.3.1";
-      -->> END TODO
-
-      @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/win32 ";
-      @set %CSF_JAVA_COMPILER   = "javac";
-      @set %CSF_JAVA_JNI        = "javah";
-
-      @set %CSF_TCL_HOME = "D:/DevTools/TclTk/tcl8.4";
-      @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include ";
-      @string %CSF_TclLibs = %CSF_TCL_HOME "/lib/tcl84.lib";
-      @string %CSF_TclTkLibs = %CSF_TCL_HOME "/lib/tk84.lib";
-      @string %CSF_TclTkxLibs = %CSF_TCL_HOME"/lib/tkx84.lib ";
-
-      @set %CSF_OpenGlLibs = "opengl32.lib glu32.lib" ;
-
-      @set %CSF_kernel32 = "kernel32.lib" ;
-      @set %CSF_advapi32 = "advapi32.lib" ;
-      @set %CSF_gdi32 = "gdi32.lib" ;
-      @set %CSF_user32 = "user32.lib" ;
-      @set %CSF_glu32 = "glu32.lib" ;
-      @set %CSF_opengl32 = "opengl32.lib" ;
-      @set %CSF_wsock32 = "wsock32.lib" ;
-      @set %CSF_netapi32 = "netapi32.lib";
-
-      @set %CSF_AviLibs = "ws2_32.lib vfw32.lib" ;
-
-
-
-   @endif;
-
-   --
-   -- The Dec Ultrix platform is not supported
-   --
-   @if ( %Station == "ao1" ) then
-      @if ( %DBMS == "OBJS" ) then
-        @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.2/lib/ -los -losthr -loscol -losmop";
-      @endif;
-
-      @set %CSF_C_COMPILER   = "cc ";
-      @string %CSF_C_INCLUDE +=  "";
-      @set %CSF_CXX_COMPILER = "/usr/bin/cxx ";
-      @set %CSF_F77_COMPILER = "";
-
-      @set %STLPortHome = "/dn01/KAS/STLport-4.5.3";
-      @if ( %STLPortHome != "") then
-        @string %STLPortInclude = "-I" %STLPortHome "/stlport";
-       @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_dec";
-      @else
-        @set %STLPortInclude = "";
-       @set %STLPortLib = "";
-      @endif;
-
-      @set %CSF_CXX_SysOptions = "-shared ";
-      @set %CSF_CXX_Options = "-DDECOSF1 -DOCC_CONVERT_SIGNALS -D__USE_STD_IOSTREAM ";  
-      @set %CSF_CXX_INCLUDE = "-I/usr/include/cxx -I/dn01/KAS/dev/Dec ";
-
-      @set %CSF_C_SysOptions = ""; 
-      @set %CSF_C_Options = "-DDECOSF1 -O3 -DOCC_CONVERT_SIGNALS";         
-
-      @set %CSF_TCL_HOME = "/usr/tcltk";
-      @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include/itcl ";
-
-      @string %CSF_JavaHome     = "/PRODUCTS/java/j2sdk1_3_1";
-      @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/solaris ";
-      @set %CSF_JAVA_COMPILER   = "javac";
-      @set %CSF_JAVA_JNI        = "javah";
-
-      @set %CSF_ThreadLibs = "-lpthread" ;
-
-      @set %X11_LIB = "/usr/shlib";
-      @string %CSF_XwLibs  = "-L" %X11_LIB " -lX11 -lXext -lXmu";
-      @set %CSF_dpsLibs = "-ldps" ;
-      @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL " %CSF_XwLibs ;
-      
-      @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib/itcl -ltcl7.5i"; 
-      @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib/itcl -ltk4.1i " %CSF_XwLibs; 
-   @endif;
-
-   --
-   -- The IRIX platform is not currently supported
-   --
-   @if ( %Station == "sil" ) then
-      @if ( %DBMS == "OBJS" ) then
-        @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.3/lib/ -los -losths -loscol -losmop";
-      @endif;
-
-      @set %CSF_C_COMPILER   = "cc ";
-      @string %CSF_C_INCLUDE +=  "";
-      @set %CSF_C_SysOptions = " -signed -n32 -mips4 ";
-      @set %CSF_C_Options    = "-DIRIX ";
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
-      @set %CSF_C_ModeOpt = " -O3 -DNo_Exception -TARG:processor=R10000 ";
-      @set %CSF_C_ModeOptDeb = " -g -gslim -DDEB ";
-
-      @set %CSF_CXX_COMPILER   = "/usr/bin/CC ";
-      @set %STLPortHome = "";
-      @if ( %STLPortHome != "") then
-        @string %STLPortInclude = "-I" %STLPortHome "/stlport";
-       @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_mipspro";
-      @else
-        @set %STLPortInclude = "";
-       @set %STLPortLib = "";
-      @endif;
-
-      @set %CSF_CXX_SysOptions = " -signed -n32 -mips4 -woff 3115 -woff 3273 -woff 1021 -woff 1188 -woff 1460 -woff 3303 -ptused";
-      @string %CSF_CXX_Options  = "-DIRIX -DOCC_CONVERT_SIGNALS " %STLPortInclude;
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
-      @set %CSF_CXX_ModeOpt = " -O3 -DNo_Exception -D__INLINE_INTRINSICS -TARG:processor=R10000 ";
-      @set %CSF_CXX_ModeOptDeb = " -g -gslim -DDEB ";
-
-
-      @set %CSF_F77_COMPILER = "f77 ";
---  Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb
-      @set %CSF_F77_ModeOpt = " -O3 ";
-      @set %CSF_F77_ModeOptDeb = " -g ";
-      
-      @set %CSF_LINKER = "/usr/bin/ld";
-      @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER ;
-      @set %CSF_LINKER_SysShared = " -shared ";
-      @set %CSF_LINKER_SysExe = "";
-      @set %CSF_LINKER_SysOpt = " -n32 -mips3 -Wl,-mmap -multigot -no_prelink ";
-      @set %CSF_LINKER_SysLib = "";
-      @set %CSF_LINKER_CheckOpt = " -n32 -mips3 -mmap -multigot -no_unresolved ";
-      @set %CSF_LINKER_CheckOut = " -o /dev/null";
-
-      @set %CSF_FPELibs = "-L/usr/lib32 -lfpe" ;
-      @set %CSF_pthread = "-lpthread" ;
-
-      @set %CSF_TCL_HOME = "/usr/tcltk.64";
-      @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include/itcl ";
-
-      @set %CSF_X11_INCLUDE_EXTENSION = " -I/usr/include/X11/extensions ";
-
-
-
-      @string %CSF_JavaHome     = "/PRODUCTS/java/sil_1.2";
-      @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/irix ";
-      @set %CSF_JAVA_COMPILER   = "javac";
-      @set %CSF_JAVA_JNI        = "javah";
-
-      @set %CSF_ThreadLibs = "-lpthread" ;
-
-      @set %X11_LIB = "/usr/lib32";
-
-      @set %CSF_dpsLibs = "-L/usr/lib32 -ldps" ;
-      @string %CSF_XwLibs  = "-L" %X11_LIB " -lX11 -lXext -lXmu";
-      @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL " ;
-
-      @string %CSF_TclLibs   = "-L" %CSF_TCL_HOME "/lib/itcl -rpath " %CSF_TCL_HOME "/lib/itcl -ltcl7.5i"; 
-      @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib/itcl -rpath " %CSF_TCL_HOME "/lib/itcl -ltk4.1i"; 
-   @endif;
-
-   --
-   -- The HP-UX platform is not currently supported
-   --
-   @if ( %Station == "hp" ) then
-      @if ( %DBMS == "OBJS" ) then
-        @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.2/lib/ -los -losthr -loscol -losmop";
-      @endif;
-
-      @set %CSF_C_COMPILER   = "cc ";
-      @string %CSF_C_INCLUDE +=  "";
-      @set %CSF_CXX_COMPILER = "/opt/aCC/bin/aCC ";
-      @set %CSF_F77_COMPILER = "f77 ";
-      @set %STLPortHome = "";
-      @if ( %STLPortHome != "") then
-        @string %STLPortInclude = "-I" %STLPortHome "/stlport";
-       @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_aCC";
-      @else
-        @set %STLPortInclude = "";
-       @set %STLPortLib = "";
-      @endif;
-
-      @string %CSF_CXX_Options = " -w -DHPUX -D_IOSTREAM_INIT_NOT_NEEDED " %STLPortInclude;
-      @set %CSF_C_Options = " -DHPUX ";
-
-      @set %CSF_TCL_HOME = "/missing/missing ";
-      @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include ";
-
-      @set %CSF_X11_INCLUDE = "-I/usr/include/X11R6 ";
-      @set %CSF_XMU_INCLUDE = "-I/usr/contrib/X11R6/include ";
-      @set %CSF_MOTIF_INCLUDE = "-I/usr/include/Motif1.2 ";
-      @set %CSF_OPENGL_INCLUDE = "-I/opt/graphics/OpenGL/include ";
-
-      @set %CSF_SOCKETLibs = "" ;
-
-      @set %CSF_ThreadLibs = "-lpthread" ;
-
-      @set %X11_LIB = "/usr/lib/X11R6";
-
-      @set %XMU_LIB = "/PRODUCTS/Xmu-R6";
-
-      @set %OPENGL_LIB = "/opt/graphics/OpenGL/lib";
-
-      @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -L" %XMU_LIB " -lXmu";
-
-      @string %CSF_OpenGlLibs = "-L" %OPENGL_LIB " -lGLU -lGL ";
-
-      @string %CSF_TclLibs   = "-L" %CSF_TCL_HOME "/lib -ltcl"; 
-      @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -ltk"; 
-
-      @string %CSF_JavaHome     = "/missing/JavaHome";
-      @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/hp-ux ";
-      @set %CSF_JAVA_COMPILER   = "javac";
-      @set %CSF_JAVA_JNI        = "javah";
-
-
-   @endif;
-
-   --
-   -- The AIX platform is not currently supported
-   --
-  @if ( %Station == "aix" ) then
-      @if ( %DBMS == "OBJS" ) then
-        @set %CSF_OODBLibs = "";
-      @endif;
-
-      @set %CSF_C_COMPILER   = "xlC_r ";
-      @string %CSF_C_INCLUDE +=  "";
-      @set %CSF_CXX_COMPILER = "xlC_r ";
-      @set %CSF_F77_COMPILER = "/usr/bin/f77 ";
+@ifnotdefined (%CSF_EDL) then
+  @set %CSF_EDL = "";
+
+  @set %CSF_SYMBOLS = "C_COMPILER C_SysOptions C_Options C_ModeOpt C_ModeOptDeb C_INCLUDE CXX_INCLUDE";
+  @string %CSF_SYMBOLS += " CXX_COMPILER CXX_SysOptions CXX_Options CXX_ModeOpt CXX_ModeOptDeb";
+  @string %CSF_SYMBOLS += " F77_COMPILER F77_SysOptions F77_Options F77_ModeOpt F77_ModeOptDeb";
+  @string %CSF_SYMBOLS += " CSF_LINKER CXX_COMPILERLINKER CSF_VirtualDevice CSF_LINKER_CheckOpt CSF_LINKER_CheckOut LINKER_DBMSOpt LINKER_SysShared LINKER_SysExeC LINKER_SysExeW LINKER_SysOpt LINKER_SysLib LINKER_CheckOpt LINKER_CheckOut LibraryHeaderLib LibraryHeaderOpt";
+  @string %CSF_SYMBOLS += " JavaHome JavaLibs JAVA_COMPILER JAVA_JNI JAVA_INCLUDE";
+  @string %CSF_SYMBOLS += " TCL_INCLUDE X11_INCLUDE XMU_INCLUDE MOTIF_INCLUDE OPENGL_INCLUDE SOCKETLibs FPELibs ThreadLibs kernel32 advapi32 gdi32 user32 glu32 opengl32 wsock32 dpsLibs XwLibs OpenGlLibs MotifLibs TclLibs TclTkLibs DOXIGEN_HOME FREETYPE_INCLUDES FTGL_INCLUDES CSF_FTGL CSF_GL2PS_INCLUDES CSF_GL2PS GRAPVIZ_HOME CSF_QT_INCLUDES CSF_QT";
+
+  @set %CSF_CREATECOMP_DEP = "Yes";
+  @set %CSF_USE_EXTERNLIB  = "Yes";
+
+  @set %CSF_C_COMPILER   = "";
+  @set %CSF_C_SysOptions = "";
+  @set %CSF_C_Options    = "";
+  @set %CSF_C_ModeOpt    = "";
+  @set %CSF_C_ModeOptDeb = "";
+
+  @set %CSF_CXX_COMPILER   = "";
+  @set %CSF_CXX_SysOptions = "";
+  @set %CSF_CXX_Options    = "";
+  @set %CSF_CXX_ModeOpt    = "";
+  @set %CSF_CXX_ModeOptDeb = "";
+
+  @set %CSF_F77_COMPILER   = "";
+  @set %CSF_F77_SysOptions = "";
+  @set %CSF_F77_Options    = "";
+  @set %CSF_F77_ModeOpt    = "";
+  @set %CSF_F77_ModeOptDeb = "";
+
+  @set %CSF_LINKER = "";
+  @set %CSF_CSF_VirtualDevice = "";
+  @set %CSF_LINKER_DBMSOpt = "";
+  @set %CSF_LINKER_SysShared = "";
+  @set %CSF_LINKER_SysExe = "";
+  @set %CSF_LINKER_SysExeC = "";
+  @set %CSF_LINKER_SysExeW = "";
+  @set %CSF_LINKER_SysOpt = "";
+  @set %CSF_LINKER_SysLib = "";
+  @set %CSF_LINKER_CheckOpt = "";
+  @set %CSF_LINKER_CheckOut = "";
+
+  @set %CSF_LibraryHeaderLib = "";
+  @set %CSF_LibraryHeaderOpt = "";
+
+  @set %CSF_JavaHome = "";
+  @set %CSF_JavaLibs = "";
+
+  @string %CSF_C_INCLUDE   = "";
+  @string %CSF_CXX_INCLUDE = "";
+
+  @set %CSF_TCL_HOME = "";
+  -- workaround against dummy code in WOKSH_CMPLRS.edl that append -I%CSF_TCL_INCLUDE
+  @set %CSF_TCL_INCLUDE = ": ";
+  @set %CSF_JAVA_INCLUDE = "";
+
+  @set %CSF_X11_INCLUDE = "";
+  @set %CSF_X11_INCLUDE_EXTENSION = "";
+  @set %CSF_XMU_INCLUDE = "";
+  @set %CSF_MOTIF_INCLUDE = "";
+  @set %CSF_OPENGL_INCLUDE = "";
+
+  @set %CSF_SOCKETLibs  = "";
+  @set %CSF_RISCRETURNObject = "";
+  @set %CSF_FPELibs = "";
+  @set %CSF_ThreadLibs = "";
+
+  @set %CSF_kernel32 = "";
+  @set %CSF_advapi32 = "";
+  @set %CSF_gdi32 = "";
+  @set %CSF_user32 = "";
+  @set %CSF_glu32 = "";
+  @set %CSF_opengl32 = "";
+  @set %CSF_wsock32 = "";
+
+  @set %CSF_AviLibs = "";
+
+  @set %CSF_dpsLibs = "";
+  @set %CSF_XwLibs = "";
+  @set %CSF_OpenGlLibs = "";
+  @set %CSF_MotifLibs = "";
+
+  @set %CSF_TclLibs = "";
+  @set %CSF_TclTkLibs = "";
+
+  @set %CSF_FreeImagePlus = "";
+  @set %CSF_FREETYPE_INCLUDES = "";
+  @set %CSF_FTGL_INCLUDES = "";
+  @set %CSF_FTGL = "";
+  @set %CSF_GL2PS_INCLUDES = "";
+  @set %CSF_GL2PS = "";
+  @set %CSF_TBB_INCLUDES = "";
+  @set %CSF_TBB = "";
+
+  @set %CSF_QT_INCLUDES = "";
+  @set %CSF_QT = "";
+
+  @set %CSF_OODBLibs = "";
+  @set %CSF_STANDARDDB = "StandardTRAN";
+  @set %STLPortHome = "";
+  @set %STLPortInclude = "";
+  @set %STLPortLib = "";
+
+  @set %CSF_DOXIGEN       = "doxygen";
+  @set %CSF_GRAPHVIZ_HOME = "";
+
+  @ifnotdefined (%DBMS) then
+    @set %DBMS = "DFLT";
+  @endif;
 
-      @set %STLPortHome = "";
-      @if ( %STLPortHome != "") then
-        @string %STLPortInclude = "-I" %STLPortHome "/stlport";
-       @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_xlC50";
-      @else
-        @set %STLPortInclude = "";
-       @set %STLPortLib = "";
-      @endif;
+  @if (%DBMS == "DFLT") then
+    @set %CSF_STANDARDDB = "StandardCSFDB";
+  @endif;
 
+  @if (%DBMS == "OBJY") then
+    @set %CSF_STANDARDDB = "StandardOBJY";
+  @endif;
 
-      @set %CSF_SOCKETLibs = " " ;
+  @if (%DBMS == "OBJS") then
+    @set %CSF_STANDARDDB = "StandardOBJS";
+  @endif;
 
-      @set %CSF_TCL_HOME = "/missing/missing ";
-      @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include ";
+  -- Defines to turn on optional 3rd-parties
+  @set %ENV_HAVE_FREEIMAGE = "${HAVE_FREEIMAGE}";
+  @set %ENV_HAVE_GL2PS     = "${HAVE_GL2PS}";
+  @set %ENV_HAVE_TBB       = "${HAVE_TBB}";
+  @set %CSF_PRODUCTS_DEFINES = "";
+  @if (%ENV_HAVE_FREEIMAGE == "true") then
+    @string %CSF_PRODUCTS_DEFINES = %CSF_PRODUCTS_DEFINES " -DHAVE_FREEIMAGE";
+    @if (%Station != "wnt") then
+      @set %CSF_FreeImagePlus = "-lfreeimageplus ";
+    @endif;
+  @endif;
+  @if (%ENV_HAVE_GL2PS == "true") then
+    @string %CSF_PRODUCTS_DEFINES = %CSF_PRODUCTS_DEFINES " -DHAVE_GL2PS";
+    @if (%Station != "wnt") then
+      @set %CSF_GL2PS = "-lgl2ps ";
+    @endif;
+  @endif;
+  @if (%ENV_HAVE_TBB == "true") then
+    @string %CSF_PRODUCTS_DEFINES = %CSF_PRODUCTS_DEFINES " -DHAVE_TBB";
+    @if (%Station != "wnt") then
+      @set %CSF_TBB = "-ltbb -ltbbmalloc ";
+    @endif;
+  @endif;
 
-      @set %CSF_ThreadLibs = "-lpthread" ;
+  -- On UNIX systems default configuration file 'config.h'
+  -- placed in ${WOKHOME}/lib folder.
+  @set %CSF_WOKHOME = "${WOKHOME}";
+  @string %CSF_C_INCLUDE   = " -I" %CSF_WOKHOME "/lib ";
+  @string %CSF_CXX_INCLUDE = " -I" %CSF_WOKHOME "/lib ";
 
-      @set %X11_LIB = "/usr/lpp/X11/lib/R6";
-      @set %CSF_XwLibs = "-L/usr/lpp/X11/lib/R6 -lX11 -lXext -lXmu ";
+  --
+  -- For Linux platforms
+  --
+  @if (%Station == "lin") then
+    @ifnotdefined (%CSF_LIN_EDL) then
+      @uses "CSF_LIN.edl";
+    @endif;
+  @endif;
 
-      @set %OPENGL_LIB = "/usr/lpp/OpenGL/lib";
-      @string %CSF_OpenGlLibs = "-L" %OPENGL_LIB " -lGLU -lGL ";
+  --
+  -- For Windows platforms
+  --
+  @if (%Station == "wnt") then
+    @ifnotdefined (%CSF_WNT_EDL) then
+      @uses "CSF_WNT.edl";
+    @endif;
+  @endif;
 
-      @string %CSF_TclLibs   = "-I" %CSF_TCL_HOME "/lib/libtcl.exp "; 
-      @string %CSF_TclTkLibs = "-I" %CSF_TCL_HOME "/lib/libtk.exp ";
+  --
+  -- For MacOS platforms (not supported)
+  --
+  @if (%Station == "mac") then
+    @ifnotdefined (%CSF_MAC_EDL) then
+      @uses "CSF_MAC.edl";
+    @endif;
+  @endif;
 
+  --
+  -- For SunOS platforms (not supported)
+  --
+  @if (%Station == "sun") then
+    @ifnotdefined (%CSF_SUN_EDL) then
+      @uses "CSF_SUN.edl";
+    @endif;
+  @endif;
 
-      @string %CSF_JavaHome     = "/missing/JavaHome";
-      @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/aix ";
-      @set %CSF_JAVA_COMPILER   = "javac";
-      @set %CSF_JAVA_JNI        = "javah";
+  --
+  -- The Dec Ultrix platform (not supported)
+  --
+  @if (%Station == "ao1") then
+    @ifnotdefined (%CSF_AO1_EDL) then
+      @uses "CSF_AO1.edl";
+    @endif;
+  @endif;
 
+  --
+  -- The IRIX platform is (not supported)
+  --
+  @if (%Station == "sil") then
+    @ifnotdefined (%CSF_SIL_EDL) then
+      @uses "CSF_SIL.edl";
+    @endif;
+  @endif;
 
+  --
+  -- The HP-UX platform is (not supported)
+  --
+  @if (%Station == "hp") then
+    @ifnotdefined (%CSF_HP_EDL) then
+      @uses "CSF_HP.edl";
+    @endif;
   @endif;
 
   --
-  -- For Mac platforms (not supported)
+  -- The AIX platform is (not supported)
   --
-  @if ( %Station == "mac" ) then
-     @if ( %DBMS == "OBJS" ) then
-        @set %CSF_OODBLibs = "";
-     @endif;
-
-     --<< TODO : If applicable , modify the location of the C++ compiler. 
-     @set %CSF_CXX_COMPILER = "/usr/bin/g++ ";
-     -->> END TODO
-     @set %STLPortHome = "";
-     @if ( %STLPortHome != "") then
-       @string %STLPortInclude = "";
-       @string %STLPortLib = "";
-     @else
-       @set %STLPortInclude = " -I/sw/include ";
-       @set %STLPortLib = "";
-     @endif;
-     @set %CSF_CXX_SysOptions  = "-fPIC -funsigned-char -Wall -fmessage-length=0";
-     @string %CSF_CXX_Options  = " -DOCC_CONVERT_SIGNALS " %STLPortInclude;
-     @set %CSF_CXX_ModeOpt = " -O3 -DNDEBUG -DNo_Exception ";
-     @set %CSF_CXX_ModeOptDeb = " -gdwarf-2 -O0 -DDEB -D_DEBUG ";
-
-     --<< TODO : If applicable , modify the location of the c compiler. 
-     @set %CSF_C_COMPILER = "/usr/bin/gcc ";
-     @string %CSF_C_INCLUDE +=  "";
-     -->> END TODO
-
-     @set %CSF_C_SysOptions  = "-fPIC -funsigned-char -Wall -fexceptions";
-     @set %CSF_C_Options  = "";
-     @set %CSF_C_ModeOpt = " -O3 -DNDEBUG -DNo_Exception ";
-     @set %CSF_C_ModeOptDeb = " -gdwarf-2 -O0 -DDEB -D_DEBUG ";
-
-     --<< TODO : If applicable , modify the location of the Fortran compiler. 
-     @set %CSF_F77_COMPILER = "/sw/bin/gfortran ";
-     -->> END TODO
-
-     @set %CSF_F77_SysOptions  = "-fPIC ";
-     @set %CSF_F77_ModeOpt = " -O3 -DNDEBUG -DNo_Exception ";
-     @set %CSF_F77_ModeOptDeb = " -gdwarf-2 -DDEB -D_DEBUG ";
-
-     @set %CSF_LINKER = "/usr/bin/ld ";
-     @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER ;
-     @set %CSF_LINKER_DBMSOpt = "";
-     @set %CSF_LINKER_SysShared = "-dynamiclib -Wl,-single_module ";
-     @set %CSF_LINKER_SysExe = "";
-     @set %CSF_LINKER_SysOpt = "";
-     @set %CSF_LINKER_SysLib = "-ldl -lc ";
-     @set %CSF_LINKER_CheckOpt = " -nostartfiles ";
-     @set %CSF_LINKER_CheckOut = " -o /dev/null ";
-     @set %CSF_SOCKETLibs = " -ldl" ;
-
-     --<< TODO : If applicable , modify the root location where TCL is installed.
-     @set %CSF_TCL_HOME = "/sw";
-     -->> END TODO
-
-     @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include ";
-
-     --<< TODO : If applicable , modify the root location where Java is installed.
-     @set %CSF_JavaHome        = "/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home";
-     -->> END TODO
-
-     @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I"  %CSF_JavaHome "/Headers" ;
-     @set %CSF_JAVA_COMPILER   = "javac";
-     @set %CSF_JAVA_JNI        = "javah";
-      
-     @set %CSF_DOXIGEN          = "/PRODUCTS/maintenance/Linux/doxygen-1.4.1/bin/doxygen";
-     @set %CSF_GRAPHVIZ_HOME    = "/PRODUCTS/maintenance/Linux/graphviz/bin";
-
-     @set %CSF_X11_INCLUDE = "-I/usr/X11R6/include ";
-     @set %CSF_OPENGL_INCLUDE = "-I/usr/X11R6/include ";
-
-     @set %X11_LIB = "/usr/X11R6/lib";
-
-     @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu -lXi ";
-
-     @string %CSF_OpenGlLibs =  %CSF_XwLibs " -lGLU -lGL " ;
-
-     @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib  -ltcl "; 
-     @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib  -ltk -L" %X11_LIB " -lX11";
+  @if (%Station == "aix") then
+    @ifnotdefined (%CSF_AIX_EDL) then
+      @uses "CSF_AIX.edl";
+    @endif;
   @endif;
 
-   --
-   -- For FreeBSD platforms (not supported)
-   --
-   @if ( %Station == "bsd" ) then
-      @if ( %DBMS == "OBJS" ) then
-        @set %CSF_OODBLibs = "";
-      @endif;
-
-      --<< TODO : If applicable , modify the location of the C++ compiler.
-      @set %CSF_CXX_COMPILER = "c++ ";
-      -->> END TODO
-      @set %STLPortHome = "";
-      @if ( %STLPortHome != "") then
-        @string %STLPortInclude = "-I" %STLPortHome "/stlport ";
-       @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_gcc";
-      @else
-        @set %STLPortInclude = "/usr/local/include/stlport";
-       @string %STLPortLib = "-L/usr/local/lib -lstlport_gcc";
-      @endif;
-      @set %CSF_CXX_SysOptions  = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -fPIC -funsigned-char -Wall -fmessage-length=0";
-      @string %CSF_CXX_Options  = "-DLIN -DLININTEL -DNO_CXX_EXCEPTION " %STLPortInclude;
-
-      --<< TODO : If applicable , modify the location of the C compiler.
-      @set %CSF_C_COMPILER = "cc ";
-      @string %CSF_C_INCLUDE +=  "";
-      -->> END TODO
-
-      @set %CSF_C_SysOptions  = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -fPIC -funsigned-char -Wall";
-      @set %CSF_C_Options  = "-DLIN -DLININTEL ";
-
-      --<< TODO : If applicable , modify the location of the Fortran compiler.
-      @set %CSF_F77_COMPILER = "gfortran42 ";
-      -->> END TODO
-
-      @set %CSF_F77_SysOptions  = "-O -fPIC ";
-
-      @set %CSF_LINKER = "ld ";
-      @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER ;
-      @set %CSF_LINKER_DBMSOpt = "";
-      @set %CSF_LINKER_SysShared = "-shared ";
-      @set %CSF_LINKER_SysExe = "";
-      @set %CSF_LINKER_SysOpt = "";
-      @set %CSF_LINKER_SysLib = "-ldl -lc ";
-      @set %CSF_LINKER_CheckOpt = " -nostartfiles ";
-      @set %CSF_LINKER_CheckOut = " -o /dev/null ";
-      @set %CSF_SOCKETLibs = " -ldl" ;
-
-      --<< TODO : If applicable , modify the root location where TCL is installed.
-      @set %CSF_TCL_HOME = "/usr/local";
-      -->> END TODO
-
-      @string %CSF_TCL_INCLUDE = "/usr/local/include/tcl8.4 ";
-
-      --<< TODO : If applicable , modify the root location where Java is installed.
-      @set %CSF_JavaHome        = "/usr/local/diablo-jdk1.5.0";
-      -->> END TODO
-
-      @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I"  %CSF_JavaHome "/include/freebsd ";
-      @set %CSF_JAVA_COMPILER   = "javac";
-      @set %CSF_JAVA_JNI        = "javah";
-
-      @set %CSF_DOXIGEN          = "/usr/local/bin/doxygen";
-      @set %CSF_GRAPHVIZ_HOME    = "/usr/local/lib/graphviz";
-
-      @set %CSF_X11_INCLUDE = "-I/usr/X11R6/include ";
-      @set %CSF_OPENGL_INCLUDE = "-I/usr/X11R6/include ";
-
-      @set %X11_LIB = "/usr/X11R6/lib";
-
-      @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu -lXi ";
-
-      @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL " ;
-
-      @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib  -ltcl ";
-      @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib  -ltk -L" %X11_LIB " -lX11";
-   @endif;
+  --
+  -- For FreeBSD platforms (not supported)
+  --
+  @if (%Station == "bsd") then
+    @ifnotdefined (%CSF_BSD_EDL) then
+      @uses "CSF_BSD.edl";
+    @endif;
+  @endif;
 
 @endif;
diff --git a/src/WOKBuilderDef/CSF_AIX.edl b/src/WOKBuilderDef/CSF_AIX.edl
new file mode 100644 (file)
index 0000000..0a323cc
--- /dev/null
@@ -0,0 +1,47 @@
+--
+-- This is configuration file for AIX platform (not supported).
+-- Included into "CSF.edl".
+--
+@ifnotdefined (%CSF_AIX_EDL) then
+  @set %CSF_AIX_EDL = "";
+
+  @if (%DBMS == "OBJS") then
+    @set %CSF_OODBLibs = "";
+  @endif;
+
+  @set %CSF_C_COMPILER   = "xlC_r ";
+  @string %CSF_C_INCLUDE +=  "";
+  @set %CSF_CXX_COMPILER = "xlC_r ";
+  @set %CSF_F77_COMPILER = "/usr/bin/f77 ";
+
+  @set %STLPortHome = "";
+  @if (%STLPortHome != "") then
+    @string %STLPortInclude = "-I" %STLPortHome "/stlport";
+    @string %STLPortLib     = "-L" %STLPortHome "/lib -lstlport_xlC50";
+  @else
+    @set %STLPortInclude = "";
+    @set %STLPortLib     = "";
+  @endif;
+
+  @set %CSF_SOCKETLibs = " ";
+
+  @set %CSF_TCL_HOME = "/missing/missing ";
+  @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include ";
+
+  @set %CSF_ThreadLibs = "-lpthread";
+
+  @set %X11_LIB    = "/usr/lpp/X11/lib/R6";
+  @set %CSF_XwLibs = "-L/usr/lpp/X11/lib/R6 -lX11 -lXext -lXmu ";
+
+  @set %OPENGL_LIB = "/usr/lpp/OpenGL/lib";
+  @string %CSF_OpenGlLibs = "-L" %OPENGL_LIB " -lGLU -lGL ";
+
+  @string %CSF_TclLibs   = "-I" %CSF_TCL_HOME "/lib/libtcl.exp ";
+  @string %CSF_TclTkLibs = "-I" %CSF_TCL_HOME "/lib/libtk.exp ";
+
+  @string %CSF_JavaHome     = "/missing/JavaHome";
+  @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/aix ";
+  @set %CSF_JAVA_COMPILER   = "javac";
+  @set %CSF_JAVA_JNI        = "javah";
+
+@endif;
diff --git a/src/WOKBuilderDef/CSF_AO1.edl b/src/WOKBuilderDef/CSF_AO1.edl
new file mode 100644 (file)
index 0000000..c759666
--- /dev/null
@@ -0,0 +1,51 @@
+--
+-- This is configuration file for Dec Ultrix platform (not supported).
+-- Included into "CSF.edl".
+--
+@ifnotdefined (%CSF_AO1_EDL) then
+  @set %CSF_AO1_EDL = "";
+
+  @if (%DBMS == "OBJS") then
+    @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.2/lib/ -los -losthr -loscol -losmop";
+  @endif;
+
+  @set %CSF_C_COMPILER   = "cc ";
+  @string %CSF_C_INCLUDE +=  "";
+  @set %CSF_CXX_COMPILER = "/usr/bin/cxx ";
+  @set %CSF_F77_COMPILER = "";
+
+  @set %STLPortHome = "/dn01/KAS/STLport-4.5.3";
+  @if (%STLPortHome != "") then
+    @string %STLPortInclude = "-I" %STLPortHome "/stlport";
+    @string %STLPortLib     = "-L" %STLPortHome "/lib -lstlport_dec";
+  @else
+    @set %STLPortInclude = "";
+    @set %STLPortLib     = "";
+  @endif;
+
+  @set %CSF_CXX_SysOptions = "-shared ";
+  @set %CSF_CXX_Options = "-DDECOSF1 -DOCC_CONVERT_SIGNALS -D__USE_STD_IOSTREAM ";
+  @set %CSF_CXX_INCLUDE = "-I/usr/include/cxx -I/dn01/KAS/dev/Dec ";
+
+  @set %CSF_C_SysOptions = "";
+  @set %CSF_C_Options    = "-DDECOSF1 -O3 -DOCC_CONVERT_SIGNALS";
+
+  @set %CSF_TCL_HOME = "/usr/tcltk";
+  @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include/itcl ";
+
+  @string %CSF_JavaHome     = "/PRODUCTS/java/j2sdk1_3_1";
+  @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/solaris ";
+  @set %CSF_JAVA_COMPILER   = "javac";
+  @set %CSF_JAVA_JNI        = "javah";
+
+  @set %CSF_ThreadLibs = "-lpthread";
+
+  @set %X11_LIB = "/usr/shlib";
+  @string %CSF_XwLibs  = "-L" %X11_LIB " -lX11 -lXext -lXmu";
+  @set %CSF_dpsLibs    = "-ldps";
+  @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL " %CSF_XwLibs;
+
+  @string %CSF_TclLibs   = "-L" %CSF_TCL_HOME "/lib/itcl -ltcl7.5i";
+  @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib/itcl -ltk4.1i " %CSF_XwLibs;
+
+@endif;
diff --git a/src/WOKBuilderDef/CSF_BSD.edl b/src/WOKBuilderDef/CSF_BSD.edl
new file mode 100644 (file)
index 0000000..9ebbdf1
--- /dev/null
@@ -0,0 +1,80 @@
+--
+-- This is configuration file for FreeBSD platform (not supported).
+-- Included into "CSF.edl".
+--
+@ifnotdefined (%CSF_BSD_EDL) then
+  @set %CSF_BSD_EDL = "";
+
+  @if (%DBMS == "OBJS") then
+    @set %CSF_OODBLibs = "";
+  @endif;
+
+  --<< TODO : If applicable , modify the location of the C++ compiler.
+  @set %CSF_CXX_COMPILER = "c++ ";
+  -->> END TODO
+  @set %STLPortHome = "";
+  @if (%STLPortHome != "") then
+    @string %STLPortInclude = "-I" %STLPortHome "/stlport ";
+    @string %STLPortLib     = "-L" %STLPortHome "/lib -lstlport_gcc";
+  @else
+    @set %STLPortInclude = "/usr/local/include/stlport";
+    @string %STLPortLib  = "-L/usr/local/lib -lstlport_gcc";
+  @endif;
+
+  @set %CSF_CXX_SysOptions  = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -fPIC -funsigned-char -Wall -fmessage-length=0";
+  @string %CSF_CXX_Options  = "-DLIN -DLININTEL -DNO_CXX_EXCEPTION " %STLPortInclude;
+
+  --<< TODO : If applicable , modify the location of the C compiler.
+  @set %CSF_C_COMPILER = "cc ";
+  @string %CSF_C_INCLUDE +=  "";
+  -->> END TODO
+
+  @set %CSF_C_SysOptions = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -fPIC -funsigned-char -Wall";
+  @set %CSF_C_Options    = "-DLIN -DLININTEL ";
+
+  --<< TODO : If applicable , modify the location of the Fortran compiler.
+  @set %CSF_F77_COMPILER = "gfortran42 ";
+  -->> END TODO
+
+  @set %CSF_F77_SysOptions = "-O -fPIC ";
+
+  @set %CSF_LINKER = "ld ";
+  @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER;
+  @set %CSF_LINKER_DBMSOpt   = "";
+  @set %CSF_LINKER_SysShared = "-shared ";
+  @set %CSF_LINKER_SysExe    = "";
+  @set %CSF_LINKER_SysOpt    = "";
+  @set %CSF_LINKER_SysLib    = "-ldl -lc ";
+  @set %CSF_LINKER_CheckOpt  = " -nostartfiles ";
+  @set %CSF_LINKER_CheckOut  = " -o /dev/null ";
+  @set %CSF_SOCKETLibs = " -ldl";
+
+  --<< TODO : If applicable , modify the root location where TCL is installed.
+  @set %CSF_TCL_HOME = "/usr/local";
+  -->> END TODO
+
+  @string %CSF_TCL_INCLUDE = "/usr/local/include/tcl8.4 ";
+
+  --<< TODO : If applicable , modify the root location where Java is installed.
+  @set %CSF_JavaHome        = "/usr/local/diablo-jdk1.5.0";
+  -->> END TODO
+
+  @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I"  %CSF_JavaHome "/include/freebsd ";
+  @set %CSF_JAVA_COMPILER   = "javac";
+  @set %CSF_JAVA_JNI        = "javah";
+
+  @set %CSF_DOXIGEN         = "/usr/local/bin/doxygen";
+  @set %CSF_GRAPHVIZ_HOME   = "/usr/local/lib/graphviz";
+
+  @set %CSF_X11_INCLUDE    = "-I/usr/X11R6/include ";
+  @set %CSF_OPENGL_INCLUDE = "-I/usr/X11R6/include ";
+
+  @set %X11_LIB = "/usr/X11R6/lib";
+
+  @string %CSF_XwLibs     = "-L" %X11_LIB " -lX11 -lXext -lXmu -lXi ";
+  @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL ";
+
+  @string %CSF_TclLibs   = "-L" %CSF_TCL_HOME "/lib  -ltcl ";
+  @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib  -ltk -L" %X11_LIB " -lX11";
+
+@endif;
diff --git a/src/WOKBuilderDef/CSF_HP.edl b/src/WOKBuilderDef/CSF_HP.edl
new file mode 100644 (file)
index 0000000..8460308
--- /dev/null
@@ -0,0 +1,54 @@
+--
+-- This is configuration file for HP-UX platform (not supported).
+-- Included into "CSF.edl".
+--
+@ifnotdefined (%CSF_HP_EDL) then
+  @set %CSF_HP_EDL = "";
+
+  @if (%DBMS == "OBJS") then
+    @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.2/lib/ -los -losthr -loscol -losmop";
+  @endif;
+
+  @set %CSF_C_COMPILER   = "cc ";
+  @string %CSF_C_INCLUDE += "";
+  @set %CSF_CXX_COMPILER = "/opt/aCC/bin/aCC ";
+  @set %CSF_F77_COMPILER = "f77 ";
+  @set %STLPortHome = "";
+  @if (%STLPortHome != "") then
+    @string %STLPortInclude = "-I" %STLPortHome "/stlport";
+    @string %STLPortLib     = "-L" %STLPortHome "/lib -lstlport_aCC";
+  @else
+    @set %STLPortInclude = "";
+    @set %STLPortLib     = "";
+  @endif;
+
+  @string %CSF_CXX_Options = " -w -DHPUX -D_IOSTREAM_INIT_NOT_NEEDED " %STLPortInclude;
+  @set %CSF_C_Options = " -DHPUX ";
+
+  @set %CSF_TCL_HOME = "/missing/missing ";
+  @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include ";
+
+  @set %CSF_X11_INCLUDE    = "-I/usr/include/X11R6 ";
+  @set %CSF_XMU_INCLUDE    = "-I/usr/contrib/X11R6/include ";
+  @set %CSF_MOTIF_INCLUDE  = "-I/usr/include/Motif1.2 ";
+  @set %CSF_OPENGL_INCLUDE = "-I/opt/graphics/OpenGL/include ";
+
+  @set %CSF_SOCKETLibs = "";
+  @set %CSF_ThreadLibs = "-lpthread";
+
+  @set %X11_LIB    = "/usr/lib/X11R6";
+  @set %XMU_LIB    = "/PRODUCTS/Xmu-R6";
+  @set %OPENGL_LIB = "/opt/graphics/OpenGL/lib";
+
+  @string %CSF_XwLibs     = "-L" %X11_LIB " -lX11 -lXext -L" %XMU_LIB " -lXmu";
+  @string %CSF_OpenGlLibs = "-L" %OPENGL_LIB " -lGLU -lGL ";
+
+  @string %CSF_TclLibs   = "-L" %CSF_TCL_HOME "/lib -ltcl";
+  @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -ltk";
+
+  @string %CSF_JavaHome     = "/missing/JavaHome";
+  @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/hp-ux ";
+  @set %CSF_JAVA_COMPILER   = "javac";
+  @set %CSF_JAVA_JNI        = "javah";
+
+@endif;
diff --git a/src/WOKBuilderDef/CSF_LIN.edl b/src/WOKBuilderDef/CSF_LIN.edl
new file mode 100644 (file)
index 0000000..c62b500
--- /dev/null
@@ -0,0 +1,79 @@
+--
+-- This is configuration file for Linux platform.
+-- Included into "CSF.edl".
+--
+@ifnotdefined (%CSF_LIN_EDL) then
+  @set %CSF_LIN_EDL = "";
+
+  @if (%DBMS == "OBJS") then
+    @set %CSF_OODBLibs = "";
+  @endif;
+
+  -- gcc tools should be available in PATH
+  -- C++ compiler
+  @set %CSF_CXX_COMPILER   = "g++ ";
+  @set %CSF_CXX_SysOptions = " -fPIC -DPIC";
+  @string %CSF_CXX_Options = " -DLIN -DLININTEL -DOCC_CONVERT_SIGNALS -D_GNU_SOURCE=1 " %CSF_PRODUCTS_DEFINES " ";
+  @set %CSF_CXX_ModeOpt    = " -O3 -DNDEBUG -DNo_Exception ";
+  @set %CSF_CXX_ModeOptDeb = " -g -O0 -DDEB -D_DEBUG ";
+
+  -- C compiler
+  @set %CSF_C_COMPILER = "gcc ";
+  @string %CSF_C_INCLUDE +=  "";
+  @set %CSF_C_SysOptions = " -fPIC -DPIC";
+  @set %CSF_C_Options    = " -DLIN -DLININTEL -D_GNU_SOURCE=1 ";
+  @set %CSF_C_ModeOpt    = " -O3 -DNDEBUG -DNo_Exception ";
+  @set %CSF_C_ModeOptDeb = " -O0 -g -DDEB -D_DEBUG ";
+
+  -- Fortran compiler
+  @set %CSF_F77_COMPILER   = "f77 ";
+  @set %CSF_F77_SysOptions = " -fPIC ";
+  @set %CSF_F77_ModeOpt    = " -O3 -DNDEBUG -DNo_Exception ";
+  @set %CSF_F77_ModeOptDeb = " -g -DDEB -D_DEBUG ";
+
+  -- Linker settings
+  @string %CSF_LINKER = "ld ";
+  @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER;
+  @set %CSF_LINKER_DBMSOpt = "";
+  @set %CSF_LINKER_SysShared = "-shared ";
+  @set %CSF_LINKER_SysExe = "";
+  @set %CSF_LINKER_SysOpt = "";
+  @set %CSF_LINKER_SysLib = "-lc ";
+  @set %CSF_LINKER_CheckOpt = "-Bdynamic ";
+  @set %CSF_LINKER_CheckOut = "-o /dev/null ";
+  @set %CSF_SOCKETLibs = " -ldl";
+
+  -- Java compiler
+  @set %CSF_JAVA_COMPILER   = "javac";
+  @set %CSF_JAVA_JNI        = "javah";
+  @if (%CSF_JavaHome != "") then
+    @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/linux ";
+  @endif;
+
+  @if (%CSF_GRAPHVIZ_HOME == "") then
+    @set %CSF_GRAPHVIZ_HOME = "/usr/bin";
+  @endif;
+
+  -- system libraries (X11 / pthreads / OpenGL)
+  @set %CSF_X11_INCLUDE     = "-I/usr/include ";
+  @set %CSF_OPENGL_INCLUDE  = "-I/usr/include ";
+  @set %CSF_ThreadLibs = "-lpthread -lrt";
+  @set %X11_LIB = "/usr/X11R6/lib";
+  @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu -lXi ";
+  @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL ";
+  @string %CSF_MotifLibs  = "-L" %X11_LIB " -lX11 ";
+
+  -- Tcl/Tk configuration
+  @if (%CSF_TCL_HOME != "") then
+    @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include ";
+    @string %CSF_TclLibs   = "-L" %CSF_TCL_HOME "/lib -ltcl8.5 ";
+    @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -ltk8.5 -L" %X11_LIB " -lX11 ";
+  @else
+    @string %CSF_TclLibs   = " -ltcl8.5 ";
+    @string %CSF_TclTkLibs = " -ltk8.5 -L" %X11_LIB " -lX11 ";
+  @endif;
+
+  -- FTGL (font renderer for OpenGL)
+  @set %CSF_FTGL = "-lftgl ";
+
+@endif;
diff --git a/src/WOKBuilderDef/CSF_MAC.edl b/src/WOKBuilderDef/CSF_MAC.edl
new file mode 100644 (file)
index 0000000..2d8c52f
--- /dev/null
@@ -0,0 +1,76 @@
+--
+-- This is configuration file for MacOS platform (not supported).
+-- Included into "CSF.edl".
+--
+@ifnotdefined (%CSF_MAC_EDL) then
+  @set %CSF_MAC_EDL = "";
+
+  @if (%DBMS == "OBJS") then
+    @set %CSF_OODBLibs = "";
+  @endif;
+
+  @set %CSF_CXX_COMPILER = "g++ ";
+
+  @set %CSF_CXX_SysOptions = " -fPIC -funsigned-char -Wall -fmessage-length=0";
+  @string %CSF_CXX_Options = " -DOCC_CONVERT_SIGNALS " %CSF_PRODUCTS_DEFINES " ";
+  @set %CSF_CXX_ModeOpt    = " -O3 -DNDEBUG -DNo_Exception ";
+  @set %CSF_CXX_ModeOptDeb = " -gdwarf-2 -O0 -DDEB -D_DEBUG ";
+
+  @set %CSF_C_COMPILER = "gcc ";
+  @string %CSF_C_INCLUDE +=  "";
+
+  @set %CSF_C_SysOptions = " -fPIC -funsigned-char -Wall -fexceptions";
+  @set %CSF_C_Options    = "";
+  @set %CSF_C_ModeOpt    = " -O3 -DNDEBUG -DNo_Exception ";
+  @set %CSF_C_ModeOptDeb = " -gdwarf-2 -O0 -DDEB -D_DEBUG ";
+
+  -- Fortran compiler
+  @set %CSF_F77_COMPILER = "/sw/bin/gfortran ";
+  @set %CSF_F77_SysOptions = " -fPIC ";
+  @set %CSF_F77_ModeOpt    = " -O3 -DNDEBUG -DNo_Exception ";
+  @set %CSF_F77_ModeOptDeb = " -gdwarf-2 -DDEB -D_DEBUG ";
+
+  -- Linker settings
+  @set %CSF_LINKER = "ld ";
+  @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER ;
+  @set %CSF_LINKER_DBMSOpt = "";
+  @set %CSF_LINKER_SysShared = "-dynamiclib -Wl,-single_module ";
+  @set %CSF_LINKER_SysExe = "";
+  @set %CSF_LINKER_SysOpt = "";
+  @set %CSF_LINKER_SysLib = "-ldl -lc ";
+  @set %CSF_LINKER_CheckOpt = " -nostartfiles ";
+  @set %CSF_LINKER_CheckOut = " -o /dev/null ";
+  @set %CSF_SOCKETLibs = " -ldl";
+
+  -- Java compiler
+  @set %CSF_JAVA_COMPILER   = "javac";
+  @set %CSF_JAVA_JNI        = "javah";
+  @set %CSF_JavaHome        = "/System/Library/Frameworks/JavaVM.framework/Home";
+  @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include ";
+
+  @set %CSF_DOXIGEN         = "/PRODUCTS/maintenance/Linux/doxygen-1.4.1/bin/doxygen";
+  @set %CSF_GRAPHVIZ_HOME   = "/PRODUCTS/maintenance/Linux/graphviz/bin";
+
+  @set %CSF_X11_INCLUDE    = "-I/usr/X11R6/include ";
+  @set %CSF_OPENGL_INCLUDE = "-I/usr/X11R6/include ";
+
+  @set %X11_LIB = "/usr/X11R6/lib";
+
+  @string %CSF_XwLibs     = "-L" %X11_LIB " -lX11 -lXext -lXmu -lXi ";
+  @string %CSF_OpenGlLibs = %CSF_XwLibs " -lGLU -lGL ";
+  @string %CSF_MotifLibs  = "-L" %X11_LIB " -lX11 ";
+
+  -- Tcl/Tk configuration
+  @if (%CSF_TCL_HOME != "") then
+    @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include ";
+    @string %CSF_TclLibs   = "-L" %CSF_TCL_HOME "/lib -ltcl8.5 ";
+    @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -ltk8.5 -L" %X11_LIB " -lX11 ";
+  @else
+    @string %CSF_TclLibs   = " -ltcl8.5 ";
+    @string %CSF_TclTkLibs = " -ltk8.5 -L" %X11_LIB " -lX11 ";
+  @endif;
+
+  -- FTGL (font renderer for OpenGL)
+  @set %CSF_FTGL = "-lftgl ";
+
+@endif;
diff --git a/src/WOKBuilderDef/CSF_SIL.edl b/src/WOKBuilderDef/CSF_SIL.edl
new file mode 100644 (file)
index 0000000..6030ccb
--- /dev/null
@@ -0,0 +1,71 @@
+--
+-- This is configuration file for IRIX platform (not supported).
+-- Included into "CSF.edl".
+--
+@ifnotdefined (%CSF_SIL_EDL) then
+  @set %CSF_SIL_EDL = "";
+
+  @if (%DBMS == "OBJS") then
+    @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.3/lib/ -los -losths -loscol -losmop";
+  @endif;
+
+  @set %CSF_C_COMPILER   = "cc ";
+  @string %CSF_C_INCLUDE +=  "";
+  @set %CSF_C_SysOptions = " -signed -n32 -mips4 ";
+  @set %CSF_C_Options    = "-DIRIX ";
+  @set %CSF_C_ModeOpt = " -O3 -DNo_Exception -TARG:processor=R10000 ";
+  @set %CSF_C_ModeOptDeb = " -g -gslim -DDEB ";
+
+  @set %CSF_CXX_COMPILER = "/usr/bin/CC ";
+  @set %STLPortHome = "";
+  @if (%STLPortHome != "") then
+    @string %STLPortInclude = "-I" %STLPortHome "/stlport";
+    @string %STLPortLib     = "-L" %STLPortHome "/lib -lstlport_mipspro";
+  @else
+    @set %STLPortInclude = "";
+    @set %STLPortLib     = "";
+  @endif;
+
+  @set %CSF_CXX_SysOptions = " -signed -n32 -mips4 -woff 3115 -woff 3273 -woff 1021 -woff 1188 -woff 1460 -woff 3303 -ptused";
+  @string %CSF_CXX_Options = "-DIRIX -DOCC_CONVERT_SIGNALS " %STLPortInclude;
+  @set %CSF_CXX_ModeOpt    = " -O3 -DNo_Exception -D__INLINE_INTRINSICS -TARG:processor=R10000 ";
+  @set %CSF_CXX_ModeOptDeb = " -g -gslim -DDEB ";
+
+  @set %CSF_F77_COMPILER   = "f77 ";
+  @set %CSF_F77_ModeOpt    = " -O3 ";
+  @set %CSF_F77_ModeOptDeb = " -g ";
+
+  @set %CSF_LINKER = "/usr/bin/ld";
+  @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER;
+  @set %CSF_LINKER_SysShared = " -shared ";
+  @set %CSF_LINKER_SysExe = "";
+  @set %CSF_LINKER_SysOpt = " -n32 -mips3 -Wl,-mmap -multigot -no_prelink ";
+  @set %CSF_LINKER_SysLib = "";
+  @set %CSF_LINKER_CheckOpt = " -n32 -mips3 -mmap -multigot -no_unresolved ";
+  @set %CSF_LINKER_CheckOut = " -o /dev/null";
+
+  @set %CSF_FPELibs = "-L/usr/lib32 -lfpe";
+  @set %CSF_pthread = "-lpthread";
+
+  @set %CSF_TCL_HOME = "/usr/tcltk.64";
+  @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include/itcl ";
+
+  @set %CSF_X11_INCLUDE_EXTENSION = " -I/usr/include/X11/extensions ";
+
+  @string %CSF_JavaHome     = "/PRODUCTS/java/sil_1.2";
+  @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/irix ";
+  @set %CSF_JAVA_COMPILER   = "javac";
+  @set %CSF_JAVA_JNI        = "javah";
+
+  @set %CSF_ThreadLibs = "-lpthread";
+
+  @set %X11_LIB = "/usr/lib32";
+
+  @set %CSF_dpsLibs       = "-L/usr/lib32 -ldps";
+  @string %CSF_XwLibs     = "-L" %X11_LIB " -lX11 -lXext -lXmu";
+  @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL ";
+
+  @string %CSF_TclLibs    = "-L" %CSF_TCL_HOME "/lib/itcl -rpath " %CSF_TCL_HOME "/lib/itcl -ltcl7.5i";
+  @string %CSF_TclTkLibs  = "-L" %CSF_TCL_HOME "/lib/itcl -rpath " %CSF_TCL_HOME "/lib/itcl -ltk4.1i";
+
+@endif;
diff --git a/src/WOKBuilderDef/CSF_SUN.edl b/src/WOKBuilderDef/CSF_SUN.edl
new file mode 100644 (file)
index 0000000..f162dcc
--- /dev/null
@@ -0,0 +1,92 @@
+--
+-- This is configuration file for SunOS platform (not supported).
+-- Included into "CSF.edl".
+--
+@ifnotdefined (%CSF_SUN_EDL) then
+  @set %CSF_SUN_EDL = "";
+
+  @if (%DBMS == "OBJS") then
+    @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.2/sunpro/lib/ -los -losthr -loscol -losmop";
+  @endif;
+
+  --<< TODO : If applicable , modify the location of the C++ compiler.
+  @set %CSF_CXX_COMPILER = "/opt/DEV5_1/SUNWspro/bin/CC";
+  -->> END TODO
+
+  @set %STLPortHome = "";
+  @if (%STLPortHome != "") then
+    @string %STLPortInclude = "-I" %STLPortHome "/stlport";
+    @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_sunpro42";
+  @else
+    @set %STLPortInclude = "";
+    @set %STLPortLib = "";
+  @endif;
+
+  @set %CSF_CXX_SysOptions  = "-PIC -xchip=ultra -xarch=v8 -vdelx -Usun -instances=static ";
+  @string %CSF_CXX_Options  = "-DSOLARIS -DOCC_CONVERT_SIGNALS "%STLPortInclude;
+  @set %CSF_CXX_ModeOpt = " -O2 -DNo_Exception +w ";
+  @set %CSF_CXX_ModeOptDeb = " -g0 -DDEB +w ";
+  @string %CSF_CXX_INCLUDE +=  " -I" %CSF_CXX_COMPILER "/../../SC4.2/include/CC ";
+
+  --<< TODO : If applicable , modify the location of the c compiler.
+  @set %CSF_C_COMPILER   = "/opt/DEV5_1/SUNWspro/bin/cc ";
+  @string %CSF_C_INCLUDE +=  "";
+  -->> END TODO
+
+  @set %CSF_C_SysOptions = "-K PIC -Usun ";
+  @set %CSF_C_Options    = "-DSOLARIS ";
+  @set %CSF_C_ModeOpt    = " -O2 -DNo_Exception +w ";
+  @set %CSF_C_ModeOptDeb = " -g0 -DDEB +w ";
+
+  @set %CSF_F77_COMPILER   = "f77 ";
+  @set %CSF_F77_SysOptions = "-PIC";
+  @set %CSF_F77_ModeOpt    = " -O2 ";
+  @set %CSF_F77_ModeOptDeb = " -g ";
+
+  @set %CSF_LINKER = "/usr/ccs/bin/ld ";
+  @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER;
+  @if (%DBMS == "OBJS") then
+    @set %CSF_LINKER_DBMSOpt = "-mt ";
+  @endif;
+  @set %CSF_LINKER_SysShared = "-G ";
+  @set %CSF_LINKER_SysExe    = "";
+  @set %CSF_LINKER_SysOpt    = "-xchip=ultra -xarch=v8 ";
+  @set %CSF_LINKER_SysLib    = " -lC -lc ";
+  @set %CSF_LINKER_CheckOpt  = "";
+  @set %CSF_LINKER_CheckOut  = "-o /dev/null ";
+
+  --<< TODO : If applicable , modify the root location where Java is installed.
+  @set %CSF_JavaHome        = "/PRODUCTS/java/jdk1.2";
+  -->> END TODO
+
+  @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I"  %CSF_JavaHome "/include/solaris ";
+  @string %CSF_JavaLibs     = " -L" %CSF_JavaHome "/jre/lib/sparc/ -ljava ";
+  @set %CSF_JAVA_COMPILER   = "javac";
+  @set %CSF_JAVA_JNI        = "javah";
+
+  @set %CSF_DOXIGEN         = "/dn02/users_Sun/cascade/doxigen/bin/doxigen";
+  @set %CSF_GRAPHVIZ_HOME   = "/dn02/users_Sun/cascade/graphviz";
+
+  @set %CSF_SOCKETLibs = "-lsocket -lnsl -lsunmath -lm -ldl  -lc ";
+  ---@set %CSF_RISCRETURNObject = "/missing/missing/risc_return.o";
+  @set %CSF_RISCRETURNObject = "/dn01/KAS/dev/Gallery/src/EngineStarter/risc_return.o";
+  --<< TODO : If applicable , modify the root location where TCL is installed.
+  @set %CSF_TCL_HOME = "/PRODUCTS/tcltk-84";
+  -->> END TODO
+
+  @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include -DUSE_NON_CONST ";
+  @string %CSF_TclLibs     = "-L" %CSF_TCL_HOME "/lib -R" %CSF_TCL_HOME "/lib -ltcl8.4 ";
+  @string %CSF_TclTkLibs   = "-L" %CSF_TCL_HOME "/lib -R" %CSF_TCL_HOME "/lib -ltk8.4 ";
+
+  @set %X11_LIB            = "/usr/openwin/lib";
+  @set %CSF_X11_INCLUDE    = "-I/usr/openwin/include/X11 ";
+  @set %CSF_OPENGL_INCLUDE = "-I/usr/openwin/include ";
+
+  @set %CSF_ThreadLibs = "-lpthread";
+
+  @string %CSF_dpsLibs = "-L" %X11_LIB " -ldps";
+  @string %CSF_XwLibs  = "-L" %X11_LIB " -lX11 -lXext -lXmu";
+  @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL ";
+  @string %CSF_MotifLibs  = "-L/usr/dt/lib -lXm -L" %X11_LIB " -lXt -lX11";
+
+@endif;
diff --git a/src/WOKBuilderDef/CSF_WNT.edl b/src/WOKBuilderDef/CSF_WNT.edl
new file mode 100644 (file)
index 0000000..ba8a027
--- /dev/null
@@ -0,0 +1,83 @@
+--
+-- This is configuration file for Windows platform only.
+-- Included into "CSF.edl".
+--
+@ifnotdefined (%CSF_WNT_EDL) then
+  @set %CSF_WNT_EDL = "";
+
+  -- Target configuration
+  @set %ENV_ARCH = "${ARCH}";
+  @if (%ENV_ARCH == "64") then
+    @set %CSF_VC_MACHINE = " -machine:X64";
+    @set %CSF_ARCH = "64";
+  @else
+    @set %CSF_VC_MACHINE = " -machine:IX86";
+    @set %CSF_ARCH = "32";
+  @endif;
+
+  -- Visual Studio compilers and tools should be set in PATH
+  @set %CSF_CXX_COMPILER   = "cl.exe ";
+  @set %CSF_CXX_SysOptions = " -nologo -W3 ";
+  @string %CSF_CXX_Options = " -DWNT -D_WINDOWS -D_CRT_SECURE_NO_DEPRECATE " %CSF_PRODUCTS_DEFINES " ";
+  @set %CSF_CXX_ModeOpt    = " -MD  -EHa -O2 -Gy -DNDEBUG -DNo_Exception ";
+  @set %CSF_CXX_ModeOptDeb = " -MDd -EHa -Od -Gm -Zi -DDEB -D_DEBUG ";
+
+  -- C compiler
+  @set %CSF_C_COMPILER   = "cl.exe ";
+  @set %CSF_C_SysOptions = " -nologo -W3 ";
+  @string %CSF_C_Options = " -DWNT -D_WINDOWS -D_CRT_SECURE_NO_DEPRECATE " %CSF_PRODUCTS_DEFINES " ";
+  @set %CSF_C_ModeOpt    = " -MD  -EHa -O2 -Gy -DNDEBUG -DNo_Exception ";
+  @set %CSF_C_ModeOptDeb = " -MDd -EHa -Od -Gm -Zi -DDEB -D_DEBUG ";
+
+  -- Fortran compiler
+  @set %CSF_F77_COMPILER   = "fl32.exe ";
+  @set %CSF_F77_SysOptions = " -nologo -libs:dll -Zi ";
+  @set %CSF_F77_ModeOpt    = " -DNDEBUG -DNo_Exception ";
+  @set %CSF_F77_ModeOptDeb = " -DDEB -D_DEBUG ";
+
+  -- Java compiler
+  @set %CSF_JAVA_COMPILER  = "javac";
+  @set %CSF_JAVA_JNI       = "javah";
+
+  -- Linker settings
+  @set %CSF_LINKER = "link.exe ";
+  @set %CSF_CXX_COMPILERLINKER = %CSF_LINKER;
+  @set %CSF_LINKER_DBMSOpt = "";
+  @set %CSF_LINKER_SysShared = "-subsystem:windows -dll ";
+  @set %CSF_LINKER_SysExe  = "CSF_LINKER_SysExeC";
+  @set %CSF_LINKER_SysExeC = "-subsystem:CONSOLE";
+  @set %CSF_LINKER_SysExeW = "-subsystem:WINDOWS";
+  @string %CSF_LINKER_SysOpt = "-nologo -incremental:no" %CSF_VC_MACHINE " -debug ";
+  @set %CSF_LINKER_SysLib  = "";
+
+  @set %CSF_LibraryHeaderLib = "lib.exe ";
+  @set %CSF_LibraryHeaderOpt = "-nologo ";
+
+  -- WinAPI libraries
+  @set %CSF_kernel32   = "kernel32.lib";
+  @set %CSF_advapi32   = "advapi32.lib";
+  @set %CSF_gdi32      = "gdi32.lib";
+  @set %CSF_user32     = "user32.lib";
+  @set %CSF_glu32      = "glu32.lib";
+  @set %CSF_opengl32   = "opengl32.lib";
+  @set %CSF_wsock32    = "wsock32.lib";
+  @set %CSF_netapi32   = "netapi32.lib";
+  @set %CSF_AviLibs    = "ws2_32.lib vfw32.lib";
+  @set %CSF_OpenGlLibs = "opengl32.lib glu32.lib";
+
+  --
+  -- 3rd-parties precompiled libraries
+  --
+
+  -- Tcl/Tk configuration
+  @string %CSF_TclLibs   = "tcl85.lib";
+  @string %CSF_TclTkLibs = "tk85.lib";
+
+  -- FTGL (font renderer for OpenGL)
+  @string %CSF_FTGL = "ftgl_dynamic_MTD.lib";
+
+  -- Qt4 framework, doesn't required for OCCT itself
+  @string %CSF_QT_INCLUDES = " ";
+  @string %CSF_QT = "QtCore4.lib QtGui4.lib";
+
+@endif;
index 741001679969c28195bd2745de17f9da0f66394a..5c2d7b5f1327e494962283742f3597d1cef7d597 100755 (executable)
            %CSF_JavaHome,
             %JAVA_Command, %JAVA_Options, %IncludeDir, %Source, %OutDir
            ) is
- $%CSF_JavaHome/bin/%JAVA_Command %JAVA_Options -classpath %IncludeDir -d %OutDir %Source\^
+ $%JAVA_Command %JAVA_Options -classpath %IncludeDir -d %OutDir %Source\^
  @end;
 
  @template JAVA_Header (
             %CSF_JavaHome,
             %JAVA_HeaderCommand, %JAVA_HeaderOptions, %IncludeDir, %Class, %OutFile
            ) is
- $%CSF_JavaHome/bin/%JAVA_HeaderCommand %JAVA_HeaderOptions -classpath %IncludeDir -o %OutFile %Class\^
+ $%JAVA_HeaderCommand %JAVA_HeaderOptions -classpath %IncludeDir -o %OutFile %Class\^
  @end;
 @endif;
 
-@string %CXX_JAVA = " -I" %CSF_JavaHome "/include ";
+--@string %CXX_JAVA = " -I" %CSF_JavaHome "/include ";
 
 @if ( %Station == "sun" ) then
     @string %CXX_JAVA += " -I" %CSF_JavaHome "/include/solaris ";
index 111554e1c245a9c919c9111d26eaf0ea796a9889..ef861297b4f77b7763a60f93089b6f3929105e71 100755 (executable)
@@ -1,85 +1,96 @@
--- File                :       LINK.edl
--- Author      :       Eugeny PLOTNIKOV
--- Date                :       23-OCT-1996
--- Copyright   :       MATRA Datavision
--- Purpose     :       Defines tools for link and library management
---                     ( Microsoft Visual C/C++ V4.1 )
-
-@ifnotdefined ( %LINK_EDL ) then
+-- File      :  LINK.edl
+-- Author    :  Eugeny PLOTNIKOV
+-- Date      :  23-OCT-1996
+-- Copyright :  MATRA Datavision
+-- Purpose   :  Defines tools for link and library management (Microsoft Visual C/C++)
+
+@ifnotdefined (%LINK_EDL) then
 -- @set %LINK_EDL = ""--; Syntax error
- @cout "LINK";
-
- @uses "CSF.edl";
-
--- filename extension for linker command file ( DLL )
- @set %LINK_LinkerCFExtDLL = ".lnkDLL";
-
--- filename extension for linker command file ( EXE )
- @set %LINK_LinkerCFExtEXE = ".lnkEXE";
-
--- switch for linker .def file
- @set %LINK_LinkerDEFSwitch = " -def:";
-
- @set %LINK_LinkerImplib    = " -implib:";
- @set %LINK_LinkerOutput    = " -out:";
-
- @set %LINKModeOpt  = "-debug";
-
--- Set %LINK_NoDefStub if you do not want to link with stub objects
- @set %LINK_NoDefStub = "1 ";
-
- @if ( %DebugMode == "True" ) then
-       @set %LinkModeOpt = "-debug ";
-       @set %LINK_LinkerPDBOption = " -pdb:";
-       @template LINK_LinkerPDB ( %CollectorOutput ) is
-               $%CollectorOutput.pdb\^
-       @end;
- @else
-       @set %LinkModeOpt = " ";
-       @set %LINK_LinkerPDBOption = " ";
-       @template LINK_LinkerPDB ( %CollectorOutput ) is
-               $ \^
-       @end;
-
- @endif;
-
- @template LINK_LinkerIMP ( %CollectorOutput ) is
-       $%CollectorOutput.lib\^
- @end;
-
- @template LINK_LinkerEXP ( %CollectorOutput ) is
-       $%CollectorOutput.exp\^
- @end;
-
- @template LINK_DLLMAN ( %CollectorOutput ) is
-       $%CollectorOutput.dll.manifest\^
- @end;
-
- @template LINK_EXEMAN ( %CollectorOutput ) is
-       $%CollectorOutput.exe.manifest\^
- @end;
-
- @template LINK_LinkerDLL ( %CollectorOutput ) is
-       $%CollectorOutput.dll\^
- @end;
-
- @template LINK_LinkerEXE ( %CollectorOutput ) is
-       $%CollectorOutput.exe\^
- @end;
-
- @template LINK_LinkerHeaderDLL ( %CSF_LINKER ,
-                                               %Station,
-                                               %LINKModeOpt ) is
-       $%CSF_LINKER -nologo -subsystem:windows -dll -incremental:no -machine:IX86 %LINKModeOpt \^
- @end;
-
- @template LINK_LinkerHeaderEXE ( %CSF_LINKER ,
-                                               %Station,
-                                               %LINKModeOpt,
-                                               %LinkSubsystem ) is
-       $%CSF_LINKER -nologo -subsystem:%LinkSubsystem -incremental:no -machine:IX86 %LINKModeOpt \^
- @end;
+  @cout "LINK";
+
+  @uses "CSF.edl";
+
+  -- filename extension for linker command file ( DLL )
+  @set %LINK_LinkerCFExtDLL = ".lnkDLL";
+
+  -- filename extension for linker command file ( EXE )
+  @set %LINK_LinkerCFExtEXE = ".lnkEXE";
+
+  -- switch for linker .def file
+  @set %LINK_LinkerDEFSwitch = " -def:";
+
+  @set %LINK_LinkerImplib    = " -implib:";
+  @set %LINK_LinkerOutput    = " -out:";
+
+  @set %LINKModeOpt  = "-debug";
+
+  -- Set %LINK_NoDefStub if you do not want to link with stub objects
+  @set %LINK_NoDefStub = "1 ";
+
+  @if (%DebugMode == "True") then
+    @set %LinkModeOpt = "-debug ";
+    @set %LINK_LinkerPDBOption = " -pdb:";
+    @template LINK_LinkerPDB (%CollectorOutput) is
+      $%CollectorOutput.pdb\^
+    @end;
+  @else
+    @set %LinkModeOpt = " ";
+    @set %LINK_LinkerPDBOption = " ";
+    @template LINK_LinkerPDB (%CollectorOutput) is
+      $ \^
+    @end;
+  @endif;
+
+  @template LINK_LinkerIMP (%CollectorOutput) is
+    $%CollectorOutput.lib\^
+  @end;
+
+  @template LINK_LinkerEXP (%CollectorOutput) is
+    $%CollectorOutput.exp\^
+  @end;
+
+  @template LINK_DLLMAN (%CollectorOutput) is
+    $%CollectorOutput.dll.manifest\^
+  @end;
+
+  @template LINK_EXEMAN (%CollectorOutput) is
+    $%CollectorOutput.exe.manifest\^
+  @end;
+
+  @template LINK_LinkerDLL (%CollectorOutput) is
+    $%CollectorOutput.dll\^
+  @end;
+
+  @template LINK_LinkerEXE (%CollectorOutput) is
+    $%CollectorOutput.exe\^
+  @end;
+
+  @if (%CSF_ARCH == "64") then
+    @template LINK_LinkerHeaderDLL (%CSF_LINKER,
+                                    %Station,
+                                    %LINKModeOpt) is
+      $%CSF_LINKER -nologo -subsystem:windows -dll -incremental:no -machine:X64 %LINKModeOpt \^
+    @end;
+
+    @template LINK_LinkerHeaderEXE (%CSF_LINKER,
+                                    %Station,
+                                    %LINKModeOpt,
+                                    %LinkSubsystem) is
+      $%CSF_LINKER -nologo -subsystem:%LinkSubsystem -incremental:no -machine:X64 %LINKModeOpt \^
+    @end;
+  @else
+    @template LINK_LinkerHeaderDLL (%CSF_LINKER,
+                                    %Station,
+                                    %LINKModeOpt) is
+      $%CSF_LINKER -nologo -subsystem:windows -dll -incremental:no -machine:IX86 %LINKModeOpt \^
+    @end;
+
+    @template LINK_LinkerHeaderEXE (%CSF_LINKER,
+                                    %Station,
+                                    %LINKModeOpt,
+                                    %LinkSubsystem) is
+      $%CSF_LINKER -nologo -subsystem:%LinkSubsystem -incremental:no -machine:IX86 %LINKModeOpt \^
+    @end;
+  @endif;
 
 @endif;
index 0e862695dca6b0f8330875974671679c94237329..06259bd939de0568e5502505feedfe7882a4ac80 100755 (executable)
@@ -55,8 +55,8 @@
      @set %WOKSteps_delivery_lib_shared_list_extensions = ".dylib .ImplDep";
   @endif;
   @if (%Station == "wnt") then
-    @set %WOKSteps_delivery_lib_shared_list_extensions = ".DLL .LIB .PDB .ImplDep";
-    @string %WOKSteps_delivery_lib_shared_list_steps +=" obj.implib";
+    --@set %WOKSteps_delivery_lib_shared_list_extensions = ".DLL .LIB .PDB .ImplDep";
+    --@string %WOKSteps_delivery_lib_shared_list_steps +=" obj.implib";
   @endif;
 
 @endif;
index 15d4da502b5a9840f026206556cb877136adcacb..d89ef1c2de9c7a722fd30ddc4a9f72be4d4289cd 100755 (executable)
@@ -6,23 +6,23 @@
 @ifnotdefined ( %WOKSteps_package_wnt_EDL) then
 @set %WOKSteps_package_wnt_EDL = "";
 
-@string %WOKSteps_DepGroup  += " obj.implib ";
-@set    %WOKSteps_obj_implib = "WOKStep_ImportLibrary(obj.comp)";
+--@string %WOKSteps_DepGroup  += " obj.implib ";
+--@set    %WOKSteps_obj_implib = "WOKStep_ImportLibrary(obj.comp)";
 
 --@set %WOKSteps_LibGroup = " obj.libs obj.tks obj.lib";
 
-@set %WOKSteps_obj_libs = "WOKStep_DirectLinkList(obj.comp,obj.idep)";
-@set %WOKSteps_obj_tks  = "WOKStep_DirectTKReplace(obj.libs)";
-@set %WOKSteps_obj_lib  = "WOKStep_DLLink(obj.tks,obj.implib)";
-
-@set %WOKSteps_toolkit_LinksWith    = " obj.implib ";
-@set %WOKSteps_package_LinksWith    = " obj.implib ";
-@set %WOKSteps_nocdlpack_LinksWith  = " obj.implib ";
-@set %WOKSteps_engine_LinksWith     = " obj.implib ";
-@set %WOKSteps_interface_LinksWith  = " obj.implib ";
-@set %WOKSteps_executable_LinksWith = " obj.implib ";
-@set %WOKSteps_jini_LinksWith       = " obj.implib ";
-@set %WOKSteps_schema_LinksWith     = " obj.implib ";
+--@set %WOKSteps_obj_libs = "WOKStep_DirectLinkList(obj.comp,obj.idep)";
+--@set %WOKSteps_obj_tks  = "WOKStep_DirectTKReplace(obj.libs)";
+--@set %WOKSteps_obj_lib  = "WOKStep_DLLink(obj.tks,obj.implib)";
+
+--@set %WOKSteps_toolkit_LinksWith    = " obj.implib ";
+--@set %WOKSteps_package_LinksWith    = " obj.implib ";
+--@set %WOKSteps_nocdlpack_LinksWith  = " obj.implib ";
+--@set %WOKSteps_engine_LinksWith     = " obj.implib ";
+--@set %WOKSteps_interface_LinksWith  = " obj.implib ";
+--@set %WOKSteps_executable_LinksWith = " obj.implib ";
+--@set %WOKSteps_jini_LinksWith       = " obj.implib ";
+--@set %WOKSteps_schema_LinksWith     = " obj.implib ";
 
 --- on ajoute src pour les .res 
 @set %WOKSteps_toolkit_ListWith    = " obj.comp obj.idep src ";
index 3413b2760ae01ecb950438a072bd5ec251c21efe..6b9486883a1eaa02a01da989bd5599733a032e00 100755 (executable)
@@ -130,7 +130,7 @@ srcinc:::wokSEA.tcl
 srcinc:::wokPROP.tcl
 srcinc:::news_cpwb.tcl
 srcinc:::cback.xpm
-srcinc:::cfrwd.xpm 
+srcinc:::cfrwd.xpm
 srcinc:::wokRPR.tcl
 srcinc:::wokCOO.tcl
 srcinc:::wokQUE.tcl
@@ -140,28 +140,12 @@ srcinc:::envir_open.xpm
 srcinc:::README
 srcinc:::wokcvs.tcl
 srcinc:::ud2cvs_unix
-srcinc:::template.vc6
-srcinc:::template.vc6x
 srcinc:::template.min
 srcinc:::template.minx
 srcinc:::template.mam
 srcinc:::template.mamx
 srcinc:::template.mak
 srcinc:::template.makx
-srcinc:::template.vc7
-srcinc:::template.vc7x
-srcinc:::template.vc8
-srcinc:::template.vc8x
-srcinc:::template.vc8_64
-srcinc:::template.vc8x_64
-srcinc:::template.vc9
-srcinc:::template.vc9x
-srcinc:::template.vc9_64
-srcinc:::template.vc9x_64
-srcinc:::template.vc10
-srcinc:::template.vc10x
-srcinc:::template.vc10_64
-srcinc:::template.vc10x_64
 srcinc:::osutils.tcl
 srcinc:::config.h
 srcinc:::opencascade.gif
index d16a36b9f31e335bcc29bae4a43069a1a76316bf..36b748116c5e9a80556f60ac678b3029612ca93d 100644 (file)
 proc OSUsage {} {
-    puts stderr \
-           {
-       Usage : OS [ options ] [ module ]
-       
-       Options :
-       
-       -lsource : Liste les sources de module.
-       
-       -lshare  : Liste les shareables de module
-       
-       -lressource : Liste des ressources de module
-       
-       -lwokadm : Liste des sources d'administration de wok pour module
-       
-       -lfreefiles  : Liste les fichiers isoles d'un module.
-       (i.e. ceux qui n'appartiennent pas a une UD.)
-       peut etre utilisee avec -type pour savoir dans quel type d'archive 
-       ils sont embarques.
-       
-       -v  :  Verbose mode.
-       
-       -alias  :  Donne le nom court de module.
-       
-       -type  :  Specifie le type de l'archive a faire. <source> ou <runtime>
-       
-       -os    :  Specifie le nom de la plateforme a traiter.
-       
-       -make dir: Fabrique les makefile de <module> et les place dans dir.
-       Cette option doit etre utilisee avec -os.
-       
-       -makadm dir : Fabrique les fichiers d'admin de <module> et les place dans dir
-       Cette option doit etre utilisee avec -os, -substr str1,str2
-       Retourne une liste utilisable par mktree.
-       
-       -substr str1,str2   : Substitue str1 par str2 dans les fichiers d'admin ci dessus.
-       -subdone file       : Ecrit dans file la liste des noms de fichiers dans lesquels
-                              la substitution a ete effectivement faite.
-       
-       -outdir dir: Path to directory where Visual Studio projects will be created; 
+  puts stderr \
+    {
+  Usage : OS [ options ] [ module ]
+
+  Options :
+
+  -lsource : Liste les sources de module.
+
+  -lshare  : Liste les shareables de module
+
+  -lressource : Liste des ressources de module
+
+  -lwokadm : Liste des sources d'administration de wok pour module
+
+  -lfreefiles  : Liste les fichiers isoles d'un module.
+                (i.e. ceux qui n'appartiennent pas a une UD.)
+                peut etre utilisee avec -type pour savoir dans quel type d'archive
+                ils sont embarques.
+
+  -v  :  Verbose mode.
+
+  -alias  :  Donne le nom court de module.
+
+  -type  :  Specifie le type de l'archive a faire. <source> ou <runtime>
+
+  -os    :  Specifie le nom de la plateforme a traiter.
+
+  -make dir: Fabrique les makefile de <module> et les place dans dir.
+             Cette option doit etre utilisee avec -os.
+
+  -makadm dir : Fabrique les fichiers d'admin de <module> et les place dans dir
+  Cette option doit etre utilisee avec -os, -substr str1,str2
+  Retourne une liste utilisable par mktree.
+
+  -substr str1,str2   : Substitue str1 par str2 dans les fichiers d'admin ci dessus.
+  -subdone file       : Ecrit dans file la liste des noms de fichiers dans lesquels
+                        la substitution a ete effectivement faite.
+
+  -outdir dir: Path to directory where Visual Studio projects will be created;
                      default is ros/adm/<-os>/<-vc>
 
-        -tksort  : retourne la liste triee des toolkits de(s) module(s)
-
-       -dest <string> file : Specifie que les fichiers listes dans file iront dans le sous
-       repertorie de l'archive <string>.
-       
-       -from f1,f2,.. : Utilise les fichiers fi pour fabrique  l'archive. Chacun de ces fichiers
-       contient sur chaque ligne 2 champs separes par un blanc. <path-origine> <sous-dir>.
-       <path-origine> est le full path du fichier a embarquer.
-       <sous-dir>     est un nom de sous directory ou sera place le fichier dans l'archive donc
-       dans la version une fois downloadee.
-       
-       -o          : Met la sortie ( s'il y en a une ) dans le fichier specifie.
-       
-       -mktree     : fabrique une arborescence a partir d'une liste. (genere par -lsource)
-       
-       -mode       : Specifie que les fichiers de l'arborescence sont copies(cp),lies(ln)
+  -tksort  : retourne la liste triee des toolkits de(s) module(s)
+
+  -dest <string> file : Specifie que les fichiers listes dans file iront dans le sous
+  repertorie de l'archive <string>.
+
+  -from f1,f2,.. : Utilise les fichiers fi pour fabrique  l'archive. Chacun de ces fichiers
+  contient sur chaque ligne 2 champs separes par un blanc. <path-origine> <sous-dir>.
+  <path-origine> est le full path du fichier a embarquer.
+  <sous-dir>     est un nom de sous directory ou sera place le fichier dans l'archive donc
+  dans la version une fois downloadee.
+
+  -o          : Met la sortie ( s'il y en a une ) dans le fichier specifie.
+
+  -mktree     : fabrique une arborescence a partir d'une liste. (genere par -lsource)
+
+  -mode       : Specifie que les fichiers de l'arborescence sont copies(cp),lies(ln)
                       lors du mktree.
-       
-       -mkar       : fabrique une archive a partir d'une arborescence
-       
-       -fmtar      : specifie le type de l'archive a creer ( defaut :tar.gz ) par traite encore.
-       
-       -tmpdir dir : Cree la racine de l'arborescence pour mktree dans dir. ( Voir -root)
-       
-       -root r     : Designe r comme racine de l'archive  (de fait dir/r) 
-       
-       -l          : Liste sur stdout les modules connus. 
-       
-       -ll         : Liste des toolkits dans l'ordre de fabrication. 
-       
-       -lm         : Liste des modules and products
-
-       -L          : Idem que ci dessus avec un peu plus de details.(utilise WOK)
-       
-       -cvsmod     : Cree une liste de definition de module CVS. Ne
-                     Utiliser ca avec -o modules, puis faire checkin de modules.
-                      Ne sont pris en compte que les modules pour lesquels la methode Export 
-                      retourne (au moins) "source".
-       
-       -u  key     : Liste les UDs d'un module. 
-                     Si key = "ucreate" imprime la liste des ud precedees de leur type. (utilise WOK)
-                     Si key = "list"  retourne une liste des ud
-                     Si key = "udlist" retourne une liste "UDLIST like"
-       
-       -info       : Donne dezinfo sur les modules. 
-       
-        -xml        : Ecrit un fichier contenant la description xml du ou des modules concernes.
-                      OS -xml list-de-Modules -o /tmp/occ.xml
-
-       -ask        : Cree un questionnaire utilisable pour l'installation. ( utiliser avec -o )
-
-       -box        : Donne le nom du repertoire ou sont crees les listes de fichiers a archiver
-                      dans CVS. ( repertoire adm ...)
-       
-        -wpack      : Cree une archive au format wpack avec tous les sources de <module>.
-                      L'archive cree s'appellera <module>.bck.Z 
-                      L'argument suivant wpack est le nom du directory ou on cree l'archive.
-
-       Exemples:
+
+  -mkar       : fabrique une archive a partir d'une arborescence
+
+  -fmtar      : specifie le type de l'archive a creer ( defaut :tar.gz ) par traite encore.
+
+  -tmpdir dir : Cree la racine de l'arborescence pour mktree dans dir. ( Voir -root)
+
+  -root r     : Designe r comme racine de l'archive  (de fait dir/r)
+
+  -l          : Liste sur stdout les modules connus.
+
+  -ll         : Liste des toolkits dans l'ordre de fabrication.
+
+  -lm         : Liste des modules and products
+
+  -L          : Idem que ci dessus avec un peu plus de details.(utilise WOK)
+
+  -cvsmod     : Cree une liste de definition de module CVS. Ne
+                Utiliser ca avec -o modules, puis faire checkin de modules.
+                Ne sont pris en compte que les modules pour lesquels la methode Export
+                retourne (au moins) "source".
+
+  -u  key     : Liste les UDs d'un module.
+                Si key = "ucreate" imprime la liste des ud precedees de leur type. (utilise WOK)
+                Si key = "list"  retourne une liste des ud
+                Si key = "udlist" retourne une liste "UDLIST like"
+
+  -info       : Donne dezinfo sur les modules.
+
+  -xml        : Ecrit un fichier contenant la description xml du ou des modules concernes.
+                OS -xml list-de-Modules -o /tmp/occ.xml
+
+  -ask        : Cree un questionnaire utilisable pour l'installation. ( utiliser avec -o )
+
+  -box        : Donne le nom du repertoire ou sont crees les listes de fichiers a archiver
+                dans CVS. ( repertoire adm ...)
+
+  -wpack      : Cree une archive au format wpack avec tous les sources de <module>.
+                L'archive cree s'appellera <module>.bck.Z
+                L'argument suivant wpack est le nom du directory ou on cree l'archive.
+
+  Exemples:
         1. Fabriquer toutes les makefiles de FoundationClasses dans le directory /adv_11/...
-       et dire que ces procedures iront dans un sous repertoire adm .
-       > OS -make /adv_11.../transfert -o /tmp/Liste1 FoundationClasses
-       
+  et dire que ces procedures iront dans un sous repertoire adm .
+  > OS -make /adv_11.../transfert -o /tmp/Liste1 FoundationClasses
+
         2. Specifie que les fichiers listes dans /tmp/Liste1 iront dans adm
-       > OS -dest adm /tmp/Liste1
-       (ecrit dans le fichier /tmp/Liste1 <path-origine> adm)
-       
+  > OS -dest adm /tmp/Liste1
+  (ecrit dans le fichier /tmp/Liste1 <path-origine> adm)
+
         3. Fabriquer la liste des sources de FoundationClasses (cette option utilise WOK)
-       > OS -lsource -o /tmp/Liste2 FoundationClasses
-       
+  > OS -lsource -o /tmp/Liste2 FoundationClasses
+
         4. Fabriquer une arborescence avec les 2 listes (fabriquees avec OS -dest)
-       > OS -mktree  -from /tmp/Liste1,/tmp/Liste2 -tmpdir /tmp -root CASXXX
-       
+  > OS -mktree  -from /tmp/Liste1,/tmp/Liste2 -tmpdir /tmp -root CASXXX
+
         Ce qui suit est nettement plus utile:
 
-       5. Utilisation des procedures pour tout fabriquer. (sur une seule plateforme avec Gnu tar)
+  5. Utilisation des procedures pour tout fabriquer. (sur une seule plateforme avec Gnu tar)
            Ceci se fait depuis une plateforme avec Gnu tar
-       OS:MKPRC            : Fabrique et edite les procs compil/link. ([OS-box]/Platform)
-       OS:PKGSRC {}        : Fabrique toutes les archives source
-       OS:PKGRTL {} {}     : Fabrique toutes les archives runtime (tt plat.)
-       Comtper plus de 2 heures pour tout faire.
-       
-       Pour ne refaire que des bouts:
-       
-       OS:PKGRTL {} Draw                   ; runtime ttes ptfm pour Draw
-       OS:PKGRTL Linux {}                  ; runtime Linux tous modules
-       OS:PKGRTL {} {Draw Viewer}          ; runtime ttes ptfm pour Draw et Viewer
-       OS:PKGRTL Linux Draw                ; runtime Linux pour Draw
-       
+  OS:MKPRC            : Fabrique et edite les procs compil/link. ([OS-box]/Platform)
+  OS:PKGSRC {}        : Fabrique toutes les archives source
+  OS:PKGRTL {} {}     : Fabrique toutes les archives runtime (tt plat.)
+  Comtper plus de 2 heures pour tout faire.
+
+  Pour ne refaire que des bouts:
+
+  OS:PKGRTL {} Draw                   ; runtime ttes ptfm pour Draw
+  OS:PKGRTL Linux {}                  ; runtime Linux tous modules
+  OS:PKGRTL {} {Draw Viewer}          ; runtime ttes ptfm pour Draw et Viewer
+  OS:PKGRTL Linux Draw                ; runtime Linux pour Draw
+
         5bis. Creation des archives pour les fichiers d'adm de WOK. Il faut
         se logger ecffectivement sur la machine comme explique ci dessous.
-       
-        ( sur SunOS : telnet h2ox ; tclsh ; wokcd KAS:C30:ref)
-        > OS:PKGADM SunOS
-        ( sur Linux : telnet archimex ; tclsh ; wokcd KAS:C30:ref)
-        > OS:PKGADM Linux
-        ( sur IRIX  : telnet <ask-to-pop>; tclsh ; wokcd KAS:C30:ref)
-        > OS:PKGADM IRIX
-        ( sur AIX   : telnet bourin ; tclsh ; wokcd KAS:C30:ref)
-        > OS:PKGADM AIX
-
-       7. Dans 5 si on ne specifie pas de nom de module, la liste 
+
+   ( sur SunOS : telnet h2ox ; tclsh ; wokcd KAS:C30:ref)
+   > OS:PKGADM SunOS
+   ( sur Linux : telnet archimex ; tclsh ; wokcd KAS:C30:ref)
+   > OS:PKGADM Linux
+   ( sur IRIX  : telnet <ask-to-pop>; tclsh ; wokcd KAS:C30:ref)
+   > OS:PKGADM IRIX
+   ( sur AIX   : telnet bourin ; tclsh ; wokcd KAS:C30:ref)
+   > OS:PKGADM AIX
+
+  7. Dans 5 si on ne specifie pas de nom de module, la liste
            des modules traites est obtenue par la commande "OS -lm".
-       
-        8. Rien ici.
 
-        9. Fabrication d'une image CD OpenSource:
-           Cette image se trouve dans le directory pointe par la commande OS -cdrom.
-           Elle contient un ensemble de fichiers (noms 8.3) destines a aller sur le CD.
-           ( Liens sur le tar.gz de [OS -distrib] )
-           Cette image se creer par la commande :
-           > OS:MKCDOS
-       
-    }
-    return
+  8. Rien ici.
+
+  9. Fabrication d'une image CD OpenSource:
+     Cette image se trouve dans le directory pointe par la commande OS -cdrom.
+     Elle contient un ensemble de fichiers (noms 8.3) destines a aller sur le CD.
+     ( Liens sur le tar.gz de [OS -distrib] )
+     Cette image se creer par la commande :
+     > OS:MKCDOS
+
+  }
+  return
 }
 
 ;#
 ;# Fabrique et remplit l'arborescence d'un module
 ;#
 proc OS { args } {
-    
+
     global OpenSource
 
     set tblreq(-h)         {}
     set tblreq(-v)         {}
     set tblreq(-box)       {}
-    
+
     set tblreq(-o)          value_required:file
-    
+
     set tblreq(-mode)       value_required:string
     set tblreq(-archtype)   value_required:string
-    set tblreq(-type)       value_required:string 
+    set tblreq(-type)       value_required:string
     set tblreq(-keep)       {}
-    
-    set tblreq(-l)          {} 
-    set tblreq(-ll)         {} 
-    set tblreq(-lm)         {} 
-    
-    set tblreq(-L)          {} 
-    set tblreq(-cvsmod)     {} 
-    set tblreq(-u)          value_required:string 
-    
-    set tblreq(-param)      {} 
-    
+
+    set tblreq(-l)          {}
+    set tblreq(-ll)         {}
+    set tblreq(-lm)         {}
+
+    set tblreq(-L)          {}
+    set tblreq(-cvsmod)     {}
+    set tblreq(-u)          value_required:string
+
+    set tblreq(-param)      {}
+
     set tblreq(-make)       value_required:file
     set tblreq(-makadm)     value_required:file
     set tblreq(-substr)     value_required:list
     set tblreq(-subdone)    value_required:file
     set tblreq(-outdir)     value_required:file
     set tblreq(-tksort)     {}
-    set tblreq(-plat)       value_required:string 
+    set tblreq(-plat)       value_required:string
     set tblreq(-wpack)      value_required:file
     set tblreq(-os)         value_required:string
     set tblreq(-xml)        value_required:string
     set tblreq(-dest)       value_required:string
-    
+
     set tblreq(-tmpdir)     value_required:string
     set tblreq(-root)       value_required:string
-    
+
     set tblreq(-lsource)    {}
     set tblreq(-LSOURCE)    {}
     set tblreq(-lshare)     {}
@@ -211,13 +211,13 @@ proc OS { args } {
     set tblreq(-LFREEFILES) {}
 
     set tblreq(-since)      value_required:string
-    
+
     set tblreq(-from)       value_required:list
-    
+
     set tblreq(-mktree)     {}
     set tblreq(-mkar)       value_required:string
     set tblreq(-info)       {}
-    
+
     set tblreq(-alias)      {}
 
     set tblreq(-ask)        {}
@@ -227,20 +227,20 @@ proc OS { args } {
        puts stderr "Error: incorrect options for command OS: $args"
        return
     }
-    
+
     if [info exists tabarg(-h)] {
        OSUsage
        return
     }
-    
+
     set os "" ;# default
     if [info exists tabarg(-os)] {
        set os $tabarg(-os)
-    } 
+    }
 
     ;#
     ;# debut: Options ne dependant pas d'un nom de module
-    ;# 
+    ;#
 
     if [info exists tabarg(-param)] {
        if { [OS:init $os] == {} } { return }
@@ -281,8 +281,8 @@ proc OS { args } {
 
 
     if [info exists tabarg(-ask)] {
-       set l {} 
-       set i 0 
+       set l {}
+       set i 0
        set w {}
        foreach module [OS -lm] {
            lappend l [format " (%d) : %s" [incr i] $module]
@@ -340,7 +340,7 @@ proc OS { args } {
        if { [OS:init $os] == {} } { return }
        OS:lsmodule 0
        OS:end
-       return  
+       return
     }
 
     if [info exists tabarg(-L)] {
@@ -450,9 +450,9 @@ proc OS { args } {
                        puts stderr "Erreur Option -from requise."
                        return
                    }
-               } else { 
+               } else {
                    puts stderr "Impossible de creer $root"
-                   return 
+                   return
                }
            } else {
                puts stderr "Erreur Option -root requise."
@@ -463,10 +463,10 @@ proc OS { args } {
            return
        }
     }
-       
+
     ;#
     ;# fin: Options ne dependant pas d'un nom de module
-    ;# 
+    ;#
 
     ;#
     ;# deb: Options  qui prennent soit un nom de module soit rien .
@@ -488,7 +488,7 @@ proc OS { args } {
                puts stderr "Erreur : Impossible de creer $tabarg(-o)"
            }
        } else {
-           foreach x [OS:lstk $lm] { 
+           foreach x [OS:lstk $lm] {
                puts $x
            }
        }
@@ -535,9 +535,9 @@ proc OS { args } {
        if { $lm == {} } {
            set lm [OS -lm]
        }
-       
+
        switch -- $tabarg(-u) {
-           
+
            ucreate {
                set out [pwd]/UCREATE
                if [info exists tabarg(-o)] { set out $tabarg(-o) }
@@ -549,7 +549,7 @@ proc OS { args } {
                            lappend l "ucreate -$u"
                        }
                    }
-                   foreach add [${mod}:ressources] { 
+                   foreach add [${mod}:ressources] {
                        lappend l "ucreate -[lindex $add 1] [lindex $add 2]"
                    }
                }
@@ -562,10 +562,10 @@ proc OS { args } {
                OS:end
                return
            }
-           
+
            udlist {
-               if [info exists tabarg(-o)] { 
-                   set out $tabarg(-o) 
+               if [info exists tabarg(-o)] {
+                   set out $tabarg(-o)
                }
                set l {}
                foreach mod $lm {
@@ -575,7 +575,7 @@ proc OS { args } {
                            lappend l "$u"
                        }
                    }
-                   foreach add [${mod}:ressources] { 
+                   foreach add [${mod}:ressources] {
                        lappend l "[lindex $add 1] [lindex $add 2]"
                    }
                }
@@ -594,7 +594,7 @@ proc OS { args } {
                OS:end
                return
            }
-           
+
 
            list {
                set l {}
@@ -605,7 +605,7 @@ proc OS { args } {
                            lappend l [lindex $u 1]
                        }
                    }
-                   foreach add [${mod}:ressources] { 
+                   foreach add [${mod}:ressources] {
                        lappend l [lindex $add 2]
                    }
                }
@@ -622,15 +622,15 @@ proc OS { args } {
        if { $lm == {} } {
            set lm [OS -lm]
        }
-       if [info exists tabarg(-o)] { 
-           wokUtils:FILES:StringToFile [OS:xml $lm] $tabarg(-o) 
+       if [info exists tabarg(-o)] {
+           wokUtils:FILES:StringToFile [OS:xml $lm] $tabarg(-o)
        } else {
            puts stderr "Erreur : Specifier -o pour donner un nom de fichier. "
        }
-       
+
        return
-    } 
-    
+    }
+
 
 
 
@@ -642,19 +642,19 @@ proc OS { args } {
            puts stderr "OS:wpack: Le directory $dir ne peut etre cree."
            return
        }
-       
+
        set lm $module
        if { $lm == {} } {
            set lm [OS -lm]
        }
-       
+
        foreach module $lm {
            if { $verbose } { puts "Processing module $module" }
            OS:wpack $module $dir $verbose
        }
 
        OS:end
-       return 
+       return
     }
 
     ;#
@@ -738,7 +738,7 @@ proc OS { args } {
                        }
                    }
                } else {
-                 puts stderr "Erreur : Specifier -substr string1,string2 "  
+                 puts stderr "Erreur : Specifier -substr string1,string2 "
                }
                OS:end
            } else {
@@ -788,7 +788,7 @@ proc OS { args } {
        OS:end
        return
     }
-    
+
     if [info exists tabarg(-LSOURCE)] {
        if { [OS:init $os] == {} } { return }
        set lso [OS:SOURCES ${module} $verbose]
@@ -825,8 +825,8 @@ proc OS { args } {
        }
        return
     }
-    
-    
+
+
     if [info exists tabarg(-lshare)] {
        if { [OS:init $os] == {} } { return }
        if [info exists tabarg(-os)] {
@@ -843,7 +843,7 @@ proc OS { args } {
                }
            }
        } else {
-           puts stderr "Erreur : Specifier -os avec -lshare" 
+           puts stderr "Erreur : Specifier -os avec -lshare"
        }
        OS:end
        return
@@ -863,7 +863,7 @@ proc OS { args } {
                return [OS:SHARE ${module} $tabarg(-os) $verbose]
            }
        } else {
-           puts stderr "Erreur : Specifier -os avec -lshare" 
+           puts stderr "Erreur : Specifier -os avec -lshare"
        }
        OS:end
        return
@@ -917,11 +917,11 @@ proc OS { args } {
            }
            OS:end
        } else {
-           puts stderr "Erreur : Specifier -type avec -lressource"         
+           puts stderr "Erreur : Specifier -type avec -lressource"
        }
        return
     }
-    
+
     if [info exists tabarg(-LRESSOURCE)] {
        if [info exists tabarg(-type)] {
            set type $tabarg(-type)
@@ -961,12 +961,12 @@ proc OS { args } {
                return $lso
            }
        } else {
-           puts stderr "Erreur : Specifier -type avec -LRESSOURCE"         
+           puts stderr "Erreur : Specifier -type avec -LRESSOURCE"
        }
        return
     }
-    
-    
+
+
     if [info exists tabarg(-lwokadm)] {
        if ![info exists tabarg(-os)] {
            puts stderr "Erreur : Specifier -os avec -lwokadm"
@@ -1012,7 +1012,7 @@ proc OS { args } {
        OS:end
        return
     }
-    
+
     if [info exists tabarg(-lfreefiles)] {
        if { [OS:init $os] == {} } { return }
        set type both
@@ -1079,7 +1079,7 @@ proc OS { args } {
        OS:end
        return $a
     }
-    
+
 }
 
 ;# ((((((((((((((((((((((((((((( O S )))))))))))))))))))))))))))))
@@ -1091,11 +1091,11 @@ proc OS:all8 { module plat type } {
     set l {}
     if { "$type" == "rtl" } {
        switch -- $plat {
-           
+
            SunOS {
                set litm  [list sun wsn]
            }
-           
+
            Linux {
                set litm  [list lin wln]
            }
@@ -1105,21 +1105,21 @@ proc OS:all8 { module plat type } {
            }
 
            IRIX {
-               set litm  [list sil wsl] 
+               set litm  [list sil wsl]
            }
-           
+
            AIX {
-               set litm [list aix wax] 
+               set litm [list aix wax]
            }
 
            WindowsNT {
-               set litm [list win32 wwt] 
+               set litm [list win32 wwt]
            }
 
            default {
                set litm {}
            }
-           
+
        }
     } else {
        set litm [list src]
@@ -1127,7 +1127,7 @@ proc OS:all8 { module plat type } {
 
     foreach itm $litm {
        set l [concat $l ${itm}${a}[OS:simple_version].tgz]
-    } 
+    }
     return $l
 }
 ;#
@@ -1148,28 +1148,28 @@ proc OS:lsdep { m } {
 ;#
 ;#
 ;# retourne la liste des fichiers d'administration wok de module
-;# A lancer sur la plateforme Cible 
+;# A lancer sur la plateforme Cible
 ;# DE FAIT PLAT N'EST PAS UTILISE:
 ;# On rajoute de force Standard.ImplDep
 proc OS:wokadm { module plat {verbose 0} } {
     global OpenSource
-    
+
     set lret {}
     set sourceType [list dbadmfile stadmfile admfile]
 
     foreach tkloc  [${module}:toolkits] {
-       
+
        set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]]
 
-       foreach loc $listloc { 
-           
+       foreach loc $listloc {
+
            set utyp [uinfo -t [woklocate -u $loc]]
-           
+
            ;# Le worbench ou est l'ud
 
            ;# 1. recup des pathes de tous les fichiers de loc
            osutils:tk:loadunit $loc map
-           
+
            ;# 2. Selection des types "wokadm" associes a l'UD
            ;# (semblent ne pas dependre du type de l'UD)
 
@@ -1178,8 +1178,8 @@ proc OS:wokadm { module plat {verbose 0} } {
                    unset map($typ)
                }
            }
-           
-           ;# 3. 
+
+           ;# 3.
            set count 0
            set destart ""
            set wborig [wokinfo -w [woklocate -u $loc]]
@@ -1209,7 +1209,7 @@ proc OS:wokadm { module plat {verbose 0} } {
            set dectyp [lindex $XXX 1]
            set loc    [woklocate -u [lindex $XXX 2]]
            set destin [lindex $XXX 3]
-           
+
            osutils:tk:loadunit $loc map
 
            foreach typ [array names map] {
@@ -1218,7 +1218,7 @@ proc OS:wokadm { module plat {verbose 0} } {
                }
            }
 
-           ;# 3. 
+           ;# 3.
            set count 0
            set destart ""
            set wborig [wokinfo -w [woklocate -u $loc]]
@@ -1240,7 +1240,7 @@ proc OS:wokadm { module plat {verbose 0} } {
            }
        }
     }
-    return $lret  
+    return $lret
 }
 ;#
 ;# retourne la liste des executables de module.
@@ -1258,7 +1258,7 @@ proc OS:executable { module } {
 ;# retourne la liste des fichiers de ressource de module
 ;# un item XXX ressemble a : [list both x TTOPOLOGY {}]
 ;# Si reqtyp est "source" on retourne les sources des UD de type resource
-;# sinon on retourne tout car dans le cas d'une archive runtime il faut 
+;# sinon on retourne tout car dans le cas d'une archive runtime il faut
 ;# aussi embarquer les shells de lancement qui sont des sources.
 ;#
 proc OS:ressources { module plat reqtyp {verbose 0} } {
@@ -1266,7 +1266,7 @@ proc OS:ressources { module plat reqtyp {verbose 0} } {
     set lret {}
     if { $verbose } { puts "OS:ressources : reqtyp = $reqtyp " }
     if { "[info procs ${module}:ressources]" != "" } {
-       
+
        foreach XXX  [${module}:ressources] {
            set artyp  [lindex $XXX 0]
            set dectyp [lindex $XXX 1]
@@ -1282,8 +1282,8 @@ proc OS:ressources { module plat reqtyp {verbose 0} } {
                    unset map($typ)
                }
            }
-           
-           ;# 3. 
+
+           ;# 3.
            set count 0
            foreach typ [lsort [array names map]] {
 
@@ -1324,7 +1324,7 @@ proc OS:ressources { module plat reqtyp {verbose 0} } {
                            lappend lret "$fulp [file join bin [file tail $f]]"
                            puts "Pour $plat : Ressource exec on embarque : $fulp"
                        } else {
-                           puts "Erreur : executable [file tail $f] introuvable sur $plat"  
+                           puts "Erreur : executable [file tail $f] introuvable sur $plat"
                        }
                    }
                }
@@ -1348,7 +1348,7 @@ proc OS:RESSOURCES { module plat reqtyp {verbose 0} } {
     set lret {}
     if { $verbose } { puts "OS:ressources : reqtyp = $reqtyp " }
     if { "[info procs ${module}:ressources]" != "" } {
-       
+
        foreach XXX  [${module}:ressources] {
            set artyp  [lindex $XXX 0]
            set dectyp [lindex $XXX 1]
@@ -1365,8 +1365,8 @@ proc OS:RESSOURCES { module plat reqtyp {verbose 0} } {
                    if { $verbose } { puts " Unit $loc : types conserve : $typ " }
                }
            }
-           
-           ;# 3. 
+
+           ;# 3.
            set count 0
            foreach typ [lsort [array names map]] {
 
@@ -1382,7 +1382,7 @@ proc OS:RESSOURCES { module plat reqtyp {verbose 0} } {
                foreach f $map($typ) {
                    if { "$typ" != "executable" } {
                        if { "$typ" != "library" } {
-                           lappend lret $f 
+                           lappend lret $f
                            incr count
                            if { $verbose} {puts "ress($loc): $f"}
                        } else {
@@ -1401,7 +1401,7 @@ proc OS:RESSOURCES { module plat reqtyp {verbose 0} } {
                            incr count
                            puts "Pour $plat : Ressource exec on embarque : $fulp"
                        } else {
-                           puts "Erreur : executable [file tail $f] introuvable sur $plat"  
+                           puts "Erreur : executable [file tail $f] introuvable sur $plat"
                        }
                    }
                }
@@ -1421,30 +1421,30 @@ proc OS:RESSOURCES { module plat reqtyp {verbose 0} } {
     return $lret
 }
 ;#
-;# utilise WOK pour creer la liste des sources d'un module 
+;# utilise WOK pour creer la liste des sources d'un module
 ;# retourne une liste de string de la forme "f1 f2"
 ;# f1 est le full path du fichier d'origine
 ;# f2 est le nom du sous directory ou on accrochera ca
 ;#
-;# 
+;#
 proc OS:sources { module {verbose 0 } } {
 
     global OpenSource
 
     set lret {}
     foreach tkloc  [${module}:toolkits] {
-       
+
        set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]]
 
-       foreach loc $listloc { 
-           
+       foreach loc $listloc {
+
            set utyp [uinfo -t [woklocate -u $loc]]
-           
+
            ;# Le worbench ou est l'ud
            set wborig [wokinfo -w [woklocate -u $loc]]
            ;# 1. recup des pathes de tous les fichiers de loc
            osutils:tk:loadunit $loc map
-           
+
            ;# 2. Selection des types "sources" associes a l'UD
            set sourceType $OpenSource(source,${utyp})
            foreach typ [array names map] {
@@ -1452,8 +1452,8 @@ proc OS:sources { module {verbose 0 } } {
                    unset map($typ)
                }
            }
-           
-           ;# 3. 
+
+           ;# 3.
            set count 0
            foreach typ [lsort [array names map]] {
                set wbt  $OpenSource(${typ},wbtype)
@@ -1468,7 +1468,7 @@ proc OS:sources { module {verbose 0 } } {
                        incr count
                        if { $verbose } { puts "File $dst ([lindex $rr 1])" }
                    } else {
-                       puts " loc = $loc wbt = $wbt root = $root "                     
+                       puts " loc = $loc wbt = $wbt root = $root "
                        puts "Erreur : peu pas parser ????? $f"
                    }
                }
@@ -1490,25 +1490,25 @@ proc OS:SOURCES { module {verbose 0 } } {
 
     set lret {}
     foreach tkloc  [${module}:toolkits] {
-       
+
        set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]]
-       
-       foreach loc $listloc { 
-           
+
+       foreach loc $listloc {
+
            set utyp [uinfo -t [woklocate -u $loc]]
-           
+
            ;# 1. recup des pathes de tous les fichiers de loc
            osutils:tk:loadunit $loc map
-           
+
            ;# 2. Selection des types "sources" associes a l'UD
            set sourceType $OpenSource(source,${utyp})
-           
+
            foreach typ [array names map] {
                if { [lsearch $sourceType $typ] == -1 } {
                    unset map($typ)
                }
            }
-           
+
            ;# 3. Cumul des full pathes
            set count 0
            foreach typ [lsort [array names map]] {
@@ -1516,14 +1516,14 @@ proc OS:SOURCES { module {verbose 0 } } {
                    if { $verbose } { puts "OS:SOURCES: File $f" }
                    lappend lret $f
                    incr count
-                   
+
                }
            }
            if { $verbose } {puts "OS:SOURCES: ( $loc -> Source Copies : $count )" }
            if { $count == 0 } { puts "Erreur : Rien a copier pour $loc" }
        }
     }
-    
+
     return $lret
 }
 ;# recherche a partir de wbfom en remontant les ancetres,
@@ -1531,7 +1531,7 @@ proc OS:SOURCES { module {verbose 0 } } {
 ;# utilisant le type <wbt> (type associe a un wb evidemment.)
 ;# retourne la partie de f qui ne depend pas de ce wb.
 ;# OS:wbparseloc /adv_11/KAS/C30/ref/src/gp/gp.cdl srcdir OpenSource
-;# 
+;#
 proc OS:wbparseloc { f wbt wbfrom } {
     set res {}
     foreach wborig [w_info -A $wbfrom] {
@@ -1558,13 +1558,13 @@ proc OS:strparseloc { f wbfrom included direction} {
 }
 
 ;#
-;# utilise WOK pour creer la liste des shareables d'un module 
+;# utilise WOK pour creer la liste des shareables d'un module
 ;# i. e. les shareables de chaque toolkit du module.
 ;# les autres shareables et executables sont donnees dans les ressources.
 ;# retourne une liste de string de la forme "f1 f2"
 ;# f1 est le full path du fichier d'origine
 ;# f2 est le nom du sous directory ou on accrochera ca
-;# 
+;#
 proc OS:share { module plat {verbose 0} } {
 
     set lret {}
@@ -1601,7 +1601,7 @@ proc OS:SHARE { module plat {verbose 0} } {
     foreach tkloc  [${module}:toolkits] {
        foreach shr [OS:getshare $tkloc $plat] {
            if {[file exists $shr] } {
-               lappend lret $shr 
+               lappend lret $shr
            } else {
                puts stderr "Erreur : Pas de shareable pour ${tkloc}."
            }
@@ -1644,7 +1644,7 @@ proc OS:freefiles { module {artyp both} {check 0} {verbose 0} } {
                        puts stderr "Error : File $loc not found"
                    }
                } else {
-                   puts stderr "Format error in proc ${module}:freefiles. Return either \"source\" \"runtime\" or \"both\" "               
+                   puts stderr "Format error in proc ${module}:freefiles. Return either \"source\" \"runtime\" or \"both\" "
                }
            } else {
                if { "$typ" == "$artyp" || "$typ" == "both" } {
@@ -1681,7 +1681,7 @@ proc OS:FREEFILES { module {artyp both} {check 0} {verbose 0} } {
                        puts stderr "Error : File $loc not found"
                    }
                } else {
-                   puts stderr "Format error in proc ${module}:freefiles. Return either \"source\" \"runtime\" or \"both\" "               
+                   puts stderr "Format error in proc ${module}:freefiles. Return either \"source\" \"runtime\" or \"both\" "
                }
            } else {
                if { "$typ" == "$artyp" || "$typ" == "both" } {
@@ -1710,7 +1710,7 @@ proc OS:mkfile { wbfile tofile {mode copy} {verbose 0} } {
     OS:mkdir [file dirname $tofile]
 
     switch -- $mode {
-       
+
        copy {
            if { [file exists $tofile] && ![file writable $tofile] } {
                set chmded 1
@@ -1727,12 +1727,12 @@ proc OS:mkfile { wbfile tofile {mode copy} {verbose 0} } {
                return -1
            }
        }
-       
+
        jact {
            puts "$wbfile $tofile"
            return 1
        }
-       
+
        link {
            if { ![file exists $wbfile] } {
                puts stderr "OS:mkfile : File $wbfile existe pas."
@@ -1758,7 +1758,7 @@ proc OS:mkfile { wbfile tofile {mode copy} {verbose 0} } {
            if [file exists $tofile] {
                if { [wokUtils:FILES:AreSame $wbfile $tofile] == 0 } {
                    OS:mkfile $wbfile $tofile copy $verbose
-               } 
+               }
            } else {
                OS:mkfile $wbfile $tofile copy $verbose
            }
@@ -1783,7 +1783,7 @@ proc OS:parray { a {id stdout} {sep "" } } {
        if { "$array($name)" != "" } {
            puts $id [format "%-*s %s %s" $maxl $nameString $sep $array($name)]
        }
-    } 
+    }
 }
 ;#
 ;# Liste la definition des modules pour CVS, sinon fait un affichage pourri mais suffizant.
@@ -1794,7 +1794,7 @@ proc OS:lsmodule { {long 1} {id stdout} } {
        if { [lsearch [${mo}:Export] source] != -1 } {
            lappend openmod $mo
        }
-    } 
+    }
     if { $long == 2 } {
        set ltk {}
        puts $id "#    "
@@ -1863,13 +1863,13 @@ proc OS:lstk { lm } {
        foreach tk  [${m}:toolkits] {
            lappend lret $tk
        }
-    } 
+    }
     return $lret
 }
 
 ;#
 ;# Les types du workbench qu'il faut exporter:
-;# sttmpdir workdir HomeDir pubincdir drvdir objdir libdir tmpdir 
+;# sttmpdir workdir HomeDir pubincdir drvdir objdir libdir tmpdir
 ;# bindir AdmDir DefinitionFile srcdir UnitListFile dbtmpdir admfile
 ;#;#;sttmpdir:       /adv_11/KAS/C40/ref/sun/obj/.tmp
 ;#
@@ -1899,7 +1899,7 @@ proc OS:init {{os {}}} {
     ;#
     set OpenSource(box)       [OS:defbox]
 
-    ;# On utilise gtar si possible. => 
+    ;# On utilise gtar si possible. =>
     ;#
     set OpenSource(tar)  tar
     if { $tcl_platform(os) == "SunOS"} { set OpenSource(tar) [file join $env(WOK_LIBRARY) sun gtar] }
@@ -1921,7 +1921,7 @@ proc OS:init {{os {}}} {
            }
        }
     }
-    
+
     ;#
     ;# Load list of products and their definitions
     ;#
@@ -1941,7 +1941,7 @@ proc OS:init {{os {}}} {
     ;# -------------------- FICHIERS "SOURCES" c,cxx,hxx,_0.cxx,ixx,jxx,etc.. -------------
     ;#
     ;# 1. Definitions de l'origine des fichiers
-    ;# 
+    ;#
     set OpenSource(source,package)       {source derivated privinclude pubinclude drvfile}
     set OpenSource(source,nocdlpack)     {source pubinclude drvfile}
     set OpenSource(source,schema)        {source derivated privinclude pubinclude drvfile}
@@ -1962,7 +1962,7 @@ proc OS:init {{os {}}} {
     ;# -------------------- FICHIERS "RUNTIME" .so,executable,etc.. -------------
     ;#
     ;# 1. Definitions de l'origine des fichiers
-    ;# 
+    ;#
     set OpenSource(runtime,package)       {library}
     set OpenSource(runtime,nocdlpack)     {library}
     set OpenSource(runtime,schema)        {}
@@ -1987,20 +1987,20 @@ proc OS:init {{os {}}} {
     ;# Si on sait pas on prend HomeDir et on suppose que c'est Ud independant
 
     set OpenSource(source,wbtype)      srcdir
-    set OpenSource(derivated,wbtype)   drvdir 
+    set OpenSource(derivated,wbtype)   drvdir
     set OpenSource(drvfile,wbtype)     drvdir      ;# ExprIntrp.tab.c (lex,yacc)
     set OpenSource(privinclude,wbtype) drvdir
     set OpenSource(pubinclude,wbtype)  pubincdir
 
     set OpenSource(library,wbtype)     libdir
-    set OpenSource(executable,wbtype)  bindir  
+    set OpenSource(executable,wbtype)  bindir
     ;#
     ;# Defintion de la destination des fichiers d'un module dans l'archive.
     ;# Les memes que au dessus chaque racine des workbenchs , il faut savoir ou la mettre a l'arrivee
     ;#
     set OpenSource(source,artype)      src
-    set OpenSource(derivated,artype)   drv 
-    set OpenSource(drvfile,artype)     drv 
+    set OpenSource(derivated,artype)   drv
+    set OpenSource(drvfile,artype)     drv
     set OpenSource(privinclude,artype) drv
     set OpenSource(pubinclude,artype)  inc
     ;#
@@ -2008,7 +2008,7 @@ proc OS:init {{os {}}} {
     set OpenSource(executable,artype)  bin
 
     ;# -------------------- DEFINITION de l'adresse et de la structure des archives.
-    ;# 
+    ;#
     ;# Nom de la racine ou on accroche l'arborescence en fonction du type de l'archive (source/runtime)
     ;#
     set OpenSource(dest,root)    /dn01/KAS/dev/ros/work
@@ -2024,7 +2024,7 @@ proc OS:init {{os {}}} {
     ;#
     ;# les sources sont directement accroches sous la racine
     ;#
-    set OpenSource(inar,source)   ""      
+    set OpenSource(inar,source)   ""
     ;#
     ;# les runtime sont sont sous le nom de la plateforme cible
     ;#
@@ -2042,7 +2042,7 @@ proc OS:init {{os {}}} {
     return 1
 }
 ;#
-;# 
+;#
 ;#
 ;#
 proc OS:info { lm {id stdout} } {
@@ -2066,7 +2066,7 @@ proc OS:info { lm {id stdout} } {
 ;# PKGS appelle direct PACKAGES car sur archimex pas WOK pour l'instant.
 ;#
 proc OS:procs { module plat} {
-    
+
     set lret {}
     foreach tkloc [${module}:toolkits] {
        set PKGS [woklocate -p ${tkloc}:PACKAGES]
@@ -2082,7 +2082,7 @@ proc OS:procs { module plat} {
            puts stderr "Erreur: Pas de fichier PACKAGES pour $tkloc"
        }
        if [file exists [set lnkf [OS:getlinkso $tkloc $plat]]] {
-           lappend lret [list link $tkloc $tkloc $lnkf] 
+           lappend lret [list link $tkloc $tkloc $lnkf]
        } else {
            puts stderr "Erreur: Pas de fichier $lnkf"
        }
@@ -2134,7 +2134,7 @@ proc OS:procs { module plat} {
             }
        } else {
            if [file exists [set lnkf [OS:getlinkso $loc $plat]]] {
-               lappend lret [list link {} $loc $lnkf] 
+               lappend lret [list link {} $loc $lnkf]
            } else {
                puts stderr "Information: Pas de fichier $lnkf"
            }
@@ -2151,7 +2151,7 @@ proc OS:casroot {} {
     if { [info exists env(CASROOT)] } {
        return $env(CASROOT)
     }
-    
+
     return [lindex [wokinfo -R [lindex [w_info -A [wokcd]] end]] 0]
 }
 ;#
@@ -2231,14 +2231,14 @@ proc OS:admadm { module dir plat since ls1s2 {verbose 0} } {
     return [list $lret $ldon]
 }
 ;#
-;# fabrique la proc pour reconstruire un module a partir du format  
-;# retourne par OS:procs { {type tk ud path} } 
+;# fabrique la proc pour reconstruire un module a partir du format
+;# retourne par OS:procs { {type tk ud path} }
 ;# retourne la liste des fulls paths des fichiers fabriques.
 ;# ainsi que celui les invoquant tous a la queue leu leu
 ;# option since genere des .COMP INCOMPLETS !!
 ;#
 proc OS:mkmk { module dir plat since {verbose 0} } {
-    
+
     set lret     {}
     set lnk      {}
     set lothcmp  {}  ;# il ya 2 listes pour lancer les compils d'abord
@@ -2266,7 +2266,7 @@ proc OS:mkmk { module dir plat since {verbose 0} } {
        if { ($since == {}) || ($since != {} && ([file mtime $pfile] > $since)) } {
 
            switch -- $type {
-               
+
                compilation {
                    set incstr " -I[OS:srcroot $plat]/$loc -I[OS:drvroot $plat]/$loc -I[OS:incroot $plat] -I[OS:srcroot $plat]/WOKTclLib -I\${JAVAHOME}/include -I\${JAVAHOME}/include/${OsName}"
                    set tcstr [OS:casroot $plat]/
@@ -2280,7 +2280,7 @@ proc OS:mkmk { module dir plat since {verbose 0} } {
                        set lwr [OS:edcomp $plat $hdr $pfile $exceptcc $incstr $tcstr $tostr]
                        lappend lwr "popd >& /dev/null"
                    } else {
-                        if [info exists CLOC($loc)] {  
+                        if [info exists CLOC($loc)] {
                        } else {
                            set lwr {}
                            set hdr {}
@@ -2302,11 +2302,11 @@ proc OS:mkmk { module dir plat since {verbose 0} } {
                            set TLOC($tkloc) $mktk
                        } else {
                            set mktk {}
-                           lappend  mktk "csh -f [OS:admroot $plat]/${loc}.comp"                       
+                           lappend  mktk "csh -f [OS:admroot $plat]/${loc}.comp"
                            set TLOC($tkloc) $mktk
                        }
                    } else {
-                        if [info exists XLOC($loc)] { 
+                        if [info exists XLOC($loc)] {
                           #set lothcmp $XLOC($loc)
                          ;# Procedure de compils d'uds non dans le toolkit.
                          ;#lappend lothcmp "csh -f [OS:admroot $plat]/${loc}.comp"
@@ -2318,7 +2318,7 @@ proc OS:mkmk { module dir plat since {verbose 0} } {
                        }
                    }
                }
-               
+
                link {
                    if { [lsearch $do_nothing_here $plat] == -1 } {
                        set hdrl {}
@@ -2337,7 +2337,7 @@ proc OS:mkmk { module dir plat since {verbose 0} } {
                        lappend lothlnk "csh -f [OS:admroot $plat]/${loc}.lnk"
                    }
                }
-               
+
                executable {
                    if { [lsearch $do_nothing_here $plat] == -1 } {
                        set hdrl {}
@@ -2354,7 +2354,7 @@ proc OS:mkmk { module dir plat since {verbose 0} } {
                                [file join $dir ${loc}.lnk]
                        }
                        lappend lnk [file join $dir ${loc}.lnk]
-                       ;# mettre [file tail $pfile plutot que ${loc}.lnk TOPOLOGY ??   
+                       ;# mettre [file tail $pfile plutot que ${loc}.lnk TOPOLOGY ??
                    } else {
                        lappend lnk $pfile
                    }
@@ -2369,9 +2369,9 @@ proc OS:mkmk { module dir plat since {verbose 0} } {
            puts "bof du since"
        }
     }
-    
+
     ;# Fab d'un TK Compilations + link du Tk apres ces compils.
-    ;# 
+    ;#
     if [info exists TLOC] {
        foreach tk [array names TLOC] {
            set do [lsort $TLOC($tk)]
@@ -2423,7 +2423,7 @@ proc OS:edcomp { plat lhdr comp {except {}} {incstr <incDirectories>} {tcstr ""}
            }
            if [regexp -- {/cc} $compiler all find] {
                set compstring "\${CCOMP} "
-           } 
+           }
        }
        if {$plat == "Linux"} {
            if [regexp -- {/gcc} $compiler all find] {
@@ -2448,18 +2448,18 @@ proc OS:edcomp { plat lhdr comp {except {}} {incstr <incDirectories>} {tcstr ""}
                        #puts "X11 was captured"
                        append str "-I\${X11_INCLUDE} "
                    } elseif {"$new " =="[lindex [wokparam -v %CSF_JavaHome] 0]"} {
-                       
+
                    } else {
                        append str "$tok "
                    }
-           
+
                } else {
                    if { $done == 0 } {
                            append str "$incstr"
                            set done 1
                        }
-               } 
-               
+               }
+
            } elseif { $tok == "-o" } {
                set to 1
            } elseif { $tok == "-c" } {
@@ -2469,7 +2469,7 @@ proc OS:edcomp { plat lhdr comp {except {}} {incstr <incDirectories>} {tcstr ""}
                    if { "$plat" == "SunOS" || "$plat" == "Linux" } {
                        set TrueCond [expr {"$tok" != "-H" && "$tok" != "/usr/bin/g++" && "$tok" != "/usr/bin/gcc" && ![regexp -- {/CC} $tok all find] && ![regexp -- {/cc} $tok all find] && "$tok" != "cd" && "$tok" != "&&" && ![regexp -- {/obj/.tmp/} $tok all find]}]
                        if { $TrueCond } {
-                               append str $tok " " 
+                               append str $tok " "
                        }
                    } else {
                        append str $tok " "
@@ -2483,7 +2483,7 @@ proc OS:edcomp { plat lhdr comp {except {}} {incstr <incDirectories>} {tcstr ""}
                    if { $to == 1 } {
                        append str " -o ${tostr}[file tail $tok]"
                        set to 0
-                   } 
+                   }
 
                }
 
@@ -2568,10 +2568,10 @@ proc OS:edlnkx { plat lhdr lnkf { except {} } {incstr <incDirectories>} {tcstr "
            }
        }
     }
-    return $lret 
+    return $lret
 }
 ;#
-;# idem que edcomp mais modifie un fichier .lnk Linux d'un toolkit 
+;# idem que edcomp mais modifie un fichier .lnk Linux d'un toolkit
 ;# ici incstr est utilise pour la directive -L
 ;# i.e -L/un/path devient -L$incstr si il n'est pas dans except
 ;#
@@ -2604,14 +2604,14 @@ proc OS:edlnkso { plat lhdr lnkf { except {} } {incstr <incDirectories>} {tcstr
                    if { $TCLLIB} {
                        lappend str " -L\${TCLHOME}/lib -ltcl \\"
                    } elseif { $TKLIB } {
-                       lappend str " -L\${TCLHOME}/lib -ltk \\"            
+                       lappend str " -L\${TCLHOME}/lib -ltk \\"
                    } elseif { $X11LIB} {
                        lappend str " -L\${X11_LIB} -lX11 -lXext -lXmu \\"
                     } elseif { [expr {$lin == " [lindex [wokparam -v %CSF_dpsLibs] 0] \\"}]} {
                         if { $plat == "SunOS" } {
-                          lappend str " -L\${X11_LIB} -ldps \\" 
+                          lappend str " -L\${X11_LIB} -ldps \\"
                        }
-                    } else {   
+                    } else {
                    foreach tok [split $lin] {
                        if { $tok == "-o" } {
                            set to 1
@@ -2629,9 +2629,9 @@ proc OS:edlnkso { plat lhdr lnkf { except {} } {incstr <incDirectories>} {tcstr
                                if [regexp {^[ ]*-L(.*)} $tok all dir] {
                                    if { [lsearch $except $dir] == -1 } {
                                        lappend str -L${incstr}
-                                   } else {                                
+                                   } else {
                                        lappend str $tok
-                                   }                               
+                                   }
                                } else {
                                    set Truetok [string compare $tok [string trimright [lindex [wokparam -v %CSF_CXX_COMPILER] 0]]]
                                    if {$Truetok} {
@@ -2655,20 +2655,20 @@ proc OS:edlnkso { plat lhdr lnkf { except {} } {incstr <incDirectories>} {tcstr
     set res {}
     set inx 0
     foreach x $lret {
-       lappend res $x  
+       lappend res $x
        incr inx
        if [regexp -- {[^;]*;} $x] {
            break
        }
     }
-    return $res 
+    return $res
 }
 ;# retourne la composante de path avec la partie a gauchae
 ;# ou a droite de str
 ;#
 ;#
 proc OS:trimpath { path str {included 1} {from left} } {
-    set l [file split $path] 
+    set l [file split $path]
     if { [set i [lsearch $l $str]] != -1 } {
        if { $from == "left" } {
            if { $included } {
@@ -2719,7 +2719,7 @@ proc OS:delete { f } {
     }
 }
 ;#
-;# 
+;#
 ;#
 proc OS:copy { fin fout } {
     global tcl_version
@@ -2727,7 +2727,7 @@ proc OS:copy { fin fout } {
        if { [catch { set in [ open $fin r ] } errin] == 0 } {
            if { [catch { set out [ open $fout w ] } errout] == 0 } {
                set nb [copyfile $in $out]
-               close $in 
+               close $in
                close $out
                return 1
            } else {
@@ -2738,7 +2738,7 @@ proc OS:copy { fin fout } {
            puts stderr "Error: $errin"
            return -1
        }
-       
+
     } else {
        if { "[file type $fin]" == "link" } {
            file copy -force [file readlink $fin] $fout
@@ -2754,9 +2754,9 @@ proc OS:copy { fin fout } {
 proc OS:wpack { module dir {verbose 0} } {
     set lret {}
     foreach m  $module {
-       set fbck [file join $dir ${m}.bck] 
+       set fbck [file join $dir ${m}.bck]
         if { $verbose } {
-           wpack -v -c -f $fbck -u [join [OS -u list $m] ,] 
+           wpack -v -c -f $fbck -u [join [OS -u list $m] ,]
        } else  {
            wpack -c -f $fbck -u [join [OS -u list $m] ,]
        }
@@ -2764,44 +2764,9 @@ proc OS:wpack { module dir {verbose 0} } {
     }
     return $lret
 }
-proc OS:vc6proj:projectby2 { TK Dep_Name module} {
-    append var \
-           "Project: \"$Dep_Name\"=.\\$Dep_Name.dsp - Package Owner=<4>" "\n" \
-           "\n" \
-           "Package=<5>" "\n" \
-           "\{\{\{" "\n" \
-           "\}\}\}" "\n" \
-           "\n" \
-           "Package=<4>" "\n" \
-           "\{\{\{" "\n" 
-            if {[wokinfo -x [woklocate -u $TK]] != "0"} {
-              if {[uinfo -t [woklocate -u $TK]] == "toolkit"} {
-                set deplist [LibToLink [woklocate -u $TK]]
-             } else {
-                 set deplist [LibToLinkX [woklocate -u $TK] $Dep_Name]
-                 ;#puts "$TK + $Dep_Name = $deplist "
-              }
-             foreach deplib $deplist {
-                if {[lsearch [wokUtils:LIST:reverse [osutils:tk:sort [${module}:toolkits]]] $deplib] != "-1"} { 
-                 #;puts [wokUtils:LIST:reverse [osutils:tk:sort [${module}:toolkits]]]
-                 if {$deplib != $TK} {
-                    append var "    Begin Project Dependency" "\n" \
-                               "    Project_Dep_Name $deplib" "\n" \
-                               "    End Project Dependency" "\n" 
-                 }
-                }
-             }
-            }
-             
-           append var "\}\}\}" "\n" \
-           "\n" \
-           "###############################################################################" "\n" \
-           "\n" 
-    return $var
-}
 
 ;#
-;#   ((((((( C R E A T I O N  D E S  P R O J E T S  V I S U A L )))))))
+;#   ((((((( GENERATION OF PROJECT FILES FOR VISUAL STUDIO )))))))
 ;#
 ;# fabrique le sln de module et le place dans dir. Retourne le
 ;# full path du fichier cree.
@@ -2809,442 +2774,437 @@ proc OS:vc6proj:projectby2 { TK Dep_Name module} {
 ;# Sinon utilise tklist donnee en argument.
 ;# Dans ce cas module est seulement utilise pour le nom de fichier .sln
 ;# Avec ca je fais un OCC.sln qui concatene plusieurs modules dans le bon ordre.
-;# 
+;#
 proc OS:genGUID {} {
-                set p1 "[format %07X [random 268435456]][format %X [random 16]]"
-                 set p2 "[format %04X [random 6536]]"
-                 set p3 "[format %04X [random 6536]]"
-                 set p4 "[format %04X [random 6536]]"
-                 set p5 "[format %06X [random 16777216]][format %06X [random 16777216]]"
-                 return "{$p1-$p2-$p3-$p4-$p5}"
-            }
-
-# generate Visual Studio solution file for VC++ 7.1 - 9.0
-# if module is empty, generates one solution for all known modules
-proc OS:vcsolution  { vc plat name modules dir _guids } {
-    upvar $_guids guids
-
-    # collect list of projects to be created
-    set projects {}
-    set deps {}
-    foreach m $modules {
-       # toolkits
-       foreach tk [osutils:tk:sort [${m}:toolkits]] {
-           lappend projects $tk
-           lappend projects_in_module($m) $tk
-           lappend deps [LibToLink [woklocate -u $tk]]
-       }
-       # executables, assume one project per cxx file...
-       foreach unit [OS:executable ${m}] {
-           set uloc [woklocate -u $unit]
-           set sourcefiles [uinfo -f -T source $uloc] 
-           foreach cxxfile $sourcefiles {
-               set cxxextension [file extension $cxxfile]
-               if { $cxxextension == ".cxx" } {
-                   set prjname [file rootname $cxxfile]
-                   lappend projects $prjname
-                   lappend projects_in_module($m) $prjname
-                   if {[wokinfo -x $uloc] != "0"} {
-                       lappend deps [LibToLinkX $uloc [file rootname $cxxfile]]
-                   } else {
-                       lappend deps {}
-                   }
-               }  
-           }
-        } 
-    }
-
-    # generate GUIDs for projects (unless already known)
-    foreach prj $projects {
-       if { ! [info exists guids($prj)] } {
-           set guids($prj) [OS:genGUID]
-       }
-    }
-
-    # generate solution file
-    puts "Generating Visual Studio ($vc $plat) solution file for $name ($projects)"
-    append buffer [osutils:vcsolution:header $vc] 
-
-    # GUID identifying group projects in Visual Studio
-    set VC_GROUP_GUID "{2150E333-8FDC-42A3-9474-1A3956D46DE8}"
-
-    # generate group projects -- one per module
-    if { "$vc" != "vc7" && [llength "$modules"] > 1 } {
-       foreach m $modules {
-           set guid [OS:genGUID]
-           set guids(_$m) $guid
-           append buffer "Project(\"${VC_GROUP_GUID}\") = \"$m\", \"$m\", \"$guid\"\nEndProject\n"
-       }
-    }
-
-    # extension of project files
-    set vcprojext [osutils:vcproj:ext $vc]
-
-    # GUID identifying C++ projects in Visual Studio
-    set VC_CPP_GUID "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}"
-
-    # generate project "All"
-#    set allGUID \{570118B7-F56D-41C9-A838-29464CD03149\}
-#    append buffer  "Project(\"${VC_CPP_GUID}\") = \"All\", \"All.${vcprojext}\", \"$allGUID\"\n"
-#    if { [llength $guids] > 0 } {
-#      append buffer  "\tProjectSection(ProjectDependencies) = postProject\n"
-#      foreach guid $guids {
-#          append buffer "\t\t$guid = $guid\n"
-#      }
-#      append buffer "\tEndProjectSection\n"
-#    }
-#    append buffer "EndProject\n" 
-
-    # generate normal projects
-    set len [llength $projects]
-    for {set i 0} {$i < $len} {incr i} {
-       set proj [lindex $projects $i]
-        set guid $guids($proj)
-       append buffer "Project(\"${VC_CPP_GUID}\") = \"$proj\", \"$proj.${vcprojext}\", \"$guid\"\n"
-       # write projects dependencies information (vc7 to vc9)
-       set depguids ""
-       foreach deplib [lindex $deps $i] {
-           if { $deplib != $proj && [lsearch $projects $deplib] != "-1" } {
-               set depGUID $guids($deplib)
-               append depguids "\t\t$depGUID = $depGUID\n" 
-           }
-       }
-       if { "$depguids" != "" } {
-           append buffer "\tProjectSection(ProjectDependencies) = postProject\n" 
-           append buffer "$depguids" 
-           append buffer "\tEndProjectSection\n" 
-       }
-       append buffer "EndProject\n"
-    }
-
-    # generate configuration section
-    append buffer [osutils:vcsolution:config:begin $vc $plat]
-#    append buffer [osutils:vcsolution:config:project $vc $plat $allGUID]
-    foreach proj $projects {
-       append buffer [osutils:vcsolution:config:project $vc $plat $guids($proj)]
-    }
-    append buffer [osutils:vcsolution:config:end $vc $plat]
-
-    # write information of grouping of projects by module
-    if { "$vc" != "vc7" && [llength "$modules"] > 1 } {
-        append buffer "        GlobalSection(NestedProjects) = preSolution\n"
-       foreach m $modules {
-           if { ! [info exists projects_in_module($m)] } { continue }
-           foreach project $projects_in_module($m) {
-               append buffer "         $guids($project) = $guids(_$m)\n"
-           }
-       }
-        append buffer "        EndGlobalSection\n"
-    }
-
-    # final word (footer)
-    append buffer "EndGlobal"
-
-    # write solution
-    set fp [open [set fdsw [file join $dir ${name}.sln]] w]
-    fconfigure $fp -translation crlf
-    puts $fp $buffer
-    close $fp
-    return [file join $dir ${name}.sln]
+  set p1 "[format %07X [expr { int(rand() * 268435456) }]][format %X [expr { int(rand() * 16) }]]"
+  set p2 "[format %04X [expr { int(rand() * 6536) }]]"
+  set p3 "[format %04X [expr { int(rand() * 6536) }]]"
+  set p4 "[format %04X [expr { int(rand() * 6536) }]]"
+  set p5 "[format %06X [expr { int(rand() * 16777216) }]][format %06X [expr { int(rand() * 16777216) }]]"
+  return "{$p1-$p2-$p3-$p4-$p5}"
 }
 
-;# fabrique le dsw de module et le place dans dir. Retourne le
-;# full path du fichier cree.
-;# Si tklist est {} utilise module pour la calculer.
-;# Sinon utilise tklist donnee en argument.
-;# Dans ce cas module est seulement utilise pour le nom de fichier .dsw
-;# Avec ca je fais un OCC.dsw qui concatene plusieurs modules dans le bon ordre.
-;# 
-proc OS:vc6proj  { module dir {inlist {}} } {
-    if { $inlist == {} } {
-       set list [wokUtils:LIST:reverse [osutils:tk:sort [${module}:toolkits]]]
-    } else {
-       set list $inlist
-    }
-    set list1 $list
-    foreach execunit [OS:executable ${module}] {
-        set sourcefiles [uinfo -f -T source [woklocate -u ${execunit}]]
-        foreach cxxfile $sourcefiles {
-            set cxxextension [file extension $cxxfile]
-           if { $cxxextension == ".cxx" } {    
-               set list [concat [file rootname $cxxfile] $list]
-            }
+# generate Visual Studio solution file
+# if module is empty, generates one solution for all known modules
+proc OS:vcsolution { theVcVer theSolName theModules theOutDir theGuidsMap } {
+  upvar $theGuidsMap aGuidsMap
+
+  # collect list of projects to be created
+  set aProjects {}
+  set aDependencies {}
+  foreach aModule $theModules {
+    # toolkits
+    foreach aToolKit [osutils:tk:sort [${aModule}:toolkits]] {
+      lappend aProjects $aToolKit
+      lappend aProjectsInModule($aModule) $aToolKit
+      lappend aDependencies [LibToLink [woklocate -u $aToolKit]]
+    }
+
+    # executables, assume one project per cxx file...
+    foreach aUnit [OS:executable ${aModule}] {
+      set aUnitLoc [woklocate -u $aUnit]
+      set aSrcFiles [uinfo -f -T source $aUnitLoc]
+      foreach aSrcFile $aSrcFiles {
+        set aFileExtension [file extension $aSrcFile]
+        if { $aFileExtension == ".cxx" } {
+          set aPrjName [file rootname $aSrcFile]
+          lappend aProjects $aPrjName
+          lappend aProjectsInModule($aModule) $aPrjName
+          if {[wokinfo -x $aUnitLoc] != "0"} {
+            lappend aDependencies [LibToLinkX $aUnitLoc [file rootname $aSrcFile]]
+          } else {
+            lappend aDependencies {}
+          }
         }
-        set list1 [concat $execunit $list1]
-    }
-    set len [llength $list1]
-    puts "OS:vc6proj list = $list1"
-    append buffer [osutils:vcsolution:header vc6] 
-    append buffer  "Project: \"All\"=.\\All.dsp - Package Owner=<4>" "\n" \
-                  "\n" \
-                  "Package=<5>" "\n" \
-                  "\{\{\{" "\n" \
-                  "\}\}\}" "\n" \
-                  "\n" \
-                  "Package=<4>" "\n" \
-                  "\{\{\{" "\n" 
-    for {set i 0} {$i < $len} {incr i 1} {
-       set mastr [lindex $list1 $i]
-        if {[uinfo -t [woklocate -u $mastr]] == "executable"} {
-           set sourcefiles [uinfo -f -T source [woklocate -u $mastr]] 
-           foreach cxxfile $sourcefiles {
-              set cxxextension [file extension $cxxfile]
-              if { $cxxextension == ".cxx" } {
-                   append buffer  "    Begin Project Dependency" "\n" \
-                      "    Project_Dep_Name [file rootname ${cxxfile}]" "\n" \
-                      "    End Project Dependency" "\n" 
-
-              }  
-           }
-        } else {
-               if {[lsearch [wokUtils:LIST:reverse [osutils:tk:sort [${module}:toolkits]]] $mastr] != "-1"} { 
-                   append buffer  "    Begin Project Dependency" "\n" \
-                                 "    Project_Dep_Name $mastr" "\n" \
-                                 "    End Project Dependency" "\n" 
-                }
-
+      }
+    }
+  }
+
+  # generate GUIDs for projects (unless already known)
+  foreach aProject $aProjects {
+    if { ! [info exists aGuidsMap($aProject)] } {
+      set aGuidsMap($aProject) [OS:genGUID]
+    }
+  }
+
+  # generate solution file
+  puts "Generating Visual Studio ($theVcVer) solution file for $theSolName ($aProjects)"
+  append aFileBuff [osutils:vcsolution:header $theVcVer]
+
+  # GUID identifying group projects in Visual Studio
+  set VC_GROUP_GUID "{2150E333-8FDC-42A3-9474-1A3956D46DE8}"
+
+  # generate group projects -- one per module
+  if { "$theVcVer" != "vc7" && [llength "$theModules"] > 1 } {
+    foreach aModule $theModules {
+      if { ! [info exists aGuidsMap(_$aModule)] } {
+        set aGuidsMap(_$aModule) [OS:genGUID]
+      }
+      set aGuid $aGuidsMap(_$aModule)
+      append aFileBuff "Project(\"${VC_GROUP_GUID}\") = \"$aModule\", \"$aModule\", \"$aGuid\"\nEndProject\n"
+    }
+  }
+
+  # extension of project files
+  set aProjExt [osutils:vcproj:ext $theVcVer]
+
+  # GUID identifying C++ projects in Visual Studio
+  set VC_CPP_GUID "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}"
+
+  # generate project "All"
+  # set allGUID \{570118B7-F56D-41C9-A838-29464CD03149\}
+  # append aFileBuff  "Project(\"${VC_CPP_GUID}\") = \"All\", \"All.${aProjExt}\", \"$allGUID\"\n"
+  # if { [llength $aGuidsMap] > 0 } {
+  #      append aFileBuff  "\tProjectSection(ProjectDependencies) = postProject\n"
+  #      foreach aGuid $aGuidsMap {
+  #        append aFileBuff "\t\t$aGuid = $aGuid\n"
+  #      }
+  #      append aFileBuff "\tEndProjectSection\n"
+  # }
+  # append aFileBuff "EndProject\n"
+
+  # generate normal projects
+  set aProjsNb [llength $aProjects]
+  for {set aProjId 0} {$aProjId < $aProjsNb} {incr aProjId} {
+    set aProj [lindex $aProjects $aProjId]
+    set aGuid $aGuidsMap($aProj)
+    append aFileBuff "Project(\"${VC_CPP_GUID}\") = \"$aProj\", \"$aProj.${aProjExt}\", \"$aGuid\"\n"
+    # write projects dependencies information (vc7 to vc9)
+    set aDepGuids ""
+    foreach aDepLib [lindex $aDependencies $aProjId] {
+      if { $aDepLib != $aProj && [lsearch $aProjects $aDepLib] != "-1" } {
+        set depGUID $aGuidsMap($aDepLib)
+        append aDepGuids "\t\t$depGUID = $depGUID\n"
+      }
+    }
+    if { "$aDepGuids" != "" } {
+      append aFileBuff "\tProjectSection(ProjectDependencies) = postProject\n"
+      append aFileBuff "$aDepGuids"
+      append aFileBuff "\tEndProjectSection\n"
+    }
+    append aFileBuff "EndProject\n"
+  }
+
+  # generate configuration section
+  if { "$theVcVer" == "vc8" } {
+    append aFileBuff [osutils:vcsolution:config:begin $theVcVer]
+    foreach aProj $aProjects {
+      append aFileBuff [osutils:vcsolution:config:project $theVcVer $aGuidsMap($aProj)]
+    }
+    append aFileBuff [osutils:vcsolution:config:end $theVcVer]
+  } else {
+    append aFileBuff [osutils:vcsolution:config:begin $theVcVer]
+    # append aFileBuff [osutils:vcsolution:config:project $theVcVer $allGUID]
+    foreach aProj $aProjects {
+      append aFileBuff [osutils:vcsolution:config:project $theVcVer $aGuidsMap($aProj)]
+    }
+    append aFileBuff [osutils:vcsolution:config:end $theVcVer]
+  }
+
+  # write information of grouping of projects by module
+  if { "$theVcVer" != "vc7" && [llength "$theModules"] > 1 } {
+    append aFileBuff " GlobalSection(NestedProjects) = preSolution\n"
+    foreach aModule $theModules {
+      if { ! [info exists aProjectsInModule($aModule)] } { continue }
+      foreach aProject $aProjectsInModule($aModule) {
+        append aFileBuff "             $aGuidsMap($aProject) = $aGuidsMap(_$aModule)\n"
+      }
+    }
+    append aFileBuff " EndGlobalSection\n"
+  }
+
+  # final word (footer)
+  append aFileBuff "EndGlobal"
+
+  # write solution
+  set aFile [open [set fdsw [file join $theOutDir ${theSolName}.sln]] w]
+  fconfigure $aFile -translation crlf
+  puts $aFile $aFileBuff
+  close $aFile
+  return [file join $theOutDir ${theSolName}.sln]
+}
+
+# Generate Visual Studio projects for specified version
+proc OS:vcproj { theVcVer theModules theOutDir theGuidsMap } {
+  upvar $theGuidsMap aGuidsMap
+
+  set aProjectFiles {}
+
+  foreach aModule $theModules {
+    foreach aToolKit [${aModule}:toolkits] {
+      lappend aProjectFiles [osutils:vcproj  $theVcVer $theOutDir $aToolKit     aGuidsMap]
+    }
+    foreach anExecutable [OS:executable ${aModule}] {
+      lappend aProjectFiles [osutils:vcprojx $theVcVer $theOutDir $anExecutable aGuidsMap]
+    }
+  }
+  return $aProjectFiles
+}
+
+# Generate Code::Blocks projects
+proc OS:cbp { theModules theOutDir } {
+  set aProjectFiles {}
+  foreach aModule $theModules {
+    foreach aToolKit [${aModule}:toolkits] {
+      lappend aProjectFiles [osutils:cbptk $theOutDir $aToolKit ]
+    }
+    foreach anExecutable [OS:executable ${aModule}] {
+      lappend aProjectFiles [osutils:cbpx  $theOutDir $anExecutable]
+    }
+  }
+  return $aProjectFiles
+}
+
+proc OS:cworkspace { theSolName theModules theOutDir } {
+  set aWsFilePath "${theOutDir}/${theSolName}.workspace"
+  set aFile [open $aWsFilePath "w"]
+  puts $aFile "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>"
+  puts $aFile "<CodeBlocks_workspace_file>"
+  puts $aFile "\t<Workspace title=\"${theSolName}\">"
+
+  # collect list of projects to be created
+  foreach aModule $theModules {
+    # toolkits
+    foreach aToolKit [osutils:tk:sort [${aModule}:toolkits]] {
+      set aDependencies [LibToLink [woklocate -u $aToolKit]]
+      if { [llength $aDependencies] == 0 } {
+        puts $aFile "\t\t<Project filename=\"${aToolKit}.cbp\" />"
+      } else {
+        puts $aFile "\t\t<Project filename=\"${aToolKit}.cbp\" >"
+        foreach aDepTk $aDependencies {
+          puts $aFile "\t\t\t<Depends filename=\"${aDepTk}.cbp\" />"
         }
-    }
-    append buffer "\}\}\}" "\n" \
-    "\n" \
-    "###############################################################################" "\n" \
-    "\n" 
-
-    for {set i 0} {$i < $len} {incr i 1} {
-       set mastr [lindex $list1 $i]
-        if {[uinfo -t [woklocate -u $mastr]] == "executable"} {
-           set sourcefiles [uinfo -f -T source [woklocate -u ${mastr}]] 
-           foreach cxxfile $sourcefiles {
-              set cxxextension [file extension $cxxfile]
-              if { $cxxextension == ".cxx" } {
-                 append buffer [OS:vc6proj:projectby2 $mastr [file rootname $cxxfile] $module]
-              }
-           } 
-        } else {
-           append buffer [OS:vc6proj:projectby2 $mastr $mastr $module]
+        puts $aFile "\t\t</Project>"
+      }
+    }
+
+    # executables, assume one project per cxx file...
+    foreach aUnit [OS:executable ${aModule}] {
+      set aUnitLoc [woklocate -u $aUnit]
+      set aSrcFiles [uinfo -f -T source $aUnitLoc]
+      foreach aSrcFile $aSrcFiles {
+        set aFileExtension [file extension $aSrcFile]
+        if { $aFileExtension == ".cxx" } {
+          set aPrjName [file rootname $aSrcFile]
+          set aDependencies [list]
+          if {[wokinfo -x $aUnitLoc] != "0"} {
+            set aDependencies [LibToLinkX $aUnitLoc [file rootname $aSrcFile]]
+          }
+          if { [llength $aDependencies] == 0 } {
+            puts $aFile "\t\t<Project filename=\"${aPrjName}.cbp\" />"
+          } else {
+            puts $aFile "\t\t<Project filename=\"${aPrjName}.cbp\" >"
+            foreach aDepTk $aDependencies {
+              puts $aFile "\t\t\t<Depends filename=\"${aDepTk}.cbp\" />"
+            }
+            puts $aFile "\t\t</Project>"
+          }
         }
-    }
-    append buffer [osutils:vc6proj:footer]
-    set fp [open [set fdsw [file join $dir ${module}.dsw]] w]
-    fconfigure $fp -translation crlf
-    puts $fp $buffer
-    close $fp
-    return [file join $dir ${module}.dsw]
-}
-;#
-;# fabrique les dsp de module et les place dans dir. Retourne la liste 
-;# des full pathes des fichiers .dsp crees
-;# que faire des UDs qui se balladent toutes seules. 
-;#
-proc OS:vc6  { module dir } {
-
-    set lret {}
-
-    foreach tkloc [${module}:toolkits] {
-       lappend lret [osutils:vc6 $dir $tkloc]
-    }
-    if { [set lxqt [OS:executable ${module}]] != {} } {
-       foreach x $lxqt {
-          lappend lret [osutils:vc6x $dir $x]
-       }
-    }
-
-    lappend lret [OS:vc6proj $module $dir]
-    return $lret
-}
-
-# Generate Visual Studio projects for specified version (7 - 9) and platform
-proc OS:vcproj { vc plat modules dir _guids } {
-    upvar $_guids guids
-
-    set lret {}
-
-    foreach mod $modules {
-       foreach tkloc [${mod}:toolkits] {
-           lappend lret [osutils:vcproj $vc $plat $dir $tkloc guids]
-       }
-       foreach x [OS:executable ${mod}] {
-           lappend lret [osutils:vcprojx $vc $plat $dir $x guids]
-       }
-    }
-
-    return $lret
-}
-;#
-;# Pour la fab des procs de reconstruction (ainsi que pour 
-;# les projets Visual, tout peut se faire sur Unix.) d'ou:
-;#
-proc OS:MKPRC { {outdir {}} {modules {}} {platforms {}} {vcver {vc8 vc9 vc10}} } {
-
-    set BOX $outdir
-    if { $BOX == "" } {
-       set BOX [OS -box]
-    }
-
-    # versions of VC supported for each platform
-    set vcversions(win32) {vc6 vc7 vc8 vc9 vc10}
-    set vcversions(win64) {vc8 vc9 vc10}
-
-    # make list of modules and platforms
-    set lesmodules [OS:listmodules $modules $platforms]
-    set lesplats $platforms 
-    if { "$lesplats" == "" } { set lesplats [concat [OS:plats_disponibles] "win32 win64"] }
-
-    # generate one solution for all projects if complete OS or VAS is processed
-    set one_solution ""
-    if { $modules == "OS" } {
-       set one_solution "OCCT"
-    } elseif { $modules == "VAS" } {
-       set one_solution "Products"
-    }
-    
-    foreach plat $lesplats {
-       puts stderr "OS:MKPRC: $plat"
-
-        # compatibility: WindowsNT is alias to win32
-       if { "$plat" == "WindowsNT" } { set plat "win32" }
-
-       # make sure that we know such platform and can generate VC projects for it
-       if { ! [info exists vcversions($plat)] } {
-           puts stderr "Error: No supported versions of Visual Studio are known for platform $plat"
-           continue
-       }
-
-        # generate projects for each of supported versions of VC 
-       foreach vc $vcversions($plat) {
-           if { [llength $vcver] >0 && [lsearch $vcver $vc] < 0 } {
-               continue;
-           }
-           puts stderr "Generating project files for $vc $plat"
-
-           # create output directory
-           set outdir $BOX/$plat/$vc
-           OS:mkdir $outdir
-           if { ! [file exists $outdir] } {
-               puts stderr "Error: Could not create output directory \"$outdir\""
-               continue
-           }
-
-           # generate projects for toolkits and separate solution for each module
-           foreach module $lesmodules {
-               if { "$vc" == "vc6" } {
-                   OS:vc6 $module $outdir
-               } else {
-                   OS:vcsolution $vc $plat $module $module $outdir guids
-                   OS:vcproj $vc $plat $module $outdir guids
-               }
-           }
-
-           # generate single solution "OCCT" containing projects from all modules
-           if { "$one_solution" != "" && "$vc" != "vc6" } {
-               OS:vcsolution $vc $plat $one_solution $lesmodules $BOX/$plat/$vc guids
-           }
-       }
-    }
+      }
+    }
+  }
+
+  puts $aFile "\t</Workspace>"
+  puts $aFile "</CodeBlocks_workspace_file>"
+  close $aFile
+
+  return $aWsFilePath
+}
+
+# Store global GUIDs map to reproduce same values on sequential calls
+set aTKNullKey "TKNull"
+set THE_GUIDS_LIST($aTKNullKey) "{00000000-0000-0000-0000-000000000000}"
+
+# Entry function to generate VS project files and solutions
+proc OS:MKPRC { {theOutDir {}} {theModules {}} {theVcVersions {vc8 vc9 vc10}} } {
+  set anOutRoot $theOutDir
+  if { $anOutRoot == "" } {
+    set anOutRoot [OS -box]
+  }
+
+  # versions of VC supported for each platform
+  set aVcVersions {vc7 vc8 vc9 vc10}
+
+  # read map of already generated GUIDs
+  set aGuidsFilePath [file join $::env(WOK_SESSIONID) "wok_vs_guids.txt"]
+  if [file exists "$aGuidsFilePath"] {
+    set aFileIn [open "$aGuidsFilePath" r]
+    set aFileDataRaw [read $aFileIn]
+    close $aFileIn
+    set aFileData [split $aFileDataRaw "\n"]
+    foreach aLine $aFileData {
+      set aLineSplt [split $aLine "="]
+      if { [llength $aLineSplt] == 2 } {
+        set ::THE_GUIDS_LIST([lindex $aLineSplt 0]) [lindex $aLineSplt 1]
+      }
+    }
+  }
+
+  # make list of modules and platforms
+  set aModules [OS:listmodules $theModules {win32}]
+
+  # generate one solution for all projects if complete OS or VAS is processed
+  set anAllSolution ""
+  if { $theModules == "OS" } {
+    set anAllSolution "OCCT"
+  } elseif { $theModules == "VAS" } {
+    set anAllSolution "Products"
+  }
+
+  # generate projects for each of supported versions of VC
+  foreach aVcVer $aVcVersions {
+    if { [llength $theVcVersions] > 0 && [lsearch $theVcVersions $aVcVer] < 0 } {
+      #puts stderr "Error: No supported versions of Visual Studio"
+      continue;
+    }
+    puts stderr "Generating VS project files for $aVcVer"
+
+    # create output directory
+    set anOutDir $anOutRoot/msvc/$aVcVer
+    OS:mkdir $anOutDir
+    if { ! [file exists $anOutDir] } {
+      puts stderr "Error: Could not create output directory \"$anOutDir\""
+      continue
+    }
+
+    # generate projects for toolkits and separate solution for each module
+    foreach aModule $aModules {
+      OS:vcsolution $aVcVer $aModule $aModule $anOutDir ::THE_GUIDS_LIST
+      OS:vcproj     $aVcVer $aModule          $anOutDir ::THE_GUIDS_LIST
+    }
+
+    # generate single solution "OCCT" containing projects from all modules
+    if { "$anAllSolution" != "" } {
+      OS:vcsolution $aVcVer $anAllSolution $aModules $anOutDir ::THE_GUIDS_LIST
+    }
+  }
+
+  # create output directory for Code::Blocks project files
+  set aWokStation "$::env(WOKSTATION)"
+  set anOutDir "${anOutRoot}/${aWokStation}/cbp"
+  OS:mkdir $anOutDir
+  if { ! [file exists $anOutDir] } {
+    puts stderr "Error: Could not create output directory \"$anOutDir\""
+  } else {
+    foreach aModule $aModules {
+      OS:cworkspace $aModule $aModule $anOutDir
+      OS:cbp        $aModule          $anOutDir
+    }
+    if { "$anAllSolution" != "" } {
+      OS:cworkspace $anAllSolution $aModules $anOutDir
+    }
+  }
+
+  # Store generated GUIDs map
+  set anOutFile [open "$aGuidsFilePath" "w"]
+  fconfigure $anOutFile -translation lf
+  foreach aKey [array names ::THE_GUIDS_LIST] {
+    set aValue $::THE_GUIDS_LIST($aKey)
+    puts $anOutFile "${aKey}=${aValue}"
+  }
+  close $anOutFile
 }
 
 # This function was created for *.mak files generation (compilation with nmake utilite of MS Visual Studio).
 # The function creates *.mak files for toolkits of all the modules of OCC with osutils:mkmak procedure,
-# for executables of all the modules of OCC with osutils:mkmakx procedure, then it generates All.mak files, 
+# for executables of all the modules of OCC with osutils:mkmakx procedure, then it generates All.mak files,
 # which will call compilation with generated *.mak files for toolkits and executables in appropriate order.
-#
-proc  OS:MKMAK { {plase {}} {ll {} } } {
-    if {$plase == ""} {
-       set BOX "[OS -box]/WindowsNT"
-    } else {
-       set BOX $plase
-    }
-
-    set lesmodules [OS -lm]
-    if { $ll != {} } {  set lesmodules $ll }
-    
-    OS:mkdir $BOX
-    set unitlist ""
-    set filelist ""    
-    foreach module $lesmodules {
-       append unitlist "[${module}:toolkits] "
-        append filelist "[${module}:toolkits] "
-        foreach execunit [OS:executable $module] {
-          append unitlist "$execunit "
-          foreach execfile [osutils:tk:files $execunit osutils:am:compilable 0] {
-             append filelist "[file rootname [file tail $execfile]] "
-         }
-        }
-    }
-    puts "unitlist is $unitlist"
-    foreach unit $unitlist {
-       if {[uinfo -t [woklocate -u $unit]] == "toolkit"} {
-           osutils:mkmak $BOX $unit
-        }
-       if {[uinfo -t [woklocate -u $unit]] == "executable"} {
-           osutils:mkmakx $BOX $unit
-        }
-    }
-    
-    set fp [open [set fmak [file join $BOX All.mak]] w]
-    fconfigure $fp -translation crlf
-
-    set buffer ""
-    append buffer "\!IF \"\$(CFG)\" == \"\"\n"
-    append buffer "CFG=All - Win32 Debug\n"
-    append buffer "\!MESSAGE No configuration specified. Defaulting to All - Win32 Debug.\n"
-    append buffer "\!ENDIF \n"
-    append buffer "\!IF \"\$(OS)\" == \"Windows_NT\"\n"
-    append buffer "NULL=\n"
-    append buffer "\!ELSE \n"
-    append buffer "NULL=nul\n"
-    append buffer "\!ENDIF \n"
-    append buffer "\n"
+proc OS:MKMAK { {plase {}} {ll {} } } {
+  if {$plase == ""} {
+    set BOX "[OS -box]/WindowsNT"
+  } else {
+    set BOX $plase
+  }
+
+  set lesmodules [OS -lm]
+  if { $ll != {} } {  set lesmodules $ll }
+
+  OS:mkdir $BOX
+
+  set unitlist ""
+  set filelist ""
+  foreach module $lesmodules {
+    append unitlist "[${module}:toolkits] "
+    append filelist "[${module}:toolkits] "
+    foreach execunit [OS:executable $module] {
+      append unitlist "$execunit "
+      foreach execfile [osutils:tk:files $execunit osutils:am:compilable 0] {
+        append filelist "[file rootname [file tail $execfile]] "
+      }
+    }
+  }
+  puts "unitlist is $unitlist"
+  foreach unit $unitlist {
+    if {[uinfo -t [woklocate -u $unit]] == "toolkit"} {
+      osutils:mkmak $BOX $unit
+    }
+    if {[uinfo -t [woklocate -u $unit]] == "executable"} {
+      osutils:mkmakx $BOX $unit
+    }
+  }
+
+  set fp [open [set fmak [file join $BOX All.mak]] w]
+  fconfigure $fp -translation crlf
+
+  set buffer ""
+  append buffer "\!IF \"\$(CFG)\" == \"\"\n"
+  append buffer "CFG=All - Win32 Debug\n"
+  append buffer "\!MESSAGE No configuration specified. Defaulting to All - Win32 Debug.\n"
+  append buffer "\!ENDIF \n"
+  append buffer "\!IF \"\$(OS)\" == \"Windows_NT\"\n"
+  append buffer "NULL=\n"
+  append buffer "\!ELSE \n"
+  append buffer "NULL=nul\n"
+  append buffer "\!ENDIF \n"
+  append buffer "\n"
+  append buffer "\!IF  \"\$(CFG)\" == \"All - Win32 Release\"\n"
+  append buffer "ALL : "
+  foreach unit $filelist {
+    append buffer "\"$unit - Win32 Release\" "
+  }
+  append buffer "\n"
+  append buffer "\n"
+  append buffer "CLEAN : "
+  foreach unit $filelist {
+    append buffer "\"$unit - Win32 ReleaseCLEAN\" "
+  }
+  append buffer "\n"
+  append buffer "\n"
+  append buffer "\!ELSEIF  \"\$(CFG)\" == \"All - Win32 Debug\"\n"
+  append buffer "ALL : "
+  foreach unit $filelist {
+    append buffer "\"$unit - Win32 Debug\" "
+  }
+  append buffer "\n"
+  append buffer "\n"
+  append buffer "CLEAN : "
+  foreach unit $filelist {
+    append buffer "\"$unit - Win32 DebugCLEAN\" "
+  }
+  append buffer "\n"
+  append buffer "\n"
+  append buffer "\!ENDIF \n"
+  append buffer "\n"
+  append buffer "\!IF \"\$(CFG)\" == \"All - Win32 Release\" \|\| \"\$(CFG)\" == \"All - Win32 Debug\"\n"
+  append buffer "\n"
+  append buffer "\n"
+
+  foreach unit $filelist {
     append buffer "\!IF  \"\$(CFG)\" == \"All - Win32 Release\"\n"
-    append buffer "ALL : "
-    foreach unit $filelist {
-      append buffer "\"$unit - Win32 Release\" "
-    }
-    append buffer "\n"
-    append buffer "\n"
-    append buffer "CLEAN : "
-    foreach unit $filelist {
-      append buffer "\"$unit - Win32 ReleaseCLEAN\" "
-    }
-    append buffer "\n"
-    append buffer "\n"
+    append buffer "\"$unit - Win32 Release\" : \n"
+    append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Release\" RECURSE=0 \n"
+    append buffer "\"$unit - Win32 ReleaseCLEAN\" : \n"
+    append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Release\" CLEAN \n"
     append buffer "\!ELSEIF  \"\$(CFG)\" == \"All - Win32 Debug\"\n"
-    append buffer "ALL : "
-    foreach unit $filelist {
-      append buffer "\"$unit - Win32 Debug\" "
-    }
-    append buffer "\n"
-    append buffer "\n"
-    append buffer "CLEAN : "
-    foreach unit $filelist {
-      append buffer "\"$unit - Win32 DebugCLEAN\" "
-    }
-    append buffer "\n"
-    append buffer "\n"
+    append buffer "\"$unit - Win32 Debug\" : \n"
+    append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Debug\" RECURSE=0 \n"
+    append buffer "\"$unit - Win32 DebugCLEAN\" : \n"
+    append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Debug\" CLEAN \n"
     append buffer "\!ENDIF \n"
-    append buffer "\n"
-    append buffer "\!IF \"\$(CFG)\" == \"All - Win32 Release\" \|\| \"\$(CFG)\" == \"All - Win32 Debug\"\n"
-    append buffer "\n"
-    append buffer "\n"
-
-    foreach unit $filelist {
-      append buffer "\!IF  \"\$(CFG)\" == \"All - Win32 Release\"\n"
-      append buffer "\"$unit - Win32 Release\" : \n"
-      append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Release\" RECURSE=0 \n"
-      append buffer "\"$unit - Win32 ReleaseCLEAN\" : \n"
-      append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Release\" CLEAN \n"
-      append buffer "\!ELSEIF  \"\$(CFG)\" == \"All - Win32 Debug\"\n"
-      append buffer "\"$unit - Win32 Debug\" : \n"
-      append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Debug\" RECURSE=0 \n"
-      append buffer "\"$unit - Win32 DebugCLEAN\" : \n"
-      append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Debug\" CLEAN \n"
-      append buffer "\!ENDIF \n"
-    }
-    append buffer "\!ENDIF \n"
-    puts $fp $buffer
-    close $fp
+  }
+  append buffer "\!ENDIF \n"
+  puts $fp $buffer
+  close $fp
 }
 ;#
 ;# Fabrication des archives "source" :
@@ -3265,7 +3225,7 @@ proc  OS:PKGSRC { {ll {} } {mode link} } {
     ;# La ou on cree l'arborescence pour l'archive.
     ;# et le nom de la racine contenue dans l'archive
     ;#
-    set TMPDIR /dn01/KAS/dev/ros/work 
+    set TMPDIR /dn01/KAS/dev/ros/work
     set ROOT   [OS:archive_root]
     ;# La ou on met le tar.gz avec le nom desire.
     ;#
@@ -3282,8 +3242,8 @@ proc  OS:PKGSRC { {ll {} } {mode link} } {
        puts stderr "OS:PKGSRC($module)"
        set LISTE {}
 
-       ;#OS -lsource $module -v -o $BOX/$module.sources 
-       OS -lsource $module -o $BOX/$module.sources 
+       ;#OS -lsource $module -v -o $BOX/$module.sources
+       OS -lsource $module -o $BOX/$module.sources
        OS -u udlist $module -o $BOX/$module.UDLIST
        set lx [wokUtils:FILES:FileToList $BOX/$module.sources]
        lappend lx "$BOX/$module.UDLIST [file join adm $module.UDLIST]"
@@ -3308,7 +3268,7 @@ proc  OS:PKGSRC { {ll {} } {mode link} } {
        if [file exists $BOX/${module}.ressources] {
            lappend LISTE $BOX/${module}.ressources
        }
-       
+
        OS -lfreefiles ${module} -type source -o $BOX/${module}.freefiles
        if [file exists $BOX/${module}.freefiles] {
            lappend LISTE $BOX/${module}.freefiles
@@ -3319,7 +3279,7 @@ proc  OS:PKGSRC { {ll {} } {mode link} } {
        set tmpdir [file join $TMPDIR $module src]
 
        set r [OS -mktree -mode $mode -from [join $LISTE ,] -tmpdir $tmpdir -root $ROOT]
-       
+
        set znam [format $fmtnam [${module}:name]]
        set z [OS -mkar $znam $module -tmpdir $tmpdir -root $ROOT]
 
@@ -3362,7 +3322,7 @@ proc  OS:PKGRTL { {llplat {}} {ll {} } { mode link } } {
     if { $llplat != {} } { set lesplats $llplat }
     set lmodules [OS -lm]
     if { $ll != {} } {  set lmodules $ll }
-    
+
     set lesmodules {}
     foreach mo $lmodules {
        if { [lsearch [${mo}:Export] runtime] != -1 } {
@@ -3390,7 +3350,7 @@ proc  OS:PKGRTL { {llplat {}} {ll {} } { mode link } } {
            OS -lfreefiles ${module} -type runtime -o $BOX/$plat/${module}.freefiles
            lappend LISTE $BOX/$plat/${module}.freefiles
            set tmpdir [file join $TMPDIR $module $plat]
-           
+
            puts "mktree: "
            set r [OS -v -mktree -mode $mode -from [join $LISTE ,] -tmpdir $tmpdir -root [file join $ROOT $plat]]
            if [file exists $r/src ] {
@@ -3400,7 +3360,7 @@ proc  OS:PKGRTL { {llplat {}} {ll {} } { mode link } } {
                exec mv $plat/src .
                cd $savpwd
            }
-           
+
            puts "mkar: "
            set znam [format $fmtnam $plat [${module}:name]]
            set z [OS -mkar $znam -tmpdir $tmpdir -root $ROOT]
@@ -3408,435 +3368,417 @@ proc  OS:PKGRTL { {llplat {}} {ll {} } { mode link } } {
        }
     }
 }
-;#
-;# Administration de wok
-;#
-proc OS:PKGADM { plat { ll {} } } {
-;#
-;# ce qui suit veut dire que:
-;# on substitue /adv_11/KAS/C30/ref par TOSUBSTITUTE ET /adv_11/KAS/C30/UpdateC31 par TOSUBSTITUTE etc..
-;# sur la plateforme correspondante.
-;#
-    set TOTRIM(wokadm,WindowsNT) nothing,nothing
-    set TOTRIM(wokadm,SunOS)     \
-           /dn01/KAS/dev/roc,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE
-    set TOTRIM(wokadm,IRIX)      \
-           /dn01/KAS/dev/ros,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE
-    set TOTRIM(wokadm,Linux)     \
-           /dn01/KAS/dev/ros,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE
-    set TOTRIM(wokadm,AIX)       \
-           /dn01/KAS/dev/ros,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE
-    
-    set BOX [OS -box]
-    set lmodules [OS -lm]
-    if { $ll != {} } {  set lmodules $ll }
-    set lesmodules {}
-    foreach mo $lmodules {
-       if { [lsearch [${mo}:Export] wokadm] != -1 } {
-           lappend lesmodules $mo
-       }
-    }
-
-    set TMPDIR /dn01/KAS/dev/ros/work/ADM
-    set ROOT   [OS:archive_root]
 
-    set DISTRIB [OS -distrib]
-    set fmtnam "$DISTRIB/%swokadm%s-[OS:dotted_version].tar"
-
-    puts stderr "OS:PKGADM: $plat . On retire $TOTRIM(wokadm,$plat) des fichiers wokadm"
-
-    foreach module $lesmodules {
-       set tmpdir [file join $TMPDIR $module $plat]
-       catch { exec rm -rf $tmpdir }
-       OS -os $plat -makadm $tmpdir $module -substr $TOTRIM(wokadm,$plat) \
-               -subdone [file join $tmpdir $module.TOSUBSTITUTE] -o $BOX/$plat/$module.wokadm
-       OS -u udlist $module -o [file join $tmpdir $module.UDLIST]
-       set lx [wokUtils:FILES:FileToList $BOX/$plat/$module.wokadm]
-       lappend lx "[file join $tmpdir $module.UDLIST] [file join adm $module.UDLIST]"
-       lappend lx "[file join $tmpdir $module.TOSUBSTITUTE] [file join adm $plat $module.TOSUBSTITUTE]"
-       wokUtils:FILES:ListToFile $lx $BOX/$plat/$module.wokadm
-       set r [OS -mktree -from $BOX/$plat/$module.wokadm -tmpdir $tmpdir -root $ROOT]
-       set znam [format $fmtnam $plat [${module}:name]]
-       set z [OS -mkar $znam -tmpdir $tmpdir -root $ROOT]
-    }
-}
-;#
-;# Sources des modules compactes a la wok
-;#
+# Administration de wok
+proc OS:PKGADM { plat { ll {} } } {
+  ;#
+  ;# ce qui suit veut dire que:
+  ;# on substitue /adv_11/KAS/C30/ref par TOSUBSTITUTE ET /adv_11/KAS/C30/UpdateC31 par TOSUBSTITUTE etc..
+  ;# sur la plateforme correspondante.
+  ;#
+  set TOTRIM(wokadm,WindowsNT) nothing,nothing
+  set TOTRIM(wokadm,SunOS)     \
+    /dn01/KAS/dev/roc,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE
+  set TOTRIM(wokadm,IRIX)      \
+    /dn01/KAS/dev/ros,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE
+  set TOTRIM(wokadm,Linux)     \
+    /dn01/KAS/dev/ros,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE
+  set TOTRIM(wokadm,AIX)       \
+    /dn01/KAS/dev/ros,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE
+
+  set BOX [OS -box]
+  set lmodules [OS -lm]
+  if { $ll != {} } {  set lmodules $ll }
+  set lesmodules {}
+  foreach mo $lmodules {
+    if { [lsearch [${mo}:Export] wokadm] != -1 } {
+      lappend lesmodules $mo
+    }
+  }
+
+  set TMPDIR /dn01/KAS/dev/ros/work/ADM
+  set ROOT   [OS:archive_root]
+
+  set DISTRIB [OS -distrib]
+  set fmtnam "$DISTRIB/%swokadm%s-[OS:dotted_version].tar"
+
+  puts stderr "OS:PKGADM: $plat . On retire $TOTRIM(wokadm,$plat) des fichiers wokadm"
+
+  foreach module $lesmodules {
+    set tmpdir [file join $TMPDIR $module $plat]
+    catch { exec rm -rf $tmpdir }
+    OS -os $plat -makadm $tmpdir $module -substr $TOTRIM(wokadm,$plat) \
+    -subdone [file join $tmpdir $module.TOSUBSTITUTE] -o $BOX/$plat/$module.wokadm
+    OS -u udlist $module -o [file join $tmpdir $module.UDLIST]
+    set lx [wokUtils:FILES:FileToList $BOX/$plat/$module.wokadm]
+    lappend lx "[file join $tmpdir $module.UDLIST] [file join adm $module.UDLIST]"
+    lappend lx "[file join $tmpdir $module.TOSUBSTITUTE] [file join adm $plat $module.TOSUBSTITUTE]"
+    wokUtils:FILES:ListToFile $lx $BOX/$plat/$module.wokadm
+    set r [OS -mktree -from $BOX/$plat/$module.wokadm -tmpdir $tmpdir -root $ROOT]
+    set znam [format $fmtnam $plat [${module}:name]]
+    set z [OS -mkar $znam -tmpdir $tmpdir -root $ROOT]
+  }
+}
+
+# Sources des modules compactes a la wok
 proc OS:SRCBCK { {ll {}} }  {
-    
-    set BOX  [OS -box]
-    set lmodules [OS -lm]
-    if { $ll != {} } { set lmodules $ll }
-    set lesmodules {}
-    foreach mo $lmodules {
-       if { [lsearch [${mo}:Export] source] != -1 } {
-           lappend lesmodules $mo
-       }
-    }
-    ;# La ou on cree l'arborescence pour l'archive.
-    ;# et le nom de la racine contenue dans l'archive
+
+  set BOX  [OS -box]
+  set lmodules [OS -lm]
+  if { $ll != {} } { set lmodules $ll }
+  set lesmodules {}
+  foreach mo $lmodules {
+    if { [lsearch [${mo}:Export] source] != -1 } {
+      lappend lesmodules $mo
+    }
+  }
+  ;# La ou on cree l'arborescence pour l'archive.
+  ;# et le nom de la racine contenue dans l'archive
+  ;#
+  ;# La ou on met le tar.gz avec le nom desire.
+  ;#
+  set DISTRIB [OS -distrib]
+  set fmtnam "$DISTRIB/%s-[OS:dotted_version].bck"
+
+  foreach module $lesmodules {
+    wokcd KAS:dev:ros
+    puts stderr "OS:SRCBCK($module)"
+    OS:wpack $module $DISTRIB 1
+  }
+}
+
+# Fabrication des tar.gz avec option --files de tar. + rapide , + sur, + simple, + elegant.
+proc OSPKGS { {ll {} } } {
+
+  set BOX  [OS -box]
+  set lmodules [OS -lm]
+  if { $ll != {} } { set lmodules $ll }
+  set lesmodules {}
+  foreach mo $lmodules {
+    if { [lsearch [${mo}:Export] source] != -1 } {
+      lappend lesmodules $mo
+    }
+  }
+
+  ;# La ou on cree l'arborescence pour l'archive.
+  ;# et le nom de la racine contenue dans l'archive
+  ;#
+  set ROOT   [OS:archive_root]
+  ;# La ou on met le tar.gz avec le nom desire.
+  ;#
+  set DISTRIB [OS -distrib]
+  ;#set fmtnam "$DISTRIB/source%s-[OS:dotted_version].tar"
+  set fmtnam "$DISTRIB/SOURCE%s-[OS:dotted_version].tar"
+
+  set LISTOFROOTS [list /dn01/KAS/dev/ros/ /adv_11/KAS/C30/UpdateC31/ /dn01/KAS/dev/ros/drv/ /adv_11/KAS/C30/ros/ ]
+
+  foreach module $lesmodules {
+    puts stderr "OS:PKGS($module)"
+    ;# Init de lsource par module.
+    set lsource {}
+    set lsource [concat $lsource [OS -LSOURCE $module]]
+    OS -u udlist $module -o $BOX/$module.UDLIST
+    set lsource [concat $lsource $BOX/$module.UDLIST]
     ;#
-    ;# La ou on met le tar.gz avec le nom desire.
+    ;# Pour embarquer les projets Visual.
     ;#
-    set DISTRIB [OS -distrib]
-    set fmtnam "$DISTRIB/%s-[OS:dotted_version].bck"
-    
-    foreach module $lesmodules {
-       wokcd KAS:dev:ros
-       puts stderr "OS:SRCBCK($module)"
-       OS:wpack $module $DISTRIB 1
+    foreach plats [concat [OS:plats_disponibles] WindowsNT] {
+      if [file exists $BOX/$plats/${module}.admfiles] {
+        puts " ADM = $BOX/$plats/${module}.admfiles "
+        foreach proc [wokUtils:FILES:FileToList $BOX/$plats/${module}.admfiles] {
+          ;#puts " proc = [lindex $proc 0]"
+          set lsource [concat $lsource [lindex $proc 0]]
+        }
+        ;#lappend LISTE $BOX/$plats/${module}.admfiles
+      } else {
+        puts stderr "Note : pas de fichier $BOX/$plats/${module}.admfiles"
+      }
+    }
+
+    set lsource [concat $lsource [OS -LRESSOURCE $module  -type source]]
+    set lsource [concat $lsource [OS -LFREEFILES $module  -type source]]
+
+    set znam [format $fmtnam [${module}:name]]
+    set r3 [wokUtils:EASY:gnutar $LISTOFROOTS $lsource $znam]
+    if { [set ignored    [lindex $r3 0]] == {} } {
+      set script     [lindex $r3 1]
+      wokUtils:FILES:ListToFile $script [set command [wokUtils:FILES:tmpname ${module}]]
+      if ![catch { eval exec csh -f $command } status ] {
+        puts stderr $status
+        unlink $command
+      } else {
+        puts "Ex ERROR: $status"
+      }
+      foreach f [lindex $r3 2] {
+        OS:delete $f
+      }
+    } else {
+      puts "OSPKGS : Fatal ( $module ): Impossible de traiter :"
+      foreach f $ignored {
+        puts $f
+      }
     }
-}
+  }
 
-;#
-;# Fabrication des tar.gz avec option --files de tar. + rapide , + sur, + simple, + elegant.
-;#
-;#
-proc  OSPKGS { {ll {} } } {
-
-    set BOX  [OS -box]
-    set lmodules [OS -lm]
-    if { $ll != {} } { set lmodules $ll }
-    set lesmodules {}
-    foreach mo $lmodules {
-       if { [lsearch [${mo}:Export] source] != -1 } {
-           lappend lesmodules $mo
-       }
-    }
+  return
+}
 
-    ;# La ou on cree l'arborescence pour l'archive.
-    ;# et le nom de la racine contenue dans l'archive
-    ;#
-    set ROOT   [OS:archive_root]
-    ;# La ou on met le tar.gz avec le nom desire.
-    ;#
-    set DISTRIB [OS -distrib]
-    ;#set fmtnam "$DISTRIB/source%s-[OS:dotted_version].tar"
-    set fmtnam "$DISTRIB/SOURCE%s-[OS:dotted_version].tar"
+# Fabrique les archives RunTime
+# OS:PKGRTL Linux Draw 1 1
+proc  OSPKGR { {llplat {}} {ll {} } } {
 
-    set LISTOFROOTS [list /dn01/KAS/dev/ros/ /adv_11/KAS/C30/UpdateC31/ /dn01/KAS/dev/ros/drv/ /adv_11/KAS/C30/ros/ ] 
+  set BOX [OS -box]
 
-    foreach module $lesmodules {
-       puts stderr "OS:PKGS($module)"
-       ;# Init de lsource par module.
-       set lsource {}
-       set lsource [concat $lsource [OS -LSOURCE $module]]
-       OS -u udlist $module -o $BOX/$module.UDLIST
-       set lsource [concat $lsource $BOX/$module.UDLIST]
-       ;#
-       ;# Pour embarquer les projets Visual.
-       ;#
-       foreach plats [concat [OS:plats_disponibles] WindowsNT] {
-           if [file exists $BOX/$plats/${module}.admfiles] {
-               puts " ADM = $BOX/$plats/${module}.admfiles "
-               foreach proc [wokUtils:FILES:FileToList $BOX/$plats/${module}.admfiles] {
-                   ;#puts " proc = [lindex $proc 0]"
-                   set lsource [concat $lsource [lindex $proc 0]]
-               }
-               ;#lappend LISTE $BOX/$plats/${module}.admfiles
-           } else {
-               puts stderr "Note : pas de fichier $BOX/$plats/${module}.admfiles"
-           }
-       }
+  set lesplats [OS:plats_disponibles]
+  if { $llplat != {} } { set lesplats $llplat }
+  set lmodules [OS -lm]
+  if { $ll != {} } { set lmodules $ll }
 
-       set lsource [concat $lsource [OS -LRESSOURCE $module  -type source]]
-       set lsource [concat $lsource [OS -LFREEFILES $module  -type source]]
-       
-       set znam [format $fmtnam [${module}:name]]
-       set r3 [wokUtils:EASY:gnutar $LISTOFROOTS $lsource $znam]
-       if { [set ignored    [lindex $r3 0]] == {} } {
-           set script     [lindex $r3 1]
-           wokUtils:FILES:ListToFile $script [set command [wokUtils:FILES:tmpname ${module}]]
-           if ![catch { eval exec csh -f $command } status ] {
-               puts stderr $status
-               unlink $command
-           } else {
-               puts "Ex ERROR: $status"
-           }
-           foreach f [lindex $r3 2] { 
-               OS:delete $f 
-           }
-       } else {
-           puts "OSPKGS : Fatal ( $module ): Impossible de traiter :"
-           foreach f $ignored {
-               puts $f
-           }
-       }
+  set lesmodules {}
+  foreach mo $lmodules {
+    if { [lsearch [${mo}:Export] runtime] != -1 } {
+      lappend lesmodules $mo
     }
+  }
 
-    return 
-
-}
-;#
-;# Fabrique les archives RunTime
-;# OS:PKGRTL Linux Draw 1 1
-;#
-proc  OSPKGR { {llplat {}} {ll {} } } {
-
-    set BOX  [OS -box]
+  set ROOT    [OS:archive_root]
+  set DISTRIB [OS -distrib]
+  set fmtnam "$DISTRIB/NEW%s%s-[OS:dotted_version].tar"
 
-    set lesplats [OS:plats_disponibles]
-    if { $llplat != {} } { set lesplats $llplat }
-    set lmodules [OS -lm]
-    if { $ll != {} } {  set lmodules $ll }
-    
-    set lesmodules {}
-    foreach mo $lmodules {
-       if { [lsearch [${mo}:Export] runtime] != -1 } {
-           lappend lesmodules $mo
-       }
-    }
+  set LISTOFROOTS [list /dn01/KAS/dev/ros/ /adv_11/KAS/C30/UpdateC31/ /adv_10/KAS/C30/UpdateC31/ /adv_11/KAS/C30/ros/ ]
 
-    set ROOT   [OS:archive_root]
-    set DISTRIB [OS -distrib]
-    set fmtnam "$DISTRIB/NEW%s%s-[OS:dotted_version].tar"
-    
-    set LISTOFROOTS [list /dn01/KAS/dev/ros/ /adv_11/KAS/C30/UpdateC31/ /adv_10/KAS/C30/UpdateC31/ /adv_11/KAS/C30/ros/ ]
-    
-    foreach plat $lesplats {
-       puts stderr "OS:PKGR: $plat"
-       foreach module $lesmodules {
-           set lruntime {}
-           set lruntime [concat $lruntime [OS -os $plat -LSHARE $module]]
-           set lruntime [concat $lruntime [OS -os $plat -LRESSOURCE $module  -type runtime]]
-           set lruntime [concat $lruntime [OS -LFREEFILES ${module} -type runtime ]]
-           puts "$module : "
-           foreach rtl [lsort $lruntime] {
-               puts $rtl
-           }
-           set znam [format $fmtnam $plat [${module}:name]]
-           set r3 [wokUtils:EASY:gnutar $LISTOFROOTS $lruntime $znam]
-           if { [set ignored    [lindex $r3 0]] == {} } {
-               set script     [lindex $r3 1]
-               wokUtils:FILES:ListToFile $script [set command [wokUtils:FILES:tmpname ${plat}${module}]]
-               if ![catch { eval exec csh -f $command } status ] {
-                   puts stderr $status
-                   unlink $command
-               } else {
-                   puts "Ex ERROR: $status"
-               }
-               foreach f [lindex $r3 2] { 
-                   OS:delete $f 
-               }
-           } else {
-               puts "OSPKGR : Fatal ( $module ): Impossible de traiter :"
-               foreach f $ignored {
-                   puts $f
-               }
-           }
-       }
+  foreach plat $lesplats {
+    puts stderr "OS:PKGR: $plat"
+    foreach module $lesmodules {
+      set lruntime {}
+      set lruntime [concat $lruntime [OS -os $plat -LSHARE $module]]
+      set lruntime [concat $lruntime [OS -os $plat -LRESSOURCE $module  -type runtime]]
+      set lruntime [concat $lruntime [OS -LFREEFILES ${module} -type runtime ]]
+      puts "$module : "
+      foreach rtl [lsort $lruntime] {
+        puts $rtl
+      }
+      set znam [format $fmtnam $plat [${module}:name]]
+      set r3 [wokUtils:EASY:gnutar $LISTOFROOTS $lruntime $znam]
+      if { [set ignored    [lindex $r3 0]] == {} } {
+        set script [lindex $r3 1]
+        wokUtils:FILES:ListToFile $script [set command [wokUtils:FILES:tmpname ${plat}${module}]]
+        if ![catch { eval exec csh -f $command } status ] {
+          puts stderr $status
+          unlink $command
+        } else {
+          puts "Ex ERROR: $status"
+        }
+        foreach f [lindex $r3 2] {
+          OS:delete $f
+        }
+      } else {
+        puts "OSPKGR : Fatal ( $module ): Impossible de traiter :"
+        foreach f $ignored {
+          puts $f
+        }
+      }
     }
+  }
 }
+
 ##############
-;# just for test
+# just for test
 proc OS:xml { lm } {
-    
-    set doc [::dom::DOMImplementation create]
-    set top [::dom::document createElement $doc OpenCascade]
-    foreach m $lm {
-       puts stderr " module $m ... "
-       set mnode [::dom::document createElement $top module]
-       dom::element setAttribute $mnode name $m
-       foreach tkloc [${m}:toolkits] {
-           set tknod [::dom::document createElement $mnode toolkit]
-
-           set lcsf   [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]]
-           if { $lcsf != {} } {
-               dom::element setAttribute $tknod externlibs [join $lcsf ,]
-           }
-           ;#set lclose  [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
-           ;#if { $lclose != {} } {
-               ;#dom::element setAttribute $tknod usedtk [join $lclose ,]
-           ;#}
-           set ids [woklocate -p [wokinfo -n [wokinfo -u $tkloc]]:source:EXTERNLIB [wokinfo -w [woklocate -u $tkloc]]]
-           set eated [osutils:tk:eatpk $ids]
-           if { $eated != {} } {
-               dom::element setAttribute $tknod usedtk [join $eated ,]
-           }
-           dom::element setAttribute $tknod name $tkloc
-           set lun [osutils:tk:units [woklocate -u $tkloc] 3] 
-           foreach namu $lun {
-               set unode [::dom::document createElement $tknod devunit]
-               dom::element setAttribute $unode name [lindex $namu 1]
-               dom::element setAttribute $unode type [lindex $namu 0]
-               foreach fil [osutils:tk:files [lindex $namu 1] {} 1] {
-                   set fnode [::dom::document createElement $unode source]
-                   dom::element setAttribute $fnode name $fil
-               }
-           }
-       }
+  set doc [::dom::DOMImplementation create]
+  set top [::dom::document createElement $doc OpenCascade]
+  foreach m $lm {
+    puts stderr " module $m ... "
+    set mnode [::dom::document createElement $top module]
+    dom::element setAttribute $mnode name $m
+    foreach tkloc [${m}:toolkits] {
+      set tknod [::dom::document createElement $mnode toolkit]
+
+      set lcsf  [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]]
+      if { $lcsf != {} } {
+        dom::element setAttribute $tknod externlibs [join $lcsf ,]
+      }
+      ;#set lclose  [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
+      ;#if { $lclose != {} } {
+      ;#dom::element setAttribute $tknod usedtk [join $lclose ,]
+      ;#}
+      set ids [woklocate -p [wokinfo -n [wokinfo -u $tkloc]]:source:EXTERNLIB [wokinfo -w [woklocate -u $tkloc]]]
+      set eated [osutils:tk:eatpk $ids]
+      if { $eated != {} } {
+        dom::element setAttribute $tknod usedtk [join $eated ,]
+      }
+      dom::element setAttribute $tknod name $tkloc
+      set lun [osutils:tk:units [woklocate -u $tkloc] 3]
+      foreach namu $lun {
+        set unode [::dom::document createElement $tknod devunit]
+        dom::element setAttribute $unode name [lindex $namu 1]
+        dom::element setAttribute $unode type [lindex $namu 0]
+        foreach fil [osutils:tk:files [lindex $namu 1] {} 1] {
+          set fnode [::dom::document createElement $unode source]
+          dom::element setAttribute $fnode name $fil
+        }
+      }
     }
-    return [::dom::DOMImplementation serialize $doc -newline toolkit]
+  }
+  return [::dom::DOMImplementation serialize $doc -newline toolkit]
 }
 
 # ABV 30.07.2010: remains of eliminated OSDEF.tcl put below
 
-;#
-;# retourne l'adresse du fichier .comp pour l'ud <loc>
-;# le fichier .comp contient les phrases de compils
-;# pour tous les sources de l'UD.
-;# Les procs Linux sont maintenant sur le serveur.
-;#
+# retourne l'adresse du fichier .comp pour l'ud <loc>
+# le fichier .comp contient les phrases de compils
+# pour tous les sources de l'UD.
+# Les procs Linux sont maintenant sur le serveur.
 proc OS:getcomp { loc askplat } {
-    set f [woklocate -p ${loc}:stadmfile:${loc}.comp]
-    if { [file exists $f] } {
-        return $f
-    } 
-    puts stderr "Error (OS:getcomp): Could not locate file ${loc}.comp"
-    return ""
+  set f [woklocate -p ${loc}:stadmfile:${loc}.comp]
+  if { [file exists $f] } {
+    return $f
+  }
+  puts stderr "Error (OS:getcomp): Could not locate file ${loc}.comp"
+  return ""
+}
+
+# debug temporaire je n'ai pas le temps.
+# ce machin n'est pas coherent avec la nomination WOK des UD exec
+# Ud U => U_a.comp et a.lnk pour l'executable a de U
+# je verrais ca plus tard.
+proc OS:getcompx { loc askplat name } {
+  set f [woklocate -p ${loc}:stadmfile:${loc}_${name}.comp]
+  if { [file exists $f] } {
+    return $f
+  }
+  puts stderr "Error (OS:getcompx): Could not locate file ${loc}_${name}.comp"
+  return ""
 }
 
-;#
-;# debug temporaire je n'ai pas le temps.
-;# ce machin n'est pas coherent avec la nomination WOK des UD exec
-;# Ud U => U_a.comp et a.lnk pour l'executable a de U
-;# je verrais ca plus tard.
-
-proc OS:getcompx { loc askplat name } {
-    set f [woklocate -p ${loc}:stadmfile:${loc}_${name}.comp]
-    if { [file exists $f] } {
-        return $f
-    } 
-    puts stderr "Error (OS:getcompx): Could not locate file ${loc}_${name}.comp"
-    return ""
-}
-
-;# toolkits mis dans une shareable.
-;# retourne l'adresse du fichier .lnk pour l'ud <tkloc>
-;# le fichier .lnk contient la phrase de link
-;# 
+# toolkits mis dans une shareable.
+# retourne l'adresse du fichier .lnk pour l'ud <tkloc>
+# le fichier .lnk contient la phrase de link
 proc OS:getlinkso { tkloc askplat } {
-    set f [woklocate -p ${tkloc}:stadmfile:${tkloc}.lnk]
-    if { [file exists $f] } {
-        return $f
-    } 
-    puts stderr "Error (OS:getlinkso): Could not locate file ${tkloc}.lnk"
-    return ""
-}
-
-;# toolkits mis dans une shareable.
-;# retourne l'adresse du fichier .lnk pour l'ud <tkloc>
-;# le fichier .lnk contient la phrase de link
-;# 
+  set f [woklocate -p ${tkloc}:stadmfile:${tkloc}.lnk]
+  if { [file exists $f] } {
+    return $f
+  }
+  puts stderr "Error (OS:getlinkso): Could not locate file ${tkloc}.lnk"
+  return ""
+}
+
+# toolkits mis dans une shareable.
+# retourne l'adresse du fichier .lnk pour l'ud <tkloc>
+# le fichier .lnk contient la phrase de link
 proc OS:getlinkx { loc askplat name} {
-    set f [woklocate -p ${loc}:stadmfile:${name}.lnk]
-    if { [file exists $f] } {
-        return $f
-    } 
-    puts stderr "Error (OS:getlinkx): Could not locate file ${name}.lnk"
-    return ""
+  set f [woklocate -p ${loc}:stadmfile:${name}.lnk]
+  if { [file exists $f] } {
+    return $f
+  }
+  puts stderr "Error (OS:getlinkx): Could not locate file ${name}.lnk"
+  return ""
 }
-;#
-;# Peut maintenant retourner une liste d'items.
-;# Pour les .exp de pop sur IBM
-;#
+
+# Peut maintenant retourner une liste d'items.
+# Pour les .exp de pop sur IBM
 proc OS:getshare { tkloc askplat } {
-    switch -- $askplat {
+  switch -- $askplat {
 
-       IRIX {
-           return [woklocate -p ${tkloc}:library:lib${tkloc}.so]
-       }
+    IRIX {
+      return [woklocate -p ${tkloc}:library:lib${tkloc}.so]
+    }
 
-       Linux {
-           return [woklocate -p ${tkloc}:library:lib${tkloc}.so]
-       }
+    Linux {
+      return [woklocate -p ${tkloc}:library:lib${tkloc}.so]
+    }
 
-       #HP-UX {
-       #  return [woklocate -p ${tkloc}:library:lib${tkloc}.sl]
-       #}
+    #HP-UX {
+    #  return [woklocate -p ${tkloc}:library:lib${tkloc}.sl]
+    #}
 
-       SunOS {
-           return [woklocate -p ${tkloc}:librarylib${tkloc}.so]
-       }
+    SunOS {
+      return [woklocate -p ${tkloc}:librarylib${tkloc}.so]
+    }
 
-       #AIX {
-       #    return [list [woklocate -p ${tkloc}:library:lib${tkloc}.so] \
-       #           [woklocate -p ${tkloc}:library:lib${tkloc}.exp]
-       #}
+    #AIX {
+    #    return [list [woklocate -p ${tkloc}:library:lib${tkloc}.so] \
+    #           [woklocate -p ${tkloc}:library:lib${tkloc}.exp]
+    #}
 
-       WindowsNT {
-           return [list [woklocate -p ${tkloc}:library:${tkloc}.dll] [woklocate -p ${tkloc}:library:${tkloc}.lib]]
-       }
+    WindowsNT {
+      return [list [woklocate -p ${tkloc}:library:${tkloc}.dll] [woklocate -p ${tkloc}:library:${tkloc}.lib]]
+    }
 
-       win32 {
-           return [list [woklocate -p ${tkloc}:library:${tkloc}.dll] [woklocate -p ${tkloc}:library:${tkloc}.lib]]
-       }
+    win32 {
+      return [list [woklocate -p ${tkloc}:library:${tkloc}.dll] [woklocate -p ${tkloc}:library:${tkloc}.lib]]
+    }
 
-       win64 {
-           return [list [woklocate -p ${tkloc}:library:${tkloc}.dll] [woklocate -p ${tkloc}:library:${tkloc}.lib]]
-       }
+    win64 {
+      return [list [woklocate -p ${tkloc}:library:${tkloc}.dll] [woklocate -p ${tkloc}:library:${tkloc}.lib]]
+    }
 
-       default {
-           puts "Completer getshare sur $askplat."  
-           return {}
-       }
+    default {
+      puts "Completer getshare sur $askplat."
+      return {}
     }
+  }
 }
-;#
-;# 
-;#
+
+#
 proc OS:getx { tkloc askplat } {
-    set f [woklocate -p ${tkloc}:executable:${tkloc}]
-    if { [file exists $f] } {
-        return $f
-    } 
-    puts stderr "Error (OS:getx): Could not locate file ${tkloc}"
-    return ""
-}
-;# 
-;# Retourne la liste des plateformes 
-;# Note: WindowsNT n'est pas mentionne car:
-;# 
-;# 1. Les archives de sources sont plateforme independantes
-;# 2. Les procs de refab (placees dans les archives de source) sont
-;# fabriques specifiquement mais TOUT est fait sur Unix.(voir OS:MKPRC)
-;# 3. Les run-time sont traites directement depuis une machine NT.
-;# On specifie alors la plateforme desirees.
-;#
+  set f [woklocate -p ${tkloc}:executable:${tkloc}]
+  if { [file exists $f] } {
+    return $f
+  }
+  puts stderr "Error (OS:getx): Could not locate file ${tkloc}"
+  return ""
+}
+
+# Retourne la liste des plateformes
+# Note: WindowsNT n'est pas mentionne car:
+#
+# 1. Les archives de sources sont plateforme independantes
+# 2. Les procs de refab (placees dans les archives de source) sont
+# fabriques specifiquement mais TOUT est fait sur Unix.(voir OS:MKPRC)
+# 3. Les run-time sont traites directement depuis une machine NT.
+# On specifie alors la plateforme desirees.
 proc OS:plats_disponibles { } {
-#    return [list Linux SunOS IRIX AIX HP-UX]
-    return [list SunOS Linux ]
+# return [list Linux SunOS IRIX AIX HP-UX]
+  return [list SunOS Linux ]
 }
-;#
-;# Nom de la racine dans l'archive.
-;#
+
+# Nom de la racine dans l'archive.
 proc OS:archive_root {} {
-    return CAS[OS:dotted_version]
+  return CAS[OS:dotted_version]
 }
-;#
-;#
+
+#
 proc OS:dotted_version {} {
-    return 6.4.0
+  return 6.5.3
 }
-;#
-;#
+
+#
 proc OS:simple_version {} {
-    return 640
+  return 653
 }
 
-;#
-;#
+#
 proc OS:defbox {} {
-    return [OS:casroot]/adm
+  return [OS:casroot]/adm
 }
 
 # If "what" is OS or VAS, returns list of modules or projects, respectively;
 # if it is empty, returns list of both modules and products,
 # otherwise returns input value (assumed to be already a list of modules)
 proc OS:listmodules {what {platforms {}}} {
-    OS:init
-    if { "$what" == "" } {
-       if { "$platforms" != "" } { 
-           return [OS -lm -plat $platforms]
-       } else {
-           return [OS -lm]
-       }
-       return [OS -lm]
-    } elseif { "$what" == "OS" } {
-       return [OS:Modules $platforms]
-    } elseif { "$what" == "VAS" } {
-       return [VAS:Products]
-    }
-    return "$what"
+  OS:init
+  if { "$what" == "" } {
+    if { "$platforms" != "" } {
+      return [OS -lm -plat $platforms]
+    } else {
+      return [OS -lm]
+    }
+    return [OS -lm]
+  } elseif { "$what" == "OS" } {
+    return [OS:Modules $platforms]
+  } elseif { "$what" == "VAS" } {
+    return [VAS:Products]
+  }
+  return "$what"
 }
index 7fe43ca5fe7e922cb945f7cae59d9bc0ec0e5a29..9becf730555a0b8e4193f36ed6203627dc0b1387 100755 (executable)
@@ -9,18 +9,25 @@ proc __restore_env__ {} {
   }
   array set env $__initenv__
 }
-proc UNC { path } {
 
- if { [cindex $path 0] == "{" && [cindex $path [clength $path]-1] == "}" } {
-  set path [crange $path 1 [clength $path]-2]
- }
+proc UNC { thePath } {
+  set aPathLen  [string length "$thePath"]
+  if { $aPathLen <= 2 } {
+    return "$thePath"
+  }
 
- if { [cindex $path 0] == "\\" && [cindex $path 1] == "\\"} {
-  set path "//[crange $path 2 [clength $path]]"
- }
+  set aPathLast [expr $aPathLen - 1]
+  if { [string range "$thePath" 0 0] == "{"
+    && [string range "$thePath" $aPathLast $aPathLast] == "}" } {
+    set thePath [string range $thePath 1 [expr $aPathLen - 2]]
+  }
 
- return $path
+  if { [string range "$thePath" 0 0] == "\\"
+    && [string range "$thePath" 1 1] == "\\"} {
+    set thePath "//[string range $thePath 2 $aPathLen]"
+  }
 
+  return $thePath
 }
 
 
@@ -53,5 +60,3 @@ set WOK_GLOBALS(source_proc,tcl)   1
 update
 set WOK_GLOBALS(wokinterp,tclcommands) "Winfo|finfo|pinfo|screate|sinfo|srm|ucreate|uinfo|umake|urm|w_info|wcreate|wokcd|wokclose|wokinfo|wokparam|wokprofile|wokenv|wrm|wmove|msclear|wprepare|wstore|wintegre|upack|iwok|wsrc|wdrv|wls|wcd|cd"
 update
-
-
index 267d73a801cd2da8bfcb5abb3ad90cae1b25d565..33228e790c969036dd5e824214640fac66b09d8d 100755 (executable)
 ;#
 ;# Author: yolanda_forbes@hotmail.com
 ;#
+
+# intersect3 - perform the intersecting of two lists, returning a list containing three lists.
+# The first list is everything in the first list that wasn't in the second,
+# the second list contains the intersection of the two lists, the third list contains everything
+# in the second list that wasn't in the first.
+proc osutils:intersect3 {list1 list2} {
+  set la1(0) {} ; unset la1(0)
+  set lai(0) {} ; unset lai(0)
+  set la2(0) {} ; unset la2(0)
+  foreach v $list1 {
+    set la1($v) {}
+  }
+  foreach v $list2 {
+    set la2($v) {}
+  }
+  foreach elem [concat $list1 $list2] {
+    if {[info exists la1($elem)] && [info exists la2($elem)]} {
+      unset la1($elem)
+      unset la2($elem)
+      set lai($elem) {}
+    }
+  }
+  list [lsort [array names la1]] [lsort [array names lai]] [lsort [array names la2]]
+}
+
+# Sort a list, returning the sorted version minus any duplicates
+proc osutils:lrmdups list {
+  if { [llength $list] == 0 } {
+    return {}
+  }
+  set list [lsort $list]
+  set last [lvarpop list]
+  lappend result $last
+  foreach element $list {
+    if ![cequal $last $element] {
+      lappend result $element
+      set last $element
+    }
+  }
+  return $result
+}
+
+# Return the logical union of two lists, removing any duplicates
+proc osutils:union {theListA theListB} {
+  return [osutils:lrmdups [concat $theListA $theListB]]
+}
+
 proc osutils:readtemplate {ext what} {
-    set loc [woklocate -p WOKTclLib:source:template.$ext]
-    puts stderr "Info: Template for $what loaded from $loc"
-    return [wokUtils:FILES:FileToString $loc]
+  global env
+  set loc "$env(WOK_LIBRARY)/templates/template.$ext"
+  #puts stderr "Info: Template for $what loaded from $loc"
+  return [wokUtils:FILES:FileToString $loc]
 }
 
 # generate template name and load it for given version of Visual Studio and platform
-proc osutils:vcproj:readtemplate {vc plat isexec} {
-    set ext $vc
-    set what "$vc $plat"
-    if { $isexec } {
-       set ext "${ext}x"
-       set what "$what executable"
-    }
-    if { "$plat" == "win64" } {
-       set ext "${ext}_64"
-    }
-    return [osutils:readtemplate $ext "MS VC++ project ($what)"]
+proc osutils:vcproj:readtemplate {vc isexec} {
+  set ext $vc
+  set what "$vc"
+  if { $isexec } {
+    set ext "${ext}x"
+    set what "$what executable"
+  }
+  return [osutils:readtemplate $ext "MS VC++ project ($what)"]
 }
 
-# Convert platform definition (win32 or win64) to appropriate configuration 
+# Generate RC file content for ToolKit from template
+proc osutils:readtemplate:rc {theOutDir theToolKit} {
+  set aLoc "$::env(WOK_LIBRARY)/templates/template_dll.rc"
+  set aBody [wokUtils:FILES:FileToString $aLoc]
+  regsub -all -- {__TKNAM__} $aBody $theToolKit aBody
+
+  set aFile [open "${theOutDir}/${theToolKit}.rc" "w"]
+  fconfigure $aFile -translation lf
+  puts $aFile $aBody
+  close $aFile
+  return "${theOutDir}/${theToolKit}.rc"
+}
+
+# Convert platform definition (win32 or win64) to appropriate configuration
 # name in Visual C++ (Win32 and x64)
 proc osutils:vcsolution:confname { vcversion plat } {
-    if { "$plat" == "win32" } {
-       set conf "Win32"
-    } elseif { "$plat" == "win64" } {
-       set conf "x64"
-    } else {
-       puts stderr "Error: Unsupported platform \"$plat\""
-    } 
-    return $conf
+  if { "$plat" == "win32" } {
+    set conf "Win32"
+  } elseif { "$plat" == "win64" } {
+    set conf "x64"
+  } else {
+    puts stderr "Error: Unsupported platform \"$plat\""
+  }
+  return $conf
 }
 
 # Generate header for VS solution file
 proc osutils:vcsolution:header { vcversion } {
-    if { "$vcversion" == "vc6" } {
-        append var \
-           "Microsoft Developer Studio Workspace File, Format Version 6.00" "\n" \
-           "# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!" "\n" \
-           "\n" \
-           "###############################################################################" "\n" \
-           "\n"
-    } elseif { "$vcversion" == "vc7" } {
-        append var \
-           "Microsoft Visual Studio Solution File, Format Version 8.00\n" 
-    } elseif { "$vcversion" == "vc8" } {
-       append var \
-           "Microsoft Visual Studio Solution File, Format Version 9.00\n" \
-           "# Visual Studio 2005\n"
-    } elseif { "$vcversion" == "vc9" } {
-       append var \
-           "Microsoft Visual Studio Solution File, Format Version 10.00\n" \
-           "# Visual Studio 2008\n"
-    } elseif { "$vcversion" == "vc10" } {
-       append var \
-           "Microsoft Visual Studio Solution File, Format Version 11.00\n" \
-           "# Visual Studio 2010\n"
-    } else {
-       puts stderr "Error: Visual Studio version $vcversion is not supported by this function!"
-    } 
-    return $var
+  if { "$vcversion" == "vc7" } {
+    append var \
+      "Microsoft Visual Studio Solution File, Format Version 8.00\n"
+  } elseif { "$vcversion" == "vc8" } {
+    append var \
+      "Microsoft Visual Studio Solution File, Format Version 9.00\n" \
+      "# Visual Studio 2005\n"
+  } elseif { "$vcversion" == "vc9" } {
+    append var \
+      "Microsoft Visual Studio Solution File, Format Version 10.00\n" \
+      "# Visual Studio 2008\n"
+  } elseif { "$vcversion" == "vc10" } {
+    append var \
+      "Microsoft Visual Studio Solution File, Format Version 11.00\n" \
+      "# Visual Studio 2010\n"
+  } else {
+    puts stderr "Error: Visual Studio version $vcversion is not supported by this function!"
+  }
+  return $var
 }
 
 # Generate start of configuration section of VS solution file
-proc osutils:vcsolution:config:begin { vcversion plat } {
-    if { "$vcversion" == "vc7" } {
-        append var \
-           "Global\n" \
-           "\tGlobalSection(SolutionConfiguration) = preSolution\n" \
-           "\t\tDebug = Debug\n" \
-           "\t\tRelease = Release\n" \
-           "\tEndGlobalSection\n" \
-           "\tGlobalSection(ProjectConfiguration) = postSolution\n"
-    } elseif { "$vcversion" == "vc8" || "$vcversion" == "vc9"  || "$vcversion" == "vc10"} {
-       set conf [osutils:vcsolution:confname $vcversion $plat]
-        append var \
-           "Global\n" \
-           "\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n" \
-           "\t\tDebug|$conf = Debug|$conf\n" \
-           "\t\tRelease|$conf = Release|$conf\n" \
-           "\tEndGlobalSection\n" \
-           "\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n"
-    } else {
-       puts stderr "Error: Visual Studio version $vcversion is not supported by this function!"
-    } 
-    return $var
+proc osutils:vcsolution:config:begin { vcversion } {
+  if { "$vcversion" == "vc7" } {
+    append var \
+      "Global\n" \
+      "\tGlobalSection(SolutionConfiguration) = preSolution\n" \
+      "\t\tDebug = Debug\n" \
+      "\t\tRelease = Release\n" \
+      "\tEndGlobalSection\n" \
+      "\tGlobalSection(ProjectConfiguration) = postSolution\n"
+  } elseif { "$vcversion" == "vc8" || "$vcversion" == "vc9" || "$vcversion" == "vc10" } {
+    append var \
+      "Global\n" \
+      "\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n" \
+      "\t\tDebug|Win32 = Debug|Win32\n" \
+      "\t\tRelease|Win32 = Release|Win32\n" \
+      "\t\tDebug|x64 = Debug|x64\n" \
+      "\t\tRelease|x64 = Release|x64\n" \
+      "\tEndGlobalSection\n" \
+      "\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n"
+  } else {
+    puts stderr "Error: Visual Studio version $vcversion is not supported by this function!"
+  }
+  return $var
 }
 
 # Generate part of configuration section of VS solution file describing one project
-proc osutils:vcsolution:config:project { vcversion plat guid } {
-    if { "$vcversion" == "vc7" } {
-        append var \
-           "\t\t$guid.Debug.ActiveCfg = Debug|Win32\n" \
-           "\t\t$guid.Debug.Build.0 = Debug|Win32\n" \
-           "\t\t$guid.Release.ActiveCfg = Release|Win32\n" \
-           "\t\t$guid.Release.Build.0 = Release|Win32\n"
-    } elseif { "$vcversion" == "vc8" || "$vcversion" == "vc9" || "$vcversion" == "vc10" } {
-       set conf [osutils:vcsolution:confname $vcversion $plat]
-        append var \
-           "\t\t$guid.Debug|$conf.ActiveCfg = Debug|$conf\n" \
-           "\t\t$guid.Debug|$conf.Build.0 = Debug|$conf\n" \
-           "\t\t$guid.Release|$conf.ActiveCfg = Release|$conf\n" \
-           "\t\t$guid.Release|$conf.Build.0 = Release|$conf\n"
-    } else {
-       puts stderr "Error: Visual Studio version $vcversion is not supported by this function!"
-    } 
-    return $var
+proc osutils:vcsolution:config:project { vcversion guid } {
+  if { "$vcversion" == "vc7" } {
+    append var \
+      "\t\t$guid.Debug.ActiveCfg = Debug|Win32\n" \
+      "\t\t$guid.Debug.Build.0 = Debug|Win32\n" \
+      "\t\t$guid.Release.ActiveCfg = Release|Win32\n" \
+      "\t\t$guid.Release.Build.0 = Release|Win32\n"
+  } elseif { "$vcversion" == "vc8" || "$vcversion" == "vc9" || "$vcversion" == "vc10" } {
+    append var \
+      "\t\t$guid.Debug|Win32.ActiveCfg = Debug|Win32\n" \
+      "\t\t$guid.Debug|Win32.Build.0 = Debug|Win32\n" \
+      "\t\t$guid.Release|Win32.ActiveCfg = Release|Win32\n" \
+      "\t\t$guid.Release|Win32.Build.0 = Release|Win32\n" \
+      "\t\t$guid.Debug|x64.ActiveCfg = Debug|x64\n" \
+      "\t\t$guid.Debug|x64.Build.0 = Debug|x64\n" \
+      "\t\t$guid.Release|x64.ActiveCfg = Release|x64\n" \
+      "\t\t$guid.Release|x64.Build.0 = Release|x64\n"
+  } else {
+    puts stderr "Error: Visual Studio version $vcversion is not supported by this function!"
+  }
+  return $var
 }
 
 # Generate start of configuration section of VS solution file
-proc osutils:vcsolution:config:end { vcversion plat } {
-    if { "$vcversion" == "vc7" } {
-        append var \
-           "\tEndGlobalSection\n" \
-           "\tGlobalSection(ExtensibilityGlobals) = postSolution\n" \
-           "\tEndGlobalSection\n" \
-           "\tGlobalSection(ExtensibilityAddIns) = postSolution\n" \
-           "\tEndGlobalSection\n"
-    } elseif { "$vcversion" == "vc8" || "$vcversion" == "vc9" || "$vcversion" == "vc10" } {
-        append var \
-           "\tEndGlobalSection\n" \
-           "\tGlobalSection(SolutionProperties) = preSolution\n" \
-           "\t\tHideSolutionNode = FALSE\n" \
-           "\tEndGlobalSection\n"
-    } else {
-       puts stderr "Error: Visual Studio version $vcversion is not supported by this function!"
-    } 
-    return $var
-}
-
-;#
-;# the leaf of a workspace file
-;#
-proc osutils:vc6proj:projectleaf { TK } {
+proc osutils:vcsolution:config:end { vcversion } {
+  if { "$vcversion" == "vc7" } {
     append var \
-           "Project: \"$TK\"=.\\$TK.dsp - Package Owner=<4>" "\n" \
-           "\n" \
-           "Package=<5>" "\n" \
-           "\{\{\{" "\n" \
-           "\}\}\}" "\n" \
-           "\n" \
-           "Package=<4>" "\n" \
-           "\{\{\{" "\n" \
-           "\}\}\}" "\n" \
-           "\n" \
-           "###############################################################################" "\n" \
-           "\n"
-    return $var
-}
-;#
-;# an item of a workspace file
-;#
-proc osutils:vc6proj:projectby2 { TK Dep_Name } {
-    append var \
-           "Project: \"$TK\"=.\\$TK.dsp - Package Owner=<4>" "\n" \
-           "\n" \
-           "Package=<5>" "\n" \
-           "\{\{\{" "\n" \
-           "\}\}\}" "\n" \
-           "\n" \
-           "Package=<4>" "\n" \
-           "\{\{\{" "\n" 
-            if {[wokinfo -x $TK] != "0"} {
-              if {[uinfo -t $TK] == "toolkit"} {
-                set deplist [LibToLink $TK]
-             } else {
-                 set deplist [LibToLinkX $TK $TK]
-                 ;#puts $deplist
-              }
-             foreach deplib $deplist {
-                 if {$deplib != $TK} {
-                    append var "    Begin Project Dependency" "\n" \
-                               "    Project_Dep_Name $deplib" "\n" \
-                               "    End Project Dependency" "\n" 
-                 }
-             }
-            }
-             
-           append var "\}\}\}" "\n" \
-           "\n" \
-           "###############################################################################" "\n" \
-           "\n" 
-    return $var
-}
-;#
-;#
-;#
-proc osutils:vc6proj:footer { } {
+      "\tEndGlobalSection\n" \
+      "\tGlobalSection(ExtensibilityGlobals) = postSolution\n" \
+      "\tEndGlobalSection\n" \
+      "\tGlobalSection(ExtensibilityAddIns) = postSolution\n" \
+      "\tEndGlobalSection\n"
+  } elseif { "$vcversion" == "vc8" || "$vcversion" == "vc9" || "$vcversion" == "vc10" } {
     append var \
-           "Global:" "\n" \
-           "\n" \
-           "Package=<5>" "\n" \
-           "{{{" "\n" \
-           "}}}" "\n" \
-           "\n" \
-           "Package=<3>" "\n" \
-           "{{{" "\n" \
-           "}}}" "\n" \
-           "\n" \
-           "###############################################################################" "\n" 
-    return $var
-}
-;#
-;# An item for compiling a c++ class
-;#
-proc osutils:vc6:fmtcpp { } {
-    return {# ADD CPP /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"}
+      "\tEndGlobalSection\n" \
+      "\tGlobalSection(SolutionProperties) = preSolution\n" \
+      "\t\tHideSolutionNode = FALSE\n" \
+      "\tEndGlobalSection\n"
+  } else {
+    puts stderr "Error: Visual Studio version $vcversion is not supported by this function!"
+  }
+  return $var
 }
+
 proc osutils:mak:fmtcpp { } {
-    return {CPP_SWITCHES=$(CPP_PROJ) /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"}
-}
-;#
-;# An item for compiling a c++ main
-;#
-proc osutils:vc6:fmtcppx { } {
-    return {# ADD CPP /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"}
-}
-proc osutils:vcproj:fmtcpp { } {
-    return {AdditionalIncludeDirectories="..\..\..\inc,..\..\..\drv\%s,..\..\..\src\%s"
-                                                        PreprocessorDefinitions="__%s_DLL;"}
-}
-proc osutils:vcproj:fmtcppx { } {
-    return {AdditionalIncludeDirectories="..\..\..\inc,..\..\..\drv\%s,..\..\..\src\%s"
-                                                        PreprocessorDefinitions="__%s_DLL;$(NoInherit)"}
-}
-proc osutils:mak:fmtcppx { } {
-    return {CPP_SWITCHES=$(CPP_PROJ) /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"}
+  return {CPP_SWITCHES=$(CPP_PROJ) /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"}
 }
+
 ;#
 ;# List extensions of compilable files in OCCT
 ;#
 proc osutils:compilable { } {
-    return [list .c .cxx .cpp]
+  return [list .c .cxx .cpp]
 }
 
 proc osutils:optinal_libs { } {
-    return [list tbb.lib tbbmalloc.lib FreeImage.lib FreeImagePlus.lib gl2ps.lib]
-} 
+  return [list tbb.lib tbbmalloc.lib FreeImage.lib FreeImagePlus.lib gl2ps.lib]
+}
+
 ;#
 ;# remove from listloc OpenCascade units indesirables on NT
 ;#
 proc osutils:juststation {goaway listloc} {
-    set lret {}
-    foreach u $listloc {
-       if { 
-            (
-               [woklocate -u $u] != ""
-               &&
-               [lsearch $goaway [wokinfo -n [woklocate -u $u]]] == -1
-            )
-            ||
-            (
-               [woklocate -u $u] == ""
-               &&
-               [lsearch $goaway [wokinfo -n $u]] == -1
-            )
-           
-       } {
-           lappend lret $u
-       }
-    }
-    return $lret       
+  set lret {}
+  foreach u $listloc {
+    if {
+      (
+        [woklocate -u $u] != ""
+        &&
+        [lsearch $goaway [wokinfo -n [woklocate -u $u]]] == -1
+      )
+      ||
+      (
+        [woklocate -u $u] == ""
+        &&
+        [lsearch $goaway [wokinfo -n $u]] == -1
+      )
+    } {
+      lappend lret $u
+    }
+  }
+  return $lret
 }
 
 proc osutils:justwnt { listloc } {
-    set goaway [list Xdps Xw ImageUtility WOKUnix]
-    return [osutils:juststation $goaway $listloc]
+  set goaway [list Xdps Xw ImageUtility WOKUnix]
+  return [osutils:juststation $goaway $listloc]
 }
+
 ;#
 ;# remove from listloc OpenCascade units indesirables on Unix
 ;#
 proc osutils:justunix { listloc } {
-    set goaway [list WNT WOKNT]
-    return [osutils:juststation $goaway $listloc]
+  set goaway [list WNT WOKNT]
+  return [osutils:juststation $goaway $listloc]
 }
+
+;#
+;# Define libraries to link using WOK generated dependencies files
+;# (available after Obj,Dep building steps)
 ;#
-;# Define libraries to link
-proc LibToLink {tkit} {
-    if {[uinfo -t $tkit] == "toolkit"} {
+proc LibToLinkFair {tkit} {
+  if {[uinfo -t $tkit] == "toolkit"} {
     set l {}
     set LibList [woklocate -p [wokinfo -n $tkit]:stadmfile:[wokinfo -n $tkit]_lib_tks.Out]
+
+    if ![ catch { set id [ open $LibList r ] } status ] {
+      while {[gets $id x] >= 0 } {
+        if [regexp -- {(-E[^ ]*)} $x] {
+          set endnameid [expr { [string wordend $x 4] -1 }]
+          set fx [string range $x 3 $endnameid]
+          if {[uinfo -t [woklocate -u [file rootname $fx]]] == "toolkit"} {
+            lappend l $fx
+          }
+        }
+        #if [regexp -- {(-VE[^ ]*)} $x] {
+        #    set startid [string first CSF $x]
+        #        set endid [ expr { [string wordend $x $startid] -1 } ]
+        #        set fx [string range $x $startid $endid]
+        #        lappend l $fx
+        #}
+      }
+      close $id
+    } else {
+      puts $status
+    }
+    return $l
+  }
+}
+
+;#
+;# Define libraries to link using WOK generated dependencies files
+;# (available after Obj,Dep building steps)
+;#
+proc LibToLinkXFair {tkit name} {
+  if {[uinfo -t $tkit] == "executable"} {
+    set l {}
+    set LibList [woklocate -p [wokinfo -n $tkit]:stadmfile:[wokinfo -n $tkit]_exec_tks_${name}.Out]
     if ![ catch { set id [ open $LibList r ] } status ] {
-       while {[gets $id x] >= 0 } {
-           if [regexp -- {(-E[^ ]*)} $x] {
-                set endnameid [expr { [string wordend $x 4] -1 }]
-               set fx [string range $x 3 $endnameid]
-               if {[uinfo -t [woklocate -u [file rootname $fx]]] == "toolkit"} {       
-                       lappend l $fx
-               }
-           }
-           #if [regexp -- {(-VE[^ ]*)} $x] {
-            #    set startid [string first CSF $x]
-           #   set endid [ expr { [string wordend $x $startid] -1 } ]
-           #   set fx [string range $x $startid $endid]
-           #   lappend l $fx
-           #}
-
-       }
-       close $id
+      while {[gets $id x] >= 0 } {
+        if [regexp -- {(-E[^ ]*)} $x] {
+          if {[regexp -- {library} $x]} {
+            set endnameid [expr { [string wordend $x 4] -1 }]
+            set fx [string range $x 3 $endnameid]
+            lappend l $fx
+          }
+        }
+        #if [regexp -- {(-VE[^ ]*)} $x] {
+        #    set startid [string first CSF $x]
+        #        set endid [ expr { [string wordend $x $startid] -1 } ]
+        #        set CSF_fx [string range $x $startid $endid]
+        #    if { $CSF_fx != "-"} {
+        #          puts $CSF_fx
+        #          set fx [file tail [lindex [wokparam -v \%$CSF_fx $tkit] 0]]
+        #          lappend l $fx
+        #        }
+        #}
+      }
+      close $id
     } else {
-       puts $status
+      puts $status
     }
     return $l
+  }
+}
+
+# Search unit recursively
+proc LocateRecur {theName} {
+  set aBranch [wokinfo -w]
+  set aFullPath "${aBranch}:${theName}"
+  if {[wokinfo -x $aFullPath]} {
+    return [wokinfo -u $aFullPath]
+  }
+  set aWkShop  [wokinfo -s]
+  set aFParent [w_info -f $aBranch]
+  while { "$aFParent" != "" } {
+    set aBranch "${aWkShop}:${aFParent}"
+    set aFullPath "${aBranch}:${theName}"
+    if {[wokinfo -x $aFullPath]} {
+      return [wokinfo -u $aFullPath]
+    }
+    set aFParent [w_info -f $aBranch]
+  }
+  return ""
+}
+
+;#
+;# Define libraries to link using only EXTERNLIB file
+;#
+proc LibToLink {theTKit} {
+  if {[uinfo -t $theTKit] != "toolkit"} {
+    if {[uinfo -t $theTKit] != "executable"} {
+      return
+    }
+  }
+
+  set aToolkits {}
+  set anExtLibList [osutils:tk:eatpk [woklocate -p [wokinfo -n [wokinfo -u $theTKit]]:source:EXTERNLIB [wokinfo -w $theTKit]]]
+  foreach anExtLib $anExtLibList {
+    set aFullPath [LocateRecur $anExtLib]
+    if { "$aFullPath" != "" && [uinfo -t $aFullPath] == "toolkit" } {
+      lappend aToolkits $anExtLib
     }
+  }
+  return $aToolkits
+}
+
+;#
+;# Define libraries to link using only EXTERNLIB file
+;#
+proc LibToLinkX {thePackage theDummyName} {
+  set aToolKits [LibToLink $thePackage]
+  return $aToolKits
 }
 
-proc LibToLinkX {tkit name} {
-    if {[uinfo -t $tkit] == "executable"} {
-        set l {}
-       set LibList [woklocate -p [wokinfo -n $tkit]:stadmfile:[wokinfo -n $tkit]_exec_tks_${name}.Out]
-        if ![ catch { set id [ open $LibList r ] } status ] {
-         while {[gets $id x] >= 0 } {
-           if [regexp -- {(-E[^ ]*)} $x] {
-               if {[regexp -- {library} $x]} {
-                  set endnameid [expr { [string wordend $x 4] -1 }]
-                  set fx [string range $x 3 $endnameid]
-                 lappend l $fx
-                }
-           }
-           #if [regexp -- {(-VE[^ ]*)} $x] {
-            #    set startid [string first CSF $x]
-           #   set endid [ expr { [string wordend $x $startid] -1 } ]
-           #   set CSF_fx [string range $x $startid $endid]
-            #    if { $CSF_fx != "-"} {
-           #     puts $CSF_fx
-           #     set fx [file tail [lindex [wokparam -v \%$CSF_fx $tkit] 0]]
-           #     lappend l $fx
-           #   }
-           #}
-
-        }
-        close $id
-       } else {
-        puts $status
-       }
-       return $l
+;#
+;# This procedure checks EXTERNLIB file for missed dependences
+;# using building information (at least wprocess -DGroups=Src,Xcpp,Obj,Dep)
+;#
+proc UpdateDepsTKit {theTKit} {
+  if {[uinfo -t $theTKit] != "toolkit"} {
+    if {[uinfo -t $theTKit] != "executable"} {
+      return
+    }
+  }
+
+  set anExtFile [woklocate -p [wokinfo -n [wokinfo -u $theTKit]]:source:EXTERNLIB [wokinfo -w $theTKit]]
+  set anExtLibList [wokUtils:FILES:FileToList $anExtFile]
+  set anTKList {}
+  if {[uinfo -t $theTKit] == "toolkit"} {
+    set anTKList [LibToLinkFair $theTKit]
+  } else {
+    foreach aSrcFile [osutils:tk:files $theTKit osutils:compilable 0] {
+      set aTF [file rootname [file tail $aSrcFile]]
+      set anXDepList [LibToLinkXFair $theTKit $aTF]
+      foreach aDep $anXDepList {
+        lappend anTKList $aDep
+      }
+    }
+  }
+  set aNotFoundList {}
+  foreach aTKit $anTKList {
+    if {[lsearch -exact $anExtLibList $aTKit] == -1} {
+      lappend aNotFoundList $aTKit
+    }
+  }
+
+  if { [llength $aNotFoundList]  > 0 } {
+    puts "EXTERNAL file for ToolKit '$theTKit' is incomplete!"
+    if { [file exists "$anExtFile"] != 0 } {
+      file copy -force -- "$anExtFile" "${anExtFile}.bak"
+    } else {
+      set aSrcPath [woklocate -p [wokinfo -n [wokinfo -u $theTKit]]:source [wokinfo -w $theTKit]]
+      set anExtFile "${aSrcPath}EXTERNLIB"
+      set anFILESFile "${aSrcPath}FILES"
+      if { [file exists "$anFILESFile"] != 0 } {
+        set aWFile [open "$anFILESFile" "a"]
+        fconfigure $aWFile -translation lf
+        puts $aWFile "EXTERNLIB"
+        close $aWFile
+      } else {
+        set aWFile [open "$anFILESFile" "w"]
+        fconfigure $aWFile -translation lf
+        puts $aWFile "EXTERNLIB"
+        close $aWFile
+      }
+    }
+    set anOutFile [open "$anExtFile" "w"]
+    fconfigure $anOutFile -translation lf
+    foreach aTKit $aNotFoundList {
+      puts $anOutFile "$aTKit"
+      puts "  missed ToolKit: $aTKit"
     }
+    foreach anExtLib $anExtLibList {
+      puts $anOutFile "$anExtLib"
+    }
+    close $anOutFile
+  }
+}
+
+;#
+;# This procedure checks EXTERNLIB file for all ToolKits for missed dependences
+;# using building information (at least wprocess -DGroups=Src,Xcpp,Obj,Dep)
+;#
+proc UpdateDeps {} {
+  set aTKList [w_info -T toolkit]
+  foreach aTKit $aTKList {
+    UpdateDepsTKit $aTKit
+  }
+  set anEXEList [w_info -T executable]
+  foreach aPackageX $anEXEList {
+    UpdateDepsTKit $aPackageX
+  }
 }
 
 ;#
 ;#      ((((((((WOK toolkits manipulations))))))))
 ;#
 ;#  close dependencies of ltk. (full wok pathes of toolkits)
-;# The CURRENT WOK LOCATION MUST contains ALL TOOLKITS required. 
+;# The CURRENT WOK LOCATION MUST contains ALL TOOLKITS required.
 ;# (locate not performed.)
 proc osutils:tk:close { ltk } {
-    set result {}
-    set recurse {}
-    foreach dir $ltk {
-       #set ids [woklocate -p [wokinfo -n [wokinfo -u $dir]]:source:EXTERNLIB [wokinfo -w $dir]]
-        set ids [LibToLink $dir]
-       set eated [osutils:tk:eatpk $ids]
-       set result [concat $result $eated]
-        set ids [LibToLink $dir]
-       set result [concat $result $ids]
-       #puts "EXTERNLIB dir = $dir ids = $ids result = $result eated = $eated"
-       foreach file $eated {
-           set kds [woklocate -p [wokinfo -n [wokinfo -u $file]]:source:EXTERNLIB [wokinfo -w $file]]
-           if { [osutils:tk:eatpk $kds] !=  {} } {
-               lappend recurse $file
-           }
-       }
-    }
-    ;#    if ![lempty $recurse] {
-       ;#      set result [concat $result [osutils:tk:close $recurse]]
-       ;#    }
-       if { $recurse != {} } {
-           set result [concat $result [osutils:tk:close $recurse]]
-       }
-    #puts $result
-    return $result
+  set result {}
+  set recurse {}
+  foreach dir $ltk {
+    #set ids [woklocate -p [wokinfo -n [wokinfo -u $dir]]:source:EXTERNLIB [wokinfo -w $dir]]
+    set ids [LibToLink $dir]
+    set eated [osutils:tk:eatpk $ids]
+    set result [concat $result $eated]
+    set ids [LibToLink $dir]
+    set result [concat $result $ids]
+
+    #puts "EXTERNLIB dir = $dir ids = $ids result = $result eated = $eated"
+    foreach file $eated {
+      set kds [woklocate -p [wokinfo -n [wokinfo -u $file]]:source:EXTERNLIB [wokinfo -w $file]]
+      if { [osutils:tk:eatpk $kds] !=  {} } {
+        lappend recurse $file
+      }
+    }
+  }
+  ;#if { [llength $recurse] != 0 } {
+  ;#  set result [concat $result [osutils:tk:close $recurse]]
+  ;#}
+  if { $recurse != {} } {
+    set result [concat $result [osutils:tk:close $recurse]]
+  }
+  #puts $result
+  return $result
 }
+
 ;#
 ;# Topological sort of toolkits in tklm
 ;#
 proc osutils:tk:sort { tklm } {
-    set tkby2 {}
-    foreach tkloc $tklm {
-       set lprg [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
-       foreach tkx  $lprg {
-           if { [lsearch $tklm $tkx] != -1 } {
-               lappend tkby2 [list $tkx $tkloc]
-           } else {
-               lappend tkby2 [list $tkloc {}]
-           }
-       }
-    }
-    set lret {}
-    foreach e [wokUtils:EASY:tsort $tkby2] {
-       if { $e != {} } {
-           lappend lret $e
-       }
-    }
-    return $lret
+  set tkby2 {}
+  foreach tkloc $tklm {
+    set lprg [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
+    foreach tkx  $lprg {
+      if { [lsearch $tklm $tkx] != -1 } {
+        lappend tkby2 [list $tkx $tkloc]
+      } else {
+        lappend tkby2 [list $tkloc {}]
+      }
+    }
+  }
+  set lret {}
+  foreach e [wokUtils:EASY:tsort $tkby2] {
+    if { $e != {} } {
+      lappend lret $e
+    }
+  }
+  return $lret
 }
 
 ;#
 ;# Returns liste of UD in a toolkit. tkloc is a full path wok.
-;# 
+;#
 proc osutils:tk:units { tkloc {typed 0} } {
-    set l {}
-    set PACKAGES [woklocate -p [wokinfo -n [wokinfo -u $tkloc]]:source:PACKAGES [wokinfo -w $tkloc]]
-    foreach u [wokUtils:FILES:FileToList $PACKAGES] {
-       set fu [woklocate -u $u]
-       if { [set fu [woklocate -u $u]] != {} } {
-           if { $typed == 0 } {
-               lappend l $fu
-           } 
-           if { $typed == 1 } {
-               lappend l [list [uinfo -c $fu] [wokinfo -n $fu]]
-           }
-           if { $typed == 2 } {
-               lappend l [list [uinfo -c $fu] $fu]
-           }
-           if { $typed == 3 } {
-               lappend l [list [uinfo -t $fu] [wokinfo -n $fu]]
-           }
-           if { $typed == 4 } {
-               lappend l [list [uinfo -t $fu] $fu]
-           }
-       } else {
-           puts stderr "Unit inconnue $u"
-       }
-    }
-    if { $l == {} } {
-       ;#puts stderr "Warning. No devunit included in $tkloc"
+  set l {}
+  set PACKAGES [woklocate -p [wokinfo -n [wokinfo -u $tkloc]]:source:PACKAGES [wokinfo -w $tkloc]]
+  foreach u [wokUtils:FILES:FileToList $PACKAGES] {
+    set fu [woklocate -u $u]
+    if { [set fu [woklocate -u $u]] != {} } {
+      if { $typed == 0 } {
+        lappend l $fu
+      }
+      if { $typed == 1 } {
+        lappend l [list [uinfo -c $fu] [wokinfo -n $fu]]
+      }
+      if { $typed == 2 } {
+        lappend l [list [uinfo -c $fu] $fu]
+      }
+      if { $typed == 3 } {
+        lappend l [list [uinfo -t $fu] [wokinfo -n $fu]]
+      }
+      if { $typed == 4 } {
+        lappend l [list [uinfo -t $fu] $fu]
+      }
+    } else {
+      puts stderr "Unit inconnue $u"
     }
-    return $l
+  }
+  if { $l == {} } {
+    ;#puts stderr "Warning. No devunit included in $tkloc"
+  }
+  return $l
 }
+
 ;#
 ;# for a unit returns a map containing all its file in the current
 ;# workbench
 ;# local = 1 only local files
 ;#
 proc osutils:tk:loadunit { loc map {local 0}} {
-    upvar $map TLOC
-    catch { unset TLOC }
-    if { $local == 1 } {
-       set lfiles [uinfo -Fpl $loc]
+  upvar $map TLOC
+  catch { unset TLOC }
+  if { $local == 1 } {
+    set lfiles [uinfo -Fpl $loc]
+  } else {
+    set lfiles [uinfo -Fp $loc]
+  }
+  foreach f $lfiles {
+    #puts $f
+    set t [lindex $f 0]
+    set p [lindex $f 2]
+    if [info exists TLOC($t)] {
+      set l $TLOC($t)
+      lappend l $p
+      set TLOC($t) $l
     } else {
-       set lfiles [uinfo -Fp $loc]
-    }
-    foreach f $lfiles { 
-       #puts $f
-       set t [lindex $f 0]
-       set p [lindex $f 2]
-       if [info exists TLOC($t)] {
-           set l $TLOC($t)
-           lappend l $p
-           set TLOC($t) $l
-       } else {
-           set TLOC($t) $p
-       }
-    }
-    return
+      set TLOC($t) $p
+    }
+  }
+  return
 }
+
 ;#
 ;# Returns the list of all compilable files name in a toolkit, or devunit of any type
 ;# Call unit filter on units name to accept or reject a unit
 ;# Tfiles lists for each unit the type of file that can be compiled.
 ;#
 proc osutils:tk:files { tkloc  {l_compilable {} } {justail 1} {unitfilter {}} } {
-    set Tfiles(source,package)       {source derivated privinclude pubinclude drvfile}
-    set Tfiles(source,nocdlpack)     {source pubinclude drvfile}
-    set Tfiles(source,schema)        {source derivated privinclude pubinclude drvfile}
-    set Tfiles(source,toolkit)       {}
-    set Tfiles(source,executable)    {source pubinclude drvfile}
-    set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]]
-    #puts " listloc = $listloc"
-    if { $l_compilable == {} } {
-       set l_comp [list .c .cxx .cpp]
-    } else {
-       set l_comp [$l_compilable]
+  set Tfiles(source,package)       {source derivated privinclude pubinclude drvfile}
+  set Tfiles(source,nocdlpack)     {source pubinclude drvfile}
+  set Tfiles(source,schema)        {source derivated privinclude pubinclude drvfile}
+  set Tfiles(source,toolkit)       {}
+  set Tfiles(source,executable)    {source pubinclude drvfile}
+  set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]]
+  #puts " listloc = $listloc"
+  if { $l_compilable == {} } {
+    set l_comp [list .c .cxx .cpp]
+  } else {
+    set l_comp [$l_compilable]
+  }
+  if { $unitfilter == {} } {
+    set resultloc $listloc
+  } else {
+    set resultloc [$unitfilter $listloc]
+  }
+  set lret {}
+  foreach loc $resultloc {
+    set utyp [uinfo -t $loc]
+    if [array exists map] { unset map }
+    osutils:tk:loadunit $loc map
+    #puts " loc = $loc === > [array names map]"
+    set LType $Tfiles(source,${utyp})
+    foreach typ [array names map] {
+      if { [lsearch $LType $typ] == -1 } {
+        unset map($typ)
+      }
     }
-    if { $unitfilter == {} } {
-       set resultloc $listloc
-    } else {
-       set resultloc [$unitfilter $listloc]
-    }
-    set lret {}
-    foreach loc $resultloc {
-       set utyp [uinfo -t $loc]
-       if [array exists map] { unset map }             
-       osutils:tk:loadunit $loc map
-       #puts " loc = $loc === > [array names map]"
-       set LType $Tfiles(source,${utyp})
-       foreach typ [array names map] {
-           if { [lsearch $LType $typ] == -1 } {
-               unset map($typ)
-           }
-       }
-       foreach type [array names map] {
-           #puts $type
-           foreach f $map($type) {
-               #puts $f
-               if { [lsearch $l_comp [file extension $f]] != -1 } {
-                   if { $justail == 1 } {
-                       if {$type == "source"} {
-                           if {[lsearch $lret "@top_srcdir@/drv/[wokinfo -n $loc]/[file tail $f]"] == -1} {
-                               lappend lret @top_srcdir@/src/[wokinfo -n $loc]/[file tail $f]
-                           }
-                           } elseif {$type == "derivated" || $type == "drvfile"} {
-                               if {[lsearch $lret "@top_srcdir@/src/[wokinfo -n $loc]/[file tail $f]"] == -1} {
-                                   lappend lret @top_srcdir@/drv/[wokinfo -n $loc]/[file tail $f]
-                           }
-                       }
-                   } else {
-                       lappend lret $f
-                   }
-               }
-           }
-       }
-    }
-    return $lret
+    foreach type [array names map] {
+      #puts $type
+      foreach f $map($type) {
+        #puts $f
+        if { [lsearch $l_comp [file extension $f]] != -1 } {
+          if { $justail == 1 } {
+            if {$type == "source"} {
+              if {[lsearch $lret "@top_srcdir@/drv/[wokinfo -n $loc]/[file tail $f]"] == -1} {
+                lappend lret @top_srcdir@/src/[wokinfo -n $loc]/[file tail $f]
+              }
+            } elseif {$type == "derivated" || $type == "drvfile"} {
+              if {[lsearch $lret "@top_srcdir@/src/[wokinfo -n $loc]/[file tail $f]"] == -1} {
+                  lappend lret @top_srcdir@/drv/[wokinfo -n $loc]/[file tail $f]
+              }
+            }
+          } else {
+            lappend lret $f
+          }
+        }
+      }
+    }
+  }
+  return $lret
 }
+
+;#
 ;#
-;# 
 ;#
 proc osutils:tk:eatpk { EXTERNLIB  } {
-    set l [wokUtils:FILES:FileToList $EXTERNLIB]
-    set lret  {}
-    foreach str $l {
-        if ![regexp -- {(CSF_[^ ]*)} $str csf] {
-            lappend lret $str
-        }
-    }
-    return $lret
+  set l [wokUtils:FILES:FileToList $EXTERNLIB]
+  set lret  {}
+  foreach str $l {
+    if ![regexp -- {(CSF_[^ ]*)} $str csf] {
+      lappend lret $str
+    }
+  }
+  return $lret
 }
+
 ;#
 ;# Return the list of name *CSF_ in a EXTERNLIB description of a toolkit
 ;#
 proc osutils:tk:hascsf { EXTERNLIB } {
-    set l [wokUtils:FILES:FileToList $EXTERNLIB]
-    set lret  {STLPort}
-    foreach str $l {
-        if [regexp -- {(CSF_[^ ]*)} $str csf] {
-            lappend lret $csf
-        }
-    }
-    return $lret
-}
-;#
-;# Create file tkloc.dsp for a shareable library (dll).
-;# in dir return the full path of the created file
-;#
-proc osutils:vc6 { dir tkloc {tmplat {} } {fmtcpp {} } } {
-    if { $tmplat == {} } {set tmplat [osutils:readtemplate vc6 "MS VC++ 6.0 project"]}
-    if { $fmtcpp == {} } {set fmtcpp [osutils:vc6:fmtcpp]}
-    set fp [open [set fdsp [file join $dir ${tkloc}.dsp]] w]
-    fconfigure $fp -translation crlf
-    set l_compilable [osutils:compilable]
-    regsub -all -- {__TKNAM__} $tmplat $tkloc tmplat
-    set tkused ""
-    foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {
-       append tkused "${tkx}.lib "
+  set l [wokUtils:FILES:FileToList $EXTERNLIB]
+  set lret  {STLPort}
+  foreach str $l {
+    if [regexp -- {(CSF_[^ ]*)} $str csf] {
+      lappend lret $csf
     }
-    wokparam -l CSF
-    foreach tk [lappend [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] $tkloc] {
-       foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
-           puts "$element"
-           if {[wokparam -t %$element] != 0} {
-               set felem [file tail [lindex [wokparam -v "%$element"] 0]]
-               puts "$felem"
-               if {[lsearch $tkused $felem] == "-1"} {
-                   if {$felem != "\{\}"} {
-                       set tkused [concat $tkused $felem]
-                   }
-               }
-           }
-       }
-    }
-
-    #puts "alternative [LibToLink $tkloc]"
-    puts "$tkloc requires  $tkused"
-    regsub -all -- {__TKDEP__} $tmplat $tkused tmplat
-    set files ""
-    ;#set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]]
-    set listloc [osutils:tk:units [woklocate -u $tkloc]]
-    set resultloc [osutils:justwnt $listloc]
-    ;#puts "result = $resultloc"
-    ;#set lsrc   [lsort [osutils:tk:files $tkloc osutils:compilable 1 osutils:justwnt]]
-    if [array exists written] { unset written }
-    set fxloparamfcxx [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] ] 2]
-    set fxloparamfc   [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options   [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options]   0]] ] 2]
-    set fxloparam    "[union [split $fxloparamfcxx] [split $fxloparamfc]]"
-    foreach fxlo $resultloc {
-        set xlo [wokinfo -n $fxlo]
-       append files "# Begin Group \"${xlo}\"" "\n"        
-       set lsrc   [osutils:tk:files $xlo osutils:compilable 0]
-       set fxloparam "$fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]"
-        set fxloparam "$fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options]   0]] [split [lindex [wokparam -v %CMPLRS_C_Options   $fxlo] 0]] ] 2]"
-        set needparam ""
-        foreach partopt $fxloparam {
-           if { "-I[lindex [wokparam -v %CSF_TCL_INCLUDE] 0]" != "$partopt "} {
-               if { "-I[lindex [wokparam -v %CSF_JAVA_INCLUDE] 0]" != "$partopt "} {
-                 set needparam "$needparam $partopt"
-                }
-           }
-        }
-        foreach f $lsrc {
-           ;#puts " f = $f"
-           if { ![info exists written([file tail $f])] } {
-               set written([file tail $f]) 1
-               append files "# Begin Source File" "\n"
-               append files "SOURCE=..\\..\\..\\" [wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]] "\n"
-               append files [format $fmtcpp $xlo $xlo $xlo] "$needparam" "\n"
-               append files "# End Source File" "\n"
-           } else {
-               puts "Warning : in dsp more than one occurences for [file tail $f]"
-           }
-       }
-    append files "# End Group" "\n"
-    }
-    
-    regsub -all -- {__FILES__} $tmplat $files tmplat
-    puts $fp $tmplat
-    close $fp
-    return $fdsp
-}
-
-;#
-;# Create file tkloc.dsp for a executable "console" application
-;# in dir return the full path of the created file
-;#
-proc osutils:vc6x { dir tkloc {tmplat {} } {fmtcpp {} } } {
-    if { $tmplat == {} } {set tmplat [osutils:readtemplate vc6x "MS VC++ 6.0 project (executable)"]}
-    if { $fmtcpp == {} } {set fmtcpp [osutils:vc6:fmtcppx]}
-    foreach f [osutils:tk:files $tkloc osutils:compilable 0] {
-        set tf [file rootname [file tail $f]]   
-        set fp [open [set fdsp [file join $dir ${tf}.dsp]] w]
-        puts $fdsp
-        fconfigure $fp -translation crlf
-        set l_compilable [osutils:compilable]
-        regsub -all -- {__XQTNAM__} $tmplat $tf tmplat
-        set tkused ""
-        puts [LibToLinkX [woklocate -u $tkloc] $tf]
-        foreach tkx [LibToLinkX [woklocate -u $tkloc] $tf] {
-         if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} {
-           append tkused "${tkx}.lib "
-         }
-#          if {[lsearch [w_info -l] [woklocate -u $tkx]] == "-1"} {
-#          append tkused "${tkx}.lib "
-#        }
-         if {[woklocate -u $tkx] == "" } {
-             append tkused "${tkx}.lib "
-         }
-        }
-       wokparam -l CSF
-        foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] {
-           foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokinfo -N [woklocate -u $tk]]]] {
-               if {[wokparam -t %$element] != 0} {
-                   set elemlist [wokparam -v "%$element"]
-                   set felem [file tail [lindex $elemlist 0]] 
-                   if {[lsearch $tkused $felem] == "-1"} {
-                       if {$felem != "\{\}"} {
-                           #puts "was found $element $felem"      
-                           set tkused [concat $tkused $felem]
-                       }
-                   }   
-               }
-           }
-       }
-       set WOKSteps_exec_link [wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]]
-       if { [regexp {WOKStep_DLLink} $WOKSteps_exec_link] || [regexp {WOKStep_Libink} $WOKSteps_exec_link] } { 
-           set tkused [concat $tkused "\/dll"]
-       }
-       regsub -all -- {__COMPOPT__} $tmplat "\/MD" tmplat
-       regsub -all -- {__COMPOPTD__} $tmplat "\/MDd" tmplat 
-       puts "$tf requires  $tkused"
-       regsub -all -- {__TKDEP__} $tmplat $tkused tmplat
-       set files ""
-       ;#set lsrc   [osutils:tk:files $tkloc osutils:compilable 0]
-       ;#foreach f $lsrc {
-       if { ![info exists written([file tail $f])] } {
-           set written([file tail $f]) 1
-            append files "# Begin Group \"" $tkloc "\" \n"
-           append files "# Begin Source File" "\n"
-           append files "SOURCE=..\\..\\..\\" [wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]] "\n"
-           append files [format $fmtcpp $tkloc $tkloc $tkloc] "\n"
-           append files "# End Source File" "\n"
-            append files "# End Group" "\n"
-       } else {
-           puts "Warning : in dsp more than one occurences for [file tail $f]"
-       }
-       ;#}
-    
-       regsub -all -- {__FILES__} $tmplat $files tmplat
-       puts $fp $tmplat
-       close $fp
-       set fout [lappend fout $fdsp]
-    }
-    return $fout
+  }
+  return $lret
 }
 
 # Generate entry for one source file in Visual Studio 7 - 9 project file
-proc osutils:vcproj:file { vcversion plat file inc params } {
-    set conf [osutils:vcsolution:confname $vcversion $plat]
+proc osutils:vcproj:file { theVcVer theFile theOptions } {
+  append aText "\t\t\t\t<File\n"
+  append aText "\t\t\t\t\tRelativePath=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $theFile 3]]\">\n"
+  if { $theOptions == "" } {
+    append aText "\t\t\t\t</File>\n"
+    return $aText
+  }
 
-    set files ""
-    append text "\t\t\t\t<File\n"
-    append text "\t\t\t\t\tRelativePath=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $file 3]]\">\n"
-
-    append text "\t\t\t\t\t<FileConfiguration\n"
-    append text "\t\t\t\t\t\tName=\"Release\|$conf\">\n"
-    append text "\t\t\t\t\t\t<Tool\n"
-    append text "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
-    if { $params != "" } {
-       append text "\t\t\t\t\t\t\tAdditionalOptions=\""
-       foreach param $params {
-           append text "$param "
-       }
-       append text "\"\n"
-    }
-    append text "\t\t\t\t\t\t\tOptimization=\"2\"\n"
-    append text "\t\t\t\t\t\t\t$inc\n"
-    append text "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
-    append text "\t\t\t\t\t</FileConfiguration>\n"
-
-    append text "\t\t\t\t\t<FileConfiguration\n"
-    append text "\t\t\t\t\t\tName=\"Debug\|$conf\">\n"
-    append text "\t\t\t\t\t\t<Tool\n"
-    append text "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
-    if { $params != "" } {
-       append text "\t\t\t\t\t\t\tAdditionalOptions=\""
-       foreach param $params {
-           append text "$param "
-       }
-       append text "\"\n"
-    }
-    append text "\t\t\t\t\t\t\tOptimization=\"0\"\n"
-    append text "\t\t\t\t\t\t\t$inc\n"
-    append text "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
-    append text "\t\t\t\t\t</FileConfiguration>\n"
-
-    append text "\t\t\t\t</File>\n"
-    return $text
+  append aText "\t\t\t\t\t<FileConfiguration\n"
+  append aText "\t\t\t\t\t\tName=\"Release\|Win32\">\n"
+  append aText "\t\t\t\t\t\t<Tool\n"
+  append aText "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+  append aText "\t\t\t\t\t\t\tAdditionalOptions=\""
+  foreach aParam $theOptions {
+    append aText "$aParam "
+  }
+  append aText "\"\n"
+  append aText "\t\t\t\t\t\t/>\n"
+  append aText "\t\t\t\t\t</FileConfiguration>\n"
+
+  append aText "\t\t\t\t\t<FileConfiguration\n"
+  append aText "\t\t\t\t\t\tName=\"Debug\|Win32\">\n"
+  append aText "\t\t\t\t\t\t<Tool\n"
+  append aText "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+  append aText "\t\t\t\t\t\t\tAdditionalOptions=\""
+  foreach aParam $theOptions {
+    append aText "$aParam "
+  }
+  append aText "\"\n"
+  append aText "\t\t\t\t\t\t/>\n"
+  append aText "\t\t\t\t\t</FileConfiguration>\n"
+  if { "$theVcVer" == "vc7" } {
+    append aText "\t\t\t\t</File>\n"
+    return $aText
+  }
+
+  append aText "\t\t\t\t\t<FileConfiguration\n"
+  append aText "\t\t\t\t\t\tName=\"Release\|x64\">\n"
+  append aText "\t\t\t\t\t\t<Tool\n"
+  append aText "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+  append aText "\t\t\t\t\t\t\tAdditionalOptions=\""
+  foreach aParam $theOptions {
+    append aText "$aParam "
+  }
+  append aText "\"\n"
+  append aText "\t\t\t\t\t\t/>\n"
+  append aText "\t\t\t\t\t</FileConfiguration>\n"
+
+  append aText "\t\t\t\t\t<FileConfiguration\n"
+  append aText "\t\t\t\t\t\tName=\"Debug\|x64\">\n"
+  append aText "\t\t\t\t\t\t<Tool\n"
+  append aText "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+  append aText "\t\t\t\t\t\t\tAdditionalOptions=\""
+  foreach aParam $theOptions {
+    append aText "$aParam "
+  }
+  append aText "\"\n"
+  append aText "\t\t\t\t\t\t/>\n"
+  append aText "\t\t\t\t\t</FileConfiguration>\n"
+
+  append aText "\t\t\t\t</File>\n"
+  return $aText
 }
 
 # Generate entry for one source file in Visual Studio 10 project file
-proc osutils:vcxproj:file { vcversion plat file unit params } {
-    set conf [osutils:vcsolution:confname $vcversion $plat]
+proc osutils:vcxproj:file { vcversion file params } {
+  append text "    <ClCompile Include=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $file 3]]\">\n"
 
-    set files ""
-    append text "    <ClCompile Include=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $file 3]]\">\n"
+  if { $params != "" } {
+    append text "      <AdditionalOptions Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Debug|Win32\'\">[string trim ${params}]  %(AdditionalOptions)</AdditionalOptions>\n"
+  }
 
-    if { $params != "" } {
-       append text "      <AdditionalOptions Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Debug|${conf}\'\">[string trim ${params}]  %(AdditionalOptions)</AdditionalOptions>\n"
-    }
-    append text "      <Optimization Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Debug|${conf}\'\">Disabled</Optimization>\n"
-    append text "      <AdditionalIncludeDirectories Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Debug|${conf}\'\">..\\..\\..\\inc;..\\..\\..\\drv\\${unit};..\\..\\..\\src\\${unit};%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n"
-    append text "      <PreprocessorDefinitions Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Debug|${conf}\'\">__${unit}_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n"
-    append text "      <CompileAs Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Debug|${conf}\'\">Default</CompileAs>\n"
+  if { $params != "" } {
+    append text "      <AdditionalOptions Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Release|Win32\'\">[string trim ${params}]  %(AdditionalOptions)</AdditionalOptions>\n"
+  }
 
-    if { $params != "" } {
-       append text "      <AdditionalOptions Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Release|${conf}\'\">[string trim ${params}]  %(AdditionalOptions)</AdditionalOptions>\n"
-    }
-    append text "      <Optimization Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Release|${conf}\'\">MaxSpeed</Optimization>\n"
-    append text "      <AdditionalIncludeDirectories Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Release|${conf}\'\">..\\..\\..\\inc;..\\..\\..\\drv\\${unit};..\\..\\..\\src\\${unit};%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n"
-    append text "      <PreprocessorDefinitions Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Release|${conf}\'\">__${unit}_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n"
-    append text "      <CompileAs Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Release|${conf}\'\">Default</CompileAs>\n"
+  if { $params != "" } {
+    append text "      <AdditionalOptions Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Debug|x64\'\">[string trim ${params}]  %(AdditionalOptions)</AdditionalOptions>\n"
+  }
 
-    append text "    </ClCompile>\n"
+  if { $params != "" } {
+    append text "      <AdditionalOptions Condition=\"\'\$(Configuration)|\$(Platform)\'==\'Release|x64\'\">[string trim ${params}]  %(AdditionalOptions)</AdditionalOptions>\n"
+  }
 
-    return $text
+  append text "    </ClCompile>\n"
+  return $text
 }
 
 # Returns extension (without dot) for project files of given version of VC
 proc osutils:vcproj:ext { vcversion } {
-    if { "$vcversion" == "vc6" } {
-       return "dsp"
-    } elseif { "$vcversion" == "vc7" || "$vcversion" == "vc8" || "$vcversion" == "vc9" } {
-       return "vcproj"
-    } elseif { "$vcversion" == "vc10" } {
-       return "vcxproj"
-    } else {
-       puts stderr "Error: Visual Studio version $vc is not supported by this function!"
-    }
+  if { "$vcversion" == "vc7" || "$vcversion" == "vc8" || "$vcversion" == "vc9" } {
+    return "vcproj"
+  } elseif { "$vcversion" == "vc10" } {
+    return "vcxproj"
+  } else {
+    puts stderr "Error: Visual Studio version $vc is not supported by this function!"
+  }
 }
 
 # Generate Visual Studio 2010 project filters file
-proc osutils:vcxproj:filters { dir proj _files } {
-    upvar $_files files
-
-    # header
-    append text "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
-    append text "<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n"
-
-    # list of "filters" (units)
-    append text "  <ItemGroup>\n"
-    append text "    <Filter Include=\"Source files\">\n"
+proc osutils:vcxproj:filters { dir proj theFilesMap } {
+  upvar $theFilesMap aFilesMap
+
+  # header
+  append text "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
+  append text "<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n"
+
+  # list of "filters" (units)
+  append text "  <ItemGroup>\n"
+  append text "    <Filter Include=\"Source files\">\n"
+  append text "      <UniqueIdentifier>[OS:genGUID]</UniqueIdentifier>\n"
+  append text "    </Filter>\n"
+  foreach unit $aFilesMap(units) {
+    append text "    <Filter Include=\"Source files\\${unit}\">\n"
     append text "      <UniqueIdentifier>[OS:genGUID]</UniqueIdentifier>\n"
     append text "    </Filter>\n"
-    foreach unit $files(units) {
-       append text "    <Filter Include=\"Source files\\${unit}\">\n"
-       append text "      <UniqueIdentifier>[OS:genGUID]</UniqueIdentifier>\n"
-       append text "    </Filter>\n"
-    }
-    append text "  </ItemGroup>\n"
+  }
+  append text "  </ItemGroup>\n"
 
-    # list of files
-    append text "  <ItemGroup>\n"
-    foreach unit $files(units) {
-       foreach file $files($unit) {
-           append text "    <ClCompile Include=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $file 3]]\">\n"
-           append text "      <Filter>Source files\\${unit}</Filter>\n"
-           append text "    </ClCompile>\n"
-       }
+  # list of files
+  append text "  <ItemGroup>\n"
+  foreach unit $aFilesMap(units) {
+    foreach file $aFilesMap($unit) {
+      append text "    <ClCompile Include=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $file 3]]\">\n"
+      append text "      <Filter>Source files\\${unit}</Filter>\n"
+      append text "    </ClCompile>\n"
     }
-    append text "  </ItemGroup>\n"
+  }
+  append text "  </ItemGroup>\n"
 
-    # end
-    append text "</Project>"
+  # end
+  append text "</Project>"
 
-    # write file
-    set fp [open [set fvcproj [file join $dir ${proj}.vcxproj.filters]] w]
-    fconfigure $fp -translation crlf
-    puts $fp $text
-    close $fp
+  # write file
+  set fp [open [set fvcproj [file join $dir ${proj}.vcxproj.filters]] w]
+  fconfigure $fp -translation crlf
+  puts $fp $text
+  close $fp
 
-    return ${proj}.vcxproj.filters
+  return ${proj}.vcxproj.filters
 }
 
-# Generate Visual Studio project file for toolkit
-proc osutils:vcproj { vc plat dir tkloc _guids {tmplat {} } {fmtcpp {} } } {
-    if { $tmplat == {} } {set tmplat [osutils:vcproj:readtemplate $vc $plat 0]}
-    if { $fmtcpp == {} } {set fmtcpp [osutils:vcproj:fmtcpp]}
+# Generate Visual Studio project file for ToolKit
+proc osutils:vcproj { theVcVer theOutDir theToolKit theGuidsMap {theProjTmpl {} } } {
+  if { $theProjTmpl == {} } {set theProjTmpl [osutils:vcproj:readtemplate $theVcVer 0]}
+
+  set l_compilable [osutils:compilable]
+  regsub -all -- {__TKNAM__} $theProjTmpl $theToolKit theProjTmpl
+
+  upvar $theGuidsMap aGuidsMap
+  if { ! [info exists aGuidsMap($theToolKit)] } {
+    set aGuidsMap($theToolKit) [OS:genGUID]
+  }
+  regsub -all -- {__PROJECT_GUID__} $theProjTmpl $aGuidsMap($theToolKit) theProjTmpl
+
+  # collect list of referred libraries to link with
+  set aUsedToolKits ""
+  foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $theToolKit]]] {
+    append aUsedToolKits "${tkx}.lib "
+  }
+
+  wokparam -l CSF
+  foreach tk [lappend [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $theToolKit]]] $theToolKit] {
+    foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
+      if {[wokparam -t %$element] == 0} {
+        continue
+      }
+      foreach fl [split [wokparam -v %$element] \{\ \}] {
+        if {[string first "-libpath" $fl] != "-1"} {
+          # this is library search path, not the library name
+          continue
+        }
+        set felem [file tail $fl]
+        if {[lsearch $aUsedToolKits $felem] == "-1"} {
+          if {$felem != "\{\}" & $felem != "lib"} {
+            if {[lsearch -nocase [osutils:optinal_libs] $felem] == -1} {
+              set aUsedToolKits [concat $aUsedToolKits $felem]
+            }
+          }
+        }
+      }
+    }
+  }
+
+  # correct names of referred third-party libraries that are named with suffix
+  # depending on VC version
+  regsub -all -- {vc[0-9]+} $aUsedToolKits $theVcVer aUsedToolKits
+
+  # and put this list to project file
+  puts "$theToolKit requires  $aUsedToolKits"
+  if { "$theVcVer" == "vc10" } { set aUsedToolKits [join $aUsedToolKits {;}] }
+  regsub -all -- {__TKDEP__} $theProjTmpl $aUsedToolKits theProjTmpl
+
+  set anIncPaths "..\\..\\..\\inc"
+  set aTKDefines ""
+  set aFilesSection ""
+  set aVcFilesX(units) ""
+  set listloc [osutils:tk:units [woklocate -u $theToolKit]]
+  set resultloc [osutils:justwnt $listloc]
+  if [array exists written] { unset written }
+  set fxloparamfcxx [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] ] 2]
+  set fxloparamfc   [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options   [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options]   0]] ] 2]
+  set fxloparam    "[osutils:union [split $fxloparamfcxx] [split $fxloparamfc]]"
+  foreach fxlo $resultloc {
+    set xlo  [wokinfo -n $fxlo]
+    set aSrcFiles [osutils:tk:files $xlo osutils:compilable 0]
+    set fxloparam "$fxloparam [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]"
+    set fxloparam "$fxloparam [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options  ] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options   $fxlo] 0]] ] 2]"
+    set needparam ""
+    foreach partopt $fxloparam {
+      if {[string first "-I" $partopt] == "0"} {
+        # this is an additional includes search path
+        continue
+      }
+      set needparam "$needparam $partopt"
+      #if { "-I[lindex [wokparam -v %CSF_TCL_INCLUDE] 0]" != "$partopt "} {
+      #  if { "-I[lindex [wokparam -v %CSF_JAVA_INCLUDE] 0]" != "$partopt "} {
+      #    set needparam "$needparam $partopt"
+      #  }
+      #}
+    }
+
+    # Format of projects in vc10 is different from vc7-9
+    if { "$theVcVer" == "vc10" } {
+      foreach aSrcFile [lsort $aSrcFiles] {
+        if { ![info exists written([file tail $aSrcFile])] } {
+          set written([file tail $aSrcFile]) 1
+          append aFilesSection [osutils:vcxproj:file $theVcVer $aSrcFile $needparam]
+        } else {
+          puts "Warning : in vcproj more than one occurences for [file tail $aSrcFile]"
+        }
+        if { ! [info exists aVcFilesX($xlo)] } { lappend aVcFilesX(units) $xlo }
+        lappend aVcFilesX($xlo) $aSrcFile
+      }
+    } else {
+      append aFilesSection "\t\t\t<Filter\n"
+      append aFilesSection "\t\t\t\tName=\"${xlo}\"\n"
+      append aFilesSection "\t\t\t\t>\n"
+      foreach aSrcFile [lsort $aSrcFiles] {
+        if { ![info exists written([file tail $aSrcFile])] } {
+          set written([file tail $aSrcFile]) 1
+          append aFilesSection [osutils:vcproj:file $theVcVer $aSrcFile $needparam]
+        } else {
+          puts "Warning : in vcproj more than one occurences for [file tail $aSrcFile]"
+        }
+      }
+      append aFilesSection "\t\t\t</Filter>\n"
+    }
+
+    # macros
+    append aTKDefines ";__${xlo}_DLL"
+    # common includes
+    append anIncPaths ";..\\..\\..\\drv\\${xlo}"
+    append anIncPaths ";..\\..\\..\\src\\${xlo}"
+  }
+
+  regsub -all -- {__TKINC__}  $theProjTmpl $anIncPaths theProjTmpl
+  regsub -all -- {__TKDEFS__} $theProjTmpl $aTKDefines theProjTmpl
+  regsub -all -- {__FILES__}  $theProjTmpl $aFilesSection theProjTmpl
+
+  # write file
+  set aFile [open [set aVcFiles [file join $theOutDir ${theToolKit}.[osutils:vcproj:ext $theVcVer]]] w]
+  fconfigure $aFile -translation crlf
+  puts $aFile $theProjTmpl
+  close $aFile
+
+  # write filters file for vc10
+  if { "$theVcVer" == "vc10" } {
+    lappend aVcFiles [osutils:vcxproj:filters $theOutDir $theToolKit aVcFilesX]
+  }
+
+  # write resource file
+  lappend aVcFiles [osutils:readtemplate:rc $theOutDir $theToolKit]
+
+  return $aVcFiles
+}
 
+# Generate Visual Studio project file for executable
+proc osutils:vcprojx { theVcVer theOutDir theToolKit theGuidsMap {theProjTmpl {} } } {
+  set aVcFiles {}
+  foreach f [osutils:tk:files $theToolKit osutils:compilable 0] {
+    if { $theProjTmpl == {} } {
+      set aProjTmpl [osutils:vcproj:readtemplate $theVcVer 1]
+    } else {
+      set aProjTmpl $theProjTmpl
+    }
+    set aProjName [file rootname [file tail $f]]
     set l_compilable [osutils:compilable]
-    regsub -all -- {__TKNAM__} $tmplat $tkloc tmplat
+    regsub -all -- {__XQTNAM__} $aProjTmpl $aProjName aProjTmpl
 
-    upvar $_guids guids
-    if { ! [info exists guids($tkloc)] } { 
-       set guids($tkloc) [OS:genGUID]
+    upvar $theGuidsMap aGuidsMap
+    if { ! [info exists aGuidsMap($aProjName)] } {
+      set aGuidsMap($aProjName) [OS:genGUID]
     }
-    regsub -all -- {__PROJECT_GUID__} $tmplat $guids($tkloc) tmplat
+    regsub -all -- {__PROJECT_GUID__} $aProjTmpl $aGuidsMap($aProjName) aProjTmpl
 
-    # collect list of referred libraries to link with
-    set tkused ""
-    foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {
-       append tkused "${tkx}.lib "
+    set aUsedToolKits ""
+    set aDepToolkits [LibToLinkX [woklocate -u $theToolKit] $aProjName]
+    foreach tkx $aDepToolkits {
+      if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} {
+        append aUsedToolKits "${tkx}.lib "
+      }
+      if {[lsearch [w_info -l] $tkx] == "-1"} {
+        append aUsedToolKits "${tkx}.lib "
+      }
+    }
+
+    wokparam -l CSF
+    foreach tk $aDepToolkits {
+      foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
+        if {[wokparam -t %$element] == 0} {
+          continue
+        }
+        foreach fl [split [wokparam -v %$element] \{\ \}] {
+          if {[string first "-libpath" $fl] != "-1"} {
+            # this is library search path, not the library name
+            continue
+          }
+          set felem [file tail $fl]
+          if {[lsearch $aUsedToolKits $felem] == "-1"} {
+            if {$felem != "\{\}"} {
+              if {[lsearch -nocase [osutils:optinal_libs] $felem] == -1} {
+                  set aUsedToolKits [concat $aUsedToolKits $felem]
+              }
+            }
+          }
+        }
+      }
     }
-    wokparam -l CSF
-    foreach tk [lappend [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] $tkloc] {
-       foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
-           if {[wokparam -t %$element] != 0} {
-               foreach fl [split [wokparam -v %$element] \{\ \}] {
-                   set felem [file tail $fl]
-                   if {[lsearch $tkused $felem] == "-1"} {
-                       if {$felem != "\{\}" & $felem != "lib"} {
-                           #puts "$fl $tkused $felem"
-                           if {[lsearch -nocase [osutils:optinal_libs] $felem] == -1} {
-                               set tkused [concat $tkused $felem]
-                           }
-                       }
-                   }
-               }   
-           }
-       }
+
+    set WOKSteps_exec_link [wokparam -v %WOKSteps_exec_link [woklocate -u $theToolKit]]
+    if { [regexp {WOKStep_DLLink} $WOKSteps_exec_link] || [regexp {WOKStep_Libink} $WOKSteps_exec_link] } {
+      set aUsedToolKits [concat $aUsedToolKits "\/dll"]
+      set binext 2
+    } else {
+      set binext 1
     }
 
     # correct names of referred third-party libraries that are named with suffix
     # depending on VC version
-    
-    regsub -all -- {vc[0-9]+} $tkused $vc tkused
-
-    # and put this list to project file
-    puts "$tkloc requires  $tkused"
-    if { "$vc" == "vc10" } { set tkused [join $tkused {;}] }
-    regsub -all -- {__TKDEP__} $tmplat  $tkused tmplat
+    regsub -all -- {vc[0-9]+} $aUsedToolKits $theVcVer aUsedToolKits
+
+    puts "$aProjName requires  $aUsedToolKits"
+    if { "$theVcVer" == "vc10" } { set aUsedToolKits [join $aUsedToolKits {;}] }
+    regsub -all -- {__TKDEP__} $aProjTmpl $aUsedToolKits aProjTmpl
+
+    set aFilesSection ""
+    set aVcFilesX(units) ""
+    ;#set lsrc   [osutils:tk:files $theToolKit osutils:compilable 0]
+    if { ![info exists written([file tail $f])] } {
+      set written([file tail $f]) 1
+
+      if { "$theVcVer" == "vc10" } {
+        append aFilesSection [osutils:vcxproj:file $theVcVer $f ""]
+        if { ! [info exists aVcFilesX($theToolKit)] } { lappend aVcFilesX(units) $theToolKit }
+        lappend aVcFilesX($theToolKit) $f
+      } else {
+        append aFilesSection "\t\t\t<Filter\n"
+        append aFilesSection "\t\t\t\tName=\"$theToolKit\"\n"
+        append aFilesSection "\t\t\t\t>\n"
+        append aFilesSection [osutils:vcproj:file $theVcVer $f ""]
+        append aFilesSection "\t\t\t</Filter>"
+      }
+    } else {
+      puts "Warning : in vcproj there are than one occurences for [file tail $f]"
+    }
+    #puts "$aProjTmpl $aFilesSection"
+    set aTKDefines ";__${theToolKit}_DLL"
+    set anIncPaths "..\\..\\..\\inc;..\\..\\..\\drv\\${theToolKit};..\\..\\..\\src\\${theToolKit}"
+    regsub -all -- {__TKINC__}  $aProjTmpl $anIncPaths    aProjTmpl
+    regsub -all -- {__TKDEFS__} $aProjTmpl $aTKDefines    aProjTmpl
+    regsub -all -- {__FILES__}  $aProjTmpl $aFilesSection aProjTmpl
+    regsub -all -- {__CONF__}   $aProjTmpl $binext        aProjTmpl
+    if { $binext == 2 } {
+      regsub -all -- {__XQTEXT__} $aProjTmpl "dll" aProjTmpl
+    } else {
+      regsub -all -- {__XQTEXT__} $aProjTmpl "exe" aProjTmpl
+    }
 
-    set files ""
-    set vcxproj_files(units) ""
-    set listloc [osutils:tk:units [woklocate -u $tkloc]]
-    set resultloc [osutils:justwnt $listloc]
-    if [array exists written] { unset written }
-    set fxloparamfcxx [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] ] 2]
-    set fxloparamfc   [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options   [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options]   0]] ] 2]
-    set fxloparam    "[union [split $fxloparamfcxx] [split $fxloparamfc]]"
-    foreach fxlo $resultloc {
-        set xlo [wokinfo -n $fxlo]        
-        set lsrc   [osutils:tk:files $xlo osutils:compilable 0]
-       set fxloparam "$fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]"
-        set fxloparam "$fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options]   0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo]   0]] ] 2]"
-        set needparam ""
-        foreach partopt $fxloparam {
-           if { "-I[lindex [wokparam -v %CSF_TCL_INCLUDE] 0]" != "$partopt "} {
-               if { "-I[lindex [wokparam -v %CSF_JAVA_INCLUDE] 0]" != "$partopt "} {
-                 set needparam "$needparam $partopt"
-                }
-           }
-        }
+    set aFile [open [set aVcFilePath [file join $theOutDir ${aProjName}.[osutils:vcproj:ext $theVcVer]]] w]
+    fconfigure $aFile -translation crlf
+    puts $aFile $aProjTmpl
+    close $aFile
 
-       # Format of projects in vc10 is different from vc7-9
-       if { "$vc" == "vc10" } {
-           foreach f [lsort $lsrc] {
-               #puts " f = $f"
-               if { ![info exists written([file tail $f])] } {
-                   set written([file tail $f]) 1
-                   append files [osutils:vcxproj:file $vc $plat $f $xlo $needparam]
-               } else {
-                   puts "Warning : in vcproj more than one occurences for [file tail $f]"
-               }
-               if { ! [info exists vcxproj_files($xlo)] } { lappend vcxproj_files(units) $xlo }
-               lappend vcxproj_files($xlo) $f
-           }
-       } else {
-           append files "\t\t\t<Filter\n"
-           append files "\t\t\t\tName=\"${xlo}\"\n"
-           append files "\t\t\t\t>\n"
-           foreach f [lsort $lsrc] {
-               #puts " f = $f"
-               if { ![info exists written([file tail $f])] } {
-                   set written([file tail $f]) 1
-                   append files [osutils:vcproj:file $vc $plat $f [format $fmtcpp $xlo $xlo $xlo] $needparam]
-               } else {
-                   puts "Warning : in vcproj more than one occurences for [file tail $f]"
-               }
-           }
-           append files "\t\t\t</Filter>\n"
-       }
-    }
-    
-    regsub -all -- {__FILES__} $tmplat $files tmplat
-
-    # write file
-    set fp [open [set fvcproj [file join $dir ${tkloc}.[osutils:vcproj:ext $vc]]] w]
-    fconfigure $fp -translation crlf
-    puts $fp $tmplat
-    close $fp
+    lappend aVcFiles $aVcFilePath
 
     # write filters file for vc10
-    if { "$vc" == "vc10" } {   
-       lappend fvcproj [osutils:vcxproj:filters $dir $tkloc vcxproj_files]
+    if { "$theVcVer" == "vc10" } {
+      lappend aVcFiles [osutils:vcxproj:filters $theOutDir $aProjName aVcFilesX]
     }
 
-    return $fvcproj
-}
-
-# Generate Visual Studio project file for executable
-proc osutils:vcprojx { vc plat dir tkloc _guids {tmplat0 {} } {fmtcpp {} } } {
-    if { $fmtcpp == {} } {set fmtcpp [osutils:vcproj:fmtcppx]}
-    set fout {}
-    foreach f [osutils:tk:files $tkloc osutils:compilable 0] {
-       if { $tmplat0 == {} } {
-           set tmplat [osutils:vcproj:readtemplate $vc $plat 1]
-       } else {
-           set tmplat $tmplat0
-       }
-        set tf [file rootname [file tail $f]]   
-        set l_compilable [osutils:compilable]
-        regsub -all -- {__XQTNAM__} $tmplat $tf tmplat
-
-       upvar $_guids guids
-       if { ! [info exists guids($tf)] } { 
-           set guids($tf) [OS:genGUID]
-       }
-       regsub -all -- {__PROJECT_GUID__} $tmplat $guids($tf) tmplat
-
-        set tkused ""
-        foreach tkx [LibToLinkX [woklocate -u $tkloc] $tf] {
-         if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} {
-           append tkused "${tkx}.lib "
-         }
-          if {[lsearch [w_info -l] $tkx] == "-1"} {
-           append tkused "${tkx}.lib "
-         }
-        }
-       wokparam -l CSF
-       foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] {
-         foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]]  {
-           if {[wokparam -t %$element] != 0} {
-                set elemlist [wokparam -v "%$element"]
-               foreach fl [split [wokparam -v %$element] \{\ \}] {
-                   set felem [file tail $fl] 
-                   if {[lsearch $tkused $felem] == "-1"} {
-                       if {$felem != "\{\}"} {
-                           if {[lsearch -nocase [osutils:optinal_libs] $felem] == -1} {
-                               set tkused [concat $tkused $felem] 
-                           }
-
-                       }
-                   }   
-               }
-           }
-         }
-       }
-       set WOKSteps_exec_link [wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]]
-       if { [regexp {WOKStep_DLLink} $WOKSteps_exec_link] || [regexp {WOKStep_Libink} $WOKSteps_exec_link] } { 
-           set tkused [concat $tkused "\/dll"]
-           set binext 2
-       } else {
-           set binext 1
-       }
-
-       # correct names of referred third-party libraries that are named with suffix
-       # depending on VC version
-       regsub -all -- {vc[0-9]+} $tkused $vc tkused
-
-       puts "$tf requires  $tkused"
-       if { "$vc" == "vc10" } { set tkused [join $tkused {;}] }
-       regsub -all -- {__TKDEP__} $tmplat $tkused tmplat
-
-       set files ""
-       set vcxproj_files(units) ""
-       ;#set lsrc   [osutils:tk:files $tkloc osutils:compilable 0]
-       if { ![info exists written([file tail $f])] } {
-           set written([file tail $f]) 1
-
-           if { "$vc" == "vc10" } {
-               append files [osutils:vcxproj:file $vc $plat $f $tkloc ""]
-               if { ! [info exists vcxproj_files($tkloc)] } { lappend vcxproj_files(units) $tkloc }
-               lappend vcxproj_files($tkloc) $f
-           } else {
-               append files "\t\t\t<Filter\n"
-               append files "\t\t\t\tName=\"$tkloc\"\n"
-               append files "\t\t\t\t>\n"
-               append files [osutils:vcproj:file $vc $plat $f [format $fmtcpp $tkloc $tkloc $tkloc] ""]
-               append files "\t\t\t</Filter>"
-           }
-       } else {
-           puts "Warning : in vcproj there are than one occurences for [file tail $f]"
-       }
-       #puts "$tmplat $files"
-       regsub -all -- {__FILES__} $tmplat $files tmplat
-       regsub -all -- {__CONF__} $tmplat $binext tmplat
-       if { $binext == 2 } {
-           regsub -all -- {__XQTEXT__} $tmplat "dll" tmplat
-       } else {
-           regsub -all -- {__XQTEXT__} $tmplat "exe" tmplat
-       }
-
-       set fp [open [set fdsp [file join $dir ${tf}.[osutils:vcproj:ext $vc]]] w]
-       fconfigure $fp -translation crlf        
-       puts $fp $tmplat
-       close $fp
-
-       lappend fout $fdsp
-
-       # write filters file for vc10
-       if { "$vc" == "vc10" } {        
-           lappend fout [osutils:vcxproj:filters $dir $tf vcxproj_files]
-       }
-    }
-    return $fout
+    if { "$theVcVer" == "vc9" } {
+      set aCommonSettingsFileTmpl "$::env(WOK_LIBRARY)/templates/vcproj.user.vc9x"
+      set aCommonSettingsFile     "$aVcFilePath.user"
+      file copy -force -- "$aCommonSettingsFileTmpl" "$aCommonSettingsFile"
+      lappend aVcFiles "$aCommonSettingsFile"
+    }
+  }
+  return $aVcFiles
 }
 
 ;#
@@ -1058,423 +1059,421 @@ proc osutils:vcprojx { vc plat dir tkloc _guids {tmplat0 {} } {fmtcpp {} } } {
 ;# in dir return the full path of the created file
 ;#
 proc osutils:mkmak { dir tkloc {tmplat {} } {fmtcpp {} } } {
-    puts $tkloc
-    if { $tmplat == {} } {set tmplat [osutils:readtemplate mak "MS VC++ makefile"]}
-    if { $fmtcpp == {} } {set fmtcpp [osutils:mak:fmtcpp]}
-    set fp [open [set fdsp [file join $dir ${tkloc}.mak]] w]
-    fconfigure $fp -translation crlf
-    set l_compilable [osutils:compilable]
-    set tkused [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
-    set listloc [osutils:tk:units [woklocate -u $tkloc]]
-    set resultloc [osutils:justwnt $listloc]
-    regsub -all -- {__TKNAM__} $tmplat $tkloc tmplat
-    set area1 ""
-    append area1 "\!IF \"\$(RECURSE)\" == \"0\" \n"
-    append area1 "ALL : \"\$(OUTDIR)\\${tkloc}.dll\"\n"
-    append area1 "\!ELSE\n"
-    append area1 "ALL : "
-    if {$tkused != ""} {
-      foreach tkproj $tkused {
-        append area1 "\"$tkproj - Win32 Release\" " 
-      }
+  puts $tkloc
+  if { $tmplat == {} } {set tmplat [osutils:readtemplate mak "MS VC++ makefile"]}
+  if { $fmtcpp == {} } {set fmtcpp [osutils:mak:fmtcpp]}
+  set fp [open [set fdsp [file join $dir ${tkloc}.mak]] w]
+  fconfigure $fp -translation crlf
+  set l_compilable [osutils:compilable]
+  set tkused [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
+  set listloc [osutils:tk:units [woklocate -u $tkloc]]
+  set resultloc [osutils:justwnt $listloc]
+  regsub -all -- {__TKNAM__} $tmplat $tkloc tmplat
+  set area1 ""
+  append area1 "\!IF \"\$(RECURSE)\" == \"0\" \n"
+  append area1 "ALL : \"\$(OUTDIR)\\${tkloc}.dll\"\n"
+  append area1 "\!ELSE\n"
+  append area1 "ALL : "
+  if {$tkused != ""} {
+    foreach tkproj $tkused {
+      append area1 "\"$tkproj - Win32 Release\" "
     }
-    append area1 " \"\$(OUTDIR)\\$tkloc.dll\"\n"
-    append area1 "\!ENDIF \n"
-    append area1 "\!IF \"\$(RECURSE)\" == \"1\"\n" 
-    append area1 "CLEAN :"
-    if {$tkused != ""} {
-      foreach tkproj $tkused {
-        append area1 "\"$tkproj - Win32 ReleaseCLEAN\" " 
-      }
+  }
+  append area1 " \"\$(OUTDIR)\\$tkloc.dll\"\n"
+  append area1 "\!ENDIF \n"
+  append area1 "\!IF \"\$(RECURSE)\" == \"1\"\n"
+  append area1 "CLEAN :"
+  if {$tkused != ""} {
+    foreach tkproj $tkused {
+      append area1 "\"$tkproj - Win32 ReleaseCLEAN\" "
     }
-    append area1 "\n" 
-    append area1 "\!ELSE\n" 
-    append area1 "CLEAN :\n"
-    append area1 "\!ENDIF\n"
-    set tclused 0
-    set javaused 0
-    if [array exists written] { unset written }
-    foreach fxlo $resultloc {
-      set xlo [wokinfo -n $fxlo]
-      set lsrc   [osutils:tk:files $xlo osutils:compilable 0]
-      set fxlocxxparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]
-      set fxlocparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2]
-      if {[lsearch [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_TCL_INCLUDE] 0] 0 end]"] != -1} {
-        set tclused 1
-      }
-      if {[lsearch [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_JavaHome]/include 0] 0 end]"] != -1} {
-       set javaused 1
-      }
-      if {[lsearch [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_TCL_INCLUDE] 0] 0 end]"] != -1} {
-         set tclused 1
-      }
-      if {[lsearch [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_JavaHome]/include 0] 0 end]"] != -1} {
-         set javaused 1
-      }
-
-      foreach srcfile $lsrc {
-        if { ![info exists written([file tail $srcfile])] } {
-         set written([file tail $srcfile]) 1
-         append area1 "\t-@erase \"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\"\n"
-        }
+  }
+  append area1 "\n"
+  append area1 "\!ELSE\n"
+  append area1 "CLEAN :\n"
+  append area1 "\!ENDIF\n"
+  set tclused 0
+  set javaused 0
+  if [array exists written] { unset written }
+  foreach fxlo $resultloc {
+    set xlo [wokinfo -n $fxlo]
+    set lsrc   [osutils:tk:files $xlo osutils:compilable 0]
+    set fxlocxxparam [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]
+    set fxlocparam [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2]
+    if {[lsearch [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_TCL_INCLUDE] 0] 0 end]"] != -1} {
+      set tclused 1
+    }
+    if {[lsearch [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_JavaHome]/include 0] 0 end]"] != -1} {
+      set javaused 1
+    }
+    if {[lsearch [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_TCL_INCLUDE] 0] 0 end]"] != -1} {
+      set tclused 1
+    }
+    if {[lsearch [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_JavaHome]/include 0] 0 end]"] != -1} {
+      set javaused 1
+    }
+
+    foreach srcfile $lsrc {
+      if { ![info exists written([file tail $srcfile])] } {
+        set written([file tail $srcfile]) 1
+        append area1 "\t-@erase \"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\"\n"
       }
-    } 
-    regsub -all -- {__FIELD1__} $tmplat $area1 tmplat
-
-    set area2 "LINK32_FLAGS=-nologo -subsystem:windows -dll -incremental:no -machine:IX86 -libpath:\"\$(LIBDIR)\" -implib:\$(LIBDIR)\\$tkloc.lib -out:\$(OUTDIR)\\$tkloc.dll "
-    set libused ""
-    foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {
-       append libused "${tkx}.lib "
-    }
-    set ltk [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
-    set ltk [lappend ltk $tkloc]
-    foreach tk $ltk {
-        foreach element [osutils:tk:hascsf [woklocate -p $tk:source:EXTERNLIB [wokcd]]] {
-           if {[wokparam -t %$element] != 0} {
-             set felem [file tail [lindex [wokparam -v "%$element"] 0]]
-             if {[lsearch $libused $felem] == "-1"} {
-               if {$felem != "\{\}"} {
-                   set libused [concat $libused $felem]
-               }
-            }   
-          }
-       }
     }
-    if {$tclused == 1} {
-      append area2 "-libpath:\"\$(TCLHOME)\\lib\" "
-    }
-    
-    foreach tk $libused {
-      append area2 "$tk "
-    }
-    append area2 "\n"
-    append area2 "LINK32_OBJS= \\\n"
-    if [array exists written] { unset written }
-    foreach fxlo $resultloc {
-        set xlo [wokinfo -n $fxlo]
-        set lsrc   [osutils:tk:files $xlo osutils:compilable 0]
-        foreach srcfile $lsrc {
-          if { ![info exists written([file tail $srcfile])] } {
-           set written([file tail $srcfile]) 1
-           append area2 "\t\"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\" \\\n"
+  }
+  regsub -all -- {__FIELD1__} $tmplat $area1 tmplat
+
+  set area2 "LINK32_FLAGS=-nologo -subsystem:windows -dll -incremental:no -machine:IX86 -libpath:\"\$(LIBDIR)\" -implib:\$(LIBDIR)\\$tkloc.lib -out:\$(OUTDIR)\\$tkloc.dll "
+  set libused ""
+  foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {
+    append libused "${tkx}.lib "
+  }
+  set ltk [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
+  set ltk [lappend ltk $tkloc]
+  foreach tk $ltk {
+    foreach element [osutils:tk:hascsf [woklocate -p $tk:source:EXTERNLIB [wokcd]]] {
+      if {[wokparam -t %$element] != 0} {
+        set felem [file tail [lindex [wokparam -v "%$element"] 0]]
+        if {[lsearch $libused $felem] == "-1"} {
+          if {$felem != "\{\}"} {
+            set libused [concat $libused $felem]
           }
         }
-    } 
-    regsub -all -- {__FIELD2__} $tmplat $area2 tmplat
-       
-    set area3 ""
-    append area3 "\!IF \"\$(RECURSE)\" == \"0\" \n"
-    append area3 "ALL : \"\$(OUTDIR)\\${tkloc}.dll\"\n"
-    append area3 "\!ELSE\n"
-    append area3 "ALL : "
-    if {$tkused != ""} {
-      foreach tkproj $tkused {
-        append area3 "\"$tkproj - Win32 Debug\" " 
       }
     }
-    append area3 " \"\$(OUTDIR)\\$tkloc.dll\"\n"
-    append area3 "\!ENDIF \n"
-    append area3 "\!IF \"\$(RECURSE)\" == \"1\"\n" 
-    append area3 "CLEAN :"
-    if {$tkused != ""} {
-      foreach tkproj $tkused {
-        append area3 "\"$tkproj - Win32 DebugCLEAN\"" 
+  }
+  if {$tclused == 1} {
+    append area2 "-libpath:\"\$(TCLHOME)\\lib\" "
+  }
+
+  foreach tk $libused {
+    append area2 "$tk "
+  }
+  append area2 "\n"
+  append area2 "LINK32_OBJS= \\\n"
+  if [array exists written] { unset written }
+  foreach fxlo $resultloc {
+    set xlo  [wokinfo -n $fxlo]
+    set lsrc [osutils:tk:files $xlo osutils:compilable 0]
+    foreach srcfile $lsrc {
+      if { ![info exists written([file tail $srcfile])] } {
+        set written([file tail $srcfile]) 1
+        append area2 "\t\"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\" \\\n"
       }
     }
-    append area3 "\n" 
-    append area3 "\!ELSE\n" 
-    append area3 "CLEAN :\n"
-    append area3 "\!ENDIF\n"
-    if [array exists written] { unset written }
-   foreach fxlo $resultloc {
-      set xlo [wokinfo -n $fxlo]
-      set lsrc   [osutils:tk:files $xlo osutils:compilable 0]
-
-      foreach srcfile $lsrc {
-        if { ![info exists written([file tail $srcfile])] } {
-         set written([file tail $srcfile]) 1
-         append area3 "\t-@erase \"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\"\n"
-        }
+  }
+
+  regsub -all -- {__FIELD2__} $tmplat $area2 tmplat
+
+  set area3 ""
+  append area3 "\!IF \"\$(RECURSE)\" == \"0\" \n"
+  append area3 "ALL : \"\$(OUTDIR)\\${tkloc}.dll\"\n"
+  append area3 "\!ELSE\n"
+  append area3 "ALL : "
+  if {$tkused != ""} {
+    foreach tkproj $tkused {
+      append area3 "\"$tkproj - Win32 Debug\" "
+    }
+  }
+  append area3 " \"\$(OUTDIR)\\$tkloc.dll\"\n"
+  append area3 "\!ENDIF \n"
+  append area3 "\!IF \"\$(RECURSE)\" == \"1\"\n"
+  append area3 "CLEAN :"
+  if {$tkused != ""} {
+    foreach tkproj $tkused {
+      append area3 "\"$tkproj - Win32 DebugCLEAN\""
+    }
+  }
+  append area3 "\n"
+  append area3 "\!ELSE\n"
+  append area3 "CLEAN :\n"
+  append area3 "\!ENDIF\n"
+  if [array exists written] { unset written }
+
+  foreach fxlo $resultloc {
+    set xlo [wokinfo -n $fxlo]
+    set lsrc   [osutils:tk:files $xlo osutils:compilable 0]
+
+    foreach srcfile $lsrc {
+      if { ![info exists written([file tail $srcfile])] } {
+        set written([file tail $srcfile]) 1
+        append area3 "\t-@erase \"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\"\n"
       }
-    } 
-    regsub -all -- {__FIELD3__} $tmplat $area3 tmplat
+    }
+  }
+  regsub -all -- {__FIELD3__} $tmplat $area3 tmplat
+
+  set area4 "LINK32_FLAGS=-nologo -subsystem:windows -dll -incremental:no -machine:IX86 -debug -libpath:\"\$(LIBDIR)\"  -implib:\$(LIBDIR)\\$tkloc.lib -out:\$(OUTDIR)\\$tkloc.dll -pdb:\$(OUTDIR)\\$tkloc.pdb "
+  foreach tk $libused {
+    append area4 "$tk "
+  }
+  if {$tclused == 1} {
+    append area4 "-libpath:\"\$(TCLHOME)\\lib\" "
+  }
 
-    set area4 "LINK32_FLAGS=-nologo -subsystem:windows -dll -incremental:no -machine:IX86 -debug -libpath:\"\$(LIBDIR)\"  -implib:\$(LIBDIR)\\$tkloc.lib -out:\$(OUTDIR)\\$tkloc.dll -pdb:\$(OUTDIR)\\$tkloc.pdb "
-    foreach tk $libused {
-      append area4 "$tk "
+  append area4 "\n"
+  append area4 "LINK32_OBJS= \\\n"
+  if [array exists written] { unset written }
+  foreach fxlo $resultloc {
+    set xlo [wokinfo -n $fxlo]
+    set lsrc   [osutils:tk:files $xlo osutils:compilable 0]
+    foreach srcfile $lsrc {
+      if { ![info exists written([file tail $srcfile])] } {
+        set written([file tail $srcfile]) 1
+        append area4 "\t\"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\" \\\n"
+      }
     }
+  }
+
+  regsub -all -- {__FIELD4__} $tmplat $area4 tmplat
+
+  set area5 ""
+  if [array exists written] { unset written }
+  foreach fxlo $resultloc {
+    set xlo [wokinfo -n $fxlo]
+    set lsrc   [osutils:tk:files $xlo osutils:compilable 0]
+    set fxlocxxparam [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]
+    set fxlocparam [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2]
     if {$tclused == 1} {
-      append area4 "-libpath:\"\$(TCLHOME)\\lib\" "
-    }
-
-    append area4 "\n"
-    append area4 "LINK32_OBJS= \\\n"
-    if [array exists written] { unset written }
-    foreach fxlo $resultloc {
-        set xlo [wokinfo -n $fxlo]
-        set lsrc   [osutils:tk:files $xlo osutils:compilable 0]
-        foreach srcfile $lsrc {
-          if { ![info exists written([file tail $srcfile])] } {
-           set written([file tail $srcfile]) 1
-           append area4 "\t\"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\" \\\n"
-          }
-        }
-    } 
-    regsub -all -- {__FIELD4__} $tmplat $area4 tmplat
-
-    set area5 ""
-    if [array exists written] { unset written }
-    foreach fxlo $resultloc {
-      set xlo [wokinfo -n $fxlo]
-      set lsrc   [osutils:tk:files $xlo osutils:compilable 0]
-      set fxlocxxparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]
-      set fxlocparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2]
-      if {$tclused == 1} {
-        set fxlocxxparam "-I\$(TCLHOME)\\include"
+      set fxlocxxparam "-I\$(TCLHOME)\\include"
+    }
+    if {$javaused == 1} {
+      set fxlocxxparam "-I\$(JAVAHOME)\\include -I\$(JAVAHOME)\\include\\win32"
+    }
+    set fxloparam "$fxlocparam $fxlocxxparam"
+    #puts $fxloparam
+    foreach srcfile $lsrc {
+      if { ![info exists written([file tail $srcfile])] } {
+        set written([file tail $srcfile]) 1
+        set pkname [wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]]
+
+        append area5 "SOURCE=..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $srcfile 3]]\n"
+        append area5 "\!IF  \"\$(CFG)\" == \"$tkloc - Win32 Release\"\n"
+        append area5 "CPP_SWITCHES=\/nologo \/MD \/W3 \/GX \/O2 $fxloparam \/I \"..\\..\\..\\inc\" \/I \"..\\..\\..\\drv\\$xlo\" \/I \"..\\..\\..\\src\\$xlo\" \/D \"WIN32\" \/D \"NDEBUG\" \/D \"_WINDOWS\" \/D \"WNT\" \/D \"No_Exception\" \/D \"__${xlo}_DLL\" \/Fo\"\$(INTDIR)\\\\\\\" \/Fd\"\$(INTDIR)\\\\\\\" \/FD \/D \"CSFDB\" \/c\n"
+        append area5 "\"\$(INTDIR)\\$pkname.obj\" : \$(SOURCE) \"\$(INTDIR)\"\n"
+        append area5 "\t\t\$(CPP) \$(CPP_SWITCHES) \$(SOURCE)\n"
+        append area5 "\n"
+        append area5 "\!ELSEIF  \"\$(CFG)\" == \"$tkloc - Win32 Debug\"\n"
+        append area5 "CPP_SWITCHES=\/nologo \/MDd \/W3 \/GX \/Zi \/Od $fxloparam \/I \"..\\..\\..\\inc\" \/I \"..\\..\\..\\drv\\$xlo\" \/I \"..\\..\\..\\src\\$xlo\" \/D \"WIN32\" \/D \"DEB\" \/D \"_DEBUG\" \/D \"_WINDOWS\" \/D \"WNT\" \/D \"CSFDB\" \/D \"__${xlo}_DLL\" \/Fo\"\$(INTDIR)\\\\\\\" \/Fd\"\$(INTDIR)\\\\\\\" \/FD \/c \n"
+        append area5 "\"\$(INTDIR)\\$pkname.obj\" : \$(SOURCE) \"\$(INTDIR)\"\n"
+        append area5 "\t\t\$(CPP) \$(CPP_SWITCHES) \$(SOURCE)\n"
+        append area5 "\n"
+        append area5 "\!ENDIF \n"
+      }
+    }
+  }
+  regsub -all -- {__FIELD5__} $tmplat $area5 tmplat
+
+  set area6 ""
+  foreach tk $tkused {
+    append area6 "\!IF  \"\$(CFG)\" == \"$tkloc - Win32 Release\"\n"
+    append area6 "\"$tk - Win32 Release\" \: \n"
+    append area6 "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" \n"
+    append area6 "\"$tk - Win32 ReleaseCLEAN\" \: \n"
+    append area6 "   \$(MAKE)\/NOLOGO  \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" RECURSE=1 CLEAN\n"
+    append area6 "\!ELSEIF  \"\$(CFG)\" == \"$tkloc - Win32 Debug\"\n"
+    append area6 "\"$tk - Win32 Debug\" \: \n"
+    append area6 "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" \n"
+    append area6 "\"$tk - Win32 DebugCLEAN\" \: \n"
+    append area6 "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" RECURSE=1 CLEAN\n"
+    append area6 "\!ENDIF\n"
+  }
+  regsub -all -- {__FIELD6__} $tmplat $area6 tmplat
+
+  if {$tclused == 1} {
+    set tclwarning "\!IFNDEF TCLHOME \n\!MESSAGE Compilation of this toolkit requires tcl. Set TCLHOME environment variable for proper compilation\n\!ENDIF"
+  } else {
+    set tclwarning ""
+  }
+  regsub -all -- {__TCLUSED__} $tmplat $tclwarning tmplat
+
+  if {$javaused == 1} {
+    set javawarning "\!IFNDEF JAVAHOME \n\!MESSAGE Compilation of this toolkit requires java. Set JAVAHOME environment variable for proper compilation\n\!ENDIF"
+  } else {
+    set javawarning ""
+  }
+  regsub -all -- {__JAVAUSED__} $tmplat $javawarning tmplat
+  puts $fp $tmplat
+  close $fp
+  return $fdsp
+}
+
+proc osutils:mkmakx { dir tkloc {tmplat {} } {fmtcpp {} } } {
+  if { $tmplat == {} } {set tmplat [osutils:readtemplate makx "MS VC++ makefile (executable)"]}
+  if { $fmtcpp == {} } {set fmtcpp [osutils:mak:fmtcpp]}
+  foreach f [osutils:tk:files $tkloc osutils:compilable 0] {
+    set tf [file rootname [file tail $f]]
+    set fp [open [set fdsp [file join $dir ${tf}.mak]] w]
+    puts $fdsp
+    set tclused 0
+    fconfigure $fp -translation crlf
+    set l_compilable [osutils:compilable]
+    regsub -all -- {__XQTNAM__} $tmplat $tf tmplat
+    set tkused ""
+    puts [LibToLinkX [woklocate -u $tkloc] $tf]
+    foreach tkx [LibToLinkX [woklocate -u $tkloc] $tf] {
+      if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} {
+        append tkused "${tkx}.lib "
       }
-      if {$javaused == 1} {
-         set fxlocxxparam "-I\$(JAVAHOME)\\include -I\$(JAVAHOME)\\include\\win32"
+      if {[woklocate -u $tkx] == "" } {
+        append tkused "${tkx}.lib "
       }
-      set fxloparam "$fxlocparam $fxlocxxparam"
-      #puts $fxloparam
-      foreach srcfile $lsrc {
-        if { ![info exists written([file tail $srcfile])] } {
-         set written([file tail $srcfile]) 1
-          set pkname [wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]]
-          
-         append area5 "SOURCE=..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $srcfile 3]]\n"
-          append area5 "\!IF  \"\$(CFG)\" == \"$tkloc - Win32 Release\"\n"
-         append area5 "CPP_SWITCHES=\/nologo \/MD \/W3 \/GX \/O2 $fxloparam \/I \"..\\..\\..\\inc\" \/I \"..\\..\\..\\drv\\$xlo\" \/I \"..\\..\\..\\src\\$xlo\" \/D \"WIN32\" \/D \"NDEBUG\" \/D \"_WINDOWS\" \/D \"WNT\" \/D \"No_Exception\" \/D \"__${xlo}_DLL\" \/Fo\"\$(INTDIR)\\\\\\\" \/Fd\"\$(INTDIR)\\\\\\\" \/FD \/D \"CSFDB\" \/c\n"
-          append area5 "\"\$(INTDIR)\\$pkname.obj\" : \$(SOURCE) \"\$(INTDIR)\"\n"
-          append area5 "\t\t\$(CPP) \$(CPP_SWITCHES) \$(SOURCE)\n"
-          append area5 "\n"
-          append area5 "\!ELSEIF  \"\$(CFG)\" == \"$tkloc - Win32 Debug\"\n"
-         append area5 "CPP_SWITCHES=\/nologo \/MDd \/W3 \/GX \/Zi \/Od $fxloparam \/I \"..\\..\\..\\inc\" \/I \"..\\..\\..\\drv\\$xlo\" \/I \"..\\..\\..\\src\\$xlo\" \/D \"WIN32\" \/D \"DEB\" \/D \"_DEBUG\" \/D \"_WINDOWS\" \/D \"WNT\" \/D \"CSFDB\" \/D \"__${xlo}_DLL\" \/Fo\"\$(INTDIR)\\\\\\\" \/Fd\"\$(INTDIR)\\\\\\\" \/FD \/c \n"
-          append area5 "\"\$(INTDIR)\\$pkname.obj\" : \$(SOURCE) \"\$(INTDIR)\"\n"
-          append area5 "\t\t\$(CPP) \$(CPP_SWITCHES) \$(SOURCE)\n"
-          append area5 "\n"
-          append area5 "\!ENDIF \n"
+    }
+    foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] {
+      foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
+        if {[wokparam -t %$element] != 0} {
+          set elemlist [wokparam -v "%$element"]
+          set felem [file tail [lindex $elemlist 0]]
+          if {[lsearch $tkused $felem] == "-1"} {
+            if {$felem != "\{\}"} {
+              #puts "was found $element $felem"
+              if {$element == "CSF_TclLibs"} { set tclused 1}
+              set tkused [concat $tkused $felem]
+            }
+          }
         }
       }
-    } 
-    regsub -all -- {__FIELD5__} $tmplat $area5 tmplat
-
-    set area6 ""
-    foreach tk $tkused {
-      append area6 "\!IF  \"\$(CFG)\" == \"$tkloc - Win32 Release\"\n"
-      append area6 "\"$tk - Win32 Release\" \: \n"
-      append area6 "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" \n"
-      append area6 "\"$tk - Win32 ReleaseCLEAN\" \: \n"
-      append area6 "   \$(MAKE)\/NOLOGO  \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" RECURSE=1 CLEAN\n"
-      append area6 "\!ELSEIF  \"\$(CFG)\" == \"$tkloc - Win32 Debug\"\n"
-      append area6 "\"$tk - Win32 Debug\" \: \n"
-      append area6 "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" \n"
-      append area6 "\"$tk - Win32 DebugCLEAN\" \: \n"
-      append area6 "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" RECURSE=1 CLEAN\n"
-      append area6 "\!ENDIF\n"
-    }
-    regsub -all -- {__FIELD6__} $tmplat $area6 tmplat
-   
-    if {$tclused == 1} {
-       set tclwarning "\!IFNDEF TCLHOME \n\!MESSAGE Compilation of this toolkit requires tcl. Set TCLHOME environment variable for proper compilation\n\!ENDIF"
-    } else {
-       set tclwarning ""
     }
-    regsub -all -- {__TCLUSED__} $tmplat $tclwarning tmplat
 
-    if {$javaused == 1} {
-       set javawarning "\!IFNDEF JAVAHOME \n\!MESSAGE Compilation of this toolkit requires java. Set JAVAHOME environment variable for proper compilation\n\!ENDIF"
+    set WOKSteps_exec_link [wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]]
+    if { [regexp {WOKStep_DLLink} $WOKSteps_exec_link] || [regexp {WOKStep_Libink} $WOKSteps_exec_link] } {
+      set tkused [concat $tkused "\/dll"]
+      if {$tclused != 1} {
+        regsub -all -- {__COMPOPT__} $tmplat "\/MD" tmplat
+        regsub -all -- {__COMPOPTD__} $tmplat "\/MDd" tmplat
+      } else {
+        regsub -all -- {__COMPOPT__} $tmplat "\/MD \/I \"\$(TCLHOME)\\include\"" tmplat
+        regsub -all -- {__COMPOPTD__} $tmplat "\/MDd \/I \"\$(TCLHOME)\\include\"" tmplat
+      }
+      regsub -all -- {__XQTNAMEX__} $tmplat "$tf.dll" tmplat
     } else {
-       set javawarning ""
+      if {$tclused != 1} {
+        regsub -all -- {__COMPOPT__} $tmplat "\/MD" tmplat
+        regsub -all -- {__COMPOPTD__} $tmplat "\/MDd" tmplat
+      } else {
+        regsub -all -- {__COMPOPT__} $tmplat "\/MD \/I \"\$(TCLHOME)\\include\"" tmplat
+        regsub -all -- {__COMPOPTD__} $tmplat "\/MDd \/I \"\$(TCLHOME)\\include\"" tmplat
+      }
+      regsub -all -- {__XQTNAMEX__} $tmplat "$tf.exe" tmplat
+    }
+    #puts "$tf requires  $tkused"
+    if {$tclused == 1} {
+      append tkused " -libpath:\"\$(TCLHOME)\\lib\" "
     }
-    regsub -all -- {__JAVAUSED__} $tmplat $javawarning tmplat
+    regsub -all -- {__TKDEP__} $tmplat $tkused tmplat
+    set files ""
+    set field1 ""
+    set field2 ""
+    set field3 ""
+    set field4 ""
+    foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] {
+      append files "\!IF  \"\$(CFG)\" == \"$tf - Win32 Release\"\n"
+      append files "\"$tk - Win32 Release\" \: \n"
+      append files "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" \n"
+      append files "\"$tk - Win32 ReleaseCLEAN\" \: \n"
+      append files "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" RECURSE=1 CLEAN\n"
+      append files "\!ELSEIF  \"\$(CFG)\" == \"$tf - Win32 Debug\"\n"
+      append files "\"$tk - Win32 Debug\" \: \n"
+      append files "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" \n"
+      append files "\"$tk - Win32 DebugCLEAN\" \: \n"
+      append files "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" RECURSE=1 CLEAN\n"
+      append files "\!ENDIF\n"
+
+      append field1 "\"$tk - Win32 Release\" "
+      append field2 "\"$tk - Win32 ReleaseCLEAN\" "
+      append field3 "\"$tk - Debug\" "
+      append field4 "\"$tk - Win32 DebugCLEAN\" "
+    }
+    regsub -all -- {__FILES__}  $tmplat $files  tmplat
+    regsub -all -- {__FIELD1__} $tmplat $field1 tmplat
+    regsub -all -- {__FIELD2__} $tmplat $field2 tmplat
+    regsub -all -- {__FIELD3__} $tmplat $field3 tmplat
+    regsub -all -- {__FIELD4__} $tmplat $field4 tmplat
+    regsub -all -- {__XNAM__}   $tmplat $tkloc  tmplat
     puts $fp $tmplat
     close $fp
-    return $fdsp
-}
-
-proc osutils:mkmakx { dir tkloc {tmplat {} } {fmtcpp {} } } {
-    if { $tmplat == {} } {set tmplat [osutils:readtemplate makx "MS VC++ makefile (executable)"]}
-    if { $fmtcpp == {} } {set fmtcpp [osutils:mak:fmtcppx]}
-    foreach f [osutils:tk:files $tkloc osutils:compilable 0] {
-        set tf [file rootname [file tail $f]]   
-        set fp [open [set fdsp [file join $dir ${tf}.mak]] w]
-        puts $fdsp
-        set tclused 0
-        fconfigure $fp -translation crlf
-        set l_compilable [osutils:compilable]
-        regsub -all -- {__XQTNAM__} $tmplat $tf tmplat
-        set tkused ""
-        puts [LibToLinkX [woklocate -u $tkloc] $tf]
-        foreach tkx [LibToLinkX [woklocate -u $tkloc] $tf] {
-         if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} {
-           append tkused "${tkx}.lib "
-         }
-         if {[woklocate -u $tkx] == "" } {
-             append tkused "${tkx}.lib "
-         }
-        }
-        foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] {
-         foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
-           if {[wokparam -t %$element] != 0} {
-                set elemlist [wokparam -v "%$element"]
-               set felem [file tail [lindex $elemlist 0]] 
-             if {[lsearch $tkused $felem] == "-1"} {
-               if {$felem != "\{\}"} {
-                    #puts "was found $element $felem"  
-                    if {$element == "CSF_TclLibs"} { set tclused 1}   
-                   set tkused [concat $tkused $felem]
-               }
-             }   
-           }
-        }
-       }
-       set WOKSteps_exec_link [wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]]
-       if { [regexp {WOKStep_DLLink} $WOKSteps_exec_link] || [regexp {WOKStep_Libink} $WOKSteps_exec_link] } { 
-           set tkused [concat $tkused "\/dll"]
-           if {$tclused != 1} {
-             regsub -all -- {__COMPOPT__} $tmplat "\/MD" tmplat 
-             regsub -all -- {__COMPOPTD__} $tmplat "\/MDd" tmplat 
-           } else {
-             regsub -all -- {__COMPOPT__} $tmplat "\/MD \/I \"\$(TCLHOME)\\include\"" tmplat 
-             regsub -all -- {__COMPOPTD__} $tmplat "\/MDd \/I \"\$(TCLHOME)\\include\"" tmplat
-           }             
-           regsub -all -- {__XQTNAMEX__} $tmplat "$tf.dll" tmplat
-       } else {
-           if {$tclused != 1} {
-            regsub -all -- {__COMPOPT__} $tmplat "\/MD" tmplat
-            regsub -all -- {__COMPOPTD__} $tmplat "\/MDd" tmplat 
-           } else {
-            regsub -all -- {__COMPOPT__} $tmplat "\/MD \/I \"\$(TCLHOME)\\include\"" tmplat
-            regsub -all -- {__COMPOPTD__} $tmplat "\/MDd \/I \"\$(TCLHOME)\\include\"" tmplat 
-           }
-           regsub -all -- {__XQTNAMEX__} $tmplat "$tf.exe" tmplat
-       }
-       #puts "$tf requires  $tkused"
-       if {$tclused == 1} {
-          append tkused " -libpath:\"\$(TCLHOME)\\lib\" "
-       }
-       regsub -all -- {__TKDEP__} $tmplat $tkused tmplat
-       set files ""
-       set field1 ""
-       set field2 ""
-       set field3 ""
-       set field4 ""
-       foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] {
-
-         append files "\!IF  \"\$(CFG)\" == \"$tf - Win32 Release\"\n"
-         append files "\"$tk - Win32 Release\" \: \n"
-         append files "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" \n"
-         append files "\"$tk - Win32 ReleaseCLEAN\" \: \n"
-         append files "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" RECURSE=1 CLEAN\n"
-         append files "\!ELSEIF  \"\$(CFG)\" == \"$tf - Win32 Debug\"\n"
-         append files "\"$tk - Win32 Debug\" \: \n"
-         append files "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" \n"
-         append files "\"$tk - Win32 DebugCLEAN\" \: \n"
-         append files "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" RECURSE=1 CLEAN\n"
-         append files "\!ENDIF\n"
-         append field1 "\"$tk - Win32 Release\" "
-         append field2 "\"$tk - Win32 ReleaseCLEAN\" "
-         append field3 "\"$tk - Debug\" "
-         append field4 "\"$tk - Win32 DebugCLEAN\" "
-         
-      }
-      regsub -all -- {__FILES__}  $tmplat $files  tmplat
-      regsub -all -- {__FIELD1__} $tmplat $field1 tmplat
-      regsub -all -- {__FIELD2__} $tmplat $field2 tmplat
-      regsub -all -- {__FIELD3__} $tmplat $field3 tmplat
-      regsub -all -- {__FIELD4__} $tmplat $field4 tmplat
-      regsub -all -- {__XNAM__}   $tmplat $tkloc  tmplat
-      puts $fp $tmplat
-      close $fp
-      set fout [lappend fout $fdsp]
-    }
-    return $fout
+    set fout [lappend fout $fdsp]
+  }
+  return $fout
 }
 
-
-;# 
+;#
 ;# (((((((((((((((((((((((( AUTOMAKE/ PROJECTs )))))))))))))))))))))))
 ;#
 ;# Create in dir the Makefile.am associated with toolkit tkloc.
 ;# Returns the full path of the created file.
 ;#
 proc osutils:tk:mkam { dir tkloc } {
-    set pkgs [woklocate -p ${tkloc}:PACKAGES]
-    if { $pkgs == {} } {
-       puts stderr "osutils:tk:mkam : Error. File PACKAGES not found for toolkit $tkloc."
-       return {}
-    }
-
-    set tmplat [osutils:readtemplate mam "Makefile.am"]
-    set lpkgs  [osutils:justunix [wokUtils:FILES:FileToList $pkgs]]
-    set close  [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
-    set lsrc   [lsort [osutils:tk:files $tkloc osutils:compilable 1 osutils:justunix]]
-    set lobj   [wokUtils:LIST:sanspoint $lsrc]
-
-    set lcsf   [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]]
+  set pkgs [woklocate -p ${tkloc}:PACKAGES]
+  if { $pkgs == {} } {
+    puts stderr "osutils:tk:mkam : Error. File PACKAGES not found for toolkit $tkloc."
+    return {}
+  }
 
-    set final 0
-    set externinc ""
-    set externlib ""
-    if { $lcsf != {} } {
-       set final 1
-       set fmtinc "\$(%s_INCLUDES) "
-       set fmtlib "\$(%s_LIB) "
-       set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0]
-       set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0]
-    }
+  set tmplat [osutils:readtemplate mam "Makefile.am"]
+  set lpkgs  [osutils:justunix [wokUtils:FILES:FileToList $pkgs]]
+  set close  [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
+  set lsrc   [lsort [osutils:tk:files $tkloc osutils:compilable 1 osutils:justunix]]
+  set lobj   [wokUtils:LIST:sanspoint $lsrc]
+
+  set lcsf   [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]]
+
+  set final 0
+  set externinc ""
+  set externlib ""
+  if { $lcsf != {} } {
+    set final 1
+    set fmtinc "\$(%s_INCLUDES) "
+    set fmtlib "\$(%s_LIB) "
+    set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0]
+    set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0]
+  }
 
-    regsub -all -- {__TKNAM__} $tmplat $tkloc tmplat
-    set vpath [osutils:am:__VPATH__ $lpkgs]
-    regsub -all -- {__VPATH__} $tmplat $vpath tmplat
-    set inclu [osutils:am:__INCLUDES__ $lpkgs]
-    regsub -all -- {__INCLUDES__} $tmplat $inclu tmplat
-    if { $close != {} } {
-       set libadd [osutils:am:__LIBADD__ $close $final]
-    } else {
-       set libadd ""
-    }
-    regsub -all -- {__LIBADD__} $tmplat $libadd tmplat
-    set source [osutils:am:__SOURCES__ $lsrc]
-    regsub -all -- {__SOURCES__} $tmplat $source tmplat
-    regsub -all -- {__EXTERNINC__} $tmplat $externinc tmplat
-    set CXXFl [osutils:am:__CXXFLAG__ $lpkgs]
-    regsub -all -- {__CXXFLAG__} $tmplat $CXXFl tmplat
-    set CFl [osutils:am:__CFLAG__ $lpkgs]
-    regsub -all -- {__CFLAG__} $tmplat $CFl tmplat
+  regsub -all -- {__TKNAM__} $tmplat $tkloc tmplat
+  set vpath [osutils:am:__VPATH__ $lpkgs]
+  regsub -all -- {__VPATH__} $tmplat $vpath tmplat
+  set inclu [osutils:am:__INCLUDES__ $lpkgs]
+  regsub -all -- {__INCLUDES__} $tmplat $inclu tmplat
+  if { $close != {} } {
+    set libadd [osutils:am:__LIBADD__ $close $final]
+  } else {
+    set libadd ""
+  }
+  regsub -all -- {__LIBADD__} $tmplat $libadd tmplat
+  set source [osutils:am:__SOURCES__ $lsrc]
+  regsub -all -- {__SOURCES__} $tmplat $source tmplat
+  regsub -all -- {__EXTERNINC__} $tmplat $externinc tmplat
+  set CXXFl [osutils:am:__CXXFLAG__ $lpkgs]
+  regsub -all -- {__CXXFLAG__} $tmplat $CXXFl tmplat
+  set CFl [osutils:am:__CFLAG__ $lpkgs]
+  regsub -all -- {__CFLAG__} $tmplat $CFl tmplat
 
-    regsub -all -- {__EXTERNLIB__} $tmplat $externlib tmplat
+  regsub -all -- {__EXTERNLIB__} $tmplat $externlib tmplat
 
-    wokUtils:FILES:StringToFile $tmplat [set fmam [file join $dir Makefile.am]]
+  wokUtils:FILES:StringToFile $tmplat [set fmam [file join $dir Makefile.am]]
 
-    return [list $fmam]
+  return [list $fmam]
 }
+
 ;#
 ;# Create in dir the Makefile.am associated with toolkit tkloc.
 ;# Returns the full path of the created file.
 ;#
 proc osutils:tk:mkamx { dir tkloc } {
-  if   { [lsearch [uinfo -f -T source [woklocate -u $tkloc]] ${tkloc}_WOKSteps.edl] != "-1"} {
-        set pkgs [woklocate -p ${tkloc}:EXTERNLIB]
-        if { $pkgs == {} } {
-         puts stderr "osutils:tk:mkamx : Error. File EXTERNLIB not found for executable $tkloc."
-       #return {}
+  if { [lsearch [uinfo -f -T source [woklocate -u $tkloc]] ${tkloc}_WOKSteps.edl] != "-1"} {
+    set pkgs [woklocate -p ${tkloc}:EXTERNLIB]
+    if { $pkgs == {} } {
+      puts stderr "osutils:tk:mkamx : Error. File EXTERNLIB not found for executable $tkloc."
+      #return {}
     }
     set tmplat [osutils:readtemplate mamx "Makefile.am (executable)"]
     set close  [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
     set lsrc   [lsort [osutils:tk:files $tkloc osutils:compilable 1 osutils:justunix]]
     set lobj   [wokUtils:LIST:sanspoint $lsrc]
     set CXXList {}
-    foreach SourceFile [uinfo -f -T source [woklocate -u $tkloc]] {    
-     if {[file extension $SourceFile] == ".cxx"} {     
-         lappend CXXList [file rootname $SourceFile]
-     }
+    foreach SourceFile [uinfo -f -T source [woklocate -u $tkloc]] {
+      if {[file extension $SourceFile] == ".cxx"} {
+        lappend CXXList [file rootname $SourceFile]
+      }
     }
     set pkgs [LibToLinkX [woklocate -u $tkloc] [lindex $CXXList 0]]
     set lpkgs  [osutils:justunix [wokUtils:FILES:FileToList $pkgs]]
@@ -1483,44 +1482,44 @@ proc osutils:tk:mkamx { dir tkloc } {
 
     set lcsf {}
     foreach tk $pkgs {
-       foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
-           if {[lsearch $lcsf $element] == "-1"} {        
-          set lcsf [concat $lcsf $element]
-         }
-       }
+      foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
+        if {[lsearch $lcsf $element] == "-1"} {
+          set lcsf [concat $lcsf $element]
+        }
+      }
     }
     set final 0
     set externinc ""
     set externlib ""
     if { $lcsf != {} } {
-       set final 1
-       set fmtinc "\$(%s_INCLUDES) "
-       set fmtlib "\$(%s_LIB) "
-       set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0]
-       set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0]
+      set final 1
+      set fmtinc "\$(%s_INCLUDES) "
+      set fmtlib "\$(%s_LIB) "
+      set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0]
+      set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0]
     }
     regsub -all -- {__XQTNAM__} $tmplat $tkloc tmplat
     set tmplat "$tmplat \nlib_LTLIBRARIES="
     foreach entity $CXXList {
-       set tmplat "$tmplat lib${entity}.la"
+      set tmplat "$tmplat lib${entity}.la"
     }
     set tmplat "$tmplat\n"
     set inclu [osutils:am:__INCLUDES__ $lpkgs]
     regsub -all -- {__INCLUDES__} $tmplat $inclu tmplat
     if { $pkgs != {} } {
-       set libadd [osutils:am:__LIBADD__ $pkgs $final]
+      set libadd [osutils:am:__LIBADD__ $pkgs $final]
     } else {
-       set libadd ""
+      set libadd ""
     }
     regsub -all -- {__LIBADD__} $tmplat $libadd tmplat
     set source [osutils:am:__SOURCES__ $CXXList]
     regsub -all -- {__SOURCES__} $tmplat $source tmplat
     regsub -all -- {__EXTERNINC__} $tmplat $externinc tmplat
     foreach entity $CXXList {
-       set tmplat "$tmplat lib${entity}_la_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n"
+      set tmplat "$tmplat lib${entity}_la_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n"
     }
     foreach entity $CXXList {
-        set tmplat "$tmplat lib${entity}_la_LIBADD = $libadd $externlib \n"
+      set tmplat "$tmplat lib${entity}_la_LIBADD = $libadd $externlib \n"
     }
     wokUtils:FILES:StringToFile $tmplat [set fmam [file join $dir Makefile.am]]
 
@@ -1531,18 +1530,18 @@ proc osutils:tk:mkamx { dir tkloc } {
   } else {
     set pkgs [woklocate -p ${tkloc}:EXTERNLIB]
     if { $pkgs == {} } {
-       puts stderr "osutils:tk:mkamx : Error. File EXTERNLIB not found for executable $tkloc."
-       #return {}
+      puts stderr "osutils:tk:mkamx : Error. File EXTERNLIB not found for executable $tkloc."
+      #return {}
     }
     set tmplat [osutils:readtemplate mamx "Makefile.am (executable)"]
     set close  [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
     set lsrc   [lsort [osutils:tk:files $tkloc osutils:compilable 1 osutils:justunix]]
     set lobj   [wokUtils:LIST:sanspoint $lsrc]
     set CXXList {}
-    foreach SourceFile [uinfo -f -T source [woklocate -u $tkloc]] {    
-     if {[file extension $SourceFile] == ".cxx"} {     
-         lappend CXXList [file rootname $SourceFile]
-     }
+    foreach SourceFile [uinfo -f -T source [woklocate -u $tkloc]] {
+      if {[file extension $SourceFile] == ".cxx"} {
+        lappend CXXList [file rootname $SourceFile]
+      }
     }
     set pkgs [LibToLinkX [woklocate -u $tkloc] [lindex $CXXList 0]]
     set lpkgs  [osutils:justunix [wokUtils:FILES:FileToList $pkgs]]
@@ -1550,44 +1549,44 @@ proc osutils:tk:mkamx { dir tkloc } {
 
     set lcsf {}
     foreach tk $pkgs {
-       foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
-           if {[lsearch $lcsf $element] == "-1"} {        
-          set lcsf [concat $lcsf $element]
-         }
-       }
+      foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
+        if {[lsearch $lcsf $element] == "-1"} {
+          set lcsf [concat $lcsf $element]
+        }
+      }
     }
     set final 0
     set externinc ""
     set externlib ""
     if { $lcsf != {} } {
-       set final 1
-       set fmtinc "\$(%s_INCLUDES) "
-       set fmtlib "\$(%s_LIB) "
-       set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0]
-       set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0]
+      set final 1
+      set fmtinc "\$(%s_INCLUDES) "
+      set fmtlib "\$(%s_LIB) "
+      set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0]
+      set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0]
     }
     regsub -all -- {__XQTNAM__} $tmplat $tkloc tmplat
     set tmplat "$tmplat \nbin_PROGRAMS="
     foreach entity $CXXList {
-       set tmplat "${tmplat} ${entity}"
+      set tmplat "${tmplat} ${entity}"
     }
+
     set tmplat "${tmplat}\n"
     set inclu [osutils:am:__INCLUDES__ $lpkgs]
     regsub -all -- {__INCLUDES__} $tmplat $inclu tmplat
     if { $pkgs != {} } {
-       set libadd [osutils:am:__LIBADD__ $pkgs $final]
+      set libadd [osutils:am:__LIBADD__ $pkgs $final]
     } else {
-       set libadd ""
+      set libadd ""
     }
     set source [osutils:am:__SOURCES__ $CXXList]
     regsub -all -- {__SOURCES__} $tmplat $source tmplat
     regsub -all -- {__EXTERNINC__} $tmplat $externinc tmplat
     foreach entity $CXXList {
-       set tmplat "$tmplat ${entity}_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n"
+      set tmplat "$tmplat ${entity}_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n"
     }
     foreach entity $CXXList {
-        set tmplat "$tmplat ${entity}_LDADD = $libadd $externlib \n"
+      set tmplat "$tmplat ${entity}_LDADD = $libadd $externlib \n"
     }
     wokUtils:FILES:StringToFile $tmplat [set fmam [file join $dir Makefile.am]]
 
@@ -1602,87 +1601,90 @@ proc osutils:tk:mkamx { dir tkloc } {
 ;# l is the list of the units in a toolkit.
 ;#
 proc osutils:am:__VPATH__ { l } {
-    set fmt "@top_srcdir@/drv/%s : @top_srcdir@/src/%s:"
-    return [wokUtils:EASY:FmtString2 $fmt $l 0 osutils:am:__VPATH__lastoccur]
+  set fmt "@top_srcdir@/drv/%s : @top_srcdir@/src/%s:"
+  return [wokUtils:EASY:FmtString2 $fmt $l 0 osutils:am:__VPATH__lastoccur]
 }
+
 ;#
 ;# remove ":" from last item of dependencies list in target VPATH of Makefile.am
 ;#
 proc osutils:am:__VPATH__lastoccur { str } {
-    if { [regsub {:$} $str "" u] != 0 } {
-       return $u
-    }
+  if { [regsub {:$} $str "" u] != 0 } {
+    return $u
+  }
 }
+
 proc osutils:am:PkCXXOption ppk {
- set CXXCOMMON  [lindex [wokparam -e  %CMPLRS_CXX_Options [wokcd]] 0]
set FoundFlag "[lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] ] 2]"
- foreach pk $ppk {
-  if {[lsearch [uinfo -f -T source [woklocate -u $pk]] ${pk}_CMPLRS.edl] != "-1"} {
-       set CXXStr  [lindex [wokparam -e %CMPLRS_CXX_Options [woklocate -u $pk]] 0]
-       set LastIndex [expr {[string length $CXXCOMMON ] - 1}]
-       if {[string equal $CXXCOMMON [string range $CXXStr 0 $LastIndex]]} {
-         set CXXOption " "
-       } else {
-         set CXXOption [string range $CXXStr 0 [expr {[string last $CXXCOMMON $CXXStr] - 1}]]
-       }
-       if {$CXXOption != " " && $CXXOption != "" && $CXXOption != "  " && $CXXOption != "   "} {
-               set FoundList [split $CXXOption " "]
-               foreach elem $FoundList {
-                 if {$elem != ""} {
-                   if {[string first "-I" $elem] == "-1"  } {
-                       if {[string first $elem $FoundFlag] == "-1"} {
-                          set FoundFlag "$FoundFlag $elem"
-                       }
-                   }
-                 }
-               }
-        }
-  }
- }
- return $FoundFlag
 set CXXCOMMON  [lindex [wokparam -e  %CMPLRS_CXX_Options [wokcd]] 0]
 set FoundFlag "[lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] ] 2]"
 foreach pk $ppk {
+    if {[lsearch [uinfo -f -T source [woklocate -u $pk]] ${pk}_CMPLRS.edl] != "-1"} {
+      set CXXStr  [lindex [wokparam -e %CMPLRS_CXX_Options [woklocate -u $pk]] 0]
+      set LastIndex [expr {[string length $CXXCOMMON ] - 1}]
+      if {[string equal $CXXCOMMON [string range $CXXStr 0 $LastIndex]]} {
+        set CXXOption " "
+      } else {
+        set CXXOption [string range $CXXStr 0 [expr {[string last $CXXCOMMON $CXXStr] - 1}]]
+      }
+      if {$CXXOption != " " && $CXXOption != "" && $CXXOption != "  " && $CXXOption != "   "} {
+        set FoundList [split $CXXOption " "]
+        foreach elem $FoundList {
+          if {$elem != ""} {
+            if {[string first "-I" $elem] == "-1"  } {
+              if {[string first $elem $FoundFlag] == "-1"} {
+                set FoundFlag "$FoundFlag $elem"
+              }
+            }
+          }
+        }
+      }
+    }
 }
 return $FoundFlag
 }
 
 proc osutils:am:PkCOption ppk {
- set CCOMMON [lindex [wokparam -e  %CMPLRS_C_Options [wokcd]] 0]
set FoundFlag "[lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] ] 2]"
- foreach pk $ppk {
-  if {[lsearch [uinfo -f -T source [woklocate -u $pk]] ${pk}_CMPLRS.edl] != "-1"} {
-       set CStr  [lindex [wokparam -e %CMPLRS_C_Options [woklocate -u $pk]] 0]
-       set LastIndex [expr {[string length $CCOMMON ] - 1}]
-       if {[string equal $CCOMMON [string range $CStr 0 $LastIndex]]} {
-         set COption [string range  $CStr $LastIndex end ]
-       } else {
-         set COption [string range $CStr 0 [expr {[string last $CCOMMON $CStr] - 1}]]
-       }
-       if {$COption != " " && $COption != "" && $COption != "  " && $COption != "   "} {
-               set FoundList [split $COption " "]
-               foreach elem $FoundList {
-                 if {$elem != ""} {
-                   if {[string first "-I" $elem] == "-1"  } {
-                       if {[string first $elem $FoundFlag] == "-1"} {
-                          set FoundFlag "$FoundFlag $elem"
-                       }
-                   }
-                 }
-               }
-        }
-  }
- } 
-return $FoundFlag
 set CCOMMON [lindex [wokparam -e  %CMPLRS_C_Options [wokcd]] 0]
 set FoundFlag "[lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] ] 2]"
 foreach pk $ppk {
+    if {[lsearch [uinfo -f -T source [woklocate -u $pk]] ${pk}_CMPLRS.edl] != "-1"} {
+      set CStr  [lindex [wokparam -e %CMPLRS_C_Options [woklocate -u $pk]] 0]
+      set LastIndex [expr {[string length $CCOMMON ] - 1}]
+      if {[string equal $CCOMMON [string range $CStr 0 $LastIndex]]} {
+        set COption [string range  $CStr $LastIndex end ]
+      } else {
+        set COption [string range $CStr 0 [expr {[string last $CCOMMON $CStr] - 1}]]
+      }
+      if {$COption != " " && $COption != "" && $COption != "  " && $COption != "   "} {
+        set FoundList [split $COption " "]
+        foreach elem $FoundList {
+          if {$elem != ""} {
+            if {[string first "-I" $elem] == "-1"  } {
+              if {[string first $elem $FoundFlag] == "-1"} {
+                set FoundFlag "$FoundFlag $elem"
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  return $FoundFlag
 }
 
 proc osutils:am:__CXXFLAG__ { l } {
-    set fmt "%s"
-    #puts "l is: $l"
-    return [wokUtils:EASY:FmtString1 $fmt [osutils:am:PkCXXOption $l]]
+  set fmt "%s"
+  #puts "l is: $l"
+  return [wokUtils:EASY:FmtString1 $fmt [osutils:am:PkCXXOption $l]]
 }
+
 ;#
 ;# Used to replace the string __CFLAG__ in Makefile.am
 ;# l is the list of all compilable files in a toolkit.
 ;#
 proc osutils:am:__CFLAG__ { l } {
-    set fmt "%s"
-    return [wokUtils:EASY:FmtString1 $fmt [osutils:am:PkCOption $l]]
+  set fmt "%s"
+  return [wokUtils:EASY:FmtString1 $fmt [osutils:am:PkCOption $l]]
 }
 
 ;#
@@ -1690,85 +1692,410 @@ proc osutils:am:__CFLAG__ { l } {
 ;# l is the list of packages in a toolkit.
 ;#
 proc osutils:am:__INCLUDES__ { l } {
-    set fmt "-I@top_srcdir@/drv/%s -I@top_srcdir@/src/%s"
-    return [wokUtils:EASY:FmtString2 $fmt $l] 
+  set fmt "-I@top_srcdir@/drv/%s -I@top_srcdir@/src/%s"
+  return [wokUtils:EASY:FmtString2 $fmt $l]
 }
+
 ;#
 ;# Used to replace the string __LIBADD__ in Makefile.am
 ;# l is the toolkit closure list of a toolkit.
 ;#
 proc osutils:am:__LIBADD__ { l {final 0} } {
-    set fmt "../%s/lib%s.la"
-    return [wokUtils:EASY:FmtString2 $fmt $l $final]
+  set fmt "../%s/lib%s.la"
+  return [wokUtils:EASY:FmtString2 $fmt $l $final]
 }
+
 ;#
 ;# Used to replace the string __SOURCES__ in Makefile.am
 ;# l is the list of all compilable files in a toolkit.
 ;#
 proc osutils:am:__SOURCES__ { l } {
-    set fmt "%s"
-    return [wokUtils:EASY:FmtString1 $fmt $l]
+  set fmt "%s"
+  return [wokUtils:EASY:FmtString1 $fmt $l]
 }
+
 ;#
 ;#  ((((((((((((( Formats in Makefile.in )))))))))))))
 ;#
 ;#
 ;# Used to replace the string __DEPENDENCIES__ in Makefile.in
 ;# l is the toolkit closure list of a toolkit.
-;# 
+;#
 proc osutils:in:__DEPENDENCIES__ { l } {
-    set fmt1 "../%s/lib%s.la"
-    set fmt2 "\t../%s/lib%s.la"
-    return [wokUtils:EASY:FmtFmtString2 $fmt1 $fmt2 $l]
+  set fmt1 "../%s/lib%s.la"
+  set fmt2 "\t../%s/lib%s.la"
+  return [wokUtils:EASY:FmtFmtString2 $fmt1 $fmt2 $l]
 }
+
 ;#
 ;# Used to replace the string __OBJECTS__ in Makefile.in
 ;# l is the list of objects files in toolkit.
 ;#
 proc osutils:in:__OBJECTS__ { l } {
-    set fmt1 "%s.lo"
-    set fmt2 "\t%s.lo"
-    return [wokUtils:EASY:FmtFmtString1 $fmt1 $fmt2 $l]
+  set fmt1 "%s.lo"
+  set fmt2 "\t%s.lo"
+  return [wokUtils:EASY:FmtFmtString1 $fmt1 $fmt2 $l]
 }
+
 ;#
 ;# Used to replace the string __AMDEP__ in Makefile.in
 ;# l is the list of objects files in toolkit.
 ;#
 proc osutils:in:__AMPDEP__ { l } {
-    set fmt1 "\$(DEPDIR)/%s.Plo"
-    set fmt2 "@AMDEP_TRUE@\t\$(DEPDIR)/%s.Plo"
-    return [wokUtils:EASY:FmtFmtString1 $fmt1 $fmt2 $l]
+  set fmt1 "\$(DEPDIR)/%s.Plo"
+  set fmt2 "@AMDEP_TRUE@\t\$(DEPDIR)/%s.Plo"
+  return [wokUtils:EASY:FmtFmtString1 $fmt1 $fmt2 $l]
 }
+
 ;#
 ;# Used to replace the string __AMDEPTRUE__ in Makefile.in
 ;# l is the list of objects files in toolkit.
 ;#
 proc osutils:in:__AMDEPTRUE__ { l } {
-    set fmt "@AMDEP_TRUE@@_am_include@ @_am_quote@\$(DEPDIR)/%s.Plo@_am_quote@"
-    return [wokUtils:EASY:FmtSimple1 $fmt $l]
+  set fmt "@AMDEP_TRUE@@_am_include@ @_am_quote@\$(DEPDIR)/%s.Plo@_am_quote@"
+  return [wokUtils:EASY:FmtSimple1 $fmt $l]
 }
 
-
 ;#############################################################
 ;#
 proc TESTAM { {root} {modules {}} {ll {}} } {
 #    source [woklocate -p OS:source:OS.tcl]
 #    source [woklocate -p WOKTclLib:source:osutils.tcl]
 
-    set lesmodules [OS:listmodules $modules]
-
-    if { $ll != {} } {  set lesmodules $ll }
-    foreach theModule $lesmodules {
-       foreach unit [$theModule:toolkits] {
-           puts " toolkit: $unit ==> [woklocate -p ${unit}:source:EXTERNLIB]"
-           wokUtils:FILES:rmdir $root/$unit
-           wokUtils:FILES:mkdir $root/$unit
-           osutils:tk:mkam $root/$unit $unit
-       }
-       foreach unit [OS:executable $theModule] {
-           wokUtils:FILES:rmdir $root/$unit
-           wokUtils:FILES:mkdir $root/$unit
-           osutils:tk:mkamx $root/$unit $unit
-       }
+  set lesmodules [OS:listmodules $modules]
+
+  if { $ll != {} } {  set lesmodules $ll }
+  foreach theModule $lesmodules {
+    foreach unit [$theModule:toolkits] {
+      puts " toolkit: $unit ==> [woklocate -p ${unit}:source:EXTERNLIB]"
+      wokUtils:FILES:rmdir $root/$unit
+      wokUtils:FILES:mkdir $root/$unit
+      osutils:tk:mkam $root/$unit $unit
+    }
+    foreach unit [OS:executable $theModule] {
+      wokUtils:FILES:rmdir $root/$unit
+      wokUtils:FILES:mkdir $root/$unit
+      osutils:tk:mkamx $root/$unit $unit
+    }
+  }
+}
+
+# Generate Code::Blocks project file for ToolKit
+proc osutils:cbptk { theOutDir theToolKit } {
+  set aWokStation "$::env(WOKSTATION)"
+  set aWokArch    "$::env(ARCH)"
+
+  # collect list of referred libraries to link with
+  set aUsedToolKits [list]
+  set anIncPaths    [list]
+  set aTKDefines    [list]
+  set aTKSrcFiles   [list]
+  foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $theToolKit]]] {
+    lappend aUsedToolKits "${tkx}"
+  }
+  wokparam -l CSF
+  foreach tk [lappend [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $theToolKit]]] $theToolKit] {
+    foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
+      if {[wokparam -t %$element] == 0} {
+        continue
+      }
+      foreach fl [split [wokparam -v %$element] \{\ \}] {
+        if {[string first "-libpath" $fl] != "-1"} {
+          # this is library search path, not the library name
+          continue
+        }
+        set felem [file tail $fl]
+        if {[lsearch $aUsedToolKits $felem] == "-1"} {
+          if {$felem != "\{\}" & $felem != "lib"} {
+            if {[lsearch -nocase [osutils:optinal_libs] $felem] == -1} {
+              lappend aUsedToolKits [string trimleft "${felem}" "-l"]
+            }
+          }
+        }
+      }
+    }
+  }
+
+  lappend anIncPaths "../../../inc"
+  set listloc [osutils:tk:units [woklocate -u $theToolKit]]
+  if { "$aWokStation" == "wnt" } {
+    set resultloc [osutils:justwnt  $listloc]
+  } else {
+    set resultloc [osutils:justunix $listloc]
+  }
+  if [array exists written] { unset written }
+  foreach fxlo $resultloc {
+    set xlo       [wokinfo -n $fxlo]
+    set aSrcFiles [osutils:tk:files $xlo osutils:compilable 0]
+    foreach aSrcFile [lsort $aSrcFiles] {
+      if { ![info exists written([file tail $aSrcFile])] } {
+        set written([file tail $aSrcFile]) 1
+        lappend aTKSrcFiles "../../../[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $aSrcFile 3]]"
+      } else {
+        puts "Warning : more than one occurences for [file tail $aSrcFile]"
+      }
+    }
+
+    # macros for correct DLL exports
+    if { "$aWokStation" == "wnt" } {
+      lappend aTKDefines "__${xlo}_DLL"
+    }
+
+    # common include paths
+    lappend anIncPaths "../../../drv/${xlo}"
+    lappend anIncPaths "../../../src/${xlo}"
+  }
+
+  # macros for UNIX to use config.h file
+  lappend aTKDefines "CSFDB"
+  if { "$aWokStation" == "wnt" } {
+    lappend aTKDefines "WNT"
+    lappend aTKDefines "_CRT_SECURE_NO_DEPRECATE"
+  } else {
+    lappend aTKDefines "HAVE_WOK_CONFIG_H"
+    lappend aTKDefines "HAVE_CONFIG_H"
+    if { "$aWokStation" == "lin" } {
+      lappend aTKDefines "LIN"
+    }
+    lappend aTKDefines "OCC_CONVERT_SIGNALS"
+    #lappend aTKDefines "_GNU_SOURCE=1"
+  }
+
+  return [osutils:cbp $theOutDir $theToolKit $aTKSrcFiles $aUsedToolKits $anIncPaths $aTKDefines]
+}
+
+# Generate Code::Blocks project file for Executable
+proc osutils:cbpx { theOutDir theToolKit } {
+  set aWokStation "$::env(WOKSTATION)"
+  set aWokArch    "$::env(ARCH)"
+
+  set aCbpFiles {}
+  foreach aSrcFile [osutils:tk:files $theToolKit osutils:compilable 0] {
+    # collect list of referred libraries to link with
+    set aUsedToolKits [list]
+    set anIncPaths    [list]
+    set aTKDefines    [list]
+    set aTKSrcFiles   [list]
+    set aProjName [file rootname [file tail $aSrcFile]]
+
+    set aDepToolkits [LibToLinkX [woklocate -u $theToolKit] $aProjName]
+    foreach tkx $aDepToolkits {
+      if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} {
+        lappend aUsedToolKits "${tkx}"
+      }
+      if {[lsearch [w_info -l] $tkx] == "-1"} {
+        lappend aUsedToolKits "${tkx}"
+      }
+    }
+
+    wokparam -l CSF
+    foreach tk $aDepToolkits {
+      foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
+        if {[wokparam -t %$element] == 0} {
+          continue
+        }
+        foreach fl [split [wokparam -v %$element] \{\ \}] {
+          if {[string first "-libpath" $fl] != "-1"} {
+            # this is library search path, not the library name
+            continue
+          }
+          set felem [file tail $fl]
+          if {[lsearch $aUsedToolKits $felem] == "-1"} {
+            if {$felem != "\{\}" & $felem != "lib"} {
+              if {[lsearch -nocase [osutils:optinal_libs] $felem] == -1} {
+                lappend aUsedToolKits [string trimleft "${felem}" "-l"]
+              }
+            }
+          }
+        }
+      }
+    }
+
+    set WOKSteps_exec_link [wokparam -v %WOKSteps_exec_link [woklocate -u $theToolKit]]
+    if { [regexp {WOKStep_DLLink} $WOKSteps_exec_link] || [regexp {WOKStep_Libink} $WOKSteps_exec_link] } {
+      set isExecutable "false"
+    } else {
+      set isExecutable "true"
+    }
+
+    if { ![info exists written([file tail $aSrcFile])] } {
+      set written([file tail $aSrcFile]) 1
+      lappend aTKSrcFiles $aSrcFile
+    } else {
+      puts "Warning : in cbp there are more than one occurences for [file tail $aSrcFile]"
+    }
+
+    # macros for correct DLL exports
+    if { "$aWokStation" == "wnt" } {
+      lappend aTKDefines "__${theToolKit}_DLL"
+    }
+
+    # common include paths
+    lappend anIncPaths "../../../inc"
+    lappend anIncPaths "../../../drv/${theToolKit}"
+    lappend anIncPaths "../../../src/${theToolKit}"
+
+    # macros for UNIX to use config.h file
+    lappend aTKDefines "CSFDB"
+    if { "$aWokStation" == "wnt" } {
+      lappend aTKDefines "WNT"
+      lappend aTKDefines "_CRT_SECURE_NO_DEPRECATE"
+    } else {
+      lappend aTKDefines "HAVE_WOK_CONFIG_H"
+      lappend aTKDefines "HAVE_CONFIG_H"
+      if { "$aWokStation" == "lin" } {
+        lappend aTKDefines "LIN"
+      }
+      lappend aTKDefines "OCC_CONVERT_SIGNALS"
+      #lappend aTKDefines "_GNU_SOURCE=1"
+    }
+
+    lappend aCbpFiles [osutils:cbp $theOutDir $aProjName $aTKSrcFiles $aUsedToolKits $anIncPaths $aTKDefines $isExecutable]
+  }
+
+  return $aCbpFiles
+}
+
+proc osutils:cbp { theOutDir theProjName theSrcFiles theLibsList theIncPaths theDefines {theIsExe "false"} } {
+  set aWokStation "$::env(WOKSTATION)"
+  set aWokArch    "$::env(ARCH)"
+
+  set aCbpFilePath "${theOutDir}/${theProjName}.cbp"
+  set aFile [open $aCbpFilePath "w"]
+  puts $aFile "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>"
+  puts $aFile "<CodeBlocks_project_file>"
+  puts $aFile "\t<FileVersion major=\"1\" minor=\"6\" />"
+  puts $aFile "\t<Project>"
+  puts $aFile "\t\t<Option title=\"$theProjName\" />"
+  puts $aFile "\t\t<Option pch_mode=\"2\" />"
+  if { "$aWokStation" == "wnt" } {
+    puts $aFile "\t\t<Option compiler=\"msvc8\" />"
+  } else {
+    puts $aFile "\t\t<Option compiler=\"gcc\" />"
+  }
+  puts $aFile "\t\t<Build>"
+
+  # Release target configuration
+  puts $aFile "\t\t\t<Target title=\"Release\">"
+  if { "$theIsExe" == "true" } {
+    puts $aFile "\t\t\t\t<Option output=\"../../../${aWokStation}/cbp/bin/${theProjName}\" prefix_auto=\"1\" extension_auto=\"1\" />"
+    puts $aFile "\t\t\t\t<Option type=\"1\" />"
+  } else {
+    puts $aFile "\t\t\t\t<Option output=\"../../../${aWokStation}/cbp/lib/lib${theProjName}\" prefix_auto=\"1\" extension_auto=\"1\" />"
+    puts $aFile "\t\t\t\t<Option type=\"3\" />"
+  }
+  puts $aFile "\t\t\t\t<Option object_output=\"../../../${aWokStation}/cbp/obj\" />"
+  if { "$aWokStation" == "wnt" } {
+    puts $aFile "\t\t\t\t<Option compiler=\"msvc8\" />"
+  } else {
+    puts $aFile "\t\t\t\t<Option compiler=\"gcc\" />"
+  }
+  puts $aFile "\t\t\t\t<Option createDefFile=\"1\" />"
+  puts $aFile "\t\t\t\t<Option createStaticLib=\"1\" />"
+
+  # compiler options per TARGET (including defines)
+  puts $aFile "\t\t\t\t<Compiler>"
+  if { "$aWokStation" == "wnt" } {
+    puts $aFile "\t\t\t\t\t<Add option=\"-MD\" />"
+    puts $aFile "\t\t\t\t\t<Add option=\"-EHsc\" />"
+    puts $aFile "\t\t\t\t\t<Add option=\"-O2\" />"
+    puts $aFile "\t\t\t\t\t<Add option=\"-W3\" />"
+  } else {
+    puts $aFile "\t\t\t\t\t<Add option=\"-O2\" />"
+  }
+  foreach aMacro $theDefines {
+    puts $aFile "\t\t\t\t\t<Add option=\"-D${aMacro}\" />"
+  }
+  puts $aFile "\t\t\t\t\t<Add option=\"-DNDEBUG\" />"
+  puts $aFile "\t\t\t\t\t<Add option=\"-DNo_Exception\" />"
+
+  puts $aFile "\t\t\t\t</Compiler>"
+
+  puts $aFile "\t\t\t\t<Linker>"
+  puts $aFile "\t\t\t\t\t<Add directory=\"../../../${aWokStation}/cbp/lib\" />"
+  puts $aFile "\t\t\t\t\t<Add option=\"\$(CSF_OPT_LNK${aWokArch})\" />"
+  puts $aFile "\t\t\t\t</Linker>"
+
+  puts $aFile "\t\t\t</Target>"
+
+  # Debug target configuration
+  puts $aFile "\t\t\t<Target title=\"Debug\">"
+  if { "$theIsExe" == "true" } {
+    puts $aFile "\t\t\t\t<Option output=\"../../../${aWokStation}/cbp/bind/${theProjName}\" prefix_auto=\"1\" extension_auto=\"1\" />"
+    puts $aFile "\t\t\t\t<Option type=\"1\" />"
+  } else {
+    puts $aFile "\t\t\t\t<Option output=\"../../../${aWokStation}/cbp/libd/lib${theProjName}\" prefix_auto=\"1\" extension_auto=\"1\" />"
+    puts $aFile "\t\t\t\t<Option type=\"3\" />"
+  }
+  puts $aFile "\t\t\t\t<Option object_output=\"../../../${aWokStation}/cbp/objd\" />"
+  if { "$aWokStation" == "wnt" } {
+    puts $aFile "\t\t\t\t<Option compiler=\"msvc8\" />"
+  } else {
+    puts $aFile "\t\t\t\t<Option compiler=\"gcc\" />"
+  }
+  puts $aFile "\t\t\t\t<Option createDefFile=\"1\" />"
+  puts $aFile "\t\t\t\t<Option createStaticLib=\"1\" />"
+
+  # compiler options per TARGET (including defines)
+  puts $aFile "\t\t\t\t<Compiler>"
+  if { "$aWokStation" == "wnt" } {
+    puts $aFile "\t\t\t\t\t<Add option=\"-MDd\" />"
+    puts $aFile "\t\t\t\t\t<Add option=\"-EHsc\" />"
+    puts $aFile "\t\t\t\t\t<Add option=\"-Od\" />"
+    puts $aFile "\t\t\t\t\t<Add option=\"-Zi\" />"
+    puts $aFile "\t\t\t\t\t<Add option=\"-W3\" />"
+  } else {
+    puts $aFile "\t\t\t\t\t<Add option=\"-O0\" />"
+    puts $aFile "\t\t\t\t\t<Add option=\"-g\" />"
+  }
+  foreach aMacro $theDefines {
+    puts $aFile "\t\t\t\t\t<Add option=\"-D${aMacro}\" />"
+  }
+  puts $aFile "\t\t\t\t\t<Add option=\"-D_DEBUG\" />"
+  puts $aFile "\t\t\t\t\t<Add option=\"-DDEB\" />"
+  puts $aFile "\t\t\t\t</Compiler>"
+
+  puts $aFile "\t\t\t\t<Linker>"
+  puts $aFile "\t\t\t\t\t<Add directory=\"../../../${aWokStation}/cbp/libd\" />"
+  puts $aFile "\t\t\t\t\t<Add option=\"\$(CSF_OPT_LNK${aWokArch}D)\" />"
+  puts $aFile "\t\t\t\t</Linker>"
+
+  puts $aFile "\t\t\t</Target>"
+
+  puts $aFile "\t\t</Build>"
+
+  # COMMON compiler options
+  puts $aFile "\t\t<Compiler>"
+  puts $aFile "\t\t\t<Add option=\"-Wall\" />"
+  puts $aFile "\t\t\t<Add option=\"-fexceptions\" />"
+  puts $aFile "\t\t\t<Add option=\"-fPIC\" />"
+  puts $aFile "\t\t\t<Add option=\"\$(CSF_OPT_CMPL)\" />"
+  foreach anIncPath $theIncPaths {
+    puts $aFile "\t\t\t<Add directory=\"$anIncPath\" />"
+  }
+  puts $aFile "\t\t</Compiler>"
+
+  # COMMON linker options
+  puts $aFile "\t\t<Linker>"
+  foreach aLibName $theLibsList {
+    puts $aFile "\t\t\t<Add library=\"$aLibName\" />"
+  }
+  puts $aFile "\t\t</Linker>"
+
+  # list of sources
+  foreach aSrcFile $theSrcFiles {
+    if {[string equal -nocase [file extension $aSrcFile] ".c"]} {
+      puts $aFile "\t\t<Unit filename=\"$aSrcFile\">"
+      puts $aFile "\t\t\t<Option compilerVar=\"CC\" />"
+      puts $aFile "\t\t</Unit>"
+    } else {
+      puts $aFile "\t\t<Unit filename=\"$aSrcFile\" />"
     }
+  }
+
+  puts $aFile "\t</Project>"
+  puts $aFile "</CodeBlocks_project_file>"
+  close $aFile
+
+  return $aCbpFilePath
 }
diff --git a/src/WOKTclLib/templates/draw.bat b/src/WOKTclLib/templates/draw.bat
new file mode 100644 (file)
index 0000000..b5c66c9
--- /dev/null
@@ -0,0 +1,7 @@
+@echo off
+
+rem Setup environment and launch DRAWEXE
+call "%~dp0env.bat" %1 %2 %3
+
+echo Hint: use "pload ALL" command to load standard commands
+DRAWEXE.exe
diff --git a/src/WOKTclLib/templates/env.bat b/src/WOKTclLib/templates/env.bat
new file mode 100644 (file)
index 0000000..ad79990
--- /dev/null
@@ -0,0 +1,147 @@
+@echo off
+
+rem Use:
+rem - first argument specifies version of Visual Studio (vc8, vc9, or vc10),
+rem - second argument specifies architecture (win32 or win64),
+rem - third argument specifies build mode (Debug or Release)
+rem Default options are:
+rem   vc8 win32 Release
+
+set "SCRIPTROOT=%~dp0"
+set "SCRIPTROOT=%SCRIPTROOT:~0,-1%"
+set "CASROOT=__CASROOT__"
+if not ["%CASROOT%"] == [""] if exist "%SCRIPTROOT%\%CASROOT%" set "CASROOT=%SCRIPTROOT%\%CASROOT%"
+if     ["%CASROOT%"] == [""] set "CASROOT=%SCRIPTROOT%"
+
+rem ----- Reset values to defaults -----
+set "CASDEB="
+set "VCVER=vc8"
+set "ARCH=32"
+set "VCVARS="
+set "HAVE_TBB=false"
+set "HAVE_FREEIMAGE=false"
+set "HAVE_GL2PS=false"
+set "CSF_OPT_INC="
+set "CSF_OPT_LIB32="
+set "CSF_OPT_LIB64="
+set "CSF_OPT_BIN32="
+set "CSF_OPT_BIN64="
+
+rem ----- Load local settings -----
+if exist %~dp0custom.bat (
+  call %~dp0custom.bat %1 %2 %3 %4 %5
+)
+
+rem ----- Read script arguments (override local settings) -----
+if not ["%1"]    == [""]      set "VCVER=%1"
+if not ["%2"]    == [""]      set "ARCH=%2"
+if /I ["%ARCH%"] == ["win32"] set "ARCH=32"
+if /I ["%ARCH%"] == ["win64"] set "ARCH=64"
+if /I ["%3"]     == ["debug"] set "CASDEB=d"
+if /I ["%3"]     == ["d"]     set "CASDEB=d"
+
+set "CSF_OPT_INC=%CSF_OPT_INC%;%CASROOT%\inc"
+set "CSF_OPT_LIB32D=%CSF_OPT_LIB32%;%CASROOT%\win32\%VCVER%\libd"
+set "CSF_OPT_LIB64D=%CSF_OPT_LIB64%;%CASROOT%\win64\%VCVER%\libd"
+set "CSF_OPT_BIN32D=%CSF_OPT_BIN32%;%CASROOT%\win32\%VCVER%\bind"
+set "CSF_OPT_BIN64D=%CSF_OPT_BIN64%;%CASROOT%\win64\%VCVER%\bind"
+set "CSF_OPT_LIB32=%CSF_OPT_LIB32%;%CASROOT%\win32\%VCVER%\lib"
+set "CSF_OPT_LIB64=%CSF_OPT_LIB64%;%CASROOT%\win64\%VCVER%\lib"
+set "CSF_OPT_BIN32=%CSF_OPT_BIN32%;%CASROOT%\win32\%VCVER%\bin"
+set "CSF_OPT_BIN64=%CSF_OPT_BIN64%;%CASROOT%\win64\%VCVER%\bin"
+
+rem ----- Optional 3rd-parties should be enabled by HAVE macros -----
+set "CSF_OPT_CMPL="
+set "PRODUCTS_DEFINES="
+set "CSF_DEFINES="
+if ["%HAVE_TBB%"]       == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_TBB"
+if ["%HAVE_GL2PS%"]     == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_GL2PS"
+if ["%HAVE_FREEIMAGE%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_FREEIMAGE"
+if ["%HAVE_TBB%"]       == ["true"] set "CSF_DEFINES=HAVE_TBB;%CSF_DEFINES%"
+if ["%HAVE_GL2PS%"]     == ["true"] set "CSF_DEFINES=HAVE_GL2PS;%CSF_DEFINES%"
+if ["%HAVE_FREEIMAGE%"] == ["true"] set "CSF_DEFINES=HAVE_FREEIMAGE;%CSF_DEFINES%"
+
+rem Eliminate VS warning
+if ["%CSF_DEFINES%"]  == [""] set "CSF_DEFINES=;"
+
+rem ----- Optional 3rd-parties should be enabled by HAVE macros -----
+if not ["%PRODUCTS_DEFINES%"] == [""] set "CSF_OPT_CMPL=%CSF_OPT_CMPL% %PRODUCTS_DEFINES%"
+
+rem ----- Colect 3rd-parties additional include paths into compiler options -----
+for %%a in ("%CSF_OPT_INC:;=";"%") do (
+  set "anItem=%%~a"
+  if not ["%%~a"] == [""] call :concatCmplInc %%~a
+)
+
+rem ----- Colect 3rd-parties additional library paths (32-bit) into linker options -----
+set "OPT_LIB32="
+for %%a in ("%CSF_OPT_LIB32:;=";"%") do (
+  set "anItem=%%~a"
+  if not ["%%~a"] == [""] call :concatLib32 %%~a
+)
+
+rem ----- Colect 3rd-parties additional library paths (64-bit) into linker options -----
+set "OPT_LIB64="
+for %%a in ("%CSF_OPT_LIB64:;=";"%") do (
+  set "anItem=%%~a"
+  if not ["%%~a"] == [""] call :concatLib64 %%~a
+)
+
+set "CSF_OPT_LNK32="
+set "CSF_OPT_LNK64="
+set "CSF_OPT_LNK32D="
+set "CSF_OPT_LNK64D="
+set "CSF_OPT_LNK32=%CSF_OPT_LNK32% %OPT_LIB32%"
+set "CSF_OPT_LNK32D=%CSF_OPT_LNK32D% %OPT_LIB32%"
+set "CSF_OPT_LNK64=%CSF_OPT_LNK64% %OPT_LIB64%"
+set "CSF_OPT_LNK64D=%CSF_OPT_LNK64D% %OPT_LIB64%"
+
+set "CASBIN=win%ARCH%\%VCVER%"
+
+rem ----- Set path to 3rd party and OCCT libraries -----
+set "PATH=%SCRIPTROOT%\%CASBIN%\bin%CASDEB%;%PATH%"
+if     ["%CASDEB%"] == [""] if ["%ARCH%"] == ["32"] set "PATH=%CSF_OPT_BIN32%;%PATH%"
+if     ["%CASDEB%"] == [""] if ["%ARCH%"] == ["64"] set "PATH=%CSF_OPT_BIN64%;%PATH%"
+if not ["%CASDEB%"] == [""] if ["%ARCH%"] == ["32"] set "PATH=%CSF_OPT_BIN32D%;%PATH%"
+if not ["%CASDEB%"] == [""] if ["%ARCH%"] == ["64"] set "PATH=%CSF_OPT_BIN64D%;%PATH%"
+
+rem ----- Set envoronment variables used by OCCT -----
+set "CSF_MDTVFontDirectory=%CASROOT%\src\FontMFT"
+set CSF_LANGUAGE=us
+set MMGT_CLEAR=1
+set CSF_EXCEPTION_PROMPT=1
+set "CSF_SHMessage=%CASROOT%\src\SHMessage"
+set "CSF_MDTVTexturesDirectory=%CASROOT%\src\Textures"
+set "CSF_XSMessage=%CASROOT%\src\XSMessage"
+set "CSF_TObjMessage=%CASROOT%\src\TObj"
+set "CSF_StandardDefaults=%CASROOT%\src\StdResource"
+set "CSF_PluginDefaults=%CASROOT%\src\StdResource"
+set "CSF_XCAFDefaults=%CASROOT%\src\StdResource"
+set "CSF_TObjDefaults=%CASROOT%\src\StdResource"
+set "CSF_StandardLiteDefaults=%CASROOT%\src\StdResource"
+set "CSF_GraphicShr=TKOpenGl.dll"
+set "CSF_UnitsLexicon=%CASROOT%\src\UnitsAPI\Lexi_Expr.dat"
+set "CSF_UnitsDefinition=%CASROOT%\src\UnitsAPI\Units.dat"
+set "CSF_IGESDefaults=%CASROOT%\src\XSTEPResource"
+set "CSF_STEPDefaults=%CASROOT%\src\XSTEPResource"
+set "CSF_XmlOcafResource=%CASROOT%\src\XmlOcafResource"
+set "CSF_MIGRATION_TYPES=%CASROOT%\src\StdResource\MigrationSheet.txt"
+if exist "%CASROOT%\src\QAResources" (
+  set "CSF_DrawPluginQADefaults=%CASROOT%\src\QAResources"
+)
+if exist "%SCRIPTROOT%\src\DrawResourcesProducts" (
+  set "CSF_DrawPluginProductsDefaults=%SCRIPTROOT%\src\DrawResourcesProducts"
+)
+goto :eof
+
+:concatCmplInc
+set "CSF_OPT_CMPL=%CSF_OPT_CMPL% -I%1"
+goto :eof
+
+:concatLib32
+set "OPT_LIB32=%OPT_LIB32% /LIBPATH:%1"
+goto :eof
+
+:concatLib64
+set "OPT_LIB64=%OPT_LIB64% /LIBPATH:%1"
+goto :eof
diff --git a/src/WOKTclLib/templates/env.sh b/src/WOKTclLib/templates/env.sh
new file mode 100644 (file)
index 0000000..3c8c992
--- /dev/null
@@ -0,0 +1,129 @@
+#!/bin/bash
+
+# go to the script directory
+aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD";
+
+export CASROOT="$aScriptPath"
+
+# Reset values
+export HAVE_TBB="false";
+export HAVE_FREEIMAGE="false";
+export HAVE_GL2PS="false";
+export CSF_OPT_INC=""
+export CSF_OPT_LIB32=""
+export CSF_OPT_LIB64=""
+export CSF_OPT_BIN32=""
+export CSF_OPT_BIN64=""
+
+# ----- Set local settings -----
+if [ -e "${aScriptPath}/custom.sh" ]; then source "${aScriptPath}/custom.sh"; fi
+
+export CSF_OPT_INC="${CSF_OPT_INC}:__CSF_OPT_INC__"
+export CSF_OPT_LIB32="${CSF_OPT_LIB32}:__CSF_OPT_LIB32__"
+export CSF_OPT_LIB64="${CSF_OPT_LIB64}:__CSF_OPT_LIB64__"
+export CSF_OPT_LIB32D="__CSF_OPT_LIB32D__"
+export CSF_OPT_LIB64D="__CSF_OPT_LIB64D__"
+
+# ----- Setup Environment Variables -----
+anArch=`uname -m`
+if [ "$anArch" != "x86_64" ] && [ "$anArch" != "ia64" ]; then
+  export ARCH="32";
+else
+  export ARCH="64";
+fi
+
+aSystem=`uname -s`
+if [ "$aSystem" == "Darwin" ]; then
+  export WOKSTATION="mac";
+  export ARCH="64";
+else
+  export WOKSTATION="lin";
+fi
+
+if [ "${CASDEB}" == "" ]; then export CASDEB=""; fi
+export CASBIN="${WOKSTATION}/cbp"
+
+export CSF_OPT_CMPL=""
+
+# Optiona 3rd-parties should be enabled by HAVE macros
+if [ "$HAVE_TBB" == "true" ]; then
+  export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_TBB"
+fi
+if [ "$HAVE_FREEIMAGE" == "true" ]; then
+  export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_FREEIMAGE"
+fi
+if [ "$HAVE_GL2PS" == "true" ]; then
+  export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_GL2PS"
+fi
+
+# To split string into array
+aDelimBack=$IFS
+IFS=":"
+
+# 3rd-parties additional include paths
+set -- "$CSF_OPT_INC"
+declare -a aPartiesIncs=($*)
+for anItem in ${aPartiesIncs[*]}
+do
+  export CSF_OPT_CMPL="${CSF_OPT_CMPL} -I${anItem}";
+done
+
+# Append 3rd-parties to LD_LIBRARY_PATH
+if [ "$ARCH" == "32" ]; then
+  set -- "$CSF_OPT_LIB32"
+  declare -a aPartiesLibs=($*)
+else
+  set -- "$CSF_OPT_LIB64"
+  declare -a aPartiesLibs=($*)
+fi
+
+# Turn back value
+IFS=$aDelimBack
+
+OPT_LINKER_OPTIONS=""
+for anItem in ${aPartiesLibs[*]}
+do
+  if [ "${LD_LIBRARY_PATH}" == "" ]; then
+    export LD_LIBRARY_PATH="${anItem}"
+  else
+    export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${anItem}"
+  fi
+  OPT_LINKER_OPTIONS="${OPT_LINKER_OPTIONS} -L${anItem}"
+done
+
+if [ "$ARCH" == "64" ]; then
+  export CSF_OPT_LNK64="$OPT_LINKER_OPTIONS"
+  export CSF_OPT_LNK64D="$OPT_LINKER_OPTIONS"
+else
+  export CSF_OPT_LNK32="$OPT_LINKER_OPTIONS"
+  export CSF_OPT_LNK32D="$OPT_LINKER_OPTIONS"
+fi
+
+export PATH="${CASROOT}/${CASBIN}/bin${CASDEB}:${PATH}"
+export LD_LIBRARY_PATH="${CASROOT}/${CASBIN}/lib${CASDEB}:${LD_LIBRARY_PATH}"
+
+# Set envoronment variables used by OCCT
+export CSF_MDTVFontDirectory="${CASROOT}/src/FontMFT"
+export CSF_LANGUAGE="us"
+export MMGT_CLEAR="1"
+export CSF_EXCEPTION_PROMPT="1"
+export CSF_SHMessage="${CASROOT}/src/SHMessage"
+export CSF_MDTVTexturesDirectory="${CASROOT}/src/Textures"
+export CSF_XSMessage="${CASROOT}/src/XSMessage"
+export CSF_TObjMessage="${CASROOT}/src/TObj"
+export CSF_StandardDefaults="${CASROOT}/src/StdResource"
+export CSF_PluginDefaults="${CASROOT}/src/StdResource"
+export CSF_XCAFDefaults="${CASROOT}/src/StdResource"
+export CSF_TObjDefaults="${CASROOT}/src/StdResource"
+export CSF_StandardLiteDefaults="${CASROOT}/src/StdResource"
+if [ "$WOKSTATION" == "mac" ]; then
+  export CSF_GraphicShr="libTKOpenGl.so"
+else
+  export CSF_GraphicShr="libTKOpenGl.dylib"
+fi
+export CSF_UnitsLexicon="${CASROOT}/src/UnitsAPI/Lexi_Expr.dat"
+export CSF_UnitsDefinition="${CASROOT}/src/UnitsAPI/Units.dat"
+export CSF_IGESDefaults="${CASROOT}/src/XSTEPResource"
+export CSF_STEPDefaults="${CASROOT}/src/XSTEPResource"
+export CSF_XmlOcafResource="${CASROOT}/src/XmlOcafResource"
+export CSF_MIGRATION_TYPES="${CASROOT}/src/StdResource/MigrationSheet.txt"
diff --git a/src/WOKTclLib/templates/msvc.bat b/src/WOKTclLib/templates/msvc.bat
new file mode 100644 (file)
index 0000000..58bc6ab
--- /dev/null
@@ -0,0 +1,32 @@
+@echo off
+
+rem Setup environment
+call "%~dp0env.bat" %1 %2 %3
+
+rem Define path to project file
+set "PRJFILE=%~dp0\adm\msvc\%VCVER%\OCCT.sln"
+if not exist "%PRJFILE%" set "PRJFILE=%~dp0\adm\msvc\%VCVER%\Products.sln"
+if not "%4" == "" (
+  set "PRJFILE=%4"
+)
+
+if "%VCVER%" == "vc8" (
+  set "DevEnvDir=%VS80COMNTOOLS%..\IDE"
+) else if "%VCVER%" == "vc9" (
+  set "DevEnvDir=%VS90COMNTOOLS%..\IDE"
+) else if "%VCVER%" == "vc10" (
+  set "DevEnvDir=%VS100COMNTOOLS%..\IDE"
+) else (
+  echo Error: wrong VS identifier
+  exit /B
+)
+
+rem Launch Visual Studio - either professional (devenv) or Express, as available
+if exist "%DevEnvDir%\devenv.exe"  (
+  start "%DevEnvDir%\devenv.exe" "%PRJFILE%"
+) else if exist "%DevEnvDir%\VCExpress.exe"  (
+  start "%DevEnvDir%\VCExpress.exe" "%PRJFILE%"
+) else (
+  echo Error: Could not find MS Visual Studio ^(%VCVER%^)
+  echo Check relevant environment variable ^(e.g. VS80COMNTOOLS for vc8^)
+)
diff --git a/src/WOKTclLib/templates/template.vc10 b/src/WOKTclLib/templates/template.vc10
new file mode 100644 (file)
index 0000000..1ed696a
--- /dev/null
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>__PROJECT_GUID__</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\..\..\..\win32\vc10\bin\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\..\..\..\win32\vc10\obj\__TKNAM__\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\..\..\..\win32\vc10\bind\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\..\..\..\win32\vc10\objd\__TKNAM__\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\..\win64\vc10\bin\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\..\win64\vc10\obj\__TKNAM__\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\..\..\..\win64\vc10\bind\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\..\..\..\win64\vc10\objd\__TKNAM__\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\..\..\..\win32\vc10\bin\__TKNAM__.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>__TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <AssemblerListingLocation>.\..\..\..\win32\vc10\obj\__TKNAM__/</AssemblerListingLocation>
+      <ObjectFileName>.\..\..\..\win32\vc10\obj\__TKNAM__/</ObjectFileName>
+      <ProgramDataBaseFileName>.\..\..\..\win32\vc10\obj\__TKNAM__/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>__TKDEP__;ws2_32.lib;vfw32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>.\..\..\..\win32\vc10\bin\__TKNAM__.dll</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>..\..\..\win32\vc10\lib;$(CSF_OPT_LIB32);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>.\..\..\..\win32\vc10\bin\__TKNAM__.pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <ImportLibrary>..\..\..\win32\vc10\lib\__TKNAM__.lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\..\..\..\win32\vc10\bind\__TKNAM__.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>__TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Optimization>Disabled</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <PreprocessorDefinitions>DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <AssemblerListingLocation>.\..\..\..\win32\vc10\objd\__TKNAM__/</AssemblerListingLocation>
+      <ObjectFileName>.\..\..\..\win32\vc10\objd\__TKNAM__/</ObjectFileName>
+      <ProgramDataBaseFileName>.\..\..\..\win32\vc10\objd\__TKNAM__/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <CompileAs>Default</CompileAs>
+      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>__TKDEP__;ws2_32.lib;vfw32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>.\..\..\..\win32\vc10\bind\__TKNAM__.dll</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>..\..\..\win32\vc10\libd;$(CSF_OPT_LIB32D);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>..\..\..\win32\vc10\bind\__TKNAM__.pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <ImportLibrary>..\..\..\win32\vc10\libd\__TKNAM__.lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>x64</TargetEnvironment>
+      <TypeLibraryName>.\..\..\..\win64\vc10\bin\__TKNAM__.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>__TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <PreprocessorDefinitions>NDEBUG;WIN64;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <AssemblerListingLocation>.\..\..\..\win64\vc10\obj\__TKNAM__/</AssemblerListingLocation>
+      <ObjectFileName>.\..\..\..\win64\vc10\obj\__TKNAM__/</ObjectFileName>
+      <ProgramDataBaseFileName>.\..\..\..\win64\vc10\obj\__TKNAM__/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;WIN64;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>__TKDEP__;ws2_32.lib;vfw32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>.\..\..\..\win64\vc10\bin\__TKNAM__.dll</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>..\..\..\win64\vc10\lib;$(CSF_OPT_LIB64);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>.\..\..\..\win64\vc10\bin\__TKNAM__.pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <ImportLibrary>..\..\..\win64\vc10\lib\__TKNAM__.lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>x64</TargetEnvironment>
+      <TypeLibraryName>.\..\..\..\win64\vc10\bind\__TKNAM__.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>__TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Optimization>Disabled</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <PreprocessorDefinitions>DEB;_DEBUG;WIN64;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <AssemblerListingLocation>.\..\..\..\win64\vc10\objd\__TKNAM__/</AssemblerListingLocation>
+      <ObjectFileName>.\..\..\..\win64\vc10\objd\__TKNAM__/</ObjectFileName>
+      <ProgramDataBaseFileName>.\..\..\..\win64\vc10\objd\__TKNAM__/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <CompileAs>Default</CompileAs>
+      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>DEB;_DEBUG;WIN64;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>__TKDEP__;ws2_32.lib;vfw32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>.\..\..\..\win64\vc10\bind\__TKNAM__.dll</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>..\..\..\win64\vc10\libd;$(CSF_OPT_LIB64D);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>..\..\..\win64\vc10\bind\__TKNAM__.pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <ImportLibrary>..\..\..\win64\vc10\libd\__TKNAM__.lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+__FILES__
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="__TKNAM__.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
diff --git a/src/WOKTclLib/templates/template.vc10x b/src/WOKTclLib/templates/template.vc10x
new file mode 100644 (file)
index 0000000..d072539
--- /dev/null
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>__PROJECT_GUID__</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\..\..\..\win32\vc10\bin\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\..\..\..\win32\vc10\obj\__XQTNAM__\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\..\..\..\win32\vc10\bind\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\..\..\..\win32\vc10\objd\__XQTNAM__\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\..\win64\vc10\bin\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\..\win64\vc10\obj\__XQTNAM__\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\..\..\..\win64\vc10\bind\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\..\..\..\win64\vc10\objd\__XQTNAM__\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\..\..\..\win32\vc10\bin\__XQTNAM__.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>__TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <AssemblerListingLocation>.\..\..\..\win32\vc10\obj\__XQTNAM__/</AssemblerListingLocation>
+      <ObjectFileName>.\..\..\..\win32\vc10\obj\__XQTNAM__/</ObjectFileName>
+      <ProgramDataBaseFileName>.\..\..\..\win32\vc10\obj\__XQTNAM__/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>__TKDEP__;%(AdditionalDependencies)</AdditionalDependencies>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>..\..\..\win32\vc10\lib;$(CSF_OPT_LIB32);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>.\..\..\..\win32\vc10\bin\__XQTNAM__.pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <ImportLibrary>..\..\..\win32\vc10\lib\__XQTNAM__.lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\..\..\..\win32\vc10\bind\__XQTNAM__.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>__TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Optimization>Disabled</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <PreprocessorDefinitions>DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <AssemblerListingLocation>.\..\..\..\win32\vc10\objd\__XQTNAM__/</AssemblerListingLocation>
+      <ObjectFileName>.\..\..\..\win32\vc10\objd\__XQTNAM__/</ObjectFileName>
+      <ProgramDataBaseFileName>.\..\..\..\win32\vc10\objd\__XQTNAM__/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <CompileAs>Default</CompileAs>
+      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>__TKDEP__;%(AdditionalDependencies)</AdditionalDependencies>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>..\..\..\win32\vc10\libd;$(CSF_OPT_LIB32D);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>..\..\..\win32\vc10\bind\__XQTNAM__.pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <ImportLibrary>..\..\..\win32\vc10\libd\__XQTNAM__.lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>x64</TargetEnvironment>
+      <TypeLibraryName>.\..\..\..\win64\vc10\bin\__XQTNAM__.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>__TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <PreprocessorDefinitions>NDEBUG;WIN64;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <AssemblerListingLocation>.\..\..\..\win64\vc10\obj\__XQTNAM__/</AssemblerListingLocation>
+      <ObjectFileName>.\..\..\..\win64\vc10\obj\__XQTNAM__/</ObjectFileName>
+      <ProgramDataBaseFileName>.\..\..\..\win64\vc10\obj\__XQTNAM__/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;WIN64;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>__TKDEP__;%(AdditionalDependencies)</AdditionalDependencies>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>..\..\..\win64\vc10\lib;$(CSF_OPT_LIB64);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>.\..\..\..\win64\vc10\bin\__XQTNAM__.pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <ImportLibrary>..\..\..\win64\vc10\lib\__XQTNAM__.lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>x64</TargetEnvironment>
+      <TypeLibraryName>.\..\..\..\win64\vc10\bind\__XQTNAM__.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>__TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <Optimization>Disabled</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <PreprocessorDefinitions>DEB;_DEBUG;WIN64;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <AssemblerListingLocation>.\..\..\..\win64\vc10\objd\__XQTNAM__/</AssemblerListingLocation>
+      <ObjectFileName>.\..\..\..\win64\vc10\objd\__XQTNAM__/</ObjectFileName>
+      <ProgramDataBaseFileName>.\..\..\..\win64\vc10\objd\__XQTNAM__/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <CompileAs>Default</CompileAs>
+      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>DEB;_DEBUG;WIN64;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>__TKDEP__;%(AdditionalDependencies)</AdditionalDependencies>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>..\..\..\win64\vc10\libd;$(CSF_OPT_LIB64D);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>..\..\..\win64\vc10\bind\__XQTNAM__.pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <ImportLibrary>..\..\..\win64\vc10\libd\__XQTNAM__.lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+__FILES__  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
diff --git a/src/WOKTclLib/templates/template.vc7 b/src/WOKTclLib/templates/template.vc7
new file mode 100644 (file)
index 0000000..0a22b5e
--- /dev/null
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="__TKNAM__"
+       SccProjectName=""
+       SccLocalPath="">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\..\..\..\win32\vc7\bin"
+                       IntermediateDirectory=".\..\..\..\win32\vc7\obj\__TKNAM__"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               StringPooling="TRUE"
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="TRUE"
+                               PrecompiledHeaderFile=".\..\..\..\win32\vc7\obj\__TKNAM__\__TKNAM__.pch"
+                               AssemblerListingLocation=".\..\..\..\win32\vc7\obj\__TKNAM__/"
+                               ObjectFile=".\..\..\..\win32\vc7\obj\__TKNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win32\vc7\obj\__TKNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__ opengl32.lib glu32.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib"
+                               OutputFile=".\..\..\..\win32\vc7\bin\__TKNAM__.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="..\..\..\win32\vc7\lib;$(CSF_OPT_LIB32)"
+                               ProgramDatabaseFile=".\..\..\..\win32\vc7\bin\__TKNAM__.pdb"
+                               SubSystem="2"
+                               ImportLibrary="..\..\..\win32\vc7\lib\__TKNAM__.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="TRUE"
+                               SuppressStartupBanner="TRUE"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win32\vc7\bin\__TKNAM__.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               Culture="1036"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\..\..\..\win32\vc7\bind"
+                       IntermediateDirectory=".\..\..\..\win32\vc7\objd\__TKNAM__"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE"
+                       ManagedExtensions="FALSE"
+                       WholeProgramOptimization="FALSE">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="0"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               RuntimeLibrary="3"
+                               PrecompiledHeaderFile=".\..\..\..\win32\vc7\objd\__TKNAM__\__TKNAM__.pch"
+                               AssemblerListingLocation=".\..\..\..\win32\vc7\objd\__TKNAM__/"
+                               ObjectFile=".\..\..\..\win32\vc7\objd\__TKNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win32\vc7\objd\__TKNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__ opengl32.lib glu32.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib"
+                               OutputFile=".\..\..\..\win32\vc7\bind\__TKNAM__.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="..\..\..\win32\vc7\libd;$(CSF_OPT_LIB32D)"
+                               GenerateDebugInformation="TRUE"
+                               ProgramDatabaseFile="..\..\..\win32\vc7\bind\__TKNAM__.pdb"
+                               SubSystem="2"
+                               ImportLibrary="..\..\..\win32\vc7\libd\__TKNAM__.lib"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="TRUE"
+                               SuppressStartupBanner="TRUE"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win32\vc7\bind\__TKNAM__.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               Culture="1036"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source files"
+                       Filter="">
+__FILES__
+                       <File RelativePath="__TKNAM__.rc"></File>
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/src/WOKTclLib/templates/template.vc7x b/src/WOKTclLib/templates/template.vc7x
new file mode 100644 (file)
index 0000000..5df31d7
--- /dev/null
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="__XQTNAM__"
+       ProjectGUID="{193A5B07-7F8B-4280-9F4E-32D5F326DFC5}"
+       SccProjectName=""
+       SccLocalPath="">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\..\..\..\win32\vc7\bind"
+                       IntermediateDirectory=".\..\..\..\win32\vc7\objd\__XQTNAM__"
+                       ConfigurationType="__CONF__"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="0"
+                               PreprocessorDefinitions="WIN32;DEB;_DEBUG;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               AssemblerListingLocation=".\..\..\..\win32\vc7\objd\__XQTNAM__/"
+                               ObjectFile=".\..\..\..\win32\vc7\objd\__XQTNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win32\vc7\objd\__XQTNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               DebugInformationFormat="3"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="..\..\..\win32\vc7\libd;$(CSF_OPT_LIB32D)"
+                               GenerateDebugInformation="TRUE"
+                               ProgramDatabaseFile=".\..\..\..\win32\vc7\bind\__XQTNAM__.pdb"
+                               SubSystem="1"
+                               ImportLibrary="..\..\..\win32\vc7\libd\__XQTNAM__.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="TRUE"
+                               SuppressStartupBanner="TRUE"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win32\vc7\bind\__XQTNAM__.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="WIN32;DEB;_DEBUG;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               Culture="1033"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\..\..\..\win32\vc7\bin"
+                       IntermediateDirectory=".\..\..\..\win32\vc7\obj\__XQTNAM__"
+                       ConfigurationType="__CONF__"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="WIN32;NDEBUG;No_Exception;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               StringPooling="TRUE"
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="TRUE"
+                               AssemblerListingLocation=".\..\..\..\win32\vc7\obj\__XQTNAM__/"
+                               ObjectFile=".\..\..\..\win32\vc7\obj\__XQTNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win32\vc7\obj\__XQTNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="..\..\..\win32\vc7\lib;$(CSF_OPT_LIB32)"
+                               ProgramDatabaseFile=".\..\..\..\win32\vc7\bin\__XQTNAM__.pdb"
+                               SubSystem="1"
+                               ImportLibrary="..\..\..\win32\vc7\lib\__XQTNAM__.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="TRUE"
+                               SuppressStartupBanner="TRUE"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win32\vc7\bin\__XQTNAM__.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="WIN32;NDEBUG;No_Exception;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               Culture="1033"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="">
+__FILES__
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/src/WOKTclLib/templates/template.vc8 b/src/WOKTclLib/templates/template.vc8
new file mode 100644 (file)
index 0000000..edf4c85
--- /dev/null
@@ -0,0 +1,423 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="8.00"
+       Name="__TKNAM__"
+       ProjectGUID="__PROJECT_GUID__"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\..\..\..\win32\vc8\bin"
+                       IntermediateDirectory=".\..\..\..\win32\vc8\obj\__TKNAM__"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win32\vc8\bin\__TKNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               StringPooling="true"
+                               ExceptionHandling="2"
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               PrecompiledHeaderFile=".\..\..\..\win32\vc8\obj\__TKNAM__\__TKNAM__.pch"
+                               AssemblerListingLocation=".\..\..\..\win32\vc8\obj\__TKNAM__/"
+                               ObjectFile=".\..\..\..\win32\vc8\obj\__TKNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win32\vc8\obj\__TKNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               Culture="1036"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__ opengl32.lib glu32.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib"
+                               OutputFile=".\..\..\..\win32\vc8\bin\__TKNAM__.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win32\vc8\lib;$(CSF_OPT_LIB32)"
+                               ProgramDatabaseFile=".\..\..\..\win32\vc8\bin\__TKNAM__.pdb"
+                               SubSystem="2"
+                               ImportLibrary="..\..\..\win32\vc8\lib\__TKNAM__.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCWebDeploymentTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\..\..\..\win32\vc8\bind"
+                       IntermediateDirectory=".\..\..\..\win32\vc8\objd\__TKNAM__"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       ManagedExtensions="0"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win32\vc8\bind\__TKNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="0"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               ExceptionHandling="2"
+                               RuntimeLibrary="3"
+                               PrecompiledHeaderFile=".\..\..\..\win32\vc8\objd\__TKNAM__\__TKNAM__.pch"
+                               AssemblerListingLocation=".\..\..\..\win32\vc8\objd\__TKNAM__/"
+                               ObjectFile=".\..\..\..\win32\vc8\objd\__TKNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win32\vc8\objd\__TKNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               Detect64BitPortabilityProblems="false"
+                               DebugInformationFormat="3"
+                               CompileAs="0"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               Culture="1036"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__ opengl32.lib glu32.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib"
+                               OutputFile=".\..\..\..\win32\vc8\bind\__TKNAM__.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win32\vc8\libd;$(CSF_OPT_LIB32D)"
+                               GenerateDebugInformation="true"
+                               ProgramDatabaseFile="..\..\..\win32\vc8\bind\__TKNAM__.pdb"
+                               SubSystem="2"
+                               ImportLibrary="..\..\..\win32\vc8\libd\__TKNAM__.lib"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCWebDeploymentTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       OutputDirectory=".\..\..\..\win64\vc8\bin"
+                       IntermediateDirectory=".\..\..\..\win64\vc8\obj\__TKNAM__"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win64\vc8\bin\__TKNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/favor:blend"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="NDEBUG;WIN64;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                               StringPooling="true"
+                               ExceptionHandling="2"
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               PrecompiledHeaderFile=".\..\..\..\win64\vc8\obj\__TKNAM__\__TKNAM__.pch"
+                               AssemblerListingLocation=".\..\..\..\win64\vc8\obj\__TKNAM__/"
+                               ObjectFile=".\..\..\..\win64\vc8\obj\__TKNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win64\vc8\obj\__TKNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="NDEBUG;WIN64;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                               Culture="1036"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="/DLL __TKDEP__ opengl32.lib glu32.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib"
+                               OutputFile=".\..\..\..\win64\vc8\bin\__TKNAM__.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win64\vc8\lib;$(CSF_OPT_LIB64)"
+                               ProgramDatabaseFile=".\..\..\..\win64\vc8\bin\__TKNAM__.pdb"
+                               SubSystem="2"
+                               ImportLibrary="..\..\..\win64\vc8\lib\__TKNAM__.lib"
+                               TargetMachine="X64"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCWebDeploymentTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       OutputDirectory=".\..\..\..\win64\vc8\bind"
+                       IntermediateDirectory=".\..\..\..\win64\vc8\objd\__TKNAM__"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       ManagedExtensions="0"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win64\vc8\bind\__TKNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/favor:blend"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="0"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="DEB;_DEBUG;WIN64;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                               ExceptionHandling="2"
+                               RuntimeLibrary="3"
+                               PrecompiledHeaderFile=".\..\..\..\win64\vc8\objd\__TKNAM__\__TKNAM__.pch"
+                               AssemblerListingLocation=".\..\..\..\win64\vc8\objd\__TKNAM__/"
+                               ObjectFile=".\..\..\..\win64\vc8\objd\__TKNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win64\vc8\objd\__TKNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               Detect64BitPortabilityProblems="false"
+                               DebugInformationFormat="3"
+                               CompileAs="0"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="DEB;_DEBUG;WIN64;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                               Culture="1036"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="/DLL __TKDEP__ opengl32.lib glu32.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib"
+                               OutputFile=".\..\..\..\win64\vc8\bind\__TKNAM__.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win64\vc8\libd;$(CSF_OPT_LIB64D)"
+                               GenerateDebugInformation="true"
+                               ProgramDatabaseFile="..\..\..\win64\vc8\bind\__TKNAM__.pdb"
+                               SubSystem="2"
+                               ImportLibrary="..\..\..\win64\vc8\libd\__TKNAM__.lib"
+                               TargetMachine="X64"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCWebDeploymentTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source files"
+                       >
+__FILES__
+                       <File RelativePath="__TKNAM__.rc"></File>
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/src/WOKTclLib/templates/template.vc8x b/src/WOKTclLib/templates/template.vc8x
new file mode 100644 (file)
index 0000000..32f0807
--- /dev/null
@@ -0,0 +1,411 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="8.00"
+       Name="__XQTNAM__"
+       ProjectGUID="__PROJECT_GUID__"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\..\..\..\win32\vc8\bind"
+                       IntermediateDirectory=".\..\..\..\win32\vc8\objd\__XQTNAM__"
+                       ConfigurationType="__CONF__"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win32\vc8\bind\__XQTNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="0"
+                               PreprocessorDefinitions="WIN32;DEB;_DEBUG;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;"
+                               ExceptionHandling="2"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               AssemblerListingLocation=".\..\..\..\win32\vc8\objd\__XQTNAM__/"
+                               ObjectFile=".\..\..\..\win32\vc8\objd\__XQTNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win32\vc8\objd\__XQTNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DebugInformationFormat="3"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="WIN32;DEB;_DEBUG;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;"
+                               Culture="1033"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win32\vc8\libd;$(CSF_OPT_LIB32D)"
+                               GenerateDebugInformation="true"
+                               ProgramDatabaseFile=".\..\..\..\win32\vc8\bind\__XQTNAM__.pdb"
+                               SubSystem="1"
+                               ImportLibrary="..\..\..\win32\vc8\libd\__XQTNAM__.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCWebDeploymentTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\..\..\..\win32\vc8\bin"
+                       IntermediateDirectory=".\..\..\..\win32\vc8\obj\__XQTNAM__"
+                       ConfigurationType="__CONF__"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win32\vc8\bin\__XQTNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="WIN32;NDEBUG;No_Exception;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;"
+                               StringPooling="true"
+                               ExceptionHandling="2"
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               AssemblerListingLocation=".\..\..\..\win32\vc8\obj\__XQTNAM__/"
+                               ObjectFile=".\..\..\..\win32\vc8\obj\__XQTNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win32\vc8\obj\__XQTNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="WIN32;NDEBUG;No_Exception;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;"
+                               Culture="1033"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win32\vc8\lib;$(CSF_OPT_LIB32)"
+                               ProgramDatabaseFile=".\..\..\..\win32\vc8\bin\__XQTNAM__.pdb"
+                               SubSystem="1"
+                               ImportLibrary="..\..\..\win32\vc8\lib\__XQTNAM__.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCWebDeploymentTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       OutputDirectory=".\..\..\..\win64\vc8\bind"
+                       IntermediateDirectory=".\..\..\..\win64\vc8\objd\__XQTNAM__"
+                       ConfigurationType="__CONF__"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win64\vc8\bind\__XQTNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/favor:blend"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="0"
+                               PreprocessorDefinitions="WIN64;DEB;_DEBUG;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                               ExceptionHandling="2"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               AssemblerListingLocation=".\..\..\..\win64\vc8\objd\__XQTNAM__/"
+                               ObjectFile=".\..\..\..\win64\vc8\objd\__XQTNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win64\vc8\objd\__XQTNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DebugInformationFormat="3"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="WIN64;DEB;_DEBUG;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                               Culture="1033"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__"
+                               OutputFile=".\..\..\..\win64\vc8\bind\__XQTNAM__.__XQTEXT__"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win64\vc8\libd;$(CSF_OPT_LIB64D)"
+                               GenerateDebugInformation="true"
+                               ProgramDatabaseFile=".\..\..\..\win64\vc8\bind\__XQTNAM__.pdb"
+                               SubSystem="1"
+                               ImportLibrary="..\..\..\win64\vc8\libd\__XQTNAM__.lib"
+                               TargetMachine="X64"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCWebDeploymentTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       OutputDirectory=".\..\..\..\win64\vc8\bin"
+                       IntermediateDirectory=".\..\..\..\win64\vc8\obj\__XQTNAM__"
+                       ConfigurationType="__CONF__"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win64\vc8\bin\__XQTNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/favor:blend"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="WIN64;NDEBUG;No_Exception;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                               StringPooling="true"
+                               ExceptionHandling="2"
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               AssemblerListingLocation=".\..\..\..\win64\vc8\obj\__XQTNAM__/"
+                               ObjectFile=".\..\..\..\win64\vc8\obj\__XQTNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win64\vc8\obj\__XQTNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="WIN64;NDEBUG;No_Exception;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                               Culture="1033"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__"
+                               OutputFile=".\..\..\..\win64\vc8\bin\__XQTNAM__.__XQTEXT__"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win64\vc8\lib;$(CSF_OPT_LIB64)"
+                               ProgramDatabaseFile=".\..\..\..\win64\vc8\bin\__XQTNAM__.pdb"
+                               SubSystem="1"
+                               ImportLibrary="..\..\..\win64\vc8\lib\__XQTNAM__.lib"
+                               TargetMachine="X64"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCWebDeploymentTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       >
+__FILES__
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/src/WOKTclLib/templates/template.vc9 b/src/WOKTclLib/templates/template.vc9
new file mode 100644 (file)
index 0000000..2d862c2
--- /dev/null
@@ -0,0 +1,411 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="__TKNAM__"
+       ProjectGUID="__PROJECT_GUID__"
+       TargetFrameworkVersion="0"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\..\..\..\win32\vc9\bin"
+                       IntermediateDirectory=".\..\..\..\win32\vc9\obj\__TKNAM__"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win32\vc9\bin\__TKNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               StringPooling="true"
+                               ExceptionHandling="2"
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               PrecompiledHeaderFile=".\..\..\..\win32\vc9\obj\__TKNAM__\__TKNAM__.pch"
+                               AssemblerListingLocation=".\..\..\..\win32\vc9\obj\__TKNAM__/"
+                               ObjectFile=".\..\..\..\win32\vc9\obj\__TKNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win32\vc9\obj\__TKNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__ ws2_32.lib vfw32.lib"
+                               OutputFile=".\..\..\..\win32\vc9\bin\__TKNAM__.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win32\vc9\lib;$(CSF_OPT_LIB32)"
+                               ProgramDatabaseFile=".\..\..\..\win32\vc9\bin\__TKNAM__.pdb"
+                               SubSystem="2"
+                               RandomizedBaseAddress="1"
+                               DataExecutionPrevention="0"
+                               ImportLibrary="..\..\..\win32\vc9\lib\__TKNAM__.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\..\..\..\win32\vc9\bind"
+                       IntermediateDirectory=".\..\..\..\win32\vc9\objd\__TKNAM__"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       ManagedExtensions="0"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win32\vc9\bind\__TKNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="0"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               ExceptionHandling="2"
+                               RuntimeLibrary="3"
+                               PrecompiledHeaderFile=".\..\..\..\win32\vc9\objd\__TKNAM__\__TKNAM__.pch"
+                               AssemblerListingLocation=".\..\..\..\win32\vc9\objd\__TKNAM__/"
+                               ObjectFile=".\..\..\..\win32\vc9\objd\__TKNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win32\vc9\objd\__TKNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               Detect64BitPortabilityProblems="false"
+                               DebugInformationFormat="3"
+                               CompileAs="0"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__ ws2_32.lib vfw32.lib"
+                               OutputFile=".\..\..\..\win32\vc9\bind\__TKNAM__.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win32\vc9\libd;$(CSF_OPT_LIB32D)"
+                               GenerateDebugInformation="true"
+                               ProgramDatabaseFile="..\..\..\win32\vc9\bind\__TKNAM__.pdb"
+                               SubSystem="2"
+                               RandomizedBaseAddress="1"
+                               ImportLibrary="..\..\..\win32\vc9\libd\__TKNAM__.lib"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       OutputDirectory=".\..\..\..\win64\vc9\bin"
+                       IntermediateDirectory=".\..\..\..\win64\vc9\obj\__TKNAM__"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win64\vc9\bin\__TKNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/favor:blend"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="NDEBUG;WIN64;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                               StringPooling="true"
+                               ExceptionHandling="2"
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               PrecompiledHeaderFile=".\..\..\..\win64\vc9\obj\__TKNAM__\__TKNAM__.pch"
+                               AssemblerListingLocation=".\..\..\..\win64\vc9\obj\__TKNAM__/"
+                               ObjectFile=".\..\..\..\win64\vc9\obj\__TKNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win64\vc9\obj\__TKNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="NDEBUG;WIN64;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__ ws2_32.lib vfw32.lib"
+                               OutputFile=".\..\..\..\win64\vc9\bin\__TKNAM__.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win64\vc9\lib;$(CSF_OPT_LIB64)"
+                               ProgramDatabaseFile=".\..\..\..\win64\vc9\bin\__TKNAM__.pdb"
+                               SubSystem="2"
+                               ImportLibrary="..\..\..\win64\vc9\lib\__TKNAM__.lib"
+                               TargetMachine="X64"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       OutputDirectory=".\..\..\..\win64\vc9\bind"
+                       IntermediateDirectory=".\..\..\..\win64\vc9\objd\__TKNAM__"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       ManagedExtensions="0"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win64\vc9\bind\__TKNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/favor:blend"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="0"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="DEB;_DEBUG;WIN64;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                               ExceptionHandling="2"
+                               RuntimeLibrary="3"
+                               PrecompiledHeaderFile=".\..\..\..\win64\vc9\objd\__TKNAM__\__TKNAM__.pch"
+                               AssemblerListingLocation=".\..\..\..\win64\vc9\objd\__TKNAM__/"
+                               ObjectFile=".\..\..\..\win64\vc9\objd\__TKNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win64\vc9\objd\__TKNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               Detect64BitPortabilityProblems="false"
+                               DebugInformationFormat="3"
+                               CompileAs="0"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="DEB;_DEBUG;WIN64;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__ ws2_32.lib vfw32.lib"
+                               OutputFile=".\..\..\..\win64\vc9\bind\__TKNAM__.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win64\vc9\libd;$(CSF_OPT_LIB64D)"
+                               GenerateDebugInformation="true"
+                               ProgramDatabaseFile="..\..\..\win64\vc9\bind\__TKNAM__.pdb"
+                               SubSystem="2"
+                               ImportLibrary="..\..\..\win64\vc9\libd\__TKNAM__.lib"
+                               TargetMachine="X64"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source files"
+                       >
+__FILES__
+                       <File RelativePath="__TKNAM__.rc"></File>
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/src/WOKTclLib/templates/template.vc9x b/src/WOKTclLib/templates/template.vc9x
new file mode 100644 (file)
index 0000000..84030d6
--- /dev/null
@@ -0,0 +1,396 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="__XQTNAM__"
+       ProjectGUID="__PROJECT_GUID__"
+       TargetFrameworkVersion="0"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\..\..\..\win32\vc9\bin"
+                       IntermediateDirectory=".\..\..\..\win32\vc9\obj\__XQTNAM__"
+                       ConfigurationType="__CONF__"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win32\vc9\bin\__XQTNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               StringPooling="true"
+                               ExceptionHandling="2"
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               AssemblerListingLocation=".\..\..\..\win32\vc9\obj\__XQTNAM__/"
+                               ObjectFile=".\..\..\..\win32\vc9\obj\__XQTNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win32\vc9\obj\__XQTNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win32\vc9\lib;$(CSF_OPT_LIB32)"
+                               ProgramDatabaseFile=".\..\..\..\win32\vc9\bin\__XQTNAM__.pdb"
+                               SubSystem="1"
+                               ImportLibrary="..\..\..\win32\vc9\lib\__XQTNAM__.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\..\..\..\win32\vc9\bind"
+                       IntermediateDirectory=".\..\..\..\win32\vc9\objd\__XQTNAM__"
+                       ConfigurationType="__CONF__"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win32\vc9\bind\__XQTNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="0"
+                               PreprocessorDefinitions="DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                               ExceptionHandling="2"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="2"
+                               AssemblerListingLocation=".\..\..\..\win32\vc9\objd\__XQTNAM__/"
+                               ObjectFile=".\..\..\..\win32\vc9\objd\__XQTNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win32\vc9\objd\__XQTNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DebugInformationFormat="3"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win32\vc9\libd;$(CSF_OPT_LIB32D)"
+                               GenerateDebugInformation="true"
+                               ProgramDatabaseFile=".\..\..\..\win32\vc9\bind\__XQTNAM__.pdb"
+                               SubSystem="1"
+                               ImportLibrary="..\..\..\win32\vc9\libd\__XQTNAM__.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       OutputDirectory=".\..\..\..\win64\vc9\bin"
+                       IntermediateDirectory=".\..\..\..\win64\vc9\obj\__XQTNAM__"
+                       ConfigurationType="__CONF__"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win64\vc9\bin\__XQTNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/favor:blend"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               PreprocessorDefinitions="WIN64;NDEBUG;No_Exception;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                               StringPooling="true"
+                               ExceptionHandling="2"
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               AssemblerListingLocation=".\..\..\..\win64\vc9\obj\__XQTNAM__/"
+                               ObjectFile=".\..\..\..\win64\vc9\obj\__XQTNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win64\vc9\obj\__XQTNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="WIN64;NDEBUG;No_Exception;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__"
+                               OutputFile=".\..\..\..\win64\vc9\bin\__XQTNAM__.__XQTEXT__"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win64\vc9\lib;$(CSF_OPT_LIB64)"
+                               ProgramDatabaseFile=".\..\..\..\win64\vc9\bin\__XQTNAM__.pdb"
+                               SubSystem="1"
+                               ImportLibrary="..\..\..\win64\vc9\lib\__XQTNAM__.lib"
+                               TargetMachine="X64"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       OutputDirectory=".\..\..\..\win64\vc9\bind"
+                       IntermediateDirectory=".\..\..\..\win64\vc9\objd\__XQTNAM__"
+                       ConfigurationType="__CONF__"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\..\..\..\win64\vc9\bind\__XQTNAM__.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/favor:blend"
+                               AdditionalIncludeDirectories="__TKINC__;$(CSF_OPT_INC)"
+                               Optimization="0"
+                               PreprocessorDefinitions="WIN64;DEB;_DEBUG;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                               ExceptionHandling="2"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               AssemblerListingLocation=".\..\..\..\win64\vc9\objd\__XQTNAM__/"
+                               ObjectFile=".\..\..\..\win64\vc9\objd\__XQTNAM__/"
+                               ProgramDataBaseFileName=".\..\..\..\win64\vc9\objd\__XQTNAM__/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DebugInformationFormat="3"
+                               DisableSpecificWarnings="4996"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\inc;$(CSF_OPT_INC)"
+                               PreprocessorDefinitions="WIN64;DEB;_DEBUG;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="__TKDEP__"
+                               OutputFile=".\..\..\..\win64\vc9\bind\__XQTNAM__.__XQTEXT__"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               AdditionalLibraryDirectories="..\..\..\win64\vc9\libd;$(CSF_OPT_LIB64D)"
+                               GenerateDebugInformation="true"
+                               ProgramDatabaseFile=".\..\..\..\win64\vc9\bind\__XQTNAM__.pdb"
+                               SubSystem="1"
+                               ImportLibrary="..\..\..\win64\vc9\libd\__XQTNAM__.lib"
+                               TargetMachine="X64"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       >
+__FILES__
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/src/WOKTclLib/templates/template_dll.rc b/src/WOKTclLib/templates/template_dll.rc
new file mode 100644 (file)
index 0000000..84004d0
--- /dev/null
@@ -0,0 +1,30 @@
+#include <windows.h>
+#include <Standard_Version.hxx>
+
+VS_VERSION_INFO VERSIONINFO
+FILEVERSION     OCC_VERSION_MAJOR, OCC_VERSION_MINOR, OCC_VERSION_MAINTENANCE, 0
+PRODUCTVERSION  OCC_VERSION_MAJOR, OCC_VERSION_MINOR, OCC_VERSION_MAINTENANCE, 0
+FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
+#ifdef _DEBUG
+FILEFLAGS VS_FF_DEBUG
+#endif
+FILEOS          VOS_NT
+FILETYPE        VFT_DLL
+FILESUBTYPE     VFT2_UNKNOWN
+BEGIN
+  BLOCK "StringFileInfo"
+  BEGIN BLOCK "040904E4" // Language type = U.S English(0x0409) and Character Set = Windows, Multilingual(0x04E4)
+    BEGIN
+      VALUE "FileDescription", "__TKNAM__ Toolkit\000"
+      VALUE "FileVersion",     OCC_VERSION_STRING_EXT "\000"
+      VALUE "LegalCopyright",  "\251 OPEN CASCADE SAS\000"
+      VALUE "ProductName",     "__TKNAM__\000"
+      VALUE "ProductVersion",  OCC_VERSION_STRING_EXT "\000"
+      VALUE "OfficialSite",    "www.opencascade.org\000"
+    END
+  END
+  BLOCK "VarFileInfo"
+  BEGIN
+    VALUE "Translation", 0x0409, 0x04E4
+  END
+END
diff --git a/src/WOKTclLib/templates/vcproj.user.vc9x b/src/WOKTclLib/templates/vcproj.user.vc9x
new file mode 100644 (file)
index 0000000..d3485ae
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioUserFile
+       ProjectType="Visual C++"
+       Version="9.00"
+       ShowAllFiles="false"
+       >
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       >
+                       <DebugSettings
+                               Environment="PATH=..\..\..\win32\vc9\bin;$(CSF_OPT_BIN32);$(PATH)"
+                               EnvironmentMerge="true"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       >
+                       <DebugSettings
+                               Environment="PATH=..\..\..\win64\vc9\bin;$(CSF_OPT_BIN64);$(PATH)"
+                               EnvironmentMerge="true"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       >
+                       <DebugSettings
+                               Environment="PATH=..\..\..\win32\vc9\bind;$(CSF_OPT_BIN32D);$(PATH)"
+                               EnvironmentMerge="true"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       >
+                       <DebugSettings
+                               Environment="PATH=..\..\..\win64\vc9\bind;$(CSF_OPT_BIN64D);$(PATH)"
+                               EnvironmentMerge="true"
+                       />
+               </Configuration>
+       </Configurations>
+</VisualStudioUserFile>
index 8015fd99d40dda9c5eb42d05a1f137e2492955e9..0c3161d603b7861796381a80f7cccd8721d7a29a 100755 (executable)
@@ -2,11 +2,11 @@
 
 (require 'cl)
 (provide 'wok-comm)
-\f
+
 ;;; Variables
 
 (defconst wok-comm-AtFS-Header
-  "$Header: /disk4/QA/cvsroot/test/ros/src/WOKTclLib/wok-comm.el,v 1.4 2009-12-16 08:40:00 mnt Exp $")
+  "$Header: /home/bojolex/newrepos/src/WOKTclLib/wok-comm.el,v 1.1.1.1 1999/12/08 09:18:21 anonymous Exp $")
 
 (defvar wok-comm-initialized nil
   "If non-nil, the Wok communication module has already been initialized.")
index 19424c6fb14b246b51324069f75fb91c9580990a..ab12c5a7d5fffc3fc76fdf66e33307c073bbfe1c 100755 (executable)
@@ -6,13 +6,16 @@
 (require 'shell)
 (require 'wok-comm)
 
-(defvar woksh-program "wish84"
+(defvar woksh-program "tclsh"
   "*Name of program to invoke woksh")
+(if (equal (getenv "WOKSTATION") "wnt")
+  (progn 
+    (setq woksh-program "tclsh85.exe")))
 
-(defvar woksh-explicit-args "P:/cmd-input.tcl"
+(defvar woksh-explicit-args nil
   "*List of arguments to pass to woksh on the command line.")
 
-(defvar woksh-mode-hook nil 
+(defvar woksh-mode-hook nil
   "*Hooks to run after setting current buffer to woksh-mode.")
 
 (defvar woksh-process-connection-type t
@@ -61,21 +64,6 @@ re-synching of directories.")
 
 (defvar woksh-history nil)
 
-(defvar woksh-set-emacs-env nil
-"Defines whether modifications in WOK environment variables made,
-for instance, by 'wokenv -s' command, should be reflected in Emacs
-process environment. 
-
-Default value is nil, i.e. WOK environment changes will not affect 
-Emacs variables"
-)
-
-(defun woksh-setenv (variable &optional value unset)
-"If variable woksh-set-emacs-env is t, calls (setenv) with the 
-same arguments, otherwise does nothing."
-  (if woksh-set-emacs-env (setenv variable value unset))
-)
-
 ;;;###autoload
 (defun woksh (input-args &optional buffer)
   "Open a woksh"
@@ -120,13 +108,6 @@ same arguments, otherwise does nothing."
 
       (cd-absolute (concat comint-file-name-prefix "~/"))))
 
-    ;; workaround concerning unproper work of tclsh under Emacs on Windows
-    (if (equal (getenv "WOKSTATION") "wnt")
-      (progn 
-        (insert 
-           (concat "source " (getenv "WOKHOME") "/site/interp.tcl")) 
-        (comint-send-input)))
-
     (if (not (eq iport 0))
        (if (not  (wok-connectedp))
            (progn
index 08fc72e9049633d35d5f88fba1fb951afafcfdb7..6bb6eb3d9f41989fe0334013cf438e26348e93da 100755 (executable)
@@ -68,7 +68,7 @@ proc wokUtils:FILES:Since { dirlist gblist lim } {
             }
         }
     }
-    if ![lempty $recurse] {
+    if { [llength $recurse] != 0 } {
         set result [concat $result [wokUtils:FILES:Since $recurse $gblist $lim]]
     }
     return $result
@@ -229,7 +229,7 @@ proc wokUtils:FILES:find { dirlist gblist } {
             }
         }
     }
-    if ![lempty $recurse] {
+    if { [llength $recurse] != 0 } {
         set result [concat $result [wokUtils:FILES:find $recurse $gblist]]
     }
     return $result
index e339dbbda57a8b5beee28ea3f0203d5740342c76..19c1639bb35abfe2b11aa2be32b4925a00e058ba 100755 (executable)
@@ -1,2 +1,5 @@
-global env
-source $env(HOME)/tclshrc_Wok
+# TCL RC File that automatically sourced when the shell is started interactively.
+# This is version for Linux (.tclshrc)
+# Imports WOK procedures.
+
+source $::env(WOKHOME)/site/wok_tclshrc.tcl
index f88cbfd6cb87da33cda5554dd5029e660f247f8b..35203328fd659a6683f42941029bfe6c263f6251 100755 (executable)
 ;# and WBNAM is created as empty workbench. To populate it with development units
 ;# please refer to the Wok documentation.
 ;#
-source $env(WOKHOME)/site/tclshrc_Wok
+
 proc FileToList { path {sort 0} {trim 0} {purge 0} {emptl 1} } {
-    if ![ catch { set id [ open $path r ] } ] {
-       set l  {}
-       while {[gets $id line] >= 0 } {
-           if { $trim } {
-               regsub -all {[ ]+} $line " " line
-           }
-           if { $emptl } {
-               if { [string length ${line}] != 0 } {
-                   lappend l $line
-               }
-           } else {
-               lappend l $line
-           }
-       }
-       close $id
-       if { $sort } {
-           return [lsort $l]
-       } else {
-           return $l
-       }
+  if ![ catch { set id [ open $path r ] } ] {
+    set l  {}
+    while {[gets $id line] >= 0 } {
+      if { $trim } {
+        regsub -all {[ ]+} $line " " line
+      }
+      if { $emptl } {
+        if { [string length ${line}] != 0 } {
+            lappend l $line
+        }
+      } else {
+        lappend l $line
+      }
+    }
+    close $id
+    if { $sort } {
+      return [lsort $l]
     } else {
-       return {}
+      return $l
     }
+  } else {
+    return {}
+  }
 }
+
 ;#
 ;#
 ;#
 proc lreplace { fin fout ls1s2 } {
-    if { [catch { set in [ open $fin r ] } errin] == 0 } {
-       if { [catch { set out [ open $fout w ] } errout] == 0 } {
-           set strin [read $in [file size $fin]]
-           close $in
-           foreach [list s1 s2] $ls1s2 {
-               set done 0
-               if { [set nbsub [regsub -all -- $s1 $strin $s2 strout]] != 0 } {
-                   set done 1
-               }
-               set strin $strout
-           }
-           puts $out $strout
-           close $out
-           return $done
-       } else {
-           puts stderr "Error: $errout"
-           return 0
-       }
+  if { [catch { set in [ open $fin r ] } errin] == 0 } {
+    if { [catch { set out [ open $fout w ] } errout] == 0 } {
+      set strin [read $in [file size $fin]]
+      close $in
+      foreach [list s1 s2] $ls1s2 {
+        set done 0
+        if { [set nbsub [regsub -all -- $s1 $strin $s2 strout]] != 0 } {
+            set done 1
+        }
+        set strin $strout
+      }
+      puts $out $strout
+      close $out
+      return $done
     } else {
-       puts stderr "Error: $errin"
-       return 0
+      puts stderr "Error: $errout"
+      return 0
     }
+  } else {
+    puts stderr "Error: $errin"
+    return 0
+  }
 }
+
 ;#
 ;#
-proc CreateFactory { HOME_ENTITIES FNAM WSNAM WBNAM IMPORT_DIR } {
+proc CreateFactory { HOME_ENTITIES FNAM WSNAM } {
+  package require Wok
+  package require Ms
+  global env
 
-    package require Wok
-    package require Ms
-    global env
-    
-    if [catch { package require Tclx } TclXHere] {
-       puts stderr "Warning : You'll need package TclX to correctly use WOK."
-       puts stderr "          Check for variable TCLLIBPATH"
-    }
-    if [catch { package require Expect } ExpectHere] {
-       puts stderr "Warning : You'll need package Expect to use WOK integration package.."
-       puts stderr "          Check for variable TCLLIBPATH"
-    }
-    
-    ;#
-    set savpwd [pwd]
-    
-    ;#
-    ;# Create factory FNAM and warehouse attached to it
-    ;#
-    if { ![wokinfo -x ${FNAM}] } {
-       puts "Creating the factory : ${FNAM}"
-       if ![catch {fcreate -DHome=$HOME_ENTITIES/${FNAM} -d ${FNAM} } astatus ] {
-           wokcd ${FNAM}
-           if { ![wokinfo -x ${FNAM}:BAG] } {
-               puts "Creating the WareHouse in $HOME_ENTITIES/${FNAM}/BAG"
-               if [ catch {Wcreate -DHome=$HOME_ENTITIES/${FNAM}/BAG -d -DAdm=$HOME_ENTITIES/${FNAM}/BAG/adm BAG } astatus ] {
-                   puts $astatus
-                   cd $savpwd
-               }
-           }
-       } else {
-           puts $astatus
-           cd $savpwd
-       }
-    }
-    
-    ;#
-    ;# Create workshop WSNAM
-    ;#
-    if { ![wokinfo -x ${FNAM}:${WSNAM}] } {
-       puts "Creating the workshop : ${FNAM}:${WSNAM}"
-       if ![ catch {screate -DHome=$HOME_ENTITIES/${FNAM}/${WSNAM} -d ${WSNAM} } astatus] {
-           wokcd -PAdm ${FNAM}:${WSNAM} 
-       } else {
-           puts $astatus
-           cd $savpwd
-       }
-    }
-    ;#
-    ;# Create workbench WBNAM 
-    ;#
-    if { ![wokinfo -x ${FNAM}:${WSNAM}:${WBNAM}] } {
-       puts "Creating the workbench : ${FNAM}:${WSNAM}:${WBNAM}"
-       wokcd ${FNAM}:${WSNAM}
-       set WBROOT $HOME_ENTITIES/${FNAM}/${WSNAM}/${WBNAM}
-       if [ catch {wcreate -DHome=$IMPORT_DIR -d ${WBNAM} } astatus] {
-           puts $astatus
-           cd $savpwd
-           exit
-       }
+  if [catch { package require Expect } ExpectHere] {
+    puts stderr "Warning : You'll need package Expect to use WOK integration package.."
+    puts stderr "          Check for variable TCLLIBPATH"
+  }
+
+  ;#
+  set savpwd [pwd]
+
+  ;#
+  ;# Create factory FNAM and warehouse attached to it
+  ;#
+  if { ![wokinfo -x ${FNAM}] } {
+    puts "Creating the factory : ${FNAM}"
+    if ![catch {fcreate -DHome=$HOME_ENTITIES/${FNAM} -d ${FNAM} } astatus ] {
+      wokcd ${FNAM}
+      if { ![wokinfo -x ${FNAM}:BAG] } {
+        puts "Creating the WareHouse in $HOME_ENTITIES/${FNAM}/BAG"
+        if [ catch {Wcreate -DHome=$HOME_ENTITIES/${FNAM}/BAG -d -DAdm=$HOME_ENTITIES/${FNAM}/BAG/adm BAG } astatus ] {
+          puts $astatus
+          cd $savpwd
+        }
+      }
+    } else {
+      puts $astatus
+      cd $savpwd
     }
-        
-    if { "$IMPORT_DIR" != {} } {
-       wokcd -PAdm ${FNAM}:${WSNAM}:${WBNAM}
-       foreach udl [glob -nocomplain *.UDLIST] {
-           puts "Importing units from module $udl"
-           foreach unit [FileToList $udl] {
-               if [ catch { ucreate -[lindex $unit 0] [lindex $unit 1] } astatus] {
-                   puts $astatus
-               }
-           }
-       }
+  }
+
+  ;#
+  ;# Create workshop WSNAM
+  ;#
+  if { ![wokinfo -x ${FNAM}:${WSNAM}] } {
+    puts "Creating the workshop : ${FNAM}:${WSNAM}"
+    if ![ catch {screate -DHome=$HOME_ENTITIES/${FNAM}/${WSNAM} -d ${WSNAM} } astatus] {
+      wokcd -PAdm ${FNAM}:${WSNAM}
+    } else {
+      puts $astatus
+      cd $savpwd
     }
-    cd $savpwd
+  }
+  cd $savpwd
 }
 
-set CASHOME [file dirname $env(CASROOT)/.]
+CreateFactory [file normalize $env(WOK_ROOTADMDIR)] LOC dev
 
-CreateFactory [file normalize $env(WOK_ROOTADMDIR)] OS OCC51 ros [file normalize $CASHOME]
 puts "WOK initialization was done"
 exit
-
-
-
index c265a20116011233efac2005e5cb358b07e08f41..f2960c73df5b2e45c1f32a7e48a7c6ac0741bacd 100755 (executable)
@@ -1,81 +1,68 @@
--- DEFAULT.edl
 --
+-- DEFAULT.edl
+-- Predefined defaults for newly created factories/branches
 --
-@ifnotdefined ( %DEFAULT_EDL) then
-@set %DEFAULT_EDL = "";
-
-@template DEFAULT_Home ( %Entity ) is
-$/dp_xx/%Entity\^
-@end;
-
-@template DEFAULT_Adm  ( %Entity_Home ) is
-$%Entity_Home/adm\^
-@end;
-
-@template DEFAULT_Warehouse ( %Entity ) is
-$BAG\^
-@end;
-
-@template DEFAULT_Stations ( %Entity ) is
-$sun sil lin hp aix wnt mac bsd\^
-@end;
-
-@template DEFAULT_DBMSystems ( %Entity ) is
-$ DFLT \^
-@end;
+@ifnotdefined (%DEFAULT_EDL) then
+  @set %DEFAULT_EDL = "";
 
-@template DEFAULT_ParcelConfig ( %Entity ) is
-\^
-@end;
+  @template DEFAULT_Home (%Entity) is
+    $__DEFHOME__/LOC/dev/%Entity\^
+  @end;
 
-@template DEFAULT_Src  ( %Entity_Home ) is
-$%Entity_Home\^
-@end;
+  @template DEFAULT_Adm (%Entity_Home) is
+    $%Entity_Home/adm\^
+  @end;
 
-@template DEFAULT_Drv  ( %Entity_Home ) is
-$%Entity_Home\^
-@end;
+  @template DEFAULT_Warehouse (%Entity) is
+    $BAG\^
+  @end;
 
-@template DEFAULT_DFLT  ( %Entity_Home ) is
-$%Entity_Home\^
-@end;
+  @template DEFAULT_Stations (%Entity) is
+    $__DEFSTATION__\^
+  @end;
 
-@template DEFAULT_DFLT_sun  ( %Entity_Home ) is
-$%Entity_Home\^
-@end;
+  @template DEFAULT_DBMSystems (%Entity) is
+    $ DFLT \^
+  @end;
 
-@template DEFAULT_DFLT_sil  ( %Entity_Home ) is
-$%Entity_Home\^
-@end;
+  @template DEFAULT_ParcelConfig (%Entity) is
+    $ \^
+  @end;
 
-@template DEFAULT_DFLT_lin  ( %Entity_Home ) is
-$%Entity_Home\^
-@end;
+  @template DEFAULT_Src (%Entity_Home) is
+    $%Entity_Home\^
+  @end;
 
-@template DEFAULT_DFLT_hp  ( %Entity_Home ) is
-$%Entity_Home\^
-@end;
+  @template DEFAULT_Drv (%Entity_Home) is
+    $%Entity_Home\^
+  @end;
 
-@template DEFAULT_DFLT_aix  ( %Entity_Home ) is
-$%Entity_Home\^
-@end;
+  @template DEFAULT_DFLT (%Entity_Home) is
+    $%Entity_Home\^
+  @end;
 
-@template DEFAULT_DFLT_wnt  ( %Entity_Home ) is
-$%Entity_Home\^
-@end;
+  @template DEFAULT_DFLT_wnt (%Entity_Home) is
+    $%Entity_Home\^
+  @end;
 
-@template DEFAULT_DFLT_mac  ( %Entity_Home ) is
-$%Entity_Home\^
-@end;
+  @template DEFAULT_DFLT_lin (%Entity_Home) is
+    $%Entity_Home\^
+  @end;
 
-@template DEFAULT_DFLT_bsd  ( %Entity_Home ) is
-$%Entity_Home\^
-@end;
+  @template DEFAULT_DFLT_mac (%Entity_Home) is
+    $%Entity_Home\^
+  @end;
 
-@template DEFAULT_WOKVersion ( %WOK_VERSION ) is
-$%WOK_VERSION\^
-@end;
+  @template DEFAULT_DFLT_sun (%Entity_Home) is
+    $%Entity_Home\^
+  @end;
 
+  @template DEFAULT_DFLT_bsd (%Entity_Home) is
+    $%Entity_Home\^
+  @end;
 
+  @template DEFAULT_WOKVersion (%WOK_VERSION) is
+    $%WOK_VERSION\^
+  @end;
 
 @endif;
index 512252df68c21d986170a1f63571709d5c30da5b..3ecdc7f12590043e863b3818a7e3a6954a4b26a0 100755 (executable)
@@ -2,12 +2,18 @@ srcinc:::CreateFactory.tcl
 srcinc:::WOKSESSION.edl
 srcinc:::DEFAULT.edl
 srcinc:::FILES
-srcinc:::tclshrc_Wok
 srcinc:::INSTALL
-srcinc:::wok.csh
-srcinc:::wok.bat
-srcinc:::wokinit.bat
 srcinc:::interp.tcl
-srcinc:::wokinit.csh
 srcinc:::.tclshrc
 srcinc:::tclshrc.tcl
+srcinc:::wok_confgui.bat
+srcinc:::wok_env.bat
+srcinc:::wok_init.bat
+srcinc:::wok_tclsh.bat
+srcinc:::wok_confgui.sh
+srcinc:::wok_env.sh
+srcinc:::wok_init.sh
+srcinc:::wok_tclsh.sh
+srcinc:::wok_deps.tcl
+srcinc:::wok_depsgui.tcl
+srcinc:::wok_tclshrc.tcl
index e339dbbda57a8b5beee28ea3f0203d5740342c76..a7360644061540206512ed4ad3b0a7655fed17bd 100755 (executable)
@@ -1,2 +1,5 @@
-global env
-source $env(HOME)/tclshrc_Wok
+# TCL RC File that automatically sourced when the shell is started interactively.
+# This is version for Windows (tclshrc.tcl)
+# Imports WOK procedures.
+
+source $::env(WOKHOME)/site/wok_tclshrc.tcl
diff --git a/src/WOKsite/wok_confgui.bat b/src/WOKsite/wok_confgui.bat
new file mode 100644 (file)
index 0000000..efee2cd
--- /dev/null
@@ -0,0 +1,8 @@
+@echo off
+
+rem This file setup WOK environment (calls 'wok_env.bat' script)
+rem and launches the TCL shell bound to WOK.
+
+call %~dp0wok_env.bat
+
+%TCLBIN%/tclsh85.exe %~dp0wok_depsgui.tcl
diff --git a/src/WOKsite/wok_confgui.sh b/src/WOKsite/wok_confgui.sh
new file mode 100644 (file)
index 0000000..1ae6292
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# This file setup WOK environment (calls 'wok_env.sh' script)
+# and launches the TCL shell bound to WOK.
+
+# go to the script directory
+aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD";
+
+source "${aScriptPath}/wok_env.sh"
+
+cd "$WOK_ROOTADMDIR"
+$TCLSH_EXE "${aScriptPath}/wok_depsgui.tcl"
diff --git a/src/WOKsite/wok_deps.tcl b/src/WOKsite/wok_deps.tcl
new file mode 100644 (file)
index 0000000..c84186e
--- /dev/null
@@ -0,0 +1,796 @@
+#!/usr/bin/tclsh
+
+# Created on: 2012-01-26
+# Created by: Kirill GAVRILOV
+# Copyright (c) 2012 OPEN CASCADE SAS
+
+set ARCH "32"
+
+if { "$tcl_platform(platform)" == "unix" } {
+  set SYS_PATH_SPLITTER ":"
+  set SYS_LIB_PREFIX    "lib"
+  set SYS_EXE_SUFFIX    ""
+  if { "$tcl_platform(os)" == "Darwin" } {
+    set SYS_LIB_SUFFIX "dylib"
+  } else {
+    set SYS_LIB_SUFFIX "so"
+  }
+  set VCVER "gcc"
+  set VCVARS ""
+} elseif { "$tcl_platform(platform)" == "windows" } {
+  set SYS_PATH_SPLITTER ";"
+  set SYS_LIB_PREFIX    ""
+  set SYS_LIB_SUFFIX    "lib"
+  set SYS_EXE_SUFFIX    ".exe"
+  set VCVER  "vc8"
+  set VCVARS ""
+  #set VCVARS "%VS80COMNTOOLS%..\\..\\VC\\vcvarsall.bat"
+}
+
+set HAVE_FREEIMAGE "false"
+set HAVE_GL2PS     "false"
+set HAVE_TBB       "false"
+set CHECK_QT4      "true"
+set CHECK_JDK      "true"
+set PRODUCTS_PATH ""
+set CSF_OPT_INC   [list]
+set CSF_OPT_LIB32 [list]
+set CSF_OPT_LIB64 [list]
+set CSF_OPT_BIN32 [list]
+set CSF_OPT_BIN64 [list]
+
+if { [info exists ::env(ARCH)] } {
+  set ARCH "$::env(ARCH)"
+}
+if { [info exists ::env(VCVER)] } {
+  set VCVER "$::env(VCVER)"
+}
+if { [info exists ::env(VCVARS)] } {
+  set VCVARS "$::env(VCVARS)"
+}
+if { [info exists ::env(HAVE_FREEIMAGE)] } {
+  set HAVE_FREEIMAGE "$::env(HAVE_FREEIMAGE)"
+}
+if { [info exists ::env(HAVE_GL2PS)] } {
+  set HAVE_GL2PS "$::env(HAVE_GL2PS)"
+}
+if { [info exists ::env(HAVE_TBB)] } {
+  set HAVE_TBB "$::env(HAVE_TBB)"
+}
+if { [info exists ::env(CHECK_QT4)] } {
+  set CHECK_QT4 "$::env(CHECK_QT4)"
+}
+if { [info exists ::env(CHECK_JDK)] } {
+  set CHECK_JDK "$::env(CHECK_JDK)"
+}
+if { [info exists ::env(PRODUCTS_PATH)] } {
+  set PRODUCTS_PATH "$::env(PRODUCTS_PATH)"
+}
+if { [info exists ::env(CSF_OPT_INC)] } {
+  set CSF_OPT_INC [split "$::env(CSF_OPT_INC)" $::SYS_PATH_SPLITTER]
+}
+if { [info exists ::env(CSF_OPT_LIB32)] } {
+  set CSF_OPT_LIB32 [split "$::env(CSF_OPT_LIB32)" $::SYS_PATH_SPLITTER]
+}
+if { [info exists ::env(CSF_OPT_LIB64)] } {
+  set CSF_OPT_LIB64 [split "$::env(CSF_OPT_LIB64)" $::SYS_PATH_SPLITTER]
+}
+if { [info exists ::env(CSF_OPT_BIN32)] } {
+  set CSF_OPT_BIN32 [split "$::env(CSF_OPT_BIN32)" $::SYS_PATH_SPLITTER]
+}
+if { [info exists ::env(CSF_OPT_BIN64)] } {
+  set CSF_OPT_BIN64 [split "$::env(CSF_OPT_BIN64)" $::SYS_PATH_SPLITTER]
+}
+
+# Search header file in $::CSF_OPT_INC and standard paths
+proc wokdep:SearchHeader {theHeader} {
+  # search in custom paths
+  foreach anIncPath $::CSF_OPT_INC {
+    set aPath "${anIncPath}/${theHeader}"
+    if { [file exists "$aPath"] } {
+      return "$aPath"
+    }
+  }
+
+  # search in system
+  set aPath "/usr/include/${theHeader}"
+  if { [file exists "$aPath"] } {
+    return "$aPath"
+  }
+  return ""
+}
+
+# Search library file in $::CSF_OPT_LIB* and standard paths
+proc wokdep:SearchLib {theLib theBitness {theSearchPath ""}} {
+  if { "$theSearchPath" != "" } {
+    set aPath "${theSearchPath}/${::SYS_LIB_PREFIX}${theLib}.${::SYS_LIB_SUFFIX}"
+    if { [file exists "$aPath"] } {
+      return "$aPath"
+    } else {
+      return ""
+    }
+  }
+
+  # search in custom paths
+  foreach aLibPath [set ::CSF_OPT_LIB$theBitness] {
+    set aPath "${aLibPath}/${::SYS_LIB_PREFIX}${theLib}.${::SYS_LIB_SUFFIX}"
+    if { [file exists "$aPath"] } {
+      return "$aPath"
+    }
+  }
+
+  # search in system
+  if { "$::ARCH" == "$theBitness"} {
+    set aPath "/usr/lib/${::SYS_LIB_PREFIX}${theLib}.${::SYS_LIB_SUFFIX}"
+    if { [file exists "$aPath"] } {
+      return "$aPath"
+    }
+  }
+
+  return ""
+}
+
+# Search file in $::CSF_OPT_BIN* and standard paths
+proc wokdep:SearchBin {theBin theBitness {theSearchPath ""}} {
+  if { "$theSearchPath" != "" } {
+    set aPath "${theSearchPath}/${theBin}"
+    if { [file exists "$aPath"] } {
+      return "$aPath"
+    } else {
+      return ""
+    }
+  }
+
+  # search in custom paths
+  foreach aBinPath [set ::CSF_OPT_BIN$theBitness] {
+    set aPath "${aBinPath}/${theBin}"
+    if { [file exists "$aPath"] } {
+      return "$aPath"
+    }
+  }
+
+  # search in system
+  if { "$::ARCH" == "$theBitness"} {
+    set aPath "/usr/bin/${theBin}"
+    if { [file exists "$aPath"] } {
+      return "$aPath"
+    }
+  }
+
+  return ""
+}
+
+# Detect compiler C-runtime version 'vc*' and architecture '32'/'64'
+# to determine preferred path.
+proc wokdep:Preferred {theList theCmpl theArch} {
+  if { [llength $theList] == 0 } {
+    return ""
+  }
+
+  set aShortList {}
+  foreach aPath $theList {
+    if { [string first "$theCmpl" "$aPath"] != "-1" } {
+      lappend aShortList "$aPath"
+    }
+  }
+
+  if { [llength $aShortList] == 0 } {
+    #return [lindex $theList 0]
+    set aShortList $theList
+  }
+
+  set aVeryShortList {}
+  foreach aPath $aShortList {
+    if { [string first "$theArch" "$aPath"] != "-1" } {
+      lappend aVeryShortList "$aPath"
+    }
+  }
+  if { [llength $aVeryShortList] == 0 } {
+    return [lindex [lsort -decreasing $aShortList] 0]
+  }
+
+  return [lindex [lsort -decreasing $aVeryShortList] 0]
+}
+
+# Search Tcl/Tk libraries placement
+proc wokdep:SearchTclTk {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} {
+  upvar $theErrInc   anErrInc
+  upvar $theErrLib32 anErrLib32
+  upvar $theErrLib64 anErrLib64
+  upvar $theErrBin32 anErrBin32
+  upvar $theErrBin64 anErrBin64
+
+  set isFound "true"
+  set aTclHPath [wokdep:SearchHeader "tcl.h"]
+  set aTkHPath  [wokdep:SearchHeader "tcl.h"]
+  if { "$aTclHPath" == "" || "$aTkHPath" == "" } {
+    if { [file exists "/usr/include/tcl8.5/tcl.h"]
+      && [file exists "/usr/include/tcl8.5/tk.h" ] } {
+      lappend ::CSF_OPT_INC "/usr/include/tcl8.5"
+    } else {
+      set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{tcl}*] "$::VCVER" "$::ARCH" ]
+      if { "$aPath" != "" && [file exists "$aPath/include/tcl.h"] && [file exists "$aPath/include/tk.h"] } {
+        lappend ::CSF_OPT_INC "$aPath/include"
+      } else {
+        lappend anErrInc "Error: 'tcl.h' or 'tk.h' not found (Tcl/Tk)"
+        set isFound "false"
+      }
+    }
+  }
+
+  if { "$::tcl_platform(platform)" == "windows" } {
+    set aTclLibName "tcl85"
+    set aTkLibName  "tk85"
+  } else {
+    set aTclLibName "tcl8.5"
+    set aTkLibName  "tk8.5"
+  }
+
+  foreach anArchIter {64 32} {
+    set aTclLibPath [wokdep:SearchLib "$aTclLibName" "$anArchIter"]
+    set aTkLibPath  [wokdep:SearchLib "$aTkLibName"  "$anArchIter"]
+    if { "$aTclLibPath" == "" || "$aTkLibPath" == "" } {
+      set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{tcl}*] "$::VCVER" "$anArchIter" ]
+      set aTclLibPath [wokdep:SearchLib "$aTclLibName" "$anArchIter" "$aPath/lib"]
+      set aTkLibPath  [wokdep:SearchLib "$aTkLibName"  "$anArchIter" "$aPath/lib"]
+      if { "$aTclLibPath" != "" && "$aTkLibPath" != "" } {
+        lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib"
+      } else {
+        lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}${aTclLibName}.${::SYS_LIB_SUFFIX}' or '${::SYS_LIB_PREFIX}${aTkLibName}.${::SYS_LIB_SUFFIX}' not found (Tcl/Tk)"
+        if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
+      }
+    }
+
+    if { "$::tcl_platform(platform)" == "windows" } {
+      set aTclDllPath [wokdep:SearchBin "${aTclLibName}.dll" "$anArchIter"]
+      set aTkDllPath  [wokdep:SearchBin "${aTkLibName}.dll"  "$anArchIter"]
+      if { "$aTclDllPath" == "" || "$aTkDllPath" == "" } {
+        set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{tcl}*] "$::VCVER" "$anArchIter" ]
+        set aTclDllPath [wokdep:SearchBin "${aTclLibName}.dll" "$anArchIter" "$aPath/bin"]
+        set aTkDllPath  [wokdep:SearchBin "${aTkLibName}.dll"  "$anArchIter" "$aPath/bin"]
+        if { "$aTclDllPath" != "" && "$aTkDllPath" != "" } {
+          lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin"
+        } else {
+          lappend anErrBin$anArchIter "Error: '${aTclLibName}.dll' or '${aTkLibName}.dll' not found (Tcl/Tk)"
+          if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
+        }
+      }
+    }
+  }
+
+  return "$isFound"
+}
+
+# Search FreeType library placement
+proc wokdep:SearchFreeType {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} {
+  upvar $theErrInc   anErrInc
+  upvar $theErrLib32 anErrLib32
+  upvar $theErrLib64 anErrLib64
+  upvar $theErrBin32 anErrBin32
+  upvar $theErrBin64 anErrBin64
+
+  set isFound "true"
+  set aFtPath      [wokdep:SearchHeader "freetype/freetype.h"]
+  set aFtBuildPath [wokdep:SearchHeader "ft2build.h"]
+  if { "$aFtPath"  == "" || "$aFtBuildPath" == "" } {
+    # TODO - use `freetype-config --cflags` instead
+    set aSysFreeType "/usr/include/freetype2"
+    if { [file exists "$aSysFreeType/freetype/freetype.h"] } {
+      lappend ::CSF_OPT_INC "$aSysFreeType"
+    } else {
+      set aSysFreeType "/usr/X11/include/freetype2"
+      if { [file exists "$aSysFreeType/freetype/freetype.h"] } {
+        lappend ::CSF_OPT_INC "/usr/X11/include"
+        lappend ::CSF_OPT_INC "$aSysFreeType"
+      } else {
+        set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{freetype}*] "$::VCVER" "$::ARCH" ]
+        if { "$aPath" != "" && [file exists "$aPath/include/freetype/freetype.h"] && [file exists "$aPath/include/ft2build.h"] } {
+          lappend ::CSF_OPT_INC "$aPath/include"
+        } else {
+          lappend anErrInc "Error: 'freetype.h' not found (FreeType2)"
+          set isFound "false"
+        }
+      }
+    }
+  }
+  return "$isFound"
+}
+
+# Search FTGL library placement
+proc wokdep:SearchFTGL {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} {
+  upvar $theErrInc   anErrInc
+  upvar $theErrLib32 anErrLib32
+  upvar $theErrLib64 anErrLib64
+  upvar $theErrBin32 anErrBin32
+  upvar $theErrBin64 anErrBin64
+
+  # The path in the case of building VS project on windows
+  set aWinBuildPath "win32_vcpp/build"
+
+  set isFound "true"
+  set aFtglFontPath  [wokdep:SearchHeader "FTGLTextureFont.h"]
+  set aFtglFtLibPath [wokdep:SearchHeader "FTLibrary.h"]
+  if { "$aFtglFontPath"  == "" || "$aFtglFtLibPath"  == "" } {
+    set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{ftgl,FTGL}*] "$::VCVER" "$::ARCH" ]
+    if { "$aPath" != "" && [expr {[file exists "$aPath/include/FTGL/FTLibrary.h"] || [file exists "$aPath/include/FTLibrary.h"]}] } {
+      lappend ::CSF_OPT_INC "$aPath/include"
+      if { [file exists "$aPath/include/FTGL"] } {
+        lappend ::CSF_OPT_INC "$aPath/include/FTGL"
+      }
+    } else {
+      lappend anErrInc "Error: 'FTLibrary.h' or 'FTGLTextureFont.h' not found (FTGL)"
+      set isFound "false"
+    }
+  }
+
+  foreach anArchIter {64 32} {
+    set aFtglLibPath    [wokdep:SearchLib "ftgl"             "$anArchIter"]
+    set aFtglWinLibPath [wokdep:SearchLib "ftgl_dynamic_MTD" "$anArchIter"]
+    if { "$aFtglLibPath" == "" && "$aFtglWinLibPath" == ""} {
+      set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{ftgl,FTGL}*] "$::VCVER" "$anArchIter" ]
+      set aFtglLibPath    [wokdep:SearchLib "ftgl"             "$anArchIter" "$aPath/lib"]
+      set aFtglWinLibPath [wokdep:SearchLib "ftgl_dynamic_MTD" "$anArchIter" "$aPath/lib"]
+      if { "$aFtglLibPath" != "" || "$aFtglWinLibPath" != "" } {
+        lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib"
+      } else {
+        set aFtglWinLibPath [wokdep:SearchLib "ftgl_dynamic_MTD" "$anArchIter" "$aPath/$aWinBuildPath"]
+        if { "$::tcl_platform(platform)" == "windows" && "$aFtglWinLibPath" != "" } {
+          lappend ::CSF_OPT_LIB$anArchIter "$aPath/$aWinBuildPath"
+        } else {
+          lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}ftgl.${::SYS_LIB_SUFFIX}' not found (FTGL)"
+          if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
+        }
+      }
+    }
+    if { "$::tcl_platform(platform)" == "windows" } {
+      set aFtglDllPath    [wokdep:SearchBin "ftgl.dll"             "$anArchIter"]
+      set aFtglWinDllPath [wokdep:SearchBin "ftgl_dynamic_MTD.dll" "$anArchIter"]
+      if { "$aFtglDllPath" == "" && "$aFtglWinDllPath" == "" } {
+        set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{ftgl}*] "$::VCVER" "$anArchIter" ]
+        set aFtglDllPath     [wokdep:SearchBin "ftgl.dll"             "$anArchIter" "$aPath/bin"]
+        set aFtglWinDllPath  [wokdep:SearchBin "ftgl_dynamic_MTD.dll" "$anArchIter" "$aPath/bin"]
+        set aFtglWinDllPath2 [wokdep:SearchBin "ftgl_dynamic_MTD.dll" "$anArchIter" "$aPath/$aWinBuildPath"]
+        if { "$aFtglDllPath" != "" || "$aFtglWinDllPath" != "" } {
+          lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin"
+        } elseif { "$aFtglWinDllPath2" != "" } {
+          lappend ::CSF_OPT_BIN$anArchIter "$aPath/$aWinBuildPath"
+        } else {
+          lappend anErrBin$anArchIter "Error: 'ftgl_dynamic_MTD.dll' not found (FTGL)"
+          if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
+        }
+      }
+    }
+  }
+
+  return "$isFound"
+}
+
+# Search FreeImage library placement
+proc wokdep:SearchFreeImage {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} {
+  upvar $theErrInc   anErrInc
+  upvar $theErrLib32 anErrLib32
+  upvar $theErrLib64 anErrLib64
+  upvar $theErrBin32 anErrBin32
+  upvar $theErrBin64 anErrBin64
+
+  # binary distribution has another layout
+  set aFImageDist     "Dist"
+  set aFImagePlusDist "Wrapper/FreeImagePlus/dist"
+
+  set isFound "true"
+  set aFImageHPath     [wokdep:SearchHeader "FreeImage.h"]
+  set aFImagePlusHPath [wokdep:SearchHeader "FreeImagePlus.h"]
+  if { "$aFImageHPath" == "" || "$aFImagePlusHPath"  == "" } {
+    set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{freeimage}*] "$::VCVER" "$::ARCH" ]
+    if { "$aPath" != "" && [file exists "$aPath/include/FreeImage.h"] && [file exists "$aPath/include/FreeImagePlus.h"] } {
+      lappend ::CSF_OPT_INC "$aPath/include"
+    } elseif { "$aPath" != "" && [file exists "$aPath/$aFImageDist/FreeImage.h"] && [file exists "$aPath/$aFImagePlusDist/FreeImagePlus.h"] } {
+      lappend ::CSF_OPT_INC "$aPath/$aFImageDist"
+      lappend ::CSF_OPT_INC "$aPath/$aFImagePlusDist"
+    } else {
+      lappend anErrInc "Error: 'FreeImage.h' or 'FreeImagePlus.h' not found (FreeImage)"
+      set isFound "false"
+    }
+  }
+
+  foreach anArchIter {64 32} {
+    set aFImageLibPath     [wokdep:SearchLib "freeimage"     "$anArchIter"]
+    set aFImagePlusLibPath [wokdep:SearchLib "freeimageplus" "$anArchIter"]
+    if { "$aFImageLibPath" == "" || "$aFImagePlusLibPath"  == "" } {
+      set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{freeimage}*] "$::VCVER" "$anArchIter" ]
+      set aFImageLibPath     [wokdep:SearchLib "freeimage"     "$anArchIter" "$aPath/lib"]
+      set aFImagePlusLibPath [wokdep:SearchLib "freeimageplus" "$anArchIter" "$aPath/lib"]
+      if { "$aFImageLibPath" != "" && "$aFImagePlusLibPath"  != "" } {
+        lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib"
+      } else {
+        set aFImageLibPath     [wokdep:SearchLib "freeimage"     "$anArchIter" "$aPath/$aFImageDist"]
+        set aFImagePlusLibPath [wokdep:SearchLib "freeimageplus" "$anArchIter" "$aPath/$aFImagePlusDist"]
+        if { "$aFImageLibPath" != "" && "$aFImagePlusLibPath"  != "" } {
+          lappend ::CSF_OPT_LIB$anArchIter "$aPath/$aFImageDist"
+          lappend ::CSF_OPT_LIB$anArchIter "$aPath/$aFImagePlusDist"
+        } else {
+          lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}freeimage.${::SYS_LIB_SUFFIX}' or '${::SYS_LIB_PREFIX}freeimageplus.${::SYS_LIB_SUFFIX}' not found (FreeImage)"
+          if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
+        }
+      }
+    }
+    if { "$::tcl_platform(platform)" == "windows" } {
+      set aFImageDllPath     [wokdep:SearchBin "freeimage.dll"     "$anArchIter"]
+      set aFImagePlusDllPath [wokdep:SearchBin "freeimageplus.dll" "$anArchIter"]
+      if { "$aFImageDllPath" == "" || "$aFImagePlusDllPath" == "" } {
+        set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{freeimage}*] "$::VCVER" "$anArchIter" ]
+        set aFImageDllPath     [wokdep:SearchBin "freeimage.dll"     "$anArchIter" "$aPath/bin"]
+        set aFImagePlusDllPath [wokdep:SearchBin "freeimageplus.dll" "$anArchIter" "$aPath/bin"]
+        if { "$aFImageDllPath" != "" && "$aFImagePlusDllPath" != "" } {
+          lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin"
+        } else {
+          set aFImageDllPath     [wokdep:SearchBin "freeimage.dll"     "$anArchIter" "$aPath/$aFImageDist"]
+          set aFImagePlusDllPath [wokdep:SearchBin "freeimageplus.dll" "$anArchIter" "$aPath/$aFImagePlusDist"]
+          if { "$aFImageDllPath" != "" && "$aFImagePlusDllPath" != "" } {
+            lappend ::CSF_OPT_BIN$anArchIter "$aPath/$aFImageDist"
+            lappend ::CSF_OPT_BIN$anArchIter "$aPath/$aFImagePlusDist"
+          } else {
+            lappend anErrBin$anArchIter "Error: 'freeimage.dll' or 'freeimageplus.dll' not found (FreeImage)"
+            if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
+          }
+        }
+      }
+    }
+  }
+
+  return "$isFound"
+}
+
+# Search GL2PS library placement
+proc wokdep:SearchGL2PS {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} {
+  upvar $theErrInc   anErrInc
+  upvar $theErrLib32 anErrLib32
+  upvar $theErrLib64 anErrLib64
+  upvar $theErrBin32 anErrBin32
+  upvar $theErrBin64 anErrBin64
+
+  set isFound "true"
+  set aGl2psHPath [wokdep:SearchHeader "gl2ps.h"]
+  if { "$aGl2psHPath"  == "" } {
+    set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{gl2ps}*] "$::VCVER" "$::ARCH" ]
+    if { "$aPath" != "" && [file exists "$aPath/include/gl2ps.h"] } {
+      lappend ::CSF_OPT_INC "$aPath/include"
+    } else {
+      lappend anErrInc "Error: 'gl2ps.h' not found (GL2PS)"
+      set isFound "false"
+    }
+  }
+
+  foreach anArchIter {64 32} {
+    set aGl2psLibPath [wokdep:SearchLib "gl2ps" "$anArchIter"]
+    if { "$aGl2psLibPath" == "" } {
+      set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{gl2ps}*] "$::VCVER" "$anArchIter" ]
+      set aGl2psLibPath [wokdep:SearchLib "gl2ps" "$anArchIter" "$aPath/lib"]
+      if { "$aGl2psLibPath" != "" } {
+        lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib"
+      } else {
+        lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}gl2ps.${::SYS_LIB_SUFFIX}' not found (GL2PS)"
+        if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
+      }
+    }
+    if { "$::tcl_platform(platform)" == "windows" } {
+      set aGl2psDllPath [wokdep:SearchBin "gl2ps.dll" "$anArchIter"]
+      if { "$aGl2psDllPath" == "" } {
+        set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{gl2ps}*] "$::VCVER" "$anArchIter" ]
+        set aGl2psDllPath [wokdep:SearchBin "gl2ps.dll" "$anArchIter" "$aPath/bin"]
+        if { "$aGl2psDllPath" != "" } {
+          lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin"
+        } else {
+          set aGl2psDllPath [wokdep:SearchBin "gl2ps.dll" "$anArchIter" "$aPath/lib"]
+          if { "$aGl2psDllPath" != "" } {
+            lappend ::CSF_OPT_BIN$anArchIter "$aPath/lib"
+          } else {
+            lappend anErrBin$anArchIter "Error: 'gl2ps.dll' not found (GL2PS)"
+            if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
+          }
+        }
+      }
+    }
+  }
+
+  return "$isFound"
+}
+
+# Search TBB library placement
+proc wokdep:SearchTBB {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} {
+  upvar $theErrInc   anErrInc
+  upvar $theErrLib32 anErrLib32
+  upvar $theErrLib64 anErrLib64
+  upvar $theErrBin32 anErrBin32
+  upvar $theErrBin64 anErrBin64
+
+  set isFound "true"
+  set aTbbHPath [wokdep:SearchHeader "tbb/scalable_allocator.h"]
+  if { "$aTbbHPath"  == "" } {
+    set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{tbb}*] "$::VCVER" "$::ARCH" ]
+    if { "$aPath" != "" && [file exists "$aPath/include/tbb/scalable_allocator.h"] } {
+      lappend ::CSF_OPT_INC "$aPath/include"
+    } else {
+      lappend anErrInc "Error: 'tbb/scalable_allocator.h' not found (Intel TBB)"
+      set isFound "false"
+    }
+  }
+
+  foreach anArchIter {64 32} {
+    set aSubDir "ia32"
+    if { "$anArchIter" == "64"} {
+      set aSubDir "intel64"
+    }
+
+    set aTbbLibPath [wokdep:SearchLib "tbb" "$anArchIter"]
+    if { "$aTbbLibPath" == "" } {
+      set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{tbb}*] "$::VCVER" "$anArchIter" ]
+      set aTbbLibPath [wokdep:SearchLib "tbb" "$anArchIter" "$aPath/lib/$aSubDir/${::VCVER}"]
+      if { "$aTbbLibPath" == "" } {
+        # Set the path to the TBB library for Linux
+        if { "$::tcl_platform(platform)" != "windows" } {
+          set aSubDir "$aSubDir/cc4.1.0_libc2.4_kernel2.6.16.21"
+        }
+        set aTbbLibPath [wokdep:SearchLib "tbb" "$anArchIter" "$aPath/lib/$aSubDir"]
+        if { "$aTbbLibPath" != "" } {
+          lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib/$aSubDir"
+        }
+      } else {
+        lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib/$aSubDir/${::VCVER}"
+      }
+      if { "$aTbbLibPath" == "" } {
+        lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}tbb.${::SYS_LIB_SUFFIX}' not found (Intel TBB)"
+        if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
+      }
+    }
+    if { "$::tcl_platform(platform)" == "windows" } {
+      set aTbbDllPath [wokdep:SearchBin "tbb.dll" "$anArchIter"]
+      if { "$aTbbDllPath" == "" } {
+        set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{tbb}*] "$::VCVER" "$anArchIter" ]
+        set aTbbDllPath [wokdep:SearchBin "tbb.dll" "$anArchIter" "$aPath/bin/$aSubDir/${::VCVER}"]
+        if { "$aTbbDllPath" != "" } {
+          lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin/$aSubDir/${::VCVER}"
+        } else {
+          lappend anErrBin$anArchIter "Error: 'tbb.dll' not found (Intel TBB)"
+          if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
+        }
+      }
+    }
+  }
+
+  return "$isFound"
+}
+
+# Search Qt4 libraries placement
+proc wokdep:SearchQt4 {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} {
+  upvar $theErrInc   anErrInc
+  upvar $theErrLib32 anErrLib32
+  upvar $theErrLib64 anErrLib64
+  upvar $theErrBin32 anErrBin32
+  upvar $theErrBin64 anErrBin64
+
+  set isFound "true"
+  set aQMsgBoxHPath [wokdep:SearchHeader "QtGui/qmessagebox.h"]
+  if { "$aQMsgBoxHPath" == "" } {
+    set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{qt4}*] "$::VCVER" "$::ARCH" ]
+    if { "$aPath" != "" && [file exists "$aPath/include/QtGui/qmessagebox.h"] } {
+      lappend ::CSF_OPT_INC "$aPath/include"
+      lappend ::CSF_OPT_INC "$aPath/include/Qt"
+      lappend ::CSF_OPT_INC "$aPath/include/QtGui"
+      lappend ::CSF_OPT_INC "$aPath/include/QtCore"
+    } else {
+      if { [file exists "/usr/include/qt4/QtGui/qmessagebox.h"] } {
+        lappend ::CSF_OPT_INC "/usr/include/qt4"
+        lappend ::CSF_OPT_INC "/usr/include/qt4/Qt"
+        lappend ::CSF_OPT_INC "/usr/include/qt4/QtGui"
+        lappend ::CSF_OPT_INC "/usr/include/qt4/QtCore"
+      } else {
+        lappend anErrInc "Error: 'QtGui/qmessagebox.h' not found (Qt4)"
+        set isFound "false"
+      }
+    }
+  }
+
+  set aQtGuiLibName "QtGui"
+  if { "$::tcl_platform(platform)" == "windows" } {
+    set aQtGuiLibName "QtGui4"
+  }
+
+  foreach anArchIter {64 32} {
+    set aQMsgBoxLibPath [wokdep:SearchLib "${aQtGuiLibName}" "$anArchIter"]
+    if { "$aQMsgBoxLibPath" == "" } {
+      set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{qt4}*] "$::VCVER" "$anArchIter" ]
+      set aQMsgBoxLibPath [wokdep:SearchLib "${aQtGuiLibName}" "$anArchIter" "$aPath/lib"]
+      if { "$aQMsgBoxLibPath" != "" } {
+        lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib"
+      } else {
+        lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}${aQtGuiLibName}.${::SYS_LIB_SUFFIX}' not found (Qt4)"
+        if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
+      }
+    }
+    if { "$::tcl_platform(platform)" == "windows" } {
+      set aQMsgBoxDllPath [wokdep:SearchBin "QtGui4.dll" "$anArchIter"]
+      if { "$aQMsgBoxDllPath" == "" } {
+        set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{qt4}*] "$::VCVER" "$anArchIter" ]
+        set aQMsgBoxDllPath [wokdep:SearchBin "QtGui4.dll" "$anArchIter" "$aPath/bin"]
+        if { "$aQMsgBoxDllPath" != "" } {
+          lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin"
+        } else {
+          lappend anErrBin$anArchIter "Error: 'QtGui4.dll' not found (Qt4)"
+          if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
+        }
+      }
+    }
+  }
+
+  return "$isFound"
+}
+
+# Search JDK placement
+proc wokdep:SearchJDK {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} {
+  upvar $theErrInc   anErrInc
+  upvar $theErrLib32 anErrLib32
+  upvar $theErrLib64 anErrLib64
+  upvar $theErrBin32 anErrBin32
+  upvar $theErrBin64 anErrBin64
+
+  set isFound "true"
+  set aJniHPath   [wokdep:SearchHeader "jni.h"]
+  set aJniMdHPath [wokdep:SearchHeader "jni_md.h"]
+  if { "$aJniHPath" == "" || "$aJniMdHPath" == "" } {
+    set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{jdk,java}*] "$::VCVER" "$::ARCH" ]
+    if { "$aPath" != "" && [file exists "$aPath/include/jni.h"] } {
+      lappend ::CSF_OPT_INC "$aPath/include"
+      if { "$::tcl_platform(platform)" == "windows" } {
+        lappend ::CSF_OPT_INC "$aPath/include/win32"
+      } elseif { [file exists "$aPath/include/linux"] } {
+        lappend ::CSF_OPT_INC "$aPath/include/linux"
+      }
+    } else {
+      if { [file exists "/System/Library/Frameworks/JavaVM.framework/Home/include/jni.h"] } {
+        lappend ::CSF_OPT_INC "/System/Library/Frameworks/JavaVM.framework/Home/include"
+      } else {
+        lappend anErrInc "Error: 'jni.h' or 'jni_md.h' not found (JDK)"
+        set isFound "false"
+      }
+    }
+  }
+
+  foreach anArchIter {64 32} {
+    set aJavacPath [wokdep:SearchBin "javac${::SYS_EXE_SUFFIX}" "$anArchIter"]
+    if { "$aJavacPath" == "" } {
+      set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{jdk,java}*] "$::VCVER" "$anArchIter" ]
+      set aJavacPath [wokdep:SearchBin "javac${::SYS_EXE_SUFFIX}" "$anArchIter" "$aPath/bin"]
+      if { "$aJavacPath" != "" } {
+        lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin"
+      } else {
+        if { "$::ARCH" == "$anArchIter" && [file exists "/System/Library/Frameworks/JavaVM.framework/Home/bin/javac${::SYS_EXE_SUFFIX}"] } {
+          lappend ::CSF_OPT_BIN$anArchIter "/System/Library/Frameworks/JavaVM.framework/Home/bin"
+        } else {
+          lappend anErrBin$anArchIter "Error: 'javac${::SYS_EXE_SUFFIX}' not found (JDK)"
+          if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
+        }
+      }
+    }
+  }
+
+  return "$isFound"
+}
+
+# Search X11 libraries placement
+proc wokdep:SearchX11 {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} {
+  upvar $theErrInc   anErrInc
+  upvar $theErrLib32 anErrLib32
+  upvar $theErrLib64 anErrLib64
+  upvar $theErrBin32 anErrBin32
+  upvar $theErrBin64 anErrBin64
+
+  set isFound "true"
+  if { "$::tcl_platform(platform)" == "windows" } {
+    return "$isFound"
+  }
+
+  set aXmuLibPath [wokdep:SearchLib "Xmu" "$::ARCH"]
+  if { "$aXmuLibPath" == "" } {
+    set aXmuLibPath [wokdep:SearchLib "Xmu" "$::ARCH" "/usr/X11/lib"]
+    if { "$aXmuLibPath" != "" } {
+      lappend ::CSF_OPT_LIB$::ARCH "/usr/X11/lib"
+    } else {
+      lappend anErrLib$::ARCH "Error: '${::SYS_LIB_PREFIX}Xmu.${::SYS_LIB_SUFFIX}' not found (X11)"
+      set isFound "false"
+    }
+  }
+
+  return "$isFound"
+}
+
+# Generate (override) custom environment file
+proc wokdep:SaveCustom {} {
+  if { "$::tcl_platform(platform)" == "windows" } {
+    set aCustomFilePath "$::env(WOKHOME)/site/custom.bat"
+    set aFile [open $aCustomFilePath "w"]
+    puts $aFile "@echo off"
+    puts $aFile "rem This environment file was generated by wok_depsgui.tcl script at [clock format [clock seconds] -format "%Y.%m.%d %H:%M"]"
+
+    puts $aFile ""
+    puts $aFile "set VCVER=$::VCVER"
+    puts $aFile "set ARCH=$::ARCH"
+    puts $aFile "set VCVARS=$::VCVARS"
+
+    puts $aFile ""
+    puts $aFile "set \"PRODUCTS_PATH=$::PRODUCTS_PATH\""
+
+    puts $aFile ""
+    puts $aFile "rem Optional 3rd-parties switches"
+    puts $aFile "set HAVE_FREEIMAGE=$::HAVE_FREEIMAGE"
+    puts $aFile "set HAVE_GL2PS=$::HAVE_GL2PS"
+    puts $aFile "set HAVE_TBB=$::HAVE_TBB"
+    puts $aFile "set CHECK_QT4=$::CHECK_QT4"
+    puts $aFile "set CHECK_JDK=$::CHECK_JDK"
+
+    set aStringInc [join $::CSF_OPT_INC $::SYS_PATH_SPLITTER]
+    puts $aFile ""
+    puts $aFile "rem Additional headers search paths"
+    puts $aFile "set \"CSF_OPT_INC=$aStringInc\""
+
+    set aStringLib32 [join $::CSF_OPT_LIB32 $::SYS_PATH_SPLITTER]
+    puts $aFile ""
+    puts $aFile "rem Additional libraries (32-bit) search paths"
+    puts $aFile "set \"CSF_OPT_LIB32=$aStringLib32\""
+
+    set aStringLib64 [join $::CSF_OPT_LIB64 $::SYS_PATH_SPLITTER]
+    puts $aFile ""
+    puts $aFile "rem Additional libraries (64-bit) search paths"
+    puts $aFile "set \"CSF_OPT_LIB64=$aStringLib64\""
+
+    set aStringBin32 [join $::CSF_OPT_BIN32 $::SYS_PATH_SPLITTER]
+    puts $aFile ""
+    puts $aFile "rem Additional (32-bit) search paths"
+    puts $aFile "set \"CSF_OPT_BIN32=$aStringBin32\""
+
+    set aStringBin64 [join $::CSF_OPT_BIN64 $::SYS_PATH_SPLITTER]
+    puts $aFile ""
+    puts $aFile "rem Additional (64-bit) search paths"
+    puts $aFile "set \"CSF_OPT_BIN64=$aStringBin64\""
+
+    close $aFile
+  } else {
+    set aCustomFilePath "$::env(WOKHOME)/site/custom.sh"
+    set aFile [open $aCustomFilePath "w"]
+    puts $aFile "#!/bin/bash"
+    puts $aFile "# This environment file was generated by wok_depsgui.tcl script at [clock format [clock seconds] -format "%Y.%m.%d %H:%M"]"
+
+    #puts $aFile ""
+    #puts $aFile "export ARCH=$::ARCH"
+
+    puts $aFile ""
+    puts $aFile "export PRODUCTS_PATH=\"$::PRODUCTS_PATH\""
+
+    puts $aFile ""
+    puts $aFile "# Optional 3rd-parties switches"
+    puts $aFile "export HAVE_FREEIMAGE=$::HAVE_FREEIMAGE"
+    puts $aFile "export HAVE_GL2PS=$::HAVE_GL2PS"
+    puts $aFile "export HAVE_TBB=$::HAVE_TBB"
+    puts $aFile "export CHECK_QT4=$::CHECK_QT4"
+    puts $aFile "export CHECK_JDK=$::CHECK_JDK"
+
+    set aStringInc [join $::CSF_OPT_INC $::SYS_PATH_SPLITTER]
+    puts $aFile ""
+    puts $aFile "# Additional headers search paths"
+    puts $aFile "export CSF_OPT_INC=\"$aStringInc\""
+
+    set aStringLib$::ARCH [join [set ::CSF_OPT_LIB$::ARCH] $::SYS_PATH_SPLITTER]
+    puts $aFile ""
+    puts $aFile "# Additional libraries ($::ARCH-bit) search paths"
+    puts $aFile "export CSF_OPT_LIB$::ARCH=\"[set aStringLib$::ARCH]\""
+
+    set aStringBin$::ARCH [join [set ::CSF_OPT_BIN$::ARCH] $::SYS_PATH_SPLITTER]
+    puts $aFile ""
+    puts $aFile "# Additional ($::ARCH-bit) search paths"
+    puts $aFile "export CSF_OPT_BIN$::ARCH=\"[set aStringBin$::ARCH]\""
+
+    close $aFile
+  }
+
+  puts "Configuration saved to file '$aCustomFilePath'"
+}
diff --git a/src/WOKsite/wok_depsgui.tcl b/src/WOKsite/wok_depsgui.tcl
new file mode 100644 (file)
index 0000000..0b74969
--- /dev/null
@@ -0,0 +1,471 @@
+#!/usr/bin/wish
+
+# Created on: 2012-01-26
+# Created by: Kirill GAVRILOV
+# Copyright (c) 2012 OPEN CASCADE SAS
+
+package require Tk
+
+source "$::env(WOKHOME)/site/wok_deps.tcl"
+
+set aRowIter 0
+frame .myFrame -padx 5 -pady 5
+pack  .myFrame -fill both -expand 1
+
+set SYS_VS_LIST {}
+set SYS_VC_LIST {}
+set SYS_VCVARS_LIST {}
+
+# detect installed Visual Studio instances from global environment
+if { [info exists ::env(VS110COMNTOOLS)] } {
+  lappend ::SYS_VS_LIST "Visual Studio 201x (vc11)"
+  lappend ::SYS_VC_LIST "vc11"
+  lappend ::SYS_VCVARS_LIST "%VS110COMNTOOLS%..\\..\\VC\\vcvarsall.bat"
+}
+if { [info exists ::env(VS100COMNTOOLS)] } {
+  lappend ::SYS_VS_LIST "Visual Studio 2010 (vc10)"
+  lappend ::SYS_VC_LIST "vc10"
+  lappend ::SYS_VCVARS_LIST "%VS100COMNTOOLS%..\\..\\VC\\vcvarsall.bat"
+}
+if { [info exists ::env(VS90COMNTOOLS)] } {
+  lappend ::SYS_VS_LIST "Visual Studio 2008 (vc9)"
+  lappend ::SYS_VC_LIST "vc9"
+  lappend ::SYS_VCVARS_LIST "%VS90COMNTOOLS%..\\..\\VC\\vcvarsall.bat"
+}
+if { [info exists ::env(VS80COMNTOOLS)] } {
+  lappend ::SYS_VS_LIST "Visual Studio 2005 (vc8)"
+  lappend ::SYS_VC_LIST "vc8"
+  lappend ::SYS_VCVARS_LIST "%VS80COMNTOOLS%..\\..\\VC\\vcvarsall.bat"
+}
+lappend ::SYS_VS_LIST "Custom"
+lappend ::SYS_VC_LIST "vcX"
+lappend ::SYS_VCVARS_LIST "%VSXXCOMNTOOLS%..\\..\\VC\\vcvarsall.bat"
+
+set aVcVerIndex [lsearch $::SYS_VC_LIST $::VCVER]
+set ::VSVER  [lindex $::SYS_VS_LIST     $aVcVerIndex]
+if { "$::VCVARS" == "" } {
+  set ::VCVARS [lindex $::SYS_VCVARS_LIST $aVcVerIndex]
+}
+
+proc wokdep:gui:Close {} {
+  # if changed ask
+  exit
+}
+
+proc wokdep:gui:SwitchConfig {} {
+  set ::VCVER  [lindex $::SYS_VC_LIST     [.myFrame.myVsCombo current]]
+  set ::VCVARS [lindex $::SYS_VCVARS_LIST [.myFrame.myVsCombo current]]
+}
+
+proc wokdep:gui:SwitchArch {} {
+  if { "$::ARCH" == "32" } {
+    wokdep:gui:Show32Bitness ::aRowIter
+  }
+  if { "$::ARCH" == "64" } {
+    wokdep:gui:Show64Bitness ::aRowIter
+  }
+
+  if { [llength [grid info .myFrame.mySave]] != 0 } {
+    grid forget .myFrame.mySave .myFrame.myClose
+  }
+
+  # Bottom section
+  grid .myFrame.mySave  -row $::aRowIter -column 4 -columnspan 2
+  grid .myFrame.myClose -row $::aRowIter -column 6 -columnspan 2
+}
+
+proc wokdep:gui:UpdateList {} {
+  set anIncErrs   {}
+  set anLib32Errs {}
+  set anLib64Errs {}
+  set anBin32Errs {}
+  set anBin64Errs {}
+  wokdep:SearchTclTk     anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
+  wokdep:SearchFreeType  anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
+  wokdep:SearchFTGL      anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
+  wokdep:SearchX11       anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
+  if { "$::HAVE_FREEIMAGE" == "true" } {
+    wokdep:SearchFreeImage anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
+  }
+  if { "$::HAVE_GL2PS" == "true" } {
+    wokdep:SearchGL2PS   anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
+  }
+  if { "$::HAVE_TBB" == "true" } {
+    wokdep:SearchTBB     anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
+  }
+  if { "$::CHECK_QT4" == "true" } {
+    wokdep:SearchQt4     anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
+  }
+  if { "$::CHECK_JDK" == "true" } {
+    wokdep:SearchJDK     anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
+  }
+
+  .myFrame.myIncErrLbl   configure -text [join $anIncErrs   "\n"]
+  .myFrame.myLib32ErrLbl configure -text [join $anLib32Errs "\n"]
+  .myFrame.myLib64ErrLbl configure -text [join $anLib64Errs "\n"]
+  .myFrame.myBin32ErrLbl configure -text [join $anBin32Errs "\n"]
+  .myFrame.myBin64ErrLbl configure -text [join $anBin64Errs "\n"]
+}
+
+proc wokdep:gui:BrowseVcVars {} {
+  set aResult [tk_chooseDirectory -initialdir $::VCVARS -title "Choose a directory"]
+  if { "$aResult" != "" } {
+    set ::VCVARS $aResult
+  }
+}
+
+proc wokdep:gui:BrowsePartiesRoot {} {
+  set aResult [tk_chooseDirectory -initialdir $::PRODUCTS_PATH -title "Choose a directory"]
+  if { "$aResult" != "" } {
+    set ::PRODUCTS_PATH $aResult
+    wokdep:gui:UpdateList
+  }
+}
+
+proc wokdep:gui:AddIncPath {} {
+  set aResult [tk_chooseDirectory -title "Choose a directory"]
+  if { "$aResult" != "" } {
+    lappend ::CSF_OPT_INC "$aResult"
+    wokdep:gui:UpdateList
+  }
+}
+
+proc wokdep:gui:AddLib32Path {} {
+  set aResult [tk_chooseDirectory -title "Choose a directory"]
+  if { "$aResult" != "" } {
+    lappend ::CSF_OPT_LIB32 "$aResult"
+    wokdep:gui:UpdateList
+  }
+}
+
+proc wokdep:gui:AddLib64Path {} {
+  set aResult [tk_chooseDirectory -title "Choose a directory"]
+  if { "$aResult" != "" } {
+    lappend ::CSF_OPT_LIB64 "$aResult"
+    wokdep:gui:UpdateList
+  }
+}
+
+proc wokdep:gui:AddBin32Path {} {
+  set aResult [tk_chooseDirectory -title "Choose a directory"]
+  if { "$aResult" != "" } {
+    lappend ::CSF_OPT_BIN32 "$aResult"
+    wokdep:gui:UpdateList
+  }
+}
+
+proc wokdep:gui:AddBin64Path {} {
+  set aResult [tk_chooseDirectory -title "Choose a directory"]
+  if { "$aResult" != "" } {
+    lappend ::CSF_OPT_BIN64 "$aResult"
+    wokdep:gui:UpdateList
+  }
+}
+
+proc wokdep:gui:RemoveIncPath {} {
+  set aSelIndices [.myFrame.myIncList curselection]
+  if { [llength $aSelIndices] != 0 } {
+    .myFrame.myIncList delete [lindex $aSelIndices 0]
+  }
+  wokdep:gui:UpdateList
+}
+
+proc wokdep:gui:RemoveLib32Path {} {
+  set aSelIndices [.myFrame.myLib32List curselection]
+  if { [llength $aSelIndices] != 0 } {
+    .myFrame.myLib32List delete [lindex $aSelIndices 0]
+  }
+  wokdep:gui:UpdateList
+}
+
+proc wokdep:gui:RemoveLib64Path {} {
+  set aSelIndices [.myFrame.myLib64List curselection]
+  if { [llength $aSelIndices] != 0 } {
+    .myFrame.myLib64List delete [lindex $aSelIndices 0]
+  }
+  wokdep:gui:UpdateList
+}
+
+proc wokdep:gui:RemoveBin32Path {} {
+  set aSelIndices [.myFrame.myBin32List curselection]
+  if { [llength $aSelIndices] != 0 } {
+    .myFrame.myBin32List delete [lindex $aSelIndices 0]
+  }
+  wokdep:gui:UpdateList
+}
+
+proc wokdep:gui:RemoveBin64Path {} {
+  set aSelIndices [.myFrame.myBin64List curselection]
+  if { [llength $aSelIndices] != 0 } {
+    .myFrame.myBin64List delete [lindex $aSelIndices 0]
+  }
+  wokdep:gui:UpdateList
+}
+
+proc wokdep:gui:ResetIncPath {} {
+  set ::CSF_OPT_INC {}
+  wokdep:gui:UpdateList
+}
+
+proc wokdep:gui:ResetLib32Path {} {
+  set ::CSF_OPT_LIB32 {}
+  wokdep:gui:UpdateList
+}
+
+proc wokdep:gui:ResetLib64Path {} {
+  set ::CSF_OPT_LIB64 {}
+  wokdep:gui:UpdateList
+}
+
+proc wokdep:gui:ResetBin32Path {} {
+  set ::CSF_OPT_BIN32 {}
+  wokdep:gui:UpdateList
+}
+
+proc wokdep:gui:ResetBin64Path {} {
+  set ::CSF_OPT_BIN64 {}
+  wokdep:gui:UpdateList
+}
+
+proc wokdep:gui:Show32Bitness { theRowIter } {
+  upvar $theRowIter aRowIter
+
+  if { [llength [grid info .myFrame.myLib64Lbl]] != 0 } {
+    grid forget .myFrame.myLib64Lbl .myFrame.myLib64List   .myFrame.myLib64Scrl
+    grid forget .myFrame.myLib64Add .myFrame.myLib64Remove .myFrame.myLib64Clear .myFrame.myLib64ErrLbl
+    grid forget .myFrame.myBin64Lbl .myFrame.myBin64List   .myFrame.myBin64Scrl
+    grid forget .myFrame.myBin64Add .myFrame.myBin64Remove .myFrame.myBin64Clear .myFrame.myBin64ErrLbl
+  }
+
+  # Additional libraries (32-bit) search paths
+  grid .myFrame.myLib32Lbl    -row $aRowIter -column 0 -columnspan 10 -sticky w
+  incr aRowIter
+  grid .myFrame.myLib32List   -row $aRowIter -column 0 -rowspan 4 -columnspan 5
+  grid .myFrame.myLib32Scrl   -row $aRowIter -column 5 -rowspan 4
+  grid .myFrame.myLib32Add    -row $aRowIter -column 6
+  incr aRowIter
+  #grid .myFrame.myLib32Edit   -row $aRowIter -column 6
+  incr aRowIter
+  grid .myFrame.myLib32Remove -row $aRowIter -column 6
+  incr aRowIter
+  grid .myFrame.myLib32Clear  -row $aRowIter -column 6
+  incr aRowIter
+  grid .myFrame.myLib32ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w
+  incr aRowIter
+
+  # Additional executables (32-bit) search paths
+  grid .myFrame.myBin32Lbl    -row $aRowIter -column 0 -columnspan 10 -sticky w
+  incr aRowIter
+  grid .myFrame.myBin32List   -row $aRowIter -column 0 -rowspan 4 -columnspan 5
+  grid .myFrame.myBin32Scrl   -row $aRowIter -column 5 -rowspan 4
+  grid .myFrame.myBin32Add    -row $aRowIter -column 6
+  incr aRowIter
+  #grid .myFrame.myBin32Edit   -row $aRowIter -column 6
+  incr aRowIter
+  grid .myFrame.myBin32Remove -row $aRowIter -column 6
+  incr aRowIter
+  grid .myFrame.myBin32Clear  -row $aRowIter -column 6
+  incr aRowIter
+  grid .myFrame.myBin32ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w
+  incr aRowIter
+}
+
+proc wokdep:gui:Show64Bitness { theRowIter } {
+  upvar $theRowIter aRowIter
+
+  if { [llength [grid info .myFrame.myLib32Lbl]] != 0 } {
+    grid forget .myFrame.myLib32Lbl .myFrame.myLib32List   .myFrame.myLib32Scrl
+    grid forget .myFrame.myLib32Add .myFrame.myLib32Remove .myFrame.myLib32Clear .myFrame.myLib32ErrLbl
+    grid forget .myFrame.myBin32Lbl .myFrame.myBin32List   .myFrame.myBin32Scrl
+    grid forget .myFrame.myBin32Add .myFrame.myBin32Remove .myFrame.myBin32Clear .myFrame.myBin32ErrLbl
+  }
+
+  # Additional libraries (64-bit) search paths
+  grid .myFrame.myLib64Lbl    -row $aRowIter -column 0 -columnspan 10 -sticky w
+  incr aRowIter
+  grid .myFrame.myLib64List   -row $aRowIter -column 0 -rowspan 4 -columnspan 5
+  grid .myFrame.myLib64Scrl   -row $aRowIter -column 5 -rowspan 4
+  grid .myFrame.myLib64Add    -row $aRowIter -column 6
+  incr aRowIter
+  #grid .myFrame.myLib64Edit   -row $aRowIter -column 6
+  incr aRowIter
+  grid .myFrame.myLib64Remove -row $aRowIter -column 6
+  incr aRowIter
+  grid .myFrame.myLib64Clear  -row $aRowIter -column 6
+  incr aRowIter
+  grid .myFrame.myLib64ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w
+  incr aRowIter
+
+  # Additional executables (64-bit) search paths
+  grid .myFrame.myBin64Lbl    -row $aRowIter -column 0 -columnspan 10 -sticky w
+  incr aRowIter
+  grid .myFrame.myBin64List   -row $aRowIter -column 0 -rowspan 4 -columnspan 5
+  grid .myFrame.myBin64Scrl   -row $aRowIter -column 5 -rowspan 4
+  grid .myFrame.myBin64Add    -row $aRowIter -column 6
+  incr aRowIter
+  #grid .myFrame.myBin64Edit   -row $aRowIter -column 6
+  incr aRowIter
+  grid .myFrame.myBin64Remove -row $aRowIter -column 6
+  incr aRowIter
+  grid .myFrame.myBin64Clear  -row $aRowIter -column 6
+  incr aRowIter
+  grid .myFrame.myBin64ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w
+  incr aRowIter
+}
+
+# Header
+ttk::label    .myFrame.myVsLbl       -text "Visual Studio configuration" -relief solid -padding {5 5 80 5}
+ttk::combobox .myFrame.myVsCombo     -values $SYS_VS_LIST -state readonly -textvariable VSVER -width 30
+ttk::combobox .myFrame.myArchCombo   -values { {32} {64} } -textvariable ARCH -state readonly -width 6
+entry         .myFrame.myVcEntry     -textvariable VCVER  -width 6
+entry         .myFrame.myVcVarsEntry -textvariable VCVARS -width 70
+ttk::button   .myFrame.myVcBrowseBtn -text "Browse" -command wokdep:gui:BrowseVcVars
+
+#
+ttk::label    .myFrame.mySrchLbl       -text "3rd-parties search path" -relief solid -padding {5 5 80 5}
+entry         .myFrame.mySrchEntry     -textvariable PRODUCTS_PATH -width 80
+ttk::button   .myFrame.mySrchBrowseBtn -text "Browse" -command wokdep:gui:BrowsePartiesRoot
+checkbutton   .myFrame.myFImageCheck   -offvalue "false" -onvalue "true" -variable HAVE_FREEIMAGE -command wokdep:gui:UpdateList
+ttk::label    .myFrame.myFImageLbl     -text "Use FreeImage"
+checkbutton   .myFrame.myGl2psCheck    -offvalue "false" -onvalue "true" -variable HAVE_GL2PS     -command wokdep:gui:UpdateList
+ttk::label    .myFrame.myGl2psLbl      -text "Use GL2PS"
+checkbutton   .myFrame.myTbbCheck      -offvalue "false" -onvalue "true" -variable HAVE_TBB       -command wokdep:gui:UpdateList
+ttk::label    .myFrame.myTbbLbl        -text "Use Intel TBB"
+checkbutton   .myFrame.myQt4Check      -offvalue "false" -onvalue "true" -variable CHECK_QT4      -command wokdep:gui:UpdateList
+ttk::label    .myFrame.myQt4Lbl        -text "Search Qt4"
+checkbutton   .myFrame.myJDKCheck      -offvalue "false" -onvalue "true" -variable CHECK_JDK      -command wokdep:gui:UpdateList
+ttk::label    .myFrame.myJDKLbl        -text "Search JDK"
+
+# Additional headers search paths
+ttk::label    .myFrame.myIncLbl    -text "Additional headers search paths" -relief solid -padding {5 5 80 5}
+scrollbar     .myFrame.myIncScrl   -command ".myFrame.myIncList yview"
+listbox       .myFrame.myIncList   -listvariable CSF_OPT_INC -width 80 -height 5 -yscrollcommand ".myFrame.myIncScrl set"
+ttk::button   .myFrame.myIncAdd    -text "Add"     -command wokdep:gui:AddIncPath
+ttk::button   .myFrame.myIncEdit   -text "Edit"
+ttk::button   .myFrame.myIncRemove -text "Remove"  -command wokdep:gui:RemoveIncPath
+ttk::button   .myFrame.myIncClear  -text "Reset"   -command wokdep:gui:ResetIncPath
+ttk::label    .myFrame.myIncErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
+
+# Additional libraries (32-bit) search paths
+ttk::label    .myFrame.myLib32Lbl    -text "Additional libraries (32-bit) search paths" -relief solid -padding {5 5 80 5}
+scrollbar     .myFrame.myLib32Scrl   -command ".myFrame.myLib32List yview"
+listbox       .myFrame.myLib32List   -listvariable CSF_OPT_LIB32 -width 80 -height 5 -yscrollcommand ".myFrame.myLib32Scrl set"
+ttk::button   .myFrame.myLib32Add    -text "Add"     -command wokdep:gui:AddLib32Path
+ttk::button   .myFrame.myLib32Edit   -text "Edit"
+ttk::button   .myFrame.myLib32Remove -text "Remove"  -command wokdep:gui:RemoveLib32Path
+ttk::button   .myFrame.myLib32Clear  -text "Reset"   -command wokdep:gui:ResetLib32Path
+ttk::label    .myFrame.myLib32ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
+
+# Additional libraries (64-bit) search paths
+ttk::label    .myFrame.myLib64Lbl    -text "Additional libraries (64-bit) search paths" -relief solid -padding {5 5 80 5}
+scrollbar     .myFrame.myLib64Scrl   -command ".myFrame.myLib64List yview"
+listbox       .myFrame.myLib64List   -listvariable CSF_OPT_LIB64 -width 80 -height 5 -yscrollcommand ".myFrame.myLib64Scrl set"
+ttk::button   .myFrame.myLib64Add    -text "Add"     -command wokdep:gui:AddLib64Path
+ttk::button   .myFrame.myLib64Edit   -text "Edit"
+ttk::button   .myFrame.myLib64Remove -text "Remove"  -command wokdep:gui:RemoveLib64Path
+ttk::button   .myFrame.myLib64Clear  -text "Reset"   -command wokdep:gui:ResetLib64Path
+ttk::label    .myFrame.myLib64ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
+
+# Additional executables (32-bit) search paths
+ttk::label    .myFrame.myBin32Lbl    -text "Additional executables (32-bit) search paths" -relief solid -padding {5 5 80 5}
+scrollbar     .myFrame.myBin32Scrl   -command ".myFrame.myBin32List yview"
+listbox       .myFrame.myBin32List   -listvariable CSF_OPT_BIN32 -width 80 -height 5 -yscrollcommand ".myFrame.myBin32Scrl set"
+ttk::button   .myFrame.myBin32Add    -text "Add"     -command wokdep:gui:AddBin32Path
+ttk::button   .myFrame.myBin32Edit   -text "Edit"
+ttk::button   .myFrame.myBin32Remove -text "Remove"  -command wokdep:gui:RemoveBin32Path
+ttk::button   .myFrame.myBin32Clear  -text "Reset"   -command wokdep:gui:ResetBin32Path
+ttk::label    .myFrame.myBin32ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
+
+# Additional executables (64-bit) search paths
+ttk::label    .myFrame.myBin64Lbl    -text "Additional executables (64-bit) search paths" -relief solid -padding {5 5 80 5}
+scrollbar     .myFrame.myBin64Scrl   -command ".myFrame.myBin64List yview"
+listbox       .myFrame.myBin64List   -listvariable CSF_OPT_BIN64 -width 80 -height 5 -yscrollcommand ".myFrame.myBin64Scrl set"
+ttk::button   .myFrame.myBin64Add    -text "Add"     -command wokdep:gui:AddBin64Path
+ttk::button   .myFrame.myBin64Edit   -text "Edit"
+ttk::button   .myFrame.myBin64Remove -text "Remove"  -command wokdep:gui:RemoveBin64Path
+ttk::button   .myFrame.myBin64Clear  -text "Reset"   -command wokdep:gui:ResetBin64Path
+ttk::label    .myFrame.myBin64ErrLbl -text "Error: " -foreground red -padding {5 5 5 5}
+
+# Bottom
+ttk::button   .myFrame.mySave  -text "Save"  -command wokdep:SaveCustom
+ttk::button   .myFrame.myClose -text "Close" -command wokdep:gui:Close
+
+# Create grid
+# Header
+if { "$tcl_platform(platform)" == "windows" } {
+  grid .myFrame.myVsLbl       -row $aRowIter -column 0 -columnspan 10 -sticky w
+  incr aRowIter
+  grid .myFrame.myVsCombo     -row $aRowIter -column 0 -columnspan 2 -sticky w
+  grid .myFrame.myArchCombo   -row $aRowIter -column 2 -sticky w
+  incr aRowIter
+  grid .myFrame.myVcEntry     -row $aRowIter -column 0
+  grid .myFrame.myVcVarsEntry -row $aRowIter -column 1 -columnspan 4 -sticky w
+  grid .myFrame.myVcBrowseBtn -row $aRowIter -column 6
+  incr aRowIter
+}
+
+#
+grid .myFrame.mySrchLbl       -row $aRowIter -column 0 -columnspan 10 -sticky w
+incr aRowIter
+grid .myFrame.mySrchEntry     -row $aRowIter -column 0 -columnspan 5
+grid .myFrame.mySrchBrowseBtn -row $aRowIter -column 6
+incr aRowIter
+grid .myFrame.myFImageCheck   -row $aRowIter -column 0 -sticky e
+grid .myFrame.myFImageLbl     -row $aRowIter -column 1 -sticky w
+grid .myFrame.myQt4Check      -row $aRowIter -column 2 -sticky e
+grid .myFrame.myQt4Lbl        -row $aRowIter -column 3 -sticky w
+incr aRowIter
+grid .myFrame.myGl2psCheck    -row $aRowIter -column 0 -sticky e
+grid .myFrame.myGl2psLbl      -row $aRowIter -column 1 -sticky w
+grid .myFrame.myJDKCheck      -row $aRowIter -column 2 -sticky e
+grid .myFrame.myJDKLbl        -row $aRowIter -column 3 -sticky w
+incr aRowIter
+grid .myFrame.myTbbCheck      -row $aRowIter -column 0 -sticky e
+grid .myFrame.myTbbLbl        -row $aRowIter -column 1 -sticky w
+incr aRowIter
+
+# Additional headers search paths
+grid .myFrame.myIncLbl    -row $aRowIter -column 0 -columnspan 10 -sticky w
+incr aRowIter
+grid .myFrame.myIncList   -row $aRowIter -column 0 -rowspan 4 -columnspan 5
+grid .myFrame.myIncScrl   -row $aRowIter -column 5 -rowspan 4
+grid .myFrame.myIncAdd    -row $aRowIter -column 6
+incr aRowIter
+#grid .myFrame.myIncEdit   -row $aRowIter -column 6
+incr aRowIter
+grid .myFrame.myIncRemove -row $aRowIter -column 6
+incr aRowIter
+grid .myFrame.myIncClear  -row $aRowIter -column 6
+incr aRowIter
+grid .myFrame.myIncErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w
+incr aRowIter
+
+# Additional 32-bit search paths
+if { "$ARCH" == "32" } {
+  wokdep:gui:Show32Bitness aRowIter
+}
+
+# Additional 64-bit search paths
+if { "$ARCH" == "64" } {
+  wokdep:gui:Show64Bitness aRowIter
+}
+
+# Bottom section
+grid .myFrame.mySave  -row $aRowIter -column 4 -columnspan 2
+grid .myFrame.myClose -row $aRowIter -column 6 -columnspan 2
+
+# Bind events
+bind .myFrame.myVsCombo <<ComboboxSelected>> {
+  wokdep:gui:SwitchConfig
+}
+bind .myFrame.myArchCombo <<ComboboxSelected>> {
+  wokdep:gui:SwitchArch
+}
+
+.myFrame.mySrchEntry configure -validate all -validatecommand {
+  #return [file exists "$::PRODUCTS_PATH"]
+  wokdep:gui:UpdateList
+  return 1
+}
+
+wokdep:gui:UpdateList
diff --git a/src/WOKsite/wok_env.bat b/src/WOKsite/wok_env.bat
new file mode 100644 (file)
index 0000000..939d03b
--- /dev/null
@@ -0,0 +1,81 @@
+@echo off
+
+rem This file setup WOK environment.
+rem Notice that usually you shouldn't modify this file.
+rem To override some settings create/edit 'custom.bat' file
+rem within the same directory.
+
+rem ----- Reset environment variables -----
+if ["%PATH_BACK%"] == [""] set "PATH_BACK=%PATH%"
+rem set "PATH=%PATH_BACK%"
+set "VCVER=vc8"
+set "ARCH=32"
+set "PATH=%SYSTEMROOT%\system32;%SYSTEMROOT%"
+set "INCLUDE="
+set "LIB="
+set "DevEnvDir="
+set "HAVE_TBB=false"
+set "HAVE_FREEIMAGE=false"
+set "HAVE_GL2PS=false"
+set "VCVARS="
+
+rem ----- Set local settings (M$ Visual Studio compilers etc.) -----
+if exist %~dp0custom.bat (
+  call %~dp0custom.bat %1 %2 %3 %4 %5
+)
+
+set "PRODUCTS_DEFINES="
+if ["%HAVE_TBB%"]       == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_TBB"
+if ["%HAVE_GL2PS%"]     == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_GL2PS"
+if ["%HAVE_FREEIMAGE%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_FREEIMAGE"
+
+rem ----- Setup Environment Variables for M$ Visual Studio compilers -----
+if ["%ARCH%"] == ["32"] set VCARCH=x86
+if ["%ARCH%"] == ["64"] set VCARCH=amd64
+
+if not ["%VCVARS%"] == [""] (
+  call "%VCVARS%" %VCARCH%
+) else if ["%DevEnvDir%"] == [""] if not ["%VS100COMNTOOLS%"] == [""] (
+  call "%VS100COMNTOOLS%..\..\VC\vcvarsall.bat" %VCARCH%
+  set VCVER=vc10
+) else if ["%DevEnvDir%"] == [""] if not ["%VS90COMNTOOLS%"] == [""] (
+  call "%VS90COMNTOOLS%..\..\VC\vcvarsall.bat" %VCARCH%
+  set VCVER=vc9
+) else if ["%DevEnvDir%"] == [""] if not ["%VS80COMNTOOLS%"] == [""] (
+  call "%VS80COMNTOOLS%..\..\VC\vcvarsall.bat" %VCARCH%
+  set VCVER=vc8
+)
+
+rem ----- 3rd-parties root -----
+if ["%PRODUCTS_PATH%"]  == [""] set PRODUCTS_PATH=G:/occt-3rdparty/occt650products/
+
+rem ----- Define WOK root -----
+set "WOKHOME=%~dp0.."
+rem Stupid TCL needs Unish paths
+set "WOKHOME=%WOKHOME:\=/%"
+set "HOME=%WOKHOME%/home"
+
+rem ----- Setup Environment Variables for WOK -----
+set "WOK_ROOTADMDIR=%WOKHOME%/wok_entities"
+set "WOKSTATION=wnt"
+set "WOK_LIBRARY=%WOKHOME%/lib"
+set "WOK_LIBPATH=%WOK_LIBRARY%;%WOK_LIBRARY%/%WOKSTATION%"
+set "WOKSITE=%WOKHOME%/site"
+set "WOK_SESSIONID=%HOME%"
+
+rem ----- Setup Environment Variables for TCL/TK -----
+set "TCLHOME=%WOKHOME%/3rdparty/win32/tcltk"
+set "TCLBIN=%TCLHOME%/bin"
+set "TCLLIB=%TCLHOME%/lib"
+set "TCL_LIBRARY=%TCLLIB%/tcl8.5"
+set "TK_LIBRARY=%TCLLIB%/tk8.5"
+rem set "TCLX_LIBRARY=%TCLLIB%/teapot/package/win32-ix86/lib/tclx8.4"
+rem set "TCLLIBPATH=%TCLBIN% %TCLLIB% %TCL_LIBRARY% %TK_LIBRARY% %TCLX_LIBRARY%"
+set "TCLLIBPATH=%TCLBIN% %TCLLIB% %TCL_LIBRARY% %TK_LIBRARY%"
+
+rem ----- Setup additional variables -----
+rem set "TCL_RCFILE=%HOME%/tclshrc.tcl"
+set "BISON_SIMPLE=%WOKHOME%/3rdparty/win32/codegen/bison.simple"
+
+rem ----- Setup Environment Variable PATH -----
+set "PATH=%WOK_LIBPATH%;%WOKHOME%/3rdparty/win32/codegen;%WOKHOME%/3rdparty/win32/utils;%TCLHOME%/bin;%TCLHOME%/lib;%WOKHOME%/3rdparty/win32/perl/bin;%PATH%"
diff --git a/src/WOKsite/wok_env.sh b/src/WOKsite/wok_env.sh
new file mode 100644 (file)
index 0000000..816b0ac
--- /dev/null
@@ -0,0 +1,90 @@
+#!/bin/bash
+
+# This file setup WOK environment.
+# Notice that usually you shouldn't modify this file.
+# To override some settings create/edit 'custom.sh' file
+# within the same directory.
+
+# go to the script directory
+aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD";
+
+# ----- Reset environment variables -----
+if [ "$PATH_BACK" == "" ]; then
+  export PATH_BACK="$PATH";
+  export LD_PATH_BACK="$LD_LIBRARY_PATH";
+  export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH";
+fi
+
+export TCLSH_EXE="tclsh8.5"
+export PATH="$PATH_BACK";
+export LD_LIBRARY_PATH="$LD_PATH_BACK";
+export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH";
+export CPATH="";
+export LIBRARY_PATH="";
+export HAVE_TBB="false";
+export HAVE_FREEIMAGE="false";
+export HAVE_GL2PS="false";
+export PRODUCTS_DEFINES="";
+
+# ----- Set local settings -----
+if [ -e "${aScriptPath}/custom.sh" ]; then
+  source "${aScriptPath}/custom.sh"
+fi
+
+if [ "$HAVE_TBB"       == "true" ]; then
+  export PRODUCTS_DEFINES="$PRODUCTS_DEFINES -DHAVE_TBB";
+fi
+if [ "$HAVE_GL2PS"     == "true" ]; then
+  export PRODUCTS_DEFINES="$PRODUCTS_DEFINES -DHAVE_GL2PS";
+fi
+if [ "$HAVE_FREEIMAGE" == "true" ]; then
+  export PRODUCTS_DEFINES="$PRODUCTS_DEFINES -DHAVE_FREEIMAGE";
+fi
+
+# ----- Setup Environment Variables -----
+anArch=`uname -m`
+if [ "$anArch" != "x86_64" ] && [ "$anArch" != "ia64" ]; then
+  export ARCH="32";
+else
+  export ARCH="64";
+fi
+
+aSystem=`uname -s`
+if [ "$aSystem" == "Darwin" ]; then
+  export WOKSTATION="mac";
+  export ARCH="64";
+else
+  export WOKSTATION="lin";
+fi
+
+# ----- Define WOK root -----
+export WOKHOME="${aScriptPath}/..";
+if [ "$HOME" != "$WOKHOME/home" ]; then
+  # to pass X security checks
+  ln -s -f "$HOME/.Xauthority" "$WOKHOME/home/.Xauthority"
+  export HOME="$WOKHOME/home";
+fi
+
+# ----- 3rd-parties root -----
+if [ "$PRODUCTS_PATH" == "" ]; then
+  export PRODUCTS_PATH="${WOKHOME}/3rdparty/${WOKSTATION}${ARCH}"
+fi
+
+# ----- Setup Environment Variables for WOK -----
+export WOK_ROOTADMDIR="$WOKHOME/wok_entities";
+export WOK_LIBRARY="$WOKHOME/lib";
+export WOK_LIBPATH="$WOK_LIBRARY/$WOKSTATION";
+export WOKSITE="$WOKHOME/site";
+export WOK_SESSIONID="$HOME";
+
+# ----- Setup Environment Variables PATH and LD_LIBRARY_PATH -----
+export BISON_SIMPLE="$WOKHOME/3rdparty/${WOKSTATION}${ARCH}/codegen/bison.simple"
+export PATH="$WOK_LIBPATH:$PATH"
+export PATH="${WOKHOME}/3rdparty/${WOKSTATION}${ARCH}/codegen:${PATH}"
+aTail=":${LD_LIBRARY_PATH}"
+if [ "$LD_LIBRARY_PATH" == "" ]; then aTail=""; fi
+export LD_LIBRARY_PATH="${WOK_LIBPATH}${aTail}"
+aTail=":$DYLD_LIBRARY_PATH"
+if [ "$DYLD_LIBRARY_PATH" == "" ]; then aTail=""; fi
+export DYLD_LIBRARY_PATH="${WOK_LIBPATH}${aTail}"
+export WOK_LIBPATH="${WOK_LIBRARY}:${WOK_LIBPATH}"
diff --git a/src/WOKsite/wok_init.bat b/src/WOKsite/wok_init.bat
new file mode 100644 (file)
index 0000000..26d543b
--- /dev/null
@@ -0,0 +1,11 @@
+@echo off
+
+rem This file setup WOK environment  (calls 'wok_env.bat' script)
+rem and perform default initialization according to current environment.
+rem As a result empty :LOC:dev will be created (if not yet exists).
+
+call %~dp0wok_env.bat
+
+rem ----- Create default Factory :Kas:dev -----
+cd %WOK_ROOTADMDIR%
+%TCLBIN%/tclsh85.exe < %WOKHOME%/site/CreateFactory.tcl
diff --git a/src/WOKsite/wok_init.sh b/src/WOKsite/wok_init.sh
new file mode 100644 (file)
index 0000000..6a92fbe
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+# This file setup WOK environment  (calls 'wok_env.sh' script)
+# and perform default initialization according to current environment.
+# As a result empty :LOC:dev will be created (if not yet exists).
+
+# go to the script directory
+aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD";
+
+source "${aScriptPath}/wok_env.sh"
+
+# ----- Create default Factory :Kas:dev -----
+cd "$WOK_ROOTADMDIR"
+$TCLSH_EXE < "$WOKHOME/site/CreateFactory.tcl"
diff --git a/src/WOKsite/wok_tclsh.bat b/src/WOKsite/wok_tclsh.bat
new file mode 100644 (file)
index 0000000..771aef4
--- /dev/null
@@ -0,0 +1,8 @@
+@echo off
+
+rem This file setup WOK environment (calls 'wok_env.bat' script)
+rem and launches the TCL shell bound to WOK.
+
+call %~dp0wok_env.bat
+cd %WOK_ROOTADMDIR%
+%TCLBIN%/tclsh85.exe
diff --git a/src/WOKsite/wok_tclsh.sh b/src/WOKsite/wok_tclsh.sh
new file mode 100644 (file)
index 0000000..b88924f
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# This file setup WOK environment (calls 'wok_env.sh' script)
+# and launches the TCL shell bound to WOK.
+
+# go to the script directory
+aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD";
+
+source "${aScriptPath}/wok_env.sh"
+
+cd "$WOK_ROOTADMDIR"
+$TCLSH_EXE
diff --git a/src/WOKsite/wok_tclshrc.tcl b/src/WOKsite/wok_tclshrc.tcl
new file mode 100644 (file)
index 0000000..8aa9ce7
--- /dev/null
@@ -0,0 +1,485 @@
+#
+# This is a template file for a Tcl/Tk user startup file.
+#
+# To use it you must:
+#
+# On Unix/Linux system, place or invoke it in a file named .wishrc on your home directory.
+# Wish, the Tcl/Tk windowing shell will automatically invoke this file.
+#
+# On Windows system, place this file in the directory pointed to by the variable HOME.
+# Name it tclshrc.tcl or wishrc.tcl depending on the shell you want to use.
+# You can then click on the Tclsh or Wish icon to start Wok.
+#
+# This file assumes that:
+#
+# On Linux platforms the variable LD_LIBRARY_PATH is setted to the name
+# of the directory where Wok shareable resides. For example if you have
+# downloaded Wok on /home/me/wok-C40 of a Linux system, you must set
+# LD_LIBRARY_PATH to /home/me/wok-C40/lib/lin because wok shareable resides
+# in this directory. See also the INSTALL file.
+#
+# In the same way:
+#
+# On SunOS platforms you set LD_LIBRARY_PATH to /home/me/wok-C40/lib/sun.
+# On Windows system you set the variable PATH to C:\home\me\wok-C40\lib\wnt.
+#
+# The following operation are done:
+#
+# 1. Traversing the LD_LIBRARY_PATH or PATH variable we find where you have installed Wok.
+# 2. We can:
+#       a) Compute the location of EDL files Wok needs for working.
+#       b) Modify the Tcl variable auto_path in order to add our packages: Wok and Ms
+#       c) In the case of a first installation, setup the directory wok_entities where
+#          Wok will manage to create its entities.
+#
+# IMPORTANT RESTRICTIONS:
+#
+# The purpose of this file is to provide a simple and uniform way of using Wok on Unix/Linux and on Windows.
+# Be aware that if you use other Tcl tools, this can be conflicting.
+# In this case you can make up a Tcl proc from this file and invoke it at the moment you choose.
+#
+global env tcl_platform
+
+if { "$tcl_platform(platform)" == "unix" } {
+  if { ! [file exists "/bin/csh"] } {
+    puts stderr "C shell is required for WOK but not found on path '/bin/csh'!"
+    exit
+  }
+
+  if { "$tcl_platform(os)" == "HP-UX" } {
+    set ldpathvar SHLIB_PATH
+  } elseif { "$tcl_platform(os)" == "Darwin" } {
+    set ldpathvar DYLD_LIBRARY_PATH
+  } else {
+    set ldpathvar LD_LIBRARY_PATH
+  }
+  if { ![info exists env($ldpathvar)] } {
+    puts stderr "You must set $ldpathvar to point where you have installed Wok"
+    exit
+  }
+} elseif { "$tcl_platform(platform)" == "windows" && ![info exists env(Path)] } {
+  puts stderr "You must set PATH to point where you have installed Wok"
+  exit
+}
+
+if [info exists wm] {
+  wm withdraw .
+}
+
+if { "$tcl_platform(platform)" == "unix" } {
+  set sprtor ":"
+  set fmtshr "lib%s.so"
+  if { $tcl_platform(os) == "HP-UX"  } { set fmtshr "lib%s.sl" }
+  if { $tcl_platform(os) == "Darwin" } { set fmtshr "lib%s.dylib" }
+} elseif { "$tcl_platform(platform)" == "windows" } {
+  set sprtor ";"
+  set fmtshr "%s.dll"
+}
+
+# Wok's here we can set up our niche.
+lappend auto_path $::env(WOK_LIBRARY)
+package require Wok
+package require Ms
+
+# Where tcl and edl file of wok reside
+set wok_library $env(WOK_LIBRARY)
+set wok_ptfm    $env(WOKSTATION)
+set woksite [file join $env(WOKHOME) site]
+
+# Prepare relative path
+proc relativePath {thePathFrom thePathTo} {
+  if { [file isdirectory "$thePathFrom"] == 0 } {
+    return ""
+  }
+
+  set aPathFrom [file normalize "$thePathFrom"]
+  set aPathTo   [file normalize "$thePathTo"]
+
+  if { [string equal "$aPathFrom" "$aPathTo"] == 1} {
+    return "."
+  }
+
+  set aPathFromLen [string length "$aPathFrom"]
+  set aPathToLen   [string length "$aPathTo"]
+  set aCommon ""
+  set aTail   ""
+  set aTailTo ""
+  for {set anInter 1} {$anInter <= $aPathToLen} {incr anInter} {
+    if { [string equal -length $anInter "$aPathFrom" "$aPathTo"] == 0} {
+      break
+    }
+    set aCommon [string range "$aPathFrom" 0 [expr $anInter - 1]]
+    set aTail   [string range "$aPathFrom" $anInter $aPathFromLen]
+    set aTailTo [string range "$aPathTo"   $anInter $aPathToLen]
+  }
+
+  if { [string length "$aCommon"] <= 4 } {
+    return ""
+  }
+
+  set aRelative ".."
+  set aSplitIter [string first [file separator] "$aTail"]
+  while { $aSplitIter != -1 } {
+    set aRelative "${aRelative}/.."
+    set aTail      [string range "$aTail" [expr $aSplitIter + 1] $aPathFromLen]
+    set aSplitIter [string first [file separator] "$aTail"]
+  }
+
+  if { [string first [file separator] "$aTailTo"] == 0 } {
+    return "${aRelative}${aTailTo}"
+  } else {
+    return "${aRelative}/${aTailTo}"
+  }
+}
+
+# Load 3rd-party dependencies info
+source "$::env(WOKHOME)/site/wok_deps.tcl"
+
+# Show WOK configuration
+set aStartDate [clock format [clock seconds] -format "%Y.%m.%d %H:%M"]
+puts "Session started: $aStartDate"
+puts "WOK environment configured to:"
+
+# Prepare 3rd-parties paths
+if { "$tcl_platform(platform)" == "windows" } {
+  if { $env(VCVER) == "vc8" } {
+    puts "  Visual Studio 2005 (vc8), win${env(ARCH)}"
+  } elseif { $env(VCVER) == "vc9" } {
+    puts "  Visual Studio 2008 (vc9), win${env(ARCH)}"
+  } elseif { $env(VCVER) == "vc10" } {
+    puts "  Visual Studio 2010 (vc10), win${env(ARCH)}"
+  } else {
+    puts "  Visual Studio ???? ($env(VCVER)), win${env(ARCH)}"
+  }
+} else {
+  puts "   WOK Workstation: ${env(WOKSTATION)}"
+}
+if { "$PRODUCTS_PATH" != "" } {
+  puts "  3rd-parties root: '$::env(PRODUCTS_PATH)'"
+}
+
+set anErrs {}
+if { [wokdep:SearchTclTk anErrs anErrs anErrs anErrs anErrs] == "false" } {
+  puts "  not found: Tcl/Tk (Major!)"
+}
+if { [wokdep:SearchFreeType anErrs anErrs anErrs anErrs anErrs] == "false" } {
+  puts "  not found: FreeType2 (Major!)"
+}
+if { [wokdep:SearchFTGL anErrs anErrs anErrs anErrs anErrs] == "false" } {
+  puts "  not found: FTGL (Major!)"
+}
+if { "$::HAVE_FREEIMAGE" == "true" } {
+  if { [wokdep:SearchFreeImage anErrs anErrs anErrs anErrs anErrs] == "false" } {
+    puts "  not found: FreeImage (Optional, enabled)"
+  }
+}
+if { "$::HAVE_GL2PS" == "true" } {
+  if { [wokdep:SearchGL2PS anErrs anErrs anErrs anErrs anErrs] == "false" } {
+    puts "  not found: GL2PS (Optional, enabled)"
+  }
+}
+if { "$::HAVE_TBB" == "true" } {
+  if { [wokdep:SearchTBB anErrs anErrs anErrs anErrs anErrs] == "false" } {
+    puts "  not found: Intel TBB (Optional, enabled)"
+  }
+}
+if { "$::CHECK_QT4" == "true" } {
+  if { [wokdep:SearchQt4 anErrs anErrs anErrs anErrs anErrs] == "false" } {
+    puts "  not found: Qt4 (Optional, set to check)"
+  }
+}
+if { "$::CHECK_JDK" == "true" } {
+  if { [wokdep:SearchJDK anErrs anErrs anErrs anErrs anErrs] == "false" } {
+    puts "  not found: JDK (Optional, set to check)"
+  }
+}
+
+# Compiler search path to the libraries
+if { "$tcl_platform(platform)" == "windows" } {
+  # MSVC
+  set aEnvVarCLib "LIB"
+  set aEnvVarCInc "INCLUDE"
+} else {
+  # gcc
+  set aEnvVarCLib "LIBRARY_PATH"
+  set aEnvVarCInc "CPATH"
+}
+
+if { "$::ARCH" == "32"} {
+  set aCLibPaths [join $::CSF_OPT_LIB32 $::SYS_PATH_SPLITTER]
+} else {
+  set aCLibPaths [join $::CSF_OPT_LIB64 $::SYS_PATH_SPLITTER]
+}
+set env($aEnvVarCLib) "${aCLibPaths}${::SYS_PATH_SPLITTER}$env($aEnvVarCLib)"
+
+# Compiler search path to the headers
+set aCIncPaths [join $::CSF_OPT_INC $::SYS_PATH_SPLITTER]
+set env($aEnvVarCInc) "${aCIncPaths}${::SYS_PATH_SPLITTER}$env($aEnvVarCInc)"
+
+# Search path to the libraries
+if { "$::tcl_platform(platform)" != "windows" } {
+  # LD_LIBRARY_PATH and so on
+  set env($ldpathvar) "${aCLibPaths}${::SYS_PATH_SPLITTER}$env($ldpathvar)"
+}
+
+# Executables search path
+if { "$::ARCH" == "32"} {
+  set aBinPaths [join $::CSF_OPT_BIN32 $::SYS_PATH_SPLITTER]
+} else {
+  set aBinPaths [join $::CSF_OPT_BIN64 $::SYS_PATH_SPLITTER]
+}
+set env(PATH) "${aBinPaths}${::SYS_PATH_SPLITTER}$env(PATH)"
+
+# Function to generate environment scripts files
+if { [file exists "$::env(WOKHOME)/lib/OS.tcl"] } {
+  source "$::env(WOKHOME)/lib/OS.tcl"
+}
+proc wgenprojbat {thePath} {
+  source "$::env(WOKHOME)/lib/osutils.tcl"
+  source "$::env(WOKHOME)/lib/OS.tcl"
+
+  set aWokCD [wokcd]
+  wokcd [LocateRecur OS]
+  winc [wokinfo -w]
+  set anOsIncPath [pwd]
+  wokcd -P Home
+  set anOsRootPath [pwd]
+  wokcd $aWokCD
+  set aVcVer "$::VCVER"
+
+  set aBox [file normalize "$thePath/.."]
+
+  if { "$::tcl_platform(platform)" == "windows" } {
+    set anEnvTmplFile [open "$::env(WOKHOME)/lib/templates/env.bat" "r"]
+  } else {
+    set anEnvTmplFile [open "$::env(WOKHOME)/lib/templates/env.sh"  "r"]
+  }
+  set anEnvTmpl [read $anEnvTmplFile]
+  close $anEnvTmplFile
+
+  set aCasRoot ""
+  if { [file normalize "$anOsRootPath"] != "$aBox" } {
+    set aCasRoot [relativePath "$aBox" "$anOsRootPath"]
+  }
+  set anOsIncPath [relativePath "$aBox" "$anOsRootPath"]
+
+  regsub -all -- {__CASROOT__}     $anEnvTmpl "$aCasRoot"    anEnvTmpl
+  regsub -all -- {__CSF_OPT_INC__} $anEnvTmpl "$anOsIncPath" anEnvTmpl
+  if { "$::tcl_platform(platform)" != "windows" } {
+    if { "$::ARCH" == "32"} {
+      regsub -all -- {__CSF_OPT_LIB32__}  $anEnvTmpl "${anOsRootPath}/${::env(WOKSTATION)}/cbp/lib"  anEnvTmpl
+      regsub -all -- {__CSF_OPT_LIB32D__} $anEnvTmpl "${anOsRootPath}/${::env(WOKSTATION)}/cbp/libd" anEnvTmpl
+      regsub -all -- {__CSF_OPT_LIB64__}  $anEnvTmpl "" anEnvTmpl
+      regsub -all -- {__CSF_OPT_LIB64D__} $anEnvTmpl "" anEnvTmpl
+    } else {
+      regsub -all -- {__CSF_OPT_LIB32__}  $anEnvTmpl "" anEnvTmpl
+      regsub -all -- {__CSF_OPT_LIB32D__} $anEnvTmpl "" anEnvTmpl
+      regsub -all -- {__CSF_OPT_LIB64__}  $anEnvTmpl "${anOsRootPath}/${::env(WOKSTATION)}/cbp/lib"  anEnvTmpl
+      regsub -all -- {__CSF_OPT_LIB64D__} $anEnvTmpl "${anOsRootPath}/${::env(WOKSTATION)}/cbp/libd" anEnvTmpl
+    }
+  }
+
+  if { "$::tcl_platform(platform)" == "windows" } {
+    set anEnvFile [open "$aBox/env.bat" "w"]
+  } else {
+    set anEnvFile [open "$aBox/env.sh"  "w"]
+  }
+  puts $anEnvFile $anEnvTmpl
+  close $anEnvFile
+
+  if { "$::tcl_platform(platform)" == "windows" } {
+    file copy -force -- "$::env(WOKHOME)/site/custom.bat"        "$aBox/custom.bat"
+    file copy -force -- "$::env(WOKHOME)/lib/templates/draw.bat" "$aBox/draw.bat"
+    file copy -force -- "$::env(WOKHOME)/lib/templates/msvc.bat" "$aBox/msvc.bat"
+  } else {
+    file copy -force -- "$::env(WOKHOME)/site/custom.sh"         "$aBox/custom.sh"
+  }
+}
+
+# Wrapper-function to generate VS project files
+proc wgenproj {{theProcArgs ""}} {
+  if { "$theProcArgs" != "" } {
+    wprocess $theProcArgs -DGroups=Src,Xcpp
+  } else {
+    wprocess -DGroups=Src,Xcpp
+  }
+  source "$::env(WOKHOME)/lib/osutils.tcl"
+  source "$::env(WOKHOME)/lib/OS.tcl"
+  set aWokCD [wokcd]
+  wadm [wokinfo -w]
+  set anAdmPath [pwd]
+  wokcd $aWokCD
+
+  if { [wokinfo -x OS] } {
+    OS:MKPRC "$anAdmPath" "OS"  "$::VCVER"
+  }
+  if { [wokinfo -x VAS] } {
+    OS:MKPRC "$anAdmPath" "VAS" "$::VCVER"
+  }
+  wgenprojbat "$anAdmPath"
+}
+
+# Function to prepare environment
+proc wenv {} {
+  # will prepend WOK branch bin / lib paths into PATH
+  wokenv -s
+
+  # this staff needed to launch DRAWEXE
+  global env
+  if { $env(WOKSTATION) != "wnt" && $env(WOKSTATION) != "nil" } {
+    global env
+    set env(STATION) $env(WOKSTATION)
+  }
+  global env
+  set env(TARGET_DBMS) "DFLT"
+  set aStdRes [woklocate -u StdResource]
+  if { $aStdRes != "" } {
+    set env(CSF_PluginDefaults)       [string range [wokinfo -p source:. [woklocate -u StdResource]] 0 [expr {[string length [wokinfo -p source:. $aStdRes]] - 3}]]
+    set env(CSF_StandardDefaults)     [string range [wokinfo -p source:. [woklocate -u StdResource]] 0 [expr {[string length [wokinfo -p source:. $aStdRes]] - 3}]]
+    set env(CSF_StandardLiteDefaults) [string range [wokinfo -p source:. [woklocate -u StdResource]] 0 [expr {[string length [wokinfo -p source:. $aStdRes]] - 3}]]
+  } else {
+    puts "Warning! 'StdResource'   package not found!"
+  }
+
+  set aTextures [woklocate -u Textures]
+  if { $aTextures != "" } {
+    set env(CSF_MDTVTexturesDirectory) [string range [wokinfo -p source:. [woklocate -u Textures]] 0 [expr {[string length [wokinfo -p source:. $aTextures]] - 3}]]
+  } else {
+    puts "Warning! 'Textures'      package not found!"
+  }
+  set aFontMft [woklocate -u FontMFT]
+  if { $aFontMft != "" } {
+    set env(CSF_MDTVFontDirectory)     [string range [wokinfo -p source:. [woklocate -u FontMFT]] 0 [expr {[string length [wokinfo -p source:. $aFontMft]] - 3}]]
+  } else {
+    puts "Warning! 'FontMFT'       package not found!"
+  }
+
+  set aXSMsg [woklocate -u XSMessage]
+  if { $aXSMsg != "" } {
+    set env(CSF_XSMessage) [string range [wokinfo -p source:. [woklocate -u XSMessage]] 0 [expr {[string length [wokinfo -p source:. $aXSMsg]] - 3}]]
+  } else {
+    puts "Warning! 'XSMessage'     package not found!"
+  }
+  set aSHMsg [woklocate -u SHMessage]
+  if { $aSHMsg != "" } {
+    set env(CSF_SHMessage) [string range [wokinfo -p source:. [woklocate -u SHMessage]] 0 [expr {[string length [wokinfo -p source:. $aSHMsg]] - 3}]]
+  } else {
+    puts "Warning! 'SHMessage'     package not found!"
+  }
+
+  if { $aStdRes != "" } {
+    set env(CSF_XCAFDefaults) [string range [wokinfo -p source:. $aStdRes] 0 [expr {[string length [wokinfo -p source:. $aStdRes]] - 3}]]
+  }
+  set aStepRes [woklocate -u XSTEPResource]
+  if { $aStepRes != "" } {
+    set env(CSF_STEPDefaults) [string range [wokinfo -p source:. $aStepRes] 0 [expr {[string length [wokinfo -p source:. $aStepRes]] - 3}]]
+    set env(CSF_IGESDefaults) [string range [wokinfo -p source:. $aStepRes] 0 [expr {[string length [wokinfo -p source:. $aStepRes]] - 3}]]
+  } else {
+    puts "Warning! 'XSTEPResource' package not found!"
+  }
+
+  # main DRAWEXE commands
+  set aDrawRes [woklocate -u DrawResources]
+  if { $aDrawRes != "" } {
+    set env(DRAWHOME) [string range [wokinfo -p source:. $aDrawRes] 0 [expr {[string length [wokinfo -p source:. $aDrawRes]] - 3}]]
+    set env(CSF_DrawPluginDefaults) $env(DRAWHOME)
+    set env(DRAWDEFAULT) $env(DRAWHOME)/DrawDefault
+  } else {
+    puts "Warning! 'DrawResources' package not found!"
+  }
+
+  # products DRAWEXE commands (optional)
+  set aDrawProdsRes [woklocate -u DrawResourcesProducts]
+  if { $aDrawProdsRes != "" } {
+    set env(CSF_DrawPluginProductsDefaults) [string range [wokinfo -p source:. $aDrawProdsRes] 0 [expr {[string length [wokinfo -p source:. $aDrawProdsRes]] - 3}]]
+    #Usage: pload -DrawPluginProducts ALL
+  } else {
+    #puts "Warning! 'DrawResourcesProducts' package not found!"
+  }
+
+  if { $env(WOKSTATION) == "wnt" } {
+    set aTkGlLib [woklocate -p TKOpenGl:library:TKOpenGl.dll]
+  } elseif { $env(WOKSTATION) == "mac" } {
+    set aTkGlLib [woklocate -p TKOpenGl:library:libTKOpenGl.dylib]
+  } else {
+    set aTkGlLib [woklocate -p TKOpenGl:library:libTKOpenGl.so]
+  }
+  if { $aTkGlLib != "" } {
+    set env(CSF_GraphicShr) $aTkGlLib
+  } else {
+    puts "Warning! 'TKOpenGl'      library not found!"
+  }
+
+  puts "Environment configured"
+}
+
+# Search branch using filter
+proc wbranch {theFilter} {
+  set aBranchesAll [sinfo -w]
+  set anIndices [lsearch -all ${aBranchesAll} $theFilter]
+  set aResult {}
+  foreach aBranchId $anIndices {
+    lappend aResult [lindex $aBranchesAll $aBranchId]
+  }
+  return $aResult
+}
+
+# Where the files ATLIST, DEFAULT.edl and SESSION.edl reside
+if {![info exists env(WOK_ROOTADMDIR)] } {
+  set env(WOK_ROOTADMDIR) [file normalize $env(WOKHOME)/wok_entities]
+  if ![file exists $env(WOK_ROOTADMDIR)] {
+    if [file writable $env(WOKHOME)] {
+      puts stderr "Creating directory $env(WOK_ROOTADMDIR) for wok entities..."
+      if [catch { wokUtils:FILES:mkdir $env(WOK_ROOTADMDIR) } status] {
+        puts stderr "Error : $status"
+        return
+      }
+      if ![file exists $env(WOK_ROOTADMDIR)] {
+        return
+      }
+    } else {
+      puts stderr "The directory $env(WOK_ROOTADMDIR) cannot be created because $env(WOKHOME) is not writable."
+      puts stderr "Please give write access to this directory."
+      return
+    }
+  } else {
+    #puts stderr "Using $env(WOKHOME)/wok_entities for working entities."
+  }
+} else {
+  if ![file exists $env(WOK_ROOTADMDIR)] {
+    puts stderr "The directory $env(WOK_ROOTADMDIR) can not be found"
+    return
+  }
+  #puts stderr "Using variable WOK_ROOTADMDIR = $env(WOK_ROOTADMDIR) for working entities."
+}
+
+# Check if  Wok stuff is correct. If not set it up silently.
+if ![file exists  [set woksession [file join $env(WOK_ROOTADMDIR) WOKSESSION.edl]]] {
+    set str1 [wokUtils:FILES:FileToString [file join $woksite WOKSESSION.edl]]
+    regsub -all -- {TOSUBSTITUTE} "$str1" "[file normalize $env(WOK_ROOTADMDIR)]" result1
+    wokUtils:FILES:StringToFile $result1 $woksession
+    if [file exists $woksession] {
+       puts stderr "File $woksession has been created. "
+    }
+}
+
+#
+if ![file exists [set default [file join $env(WOK_ROOTADMDIR) DEFAULT.edl]]] {
+  set str2 [wokUtils:FILES:FileToString [file join $woksite DEFAULT.edl]]
+  regsub -all -- {__DEFHOME__}     "$str2" "[file normalize $::env(WOK_ROOTADMDIR)]" result2
+  regsub -all -- {__DEFSTATION__}  $result2 "$::env(WOKSTATION)" result2
+  wokUtils:FILES:StringToFile $result2 $default
+  if [file exists $default] {
+    puts stderr "File $default has been created. "
+  }
+}
+
+# Where to read/write the current working entity
+set env(WOK_SESSIONID) $env(HOME)/.wok
+
+# Everything seems OK. Display a nice prompt:
+set tcl_prompt1 {if {[info commands wokcd] != ""}  then \
+  {puts -nonewline stdout "[wokcd]> "} else \
+  {puts -nonewline stdout "tclsh> "}}
+cd $env(WOK_ROOTADMDIR)
+wokclose -a