]> OCCT Git - occt-wok.git/commitdiff
Adding templates for MSVS-projects generation on Win64
authorcascade <cascade@opencascade.com>
Mon, 25 Aug 2008 15:28:36 +0000 (15:28 +0000)
committercascade <cascade@opencascade.com>
Mon, 25 Aug 2008 15:28:36 +0000 (15:28 +0000)
src/WOKTclLib/FILES
src/WOKTclLib/osutils.tcl

index 27f449c9b842e92b5fda91ef0c93caa59722356c..64c37ea731e98a16b8a86199b24437b352a25544 100755 (executable)
-srcinc:::Browser.tcl\r
-srcinc:::BrowserOMT.tcl\r
-srcinc:::BrowserSearch.tcl\r
-srcinc:::FILES\r
-srcinc:::MkBuild.tcl\r
-srcinc:::wokNAV.tcl\r
-srcinc:::WCOMPATIBLE.tcl\r
-srcinc:::WOKVC.tcl\r
-srcinc:::WOKVC.RCS\r
-srcinc:::WOKVC.SCCS\r
-srcinc:::WOKVC.NOBASE\r
-srcinc:::upack.tcl\r
-srcinc:::wbuild.tcl\r
-srcinc:::wok.tcl\r
-srcinc:::wokCreations.tcl\r
-srcinc:::wokDeletions.tcl\r
-srcinc:::wokStuff.tcl\r
-srcinc:::wokemacs.tcl\r
-srcinc:::wokclient.tcl\r
-srcinc:::wokinit.tcl\r
-srcinc:::wokprocs.tcl\r
-srcinc:::wokinterp.tcl\r
-srcinc:::wprepare.tcl\r
-srcinc:::wstore.tcl\r
-srcinc:::wutils.tcl\r
-srcinc:::Wok_Init.tcl\r
-srcinc:::wokEDF.tcl\r
-srcinc:::wstore_trigger.example\r
-srcinc:::wnews_trigger.example\r
-srcinc:::scheck.tcl\r
-srcinc:::wbuild.hlp\r
-srcinc:::wokRPRHelp.hlp\r
-srcinc:::wokWaffQueueHelp.hlp \r
-srcinc:::wokPrepareHelp.hlp\r
-srcinc:::wokEDF.hlp\r
-srcinc:::wokMainHelp.hlp\r
-srcinc:::VC.example\r
-srcinc:::wcheck.tcl\r
-srcinc:::wnews.tcl\r
-srcinc:::tclx.nt\r
-srcinc:::wokclient.tcl\r
-srcinc:::wokPRM.tcl\r
-srcinc:::wokPRM.hlp\r
-srcinc:::reposit.xpm\r
-srcinc:::abstract.xpm\r
-srcinc:::admin.xpm\r
-srcinc:::back.xpm\r
-srcinc:::browser.xpm\r
-srcinc:::caution.xpm\r
-srcinc:::ccl.xpm\r
-srcinc:::ccl_open.xpm\r
-srcinc:::client.xpm\r
-srcinc:::client_open.xpm\r
-srcinc:::create.xpm\r
-srcinc:::danger.xpm\r
-srcinc:::delete.xpm\r
-srcinc:::delivery.xpm\r
-srcinc:::delivery_open.xpm\r
-srcinc:::documentation.xpm\r
-srcinc:::documentation_open.xpm\r
-srcinc:::engine.xpm\r
-srcinc:::engine_open.xpm\r
-srcinc:::executable.xpm\r
-srcinc:::executable_open.xpm\r
-srcinc:::factory.xpm\r
-srcinc:::factory_open.xpm\r
-srcinc:::file.xpm\r
-srcinc:::frontal.xpm\r
-srcinc:::frontal_open.xpm\r
-srcinc:::jini.xpm\r
-srcinc:::jini_open.xpm\r
-srcinc:::gettable.xpm\r
-srcinc:::idl.xpm\r
-srcinc:::idl_open.xpm\r
-srcinc:::interface.xpm\r
-srcinc:::interface_open.xpm\r
-srcinc:::journal.xpm\r
-srcinc:::nocdlpack.xpm\r
-srcinc:::nocdlpack_open.xpm\r
-srcinc:::notes.xpm\r
-srcinc:::package.xpm\r
-srcinc:::package_open.xpm\r
-srcinc:::params.xpm\r
-srcinc:::parcel.xpm\r
-srcinc:::parcel_open.xpm\r
-srcinc:::patch.xpm\r
-srcinc:::patches.xpm\r
-srcinc:::persistent.xpm\r
-srcinc:::pqueue.xpm\r
-srcinc:::prepare.xpm\r
-srcinc:::private.xpm\r
-srcinc:::queue.xpm\r
-srcinc:::resource.xpm\r
-srcinc:::resource_open.xpm\r
-srcinc:::rotate.xpm\r
-srcinc:::schema.xpm\r
-srcinc:::schema_open.xpm\r
-srcinc:::server.xpm\r
-srcinc:::server_open.xpm\r
-srcinc:::storable.xpm\r
-srcinc:::textfile_adm.xpm\r
-srcinc:::textfile_rdonly.xpm\r
-srcinc:::toolkit.xpm\r
-srcinc:::toolkit_open.xpm\r
-srcinc:::transient.xpm\r
-srcinc:::unit.xpm\r
-srcinc:::unit_open.xpm\r
-srcinc:::unit_rdonly.xpm\r
-srcinc:::wbuild.xpm\r
-srcinc:::work.xpm\r
-srcinc:::workbench.xpm\r
-srcinc:::workbenchq.xpm\r
-srcinc:::workbench_open.xpm\r
-srcinc:::workshop.xpm\r
-srcinc:::workshop_open.xpm\r
-srcinc:::bylong.xbm\r
-srcinc:::byrow.xbm\r
-srcinc:::bycol.xbm\r
-srcinc:::bylast.xbm\r
-srcinc:::see.xpm\r
-srcinc:::see_closed.xpm\r
-srcinc:::source.xpm\r
-srcinc:::cell.xpm\r
-srcinc:::wokcd.xpm\r
-srcinc:::warehouse.xpm\r
-srcinc:::arb.tcl\r
-srcinc:::dep.tcl\r
-srcinc:::path.xpm\r
-srcinc:::wokSEA.tcl\r
-srcinc:::wokPROP.tcl\r
-srcinc:::news_cpwb.tcl\r
-srcinc:::cback.xpm\r
-srcinc:::cfrwd.xpm \r
-srcinc:::wokRPR.tcl\r
-srcinc:::wokCOO.tcl\r
-srcinc:::wokQUE.tcl\r
-srcinc:::wcompare.tcl\r
-srcinc:::envir.xpm\r
-srcinc:::envir_open.xpm\r
-srcinc:::README\r
-srcinc:::wokcvs.tcl\r
-srcinc:::ud2cvs_unix\r
-srcinc:::template.vc6\r
-srcinc:::template.vc6x\r
-srcinc:::template.min\r
-srcinc:::template.minx\r
-srcinc:::template.mam\r
-srcinc:::template.mamx\r
-srcinc:::template.mak\r
-srcinc:::template.makx\r
-srcinc:::template.vc7\r
-srcinc:::template.vc7x\r
-srcinc:::template.vc8\r
-srcinc:::template.vc8x\r
-srcinc:::osutils.tcl\r
-srcinc:::config.h\r
-srcinc:::opencascade.gif\r
-srcinc:::woksh.el\r
-srcinc:::wok-comm.el\r
-srcinc:::DocGenerate.tcl\r
-srcinc:::OCCTDocumentation.tcl\r
+srcinc:::Browser.tcl
+srcinc:::BrowserOMT.tcl
+srcinc:::BrowserSearch.tcl
+srcinc:::FILES
+srcinc:::MkBuild.tcl
+srcinc:::wokNAV.tcl
+srcinc:::WCOMPATIBLE.tcl
+srcinc:::WOKVC.tcl
+srcinc:::WOKVC.RCS
+srcinc:::WOKVC.SCCS
+srcinc:::WOKVC.NOBASE
+srcinc:::upack.tcl
+srcinc:::wbuild.tcl
+srcinc:::wok.tcl
+srcinc:::wokCreations.tcl
+srcinc:::wokDeletions.tcl
+srcinc:::wokStuff.tcl
+srcinc:::wokemacs.tcl
+srcinc:::wokclient.tcl
+srcinc:::wokinit.tcl
+srcinc:::wokprocs.tcl
+srcinc:::wokinterp.tcl
+srcinc:::wprepare.tcl
+srcinc:::wstore.tcl
+srcinc:::wutils.tcl
+srcinc:::Wok_Init.tcl
+srcinc:::wokEDF.tcl
+srcinc:::wstore_trigger.example
+srcinc:::wnews_trigger.example
+srcinc:::scheck.tcl
+srcinc:::wbuild.hlp
+srcinc:::wokRPRHelp.hlp
+srcinc:::wokWaffQueueHelp.hlp 
+srcinc:::wokPrepareHelp.hlp
+srcinc:::wokEDF.hlp
+srcinc:::wokMainHelp.hlp
+srcinc:::VC.example
+srcinc:::wcheck.tcl
+srcinc:::wnews.tcl
+srcinc:::tclx.nt
+srcinc:::wokclient.tcl
+srcinc:::wokPRM.tcl
+srcinc:::wokPRM.hlp
+srcinc:::reposit.xpm
+srcinc:::abstract.xpm
+srcinc:::admin.xpm
+srcinc:::back.xpm
+srcinc:::browser.xpm
+srcinc:::caution.xpm
+srcinc:::ccl.xpm
+srcinc:::ccl_open.xpm
+srcinc:::client.xpm
+srcinc:::client_open.xpm
+srcinc:::create.xpm
+srcinc:::danger.xpm
+srcinc:::delete.xpm
+srcinc:::delivery.xpm
+srcinc:::delivery_open.xpm
+srcinc:::documentation.xpm
+srcinc:::documentation_open.xpm
+srcinc:::engine.xpm
+srcinc:::engine_open.xpm
+srcinc:::executable.xpm
+srcinc:::executable_open.xpm
+srcinc:::factory.xpm
+srcinc:::factory_open.xpm
+srcinc:::file.xpm
+srcinc:::frontal.xpm
+srcinc:::frontal_open.xpm
+srcinc:::jini.xpm
+srcinc:::jini_open.xpm
+srcinc:::gettable.xpm
+srcinc:::idl.xpm
+srcinc:::idl_open.xpm
+srcinc:::interface.xpm
+srcinc:::interface_open.xpm
+srcinc:::journal.xpm
+srcinc:::nocdlpack.xpm
+srcinc:::nocdlpack_open.xpm
+srcinc:::notes.xpm
+srcinc:::package.xpm
+srcinc:::package_open.xpm
+srcinc:::params.xpm
+srcinc:::parcel.xpm
+srcinc:::parcel_open.xpm
+srcinc:::patch.xpm
+srcinc:::patches.xpm
+srcinc:::persistent.xpm
+srcinc:::pqueue.xpm
+srcinc:::prepare.xpm
+srcinc:::private.xpm
+srcinc:::queue.xpm
+srcinc:::resource.xpm
+srcinc:::resource_open.xpm
+srcinc:::rotate.xpm
+srcinc:::schema.xpm
+srcinc:::schema_open.xpm
+srcinc:::server.xpm
+srcinc:::server_open.xpm
+srcinc:::storable.xpm
+srcinc:::textfile_adm.xpm
+srcinc:::textfile_rdonly.xpm
+srcinc:::toolkit.xpm
+srcinc:::toolkit_open.xpm
+srcinc:::transient.xpm
+srcinc:::unit.xpm
+srcinc:::unit_open.xpm
+srcinc:::unit_rdonly.xpm
+srcinc:::wbuild.xpm
+srcinc:::work.xpm
+srcinc:::workbench.xpm
+srcinc:::workbenchq.xpm
+srcinc:::workbench_open.xpm
+srcinc:::workshop.xpm
+srcinc:::workshop_open.xpm
+srcinc:::bylong.xbm
+srcinc:::byrow.xbm
+srcinc:::bycol.xbm
+srcinc:::bylast.xbm
+srcinc:::see.xpm
+srcinc:::see_closed.xpm
+srcinc:::source.xpm
+srcinc:::cell.xpm
+srcinc:::wokcd.xpm
+srcinc:::warehouse.xpm
+srcinc:::arb.tcl
+srcinc:::dep.tcl
+srcinc:::path.xpm
+srcinc:::wokSEA.tcl
+srcinc:::wokPROP.tcl
+srcinc:::news_cpwb.tcl
+srcinc:::cback.xpm
+srcinc:::cfrwd.xpm 
+srcinc:::wokRPR.tcl
+srcinc:::wokCOO.tcl
+srcinc:::wokQUE.tcl
+srcinc:::wcompare.tcl
+srcinc:::envir.xpm
+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:::osutils.tcl
+srcinc:::config.h
+srcinc:::opencascade.gif
+srcinc:::woksh.el
+srcinc:::wok-comm.el
+srcinc:::DocGenerate.tcl
+srcinc:::OCCTDocumentation.tcl
index 6d53029c69befd6e1c7afa310a5765bdc956e3c5..bc36e11fad11c4837f512af2d15069d6bfe5901d 100755 (executable)
-;#\r
-;# Open source Tcl utilities. This contains material to automatically create\r
-;# MS project or automake builders from the OpenCascade modules definition.\r
-;# This file requires:\r
-;# 1. Tcl utilities of Wok.\r
-;# 2. Wok commands and workbench environment.\r
-;#\r
-;# Author: yolanda_forbes@hotmail.com\r
-;# \r
-;# (((((((((((((((((((((((( MS PROJECT )))))))))))))))))))))))\r
-;#\r
-;# the full path of a MS project template file.\r
-;# Should be overwritten\r
-;#\r
-proc osutils:vc8:readtemplate { } {\r
-    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc8]]"\r
-    return [wokUtils:FILES:FileToString $loc]\r
-}\r
-proc osutils:vc8:readtemplatex { } {\r
-    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc8x]]"\r
-    return [wokUtils:FILES:FileToString $loc]\r
-}\r
-proc osutils:vc7:readtemplate { } {\r
-    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc7]]"\r
-    return [wokUtils:FILES:FileToString $loc]\r
-}\r
-proc osutils:vc7:readtemplatex { } {\r
-    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc7x]]"\r
-    return [wokUtils:FILES:FileToString $loc]\r
-}\r
-proc osutils:vc6:readtemplate { } {\r
-    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc6 ]]"\r
-    return [wokUtils:FILES:FileToString $loc]\r
-}\r
-proc osutils:vc6:readtemplatex { } {\r
-    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc6x]]"\r
-    return [wokUtils:FILES:FileToString $loc]\r
-}\r
-proc osutils:mak:readtemplate { } {\r
-    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.mak ]]"\r
-    return [wokUtils:FILES:FileToString $loc]\r
-}\r
-proc osutils:mak:readtemplatex { } {\r
-    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.makx]]"\r
-    return [wokUtils:FILES:FileToString $loc]\r
-}\r
-proc osutils:am:readtemplate { } {\r
-    puts stderr "Info : readtemplate : Template for Makefile.am from [set loc [woklocate -p WOKTclLib:source:template.mam]]"\r
-    return [wokUtils:FILES:FileToString $loc]\r
-\r
-}\r
-proc osutils:am:readtemplatex { } {\r
-    puts stderr "Info : readtemplatex : Template for Makefile.am from [set loc [woklocate -p WOKTclLib:source:template.mamx]]"\r
-    return [wokUtils:FILES:FileToString $loc]\r
-\r
-}\r
-proc osutils:in:readtemplate { } {\r
-    puts stderr "Info : readtemplate : Template for Makefile.in from [set loc [woklocate -p WOKTclLib:source:template.min]]"\r
-    return [wokUtils:FILES:FileToString $loc]\r
-\r
-}\r
-proc osutils:in:readtemplatex { } {\r
-    puts stderr "Info : readtemplatex : Template for Makefile.in from [set loc [woklocate -p WOKTclLib:source:template.minx]]"\r
-    return [wokUtils:FILES:FileToString $loc]\r
-\r
-}\r
-;#\r
-;# \r
-;#\r
-proc osutils:vc6proj:header { } {\r
-    append var \\r
-           "Microsoft Developer Studio Workspace File, Format Version 6.00" "\n" \\r
-           "# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!" "\n" \\r
-           "\n" \\r
-           "###############################################################################" "\n" \\r
-           "\n"\r
-    return $var\r
-}\r
-proc osutils:vc7proj:header { } {\r
-    append var \\r
-           "Microsoft Visual Studio Solution File, Format Version 8.00\n" \r
-    return $var\r
-}\r
-proc osutils:vc8proj:header { } {\r
-    append var \\r
-           "Microsoft Visual Studio Solution File, Format Version 9.00\n" \\r
-           "# Visual Studio 2005\n"\r
-    return $var\r
-}\r
-;#\r
-;# the leaf of a workspace file\r
-;#\r
-proc osutils:vc6proj:projectleaf { TK } {\r
-    append var \\r
-           "Project: \"$TK\"=.\\$TK.dsp - Package Owner=<4>" "\n" \\r
-           "\n" \\r
-           "Package=<5>" "\n" \\r
-           "\{\{\{" "\n" \\r
-           "\}\}\}" "\n" \\r
-           "\n" \\r
-           "Package=<4>" "\n" \\r
-           "\{\{\{" "\n" \\r
-           "\}\}\}" "\n" \\r
-           "\n" \\r
-           "###############################################################################" "\n" \\r
-           "\n"\r
-    return $var\r
-}\r
-;#\r
-;# an item of a workspace file\r
-;#\r
-proc osutils:vc6proj:projectby2 { TK Dep_Name } {\r
-    append var \\r
-           "Project: \"$TK\"=.\\$TK.dsp - Package Owner=<4>" "\n" \\r
-           "\n" \\r
-           "Package=<5>" "\n" \\r
-           "\{\{\{" "\n" \\r
-           "\}\}\}" "\n" \\r
-           "\n" \\r
-           "Package=<4>" "\n" \\r
-           "\{\{\{" "\n" \r
-            if {[wokinfo -x $TK] != "0"} {\r
-              if {[uinfo -t $TK] == "toolkit"} {\r
-                set deplist [LibToLink $TK]\r
-             } else {\r
-                 set deplist [LibToLinkX $TK $TK]\r
-                 ;#puts $deplist\r
-              }\r
-             foreach deplib $deplist {\r
-                 if {$deplib != $TK} {\r
-                    append var "    Begin Project Dependency" "\n" \\r
-                               "    Project_Dep_Name $deplib" "\n" \\r
-                               "    End Project Dependency" "\n" \r
-                 }\r
-             }\r
-            }\r
-             \r
-           append var "\}\}\}" "\n" \\r
-           "\n" \\r
-           "###############################################################################" "\n" \\r
-           "\n" \r
-    return $var\r
-}\r
-;#\r
-;#\r
-;#\r
-proc osutils:vc6proj:footer { } {\r
-    append var \\r
-           "Global:" "\n" \\r
-           "\n" \\r
-           "Package=<5>" "\n" \\r
-           "{{{" "\n" \\r
-           "}}}" "\n" \\r
-           "\n" \\r
-           "Package=<3>" "\n" \\r
-           "{{{" "\n" \\r
-           "}}}" "\n" \\r
-           "\n" \\r
-           "###############################################################################" "\n" \r
-    return $var\r
-}\r
-;#\r
-;# An item for compiling a c++ class\r
-;#\r
-proc osutils:vc6:fmtcpp { } {\r
-    return {# ADD CPP /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"}\r
-}\r
-proc osutils:mak:fmtcpp { } {\r
-    return {CPP_SWITCHES=$(CPP_PROJ) /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"}\r
-}\r
-;#\r
-;# An item for compiling a c++ main\r
-;#\r
-proc osutils:vc6:fmtcppx { } {\r
-    return {# ADD CPP /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"}\r
-}\r
-proc osutils:vc7:fmtcpp { } {\r
-    return {AdditionalIncludeDirectories="..\..\..\inc,..\..\..\drv\%s,..\..\..\src\%s"\r
-                                                        PreprocessorDefinitions="__%s_DLL;"}\r
-}\r
-proc osutils:vc7:fmtcppx { } {\r
-    return {AdditionalIncludeDirectories="..\..\..\inc,..\..\..\drv\%s,..\..\..\src\%s"\r
-                                                        PreprocessorDefinitions="__%s_DLL;$(NoInherit)"}\r
-}\r
-proc osutils:vc8:fmtcpp { } {\r
-    return {AdditionalIncludeDirectories="..\..\..\inc,..\..\..\drv\%s,..\..\..\src\%s"\r
-                                                        PreprocessorDefinitions="__%s_DLL;"}\r
-}\r
-proc osutils:vc8:fmtcppx { } {\r
-    return {AdditionalIncludeDirectories="..\..\..\inc,..\..\..\drv\%s,..\..\..\src\%s"\r
-                                                        PreprocessorDefinitions="__%s_DLL;$(NoInherit)"}\r
-}\r
-proc osutils:mak:fmtcppx { } {\r
-    return {CPP_SWITCHES=$(CPP_PROJ) /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"}\r
-}\r
-;#\r
-;# List extensions of files devoted to be eaten by cl.exe compiler.\r
-;#\r
-proc osutils:vc6:compilable { } {\r
-    return [list .c .cxx .cpp]\r
-}\r
-proc osutils:vc7:compilable { } {\r
-    return [list .c .cxx .cpp]\r
-}\r
-proc osutils:vc8:compilable { } {\r
-    return [list .c .cxx .cpp]\r
-}\r
-;#\r
-;# remove from listloc OpenCascade units indesirables on NT\r
-;#\r
-proc osutils:juststation {goaway listloc} {\r
-    set lret {}\r
-    foreach u $listloc {\r
-       if { \r
-            (\r
-               [woklocate -u $u] != ""\r
-               &&\r
-               [lsearch $goaway [wokinfo -n [woklocate -u $u]]] == -1\r
-            )\r
-            ||\r
-            (\r
-               [woklocate -u $u] == ""\r
-               &&\r
-               [lsearch $goaway [wokinfo -n $u]] == -1\r
-            )\r
-           \r
-       } {\r
-           lappend lret $u\r
-       }\r
-    }\r
-    return $lret       \r
-}\r
-\r
-proc osutils:justwnt { listloc } {\r
-    set goaway [list Xdps Xw ImageUtility WOKUnix]\r
-    return [osutils:juststation $goaway $listloc]\r
-}\r
-;#\r
-;# remove from listloc OpenCascade units indesirables on Unix\r
-;#\r
-proc osutils:justunix { listloc } {\r
-    set goaway [list WNT WOKNT]\r
-    return [osutils:juststation $goaway $listloc]\r
-}\r
-;#\r
-;# Define libraries to link\r
-proc LibToLink {tkit} {\r
-    if {[uinfo -t $tkit] == "toolkit"} {\r
-    set l {}\r
-    set LibList [woklocate -p [wokinfo -n $tkit]:stadmfile:[wokinfo -n $tkit]_lib_tks.Out]\r
-    if ![ catch { set id [ open $LibList r ] } status ] {\r
-       while {[gets $id x] >= 0 } {\r
-           if [regexp -- {(-E[^ ]*)} $x] {\r
-                set endnameid [expr { [string wordend $x 4] -1 }]\r
-               set fx [string range $x 3 $endnameid]\r
-               if {[uinfo -t [woklocate -u [file rootname $fx]]] == "toolkit"} {       \r
-                       lappend l $fx\r
-               }\r
-           }\r
-           #if [regexp -- {(-VE[^ ]*)} $x] {\r
-            #    set startid [string first CSF $x]\r
-           #   set endid [ expr { [string wordend $x $startid] -1 } ]\r
-           #   set fx [string range $x $startid $endid]\r
-           #   lappend l $fx\r
-           #}\r
-\r
-       }\r
-       close $id\r
-    } else {\r
-       puts $status\r
-    }\r
-    return $l\r
-    }\r
-}\r
-\r
-proc LibToLinkX {tkit name} {\r
-    if {[uinfo -t $tkit] == "executable"} {\r
-        set l {}\r
-       set LibList [woklocate -p [wokinfo -n $tkit]:stadmfile:[wokinfo -n $tkit]_exec_tks_${name}.Out]\r
-        if ![ catch { set id [ open $LibList r ] } status ] {\r
-         while {[gets $id x] >= 0 } {\r
-           if [regexp -- {(-E[^ ]*)} $x] {\r
-               if {[regexp -- {library} $x]} {\r
-                  set endnameid [expr { [string wordend $x 4] -1 }]\r
-                  set fx [string range $x 3 $endnameid]\r
-                 lappend l $fx\r
-                }\r
-           }\r
-           #if [regexp -- {(-VE[^ ]*)} $x] {\r
-            #    set startid [string first CSF $x]\r
-           #   set endid [ expr { [string wordend $x $startid] -1 } ]\r
-           #   set CSF_fx [string range $x $startid $endid]\r
-            #    if { $CSF_fx != "-"} {\r
-           #     puts $CSF_fx\r
-           #     set fx [file tail [lindex [wokparam -v \%$CSF_fx $tkit] 0]]\r
-           #     lappend l $fx\r
-           #   }\r
-           #}\r
-\r
-        }\r
-        close $id\r
-       } else {\r
-        puts $status\r
-       }\r
-       return $l\r
-    }\r
-}\r
-\r
-\r
-;#\r
-;#      ((((((((WOK toolkits manipulations))))))))\r
-;#\r
-;#  close dependencies of ltk. (full wok pathes of toolkits)\r
-;# The CURRENT WOK LOCATION MUST contains ALL TOOLKITS required. \r
-;# (locate not performed.)\r
-proc osutils:tk:close { ltk } {\r
-    set result {}\r
-    set recurse {}\r
-    foreach dir $ltk {\r
-       #set ids [woklocate -p [wokinfo -n [wokinfo -u $dir]]:source:EXTERNLIB [wokinfo -w $dir]]\r
-        set ids [LibToLink $dir]\r
-       set eated [osutils:tk:eatpk $ids]\r
-       set result [concat $result $eated]\r
-        set ids [LibToLink $dir]\r
-       set result [concat $result $ids]\r
-       #puts "EXTERNLIB dir = $dir ids = $ids result = $result eated = $eated"\r
-       foreach file $eated {\r
-           set kds [woklocate -p [wokinfo -n [wokinfo -u $file]]:source:EXTERNLIB [wokinfo -w $file]]\r
-           if { [osutils:tk:eatpk $kds] !=  {} } {\r
-               lappend recurse $file\r
-           }\r
-       }\r
-    }\r
-    ;#    if ![lempty $recurse] {\r
-       ;#      set result [concat $result [osutils:tk:close $recurse]]\r
-       ;#    }\r
-       if { $recurse != {} } {\r
-           set result [concat $result [osutils:tk:close $recurse]]\r
-       }\r
-    #puts $result\r
-    return $result\r
-}\r
-;#\r
-;# Topological sort of toolkits in tklm\r
-;#\r
-proc osutils:tk:sort { tklm } {\r
-    set tkby2 {}\r
-    foreach tkloc $tklm {\r
-       set lprg [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]\r
-       foreach tkx  $lprg {\r
-           if { [lsearch $tklm $tkx] != -1 } {\r
-               lappend tkby2 [list $tkx $tkloc]\r
-           } else {\r
-               lappend tkby2 [list $tkloc {}]\r
-           }\r
-       }\r
-    }\r
-    set lret {}\r
-    foreach e [wokUtils:EASY:tsort $tkby2] {\r
-       if { $e != {} } {\r
-           lappend lret $e\r
-       }\r
-    }\r
-    return $lret\r
-}\r
-\r
-;#\r
-;# Returns liste of UD in a toolkit. tkloc is a full path wok.\r
-;# \r
-proc osutils:tk:units { tkloc {typed 0} } {\r
-    set l {}\r
-    set PACKAGES [woklocate -p [wokinfo -n [wokinfo -u $tkloc]]:source:PACKAGES [wokinfo -w $tkloc]]\r
-    foreach u [wokUtils:FILES:FileToList $PACKAGES] {\r
-       set fu [woklocate -u $u]\r
-       if { [set fu [woklocate -u $u]] != {} } {\r
-           if { $typed == 0 } {\r
-               lappend l $fu\r
-           } \r
-           if { $typed == 1 } {\r
-               lappend l [list [uinfo -c $fu] [wokinfo -n $fu]]\r
-           }\r
-           if { $typed == 2 } {\r
-               lappend l [list [uinfo -c $fu] $fu]\r
-           }\r
-           if { $typed == 3 } {\r
-               lappend l [list [uinfo -t $fu] [wokinfo -n $fu]]\r
-           }\r
-           if { $typed == 4 } {\r
-               lappend l [list [uinfo -t $fu] $fu]\r
-           }\r
-       } else {\r
-           puts stderr "Unit inconnue $u"\r
-       }\r
-    }\r
-    if { $l == {} } {\r
-       ;#puts stderr "Warning. No devunit included in $tkloc"\r
-    }\r
-    return $l\r
-}\r
-;#\r
-;# for a unit returns a map containing all its file in the current\r
-;# workbench\r
-;# local = 1 only local files\r
-;#\r
-proc osutils:tk:loadunit { loc map {local 0}} {\r
-    upvar $map TLOC\r
-    catch { unset TLOC }\r
-    if { $local == 1 } {\r
-       set lfiles [uinfo -Fpl $loc]\r
-    } else {\r
-       set lfiles [uinfo -Fp $loc]\r
-    }\r
-    foreach f $lfiles { \r
-       #puts $f\r
-       set t [lindex $f 0]\r
-       set p [lindex $f 2]\r
-       if [info exists TLOC($t)] {\r
-           set l $TLOC($t)\r
-           lappend l $p\r
-           set TLOC($t) $l\r
-       } else {\r
-           set TLOC($t) $p\r
-       }\r
-    }\r
-    return\r
-}\r
-;#\r
-;# Returns the list of all compilable files name in a toolkit, or devunit of any type\r
-;# Call unit filter on units name to accept or reject a unit\r
-;# Tfiles lists for each unit the type of file that can be compiled.\r
-;#\r
-proc osutils:tk:files { tkloc  {l_compilable {} } {justail 1} {unitfilter {}} } {\r
-    set Tfiles(source,package)       {source derivated privinclude pubinclude drvfile}\r
-    set Tfiles(source,nocdlpack)     {source pubinclude drvfile}\r
-    set Tfiles(source,schema)        {source derivated privinclude pubinclude drvfile}\r
-    set Tfiles(source,toolkit)       {}\r
-    set Tfiles(source,executable)    {source pubinclude drvfile}\r
-    set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]]\r
-    #puts " listloc = $listloc"\r
-    if { $l_compilable == {} } {\r
-       set l_comp [list .c .cxx .cpp]\r
-    } else {\r
-       set l_comp [$l_compilable]\r
-    }\r
-    if { $unitfilter == {} } {\r
-       set resultloc $listloc\r
-    } else {\r
-       set resultloc [$unitfilter $listloc]\r
-    }\r
-    set lret {}\r
-    foreach loc $resultloc {\r
-       set utyp [uinfo -t $loc]\r
-       if [array exists map] { unset map }             \r
-       osutils:tk:loadunit $loc map\r
-       #puts " loc = $loc === > [array names map]"\r
-       set LType $Tfiles(source,${utyp})\r
-       foreach typ [array names map] {\r
-           if { [lsearch $LType $typ] == -1 } {\r
-               unset map($typ)\r
-           }\r
-       }\r
-       foreach type [array names map] {\r
-           #puts $type\r
-           foreach f $map($type) {\r
-               #puts $f\r
-               if { [lsearch $l_comp [file extension $f]] != -1 } {\r
-                   if { $justail == 1 } {\r
-                       if {$type == "source"} {\r
-                           if {[lsearch $lret "@top_srcdir@/drv/[wokinfo -n $loc]/[file tail $f]"] == -1} {\r
-                               lappend lret @top_srcdir@/src/[wokinfo -n $loc]/[file tail $f]\r
-                           }\r
-                           } elseif {$type == "derivated" || $type == "drvfile"} {\r
-                               if {[lsearch $lret "@top_srcdir@/src/[wokinfo -n $loc]/[file tail $f]"] == -1} {\r
-                                   lappend lret @top_srcdir@/drv/[wokinfo -n $loc]/[file tail $f]\r
-                           }\r
-                       }\r
-                   } else {\r
-                       lappend lret $f\r
-                   }\r
-               }\r
-           }\r
-       }\r
-    }\r
-    return $lret\r
-}\r
-;#\r
-;# \r
-;#\r
-proc osutils:tk:eatpk { EXTERNLIB  } {\r
-    set l [wokUtils:FILES:FileToList $EXTERNLIB]\r
-    set lret  {}\r
-    foreach str $l {\r
-        if ![regexp -- {(CSF_[^ ]*)} $str csf] {\r
-            lappend lret $str\r
-        }\r
-    }\r
-    return $lret\r
-}\r
-;#\r
-;# Return the list of name *CSF_ in a EXTERNLIB description of a toolkit\r
-;#\r
-proc osutils:tk:hascsf { EXTERNLIB } {\r
-    set l [wokUtils:FILES:FileToList $EXTERNLIB]\r
-    set lret  {STLPort}\r
-    foreach str $l {\r
-        if [regexp -- {(CSF_[^ ]*)} $str csf] {\r
-            lappend lret $csf\r
-        }\r
-    }\r
-    return $lret\r
-}\r
-;#\r
-;# Create file tkloc.dsp for a shareable library (dll).\r
-;# in dir return the full path of the created file\r
-;#\r
-proc osutils:vc6 { dir tkloc {tmplat {} } {fmtcpp {} } } {\r
-    if { $tmplat == {} } {set tmplat [osutils:vc6:readtemplate]}\r
-    if { $fmtcpp == {} } {set fmtcpp [osutils:vc6:fmtcpp]}\r
-    set fp [open [set fdsp [file join $dir ${tkloc}.dsp]] w]\r
-    fconfigure $fp -translation crlf\r
-    set l_compilable [osutils:vc6:compilable]\r
-    regsub -all -- {__TKNAM__} $tmplat $tkloc  temp0\r
-    set tkused ""\r
-    foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {\r
-       append tkused "${tkx}.lib "\r
-    }\r
-    foreach tk [lappend [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] $tkloc] {\r
-       foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {\r
-           if {[wokparam -t %$element] != 0} {\r
-               set felem [file tail [lindex [wokparam -v "%$element"] 0]]\r
-             if {[lsearch $tkused $felem] == "-1"} {\r
-               if {$felem != "\{\}"} {\r
-                   set tkused [concat $tkused $felem]\r
-               }\r
-            }   \r
-          }\r
-       }\r
-    }\r
-\r
-    #puts "alternative [LibToLink $tkloc]"\r
-    puts "$tkloc requires  $tkused"\r
-    regsub -all -- {__TKDEP__} $temp0  $tkused temp1\r
-    set files ""\r
-    ;#set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]]\r
-    set listloc [osutils:tk:units [woklocate -u $tkloc]]\r
-    set resultloc [osutils:justwnt $listloc]\r
-    ;#puts "result = $resultloc"\r
-    ;#set lsrc   [lsort [osutils:tk:files $tkloc osutils:am:compilable 1 osutils:justwnt]]\r
-    if [array exists written] { unset written }\r
-    foreach fxlo $resultloc {\r
-        set xlo [wokinfo -n $fxlo]\r
-       append files "# Begin Group \"${xlo}\"" "\n"        \r
-       set lsrc   [osutils:tk:files $xlo osutils:am:compilable 0]\r
-       set fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]\r
-        set fxloparam "$fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2]"\r
-        set needparam ""\r
-        foreach partopt $fxloparam {\r
-           if { "-I[lindex [wokparam -v %CSF_TCL_INCLUDE] 0]" != "$partopt "} {\r
-               if { "-I[lindex [wokparam -v %CSF_JAVA_INCLUDE] 0]" != "$partopt "} {\r
-                 set needparam "$needparam $partopt"\r
-                }\r
-           }\r
-        }\r
-        foreach f $lsrc {\r
-           ;#puts " f = $f"\r
-           if { ![info exists written([file tail $f])] } {\r
-               set written([file tail $f]) 1\r
-               append files "# Begin Source File" "\n"\r
-               append files "SOURCE=..\\..\\..\\" [wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]] "\n"\r
-               append files [format $fmtcpp $xlo $xlo $xlo] "$needparam" "\n"\r
-               append files "# End Source File" "\n"\r
-           } else {\r
-               puts "Warning : in dsp more than one occurences for [file tail $f]"\r
-           }\r
-       }\r
-    append files "# End Group" "\n"\r
-    }\r
-    \r
-    regsub -all -- {__FILES__} $temp1 $files temp2\r
-    puts $fp $temp2\r
-    close $fp\r
-    return $fdsp\r
-}\r
-proc osutils:vc7 { dir tkloc {tmplat {} } {fmtcpp {} } } {\r
-   if { $tmplat == {} } {set tmplat [osutils:vc7:readtemplate]}\r
-    if { $fmtcpp == {} } {set fmtcpp [osutils:vc7:fmtcpp]}\r
-    set fp [open [set fvcproj [file join $dir ${tkloc}.vcproj]] w]\r
-    fconfigure $fp -translation crlf\r
-    set l_compilable [osutils:vc7:compilable]\r
-    regsub -all -- {__TKNAM__} $tmplat $tkloc  temp0\r
-    set tkused ""\r
-    foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {\r
-       append tkused "${tkx}.lib "\r
-    }\r
-    foreach tk [lappend [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] $tkloc] {\r
-       foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {\r
-           if {[wokparam -t %$element] != 0} {\r
-               set felem [file tail [lindex [wokparam -v "%$element"] 0]]\r
-             if {[lsearch $tkused $felem] == "-1"} {\r
-               if {$felem != "\{\}"} {\r
-                   set tkused [concat $tkused $felem]\r
-               }\r
-            }   \r
-          }\r
-       }\r
-    }\r
-\r
-    puts "$tkloc requires  $tkused"\r
-    regsub -all -- {__TKDEP__} $temp0  $tkused temp1\r
-    set files ""\r
-    set listloc [osutils:tk:units [woklocate -u $tkloc]]\r
-    set resultloc [osutils:justwnt $listloc]\r
-    if [array exists written] { unset written }\r
-    foreach fxlo $resultloc {\r
-        set xlo [wokinfo -n $fxlo]        \r
-       append files "        <Filter\n"\r
-        append files "                                Name=\"${xlo}\"\n"\r
-        append files "                                Filter=\"\">\n"\r
-        set lsrc   [osutils:tk:files $xlo osutils:am:compilable 0]\r
-       set fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]\r
-        set fxloparam "$fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2]"\r
-        set needparam ""\r
-        foreach partopt $fxloparam {\r
-           if { "-I[lindex [wokparam -v %CSF_TCL_INCLUDE] 0]" != "$partopt "} {\r
-               if { "-I[lindex [wokparam -v %CSF_JAVA_INCLUDE] 0]" != "$partopt "} {\r
-                 set needparam "$needparam $partopt"\r
-                }\r
-           }\r
-        }\r
-        foreach f $lsrc {\r
-           #puts " f = $f"\r
-           if { ![info exists written([file tail $f])] } {\r
-               set written([file tail $f]) 1\r
-               append files "\t\t\t\t<File\n"\r
-               append files "\t\t\t\t\tRelativePath=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]]\">\n"\r
-                append files "\t\t\t\t\t<FileConfiguration\n"\r
-                append files "\t\t\t\t\t\tName=\"Debug\|Win32\">\n"\r
-                append files "\t\t\t\t\t\t<Tool\n"\r
-                append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"\r
-                if {$needparam != ""} {\r
-                  append files "\t\t\t\t\t\t\tAdditionalOptions=\""\r
-                  foreach paramm $needparam {\r
-                     append files "$paramm "\r
-                  }\r
-                  append files "\"\n"\r
-                }\r
-                append files "\t\t\t\t\t\t\tOptimization=\"0\"\n"\r
-               append files "\t\t\t\t\t\t\t[format $fmtcpp $xlo $xlo $xlo]\n"\r
-                append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"\r
-                append files "\t\t\t\t\t</FileConfiguration>\n"\r
-                append files "\t\t\t\t\t<FileConfiguration\n"\r
-                append files "\t\t\t\t\t\tName=\"Release\|Win32\">\n"\r
-                append files "\t\t\t\t\t\t<Tool\n"\r
-                append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"\r
-                if {$needparam != ""} {\r
-                  append files "\t\t\t\t\t\t\tAdditionalOptions=\""\r
-                  foreach paramm $needparam {\r
-                     append files "$paramm "\r
-                  }\r
-                  append files "\"\n"\r
-                }\r
-                append files "\t\t\t\t\t\t\tOptimization=\"2\"\n"\r
-               append files "\t\t\t\t\t\t\t[format $fmtcpp $xlo $xlo $xlo]\n"\r
-                append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"\r
-                append files "\t\t\t\t\t</FileConfiguration>\n"\r
-               append files "\t\t\t\t</File>\n"\r
-           } else {\r
-               puts "Warning : in vcproj more than one occurences for [file tail $f]"\r
-           }\r
-       }\r
-    append files "\t\t\t</Filter>"\r
-    }\r
-    \r
-    regsub -all -- {__FILES__} $temp1 $files temp2\r
-    puts $fp $temp2\r
-    close $fp\r
-    return $fvcproj\r
-}\r
-proc osutils:vc8 { dir tkloc {tmplat {} } {fmtcpp {} } } {\r
-   if { $tmplat == {} } {set tmplat [osutils:vc8:readtemplate]}\r
-    if { $fmtcpp == {} } {set fmtcpp [osutils:vc8:fmtcpp]}\r
-    set fp [open [set fvcproj [file join $dir ${tkloc}.vcproj]] w]\r
-    fconfigure $fp -translation crlf\r
-    set l_compilable [osutils:vc8:compilable]\r
-    regsub -all -- {__TKNAM__} $tmplat $tkloc  temp0\r
-    set tkused ""\r
-    foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {\r
-       append tkused "${tkx}.lib "\r
-    }\r
-    foreach tk [lappend [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] $tkloc] {\r
-       foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {\r
-           if {[wokparam -t %$element] != 0} {\r
-               set felem [file tail [lindex [wokparam -v "%$element"] 0]]\r
-             if {[lsearch $tkused $felem] == "-1"} {\r
-               if {$felem != "\{\}"} {\r
-                   set tkused [concat $tkused $felem]\r
-               }\r
-            }   \r
-          }\r
-       }\r
-    }\r
-\r
-    puts "$tkloc requires  $tkused"\r
-    regsub -all -- {__TKDEP__} $temp0  $tkused temp1\r
-    set files ""\r
-    set listloc [osutils:tk:units [woklocate -u $tkloc]]\r
-    set resultloc [osutils:justwnt $listloc]\r
-    if [array exists written] { unset written }\r
-    foreach fxlo $resultloc {\r
-        set xlo [wokinfo -n $fxlo]        \r
-       append files "        <Filter\n"\r
-        append files "                                Name=\"${xlo}\"\n"\r
-        append files "                                Filter=\"\">\n"\r
-        set lsrc   [osutils:tk:files $xlo osutils:am:compilable 0]\r
-       set fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]\r
-        set fxloparam "$fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2]"\r
-        set needparam ""\r
-        foreach partopt $fxloparam {\r
-           if { "-I[lindex [wokparam -v %CSF_TCL_INCLUDE] 0]" != "$partopt "} {\r
-               if { "-I[lindex [wokparam -v %CSF_JAVA_INCLUDE] 0]" != "$partopt "} {\r
-                 set needparam "$needparam $partopt"\r
-                }\r
-           }\r
-        }\r
-        foreach f $lsrc {\r
-           #puts " f = $f"\r
-           if { ![info exists written([file tail $f])] } {\r
-               set written([file tail $f]) 1\r
-               append files "\t\t\t\t<File\n"\r
-               append files "\t\t\t\t\tRelativePath=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]]\">\n"\r
-                append files "\t\t\t\t\t<FileConfiguration\n"\r
-                append files "\t\t\t\t\t\tName=\"Debug\|Win32\">\n"\r
-                append files "\t\t\t\t\t\t<Tool\n"\r
-                append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"\r
-                if {$needparam != ""} {\r
-                  append files "\t\t\t\t\t\t\tAdditionalOptions=\""\r
-                  foreach paramm $needparam {\r
-                     append files "$paramm "\r
-                  }\r
-                  append files "\"\n"\r
-                }\r
-                append files "\t\t\t\t\t\t\tOptimization=\"0\"\n"\r
-               append files "\t\t\t\t\t\t\t[format $fmtcpp $xlo $xlo $xlo]\n"\r
-                append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"\r
-                append files "\t\t\t\t\t</FileConfiguration>\n"\r
-                append files "\t\t\t\t\t<FileConfiguration\n"\r
-                append files "\t\t\t\t\t\tName=\"Release\|Win32\">\n"\r
-                append files "\t\t\t\t\t\t<Tool\n"\r
-                append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"\r
-                if {$needparam != ""} {\r
-                  append files "\t\t\t\t\t\t\tAdditionalOptions=\""\r
-                  foreach paramm $needparam {\r
-                     append files "$paramm "\r
-                  }\r
-                  append files "\"\n"\r
-                }\r
-                append files "\t\t\t\t\t\t\tOptimization=\"2\"\n"\r
-               append files "\t\t\t\t\t\t\t[format $fmtcpp $xlo $xlo $xlo]\n"\r
-                append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"\r
-                append files "\t\t\t\t\t</FileConfiguration>\n"\r
-               append files "\t\t\t\t</File>\n"\r
-           } else {\r
-               puts "Warning : in vcproj more than one occurences for [file tail $f]"\r
-           }\r
-       }\r
-    append files "\t\t\t</Filter>"\r
-    }\r
-    \r
-    regsub -all -- {__FILES__} $temp1 $files temp2\r
-    puts $fp $temp2\r
-    close $fp\r
-    return $fvcproj\r
-}\r
-;#\r
-;# Create file tkloc.dsp for a executable "console" application\r
-;# in dir return the full path of the created file\r
-;#\r
-proc osutils:vc6x { dir tkloc {tmplat {} } {fmtcpp {} } } {\r
-    if { $tmplat == {} } {set tmplat [osutils:vc6:readtemplatex]}\r
-    if { $fmtcpp == {} } {set fmtcpp [osutils:vc6:fmtcppx]}\r
-    foreach f [osutils:tk:files $tkloc osutils:am:compilable 0] {\r
-        set tf [file rootname [file tail $f]]   \r
-        set fp [open [set fdsp [file join $dir ${tf}.dsp]] w]\r
-        puts $fdsp\r
-        fconfigure $fp -translation crlf\r
-        set l_compilable [osutils:vc6:compilable]\r
-        regsub -all -- {__XQTNAM__} $tmplat $tf  temp0\r
-        set tkused ""\r
-        puts [LibToLinkX [woklocate -u $tkloc] $tf]\r
-        foreach tkx [LibToLinkX [woklocate -u $tkloc] $tf] {\r
-         if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} {\r
-           append tkused "${tkx}.lib "\r
-         }\r
-#          if {[lsearch [w_info -l] [woklocate -u $tkx]] == "-1"} {\r
-#          append tkused "${tkx}.lib "\r
-#        }\r
-         if {[woklocate -u $tkx] == "" } {\r
-             append tkused "${tkx}.lib "\r
-         }\r
-        }\r
-        foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] {\r
-           foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokinfo -N [woklocate -u $tk]]]] {\r
-           if {[wokparam -t %$element] != 0} {\r
-              set elemlist [wokparam -v "%$element"]\r
-             set felem [file tail [lindex $elemlist 0]] \r
-             if {[lsearch $tkused $felem] == "-1"} {\r
-               if {$felem != "\{\}"} {\r
-                    #puts "was found $element $felem"     \r
-                   set tkused [concat $tkused $felem]\r
-               }\r
-             }   \r
-           }\r
-        }\r
-       }\r
-       if {[wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]] == "#WOKStep_DLLink(exec.tks)"} { \r
-           set tkused [concat $tkused "\/dll"]\r
-       }\r
-       regsub -all -- {__COMPOPT__} $temp0 "\/MD" temp1 \r
-       regsub -all -- {__COMPOPTD__} $temp1 "\/MDd" temp2 \r
-       puts "$tf requires  $tkused"\r
-       regsub -all -- {__TKDEP__} $temp2  $tkused temp3\r
-       set files ""\r
-       ;#set lsrc   [osutils:tk:files $tkloc osutils:am:compilable 0]\r
-       ;#foreach f $lsrc {\r
-       if { ![info exists written([file tail $f])] } {\r
-           set written([file tail $f]) 1\r
-            append files "# Begin Group \"" $tkloc "\" \n"\r
-           append files "# Begin Source File" "\n"\r
-           append files "SOURCE=..\\..\\..\\" [wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]] "\n"\r
-           append files [format $fmtcpp $tkloc $tkloc $tkloc] "\n"\r
-           append files "# End Source File" "\n"\r
-            append files "# End Group" "\n"\r
-       } else {\r
-           puts "Warning : in dsp more than one occurences for [file tail $f]"\r
-       }\r
-       ;#}\r
-    \r
-   regsub -all -- {__FILES__} $temp3 $files temp4\r
-    puts $fp $temp4\r
-    close $fp\r
-       set fout [lappend fout $fdsp]\r
-    }\r
-    return $fout\r
-}\r
-proc osutils:vc7x { dir tkloc {tmplat {} } {fmtcpp {} } } {\r
-    if { $tmplat == {} } {set tmplat [osutils:vc7:readtemplatex]}\r
-    if { $fmtcpp == {} } {set fmtcpp [osutils:vc7:fmtcppx]}\r
-    set fout {}\r
-    foreach f [osutils:tk:files $tkloc osutils:am:compilable 0] {\r
-        puts "1"\r
-        set tf [file rootname [file tail $f]]   \r
-        set l_compilable [osutils:vc7:compilable]\r
-        regsub -all -- {__XQTNAM__} $tmplat $tf  temp0\r
-        set tkused ""\r
-        foreach tkx [LibToLinkX [woklocate -u $tkloc] $tf] {\r
-         if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} {\r
-           append tkused "${tkx}.lib "\r
-         }\r
-          if {[lsearch [w_info -l] $tkx] == "-1"} {\r
-           append tkused "${tkx}.lib "\r
-         }\r
-        }\r
-       foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] {\r
-         foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]]  {\r
-           if {[wokparam -t %$element] != 0} {\r
-                set elemlist [wokparam -v "%$element"]\r
-               set felem [file tail [lindex $elemlist 0]] \r
-             if {[lsearch $tkused $felem] == "-1"} {\r
-               if {$felem != "\{\}"} {\r
-                    #puts "was found $element $felem"     \r
-                   set tkused [concat $tkused $felem]\r
-               }\r
-             }   \r
-           }\r
-        }\r
-       }\r
-       if {[wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]] == "#WOKStep_DLLink(exec.tks)"} { \r
-           set tkused [concat $tkused "\/dll"]\r
-           set binext 2\r
-       } else {\r
-           set binext 1\r
-       }\r
-       #puts "$tf requires  $tkused"\r
-       regsub -all -- {__TKDEP__} $temp0  $tkused temp3\r
-       set files ""\r
-       ;#set lsrc   [osutils:tk:files $tkloc osutils:am:compilable 0]\r
-       ;#foreach f $lsrc {\r
-       if { ![info exists written([file tail $f])] } {\r
-           set written([file tail $f]) 1\r
-            append files "\t\t\t<Filter\n"\r
-            append files "\t\t\t\tName=\"$tkloc\"\n"\r
-           append files "\t\t\t\tFilter=\"\">\n"\r
-            append files "\t\t\t\t<File\n"\r
-           append files "\t\t\t\t\tRelativePath=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]]\">\n"\r
-            append files "\t\t\t\t\t<FileConfiguration\n"\r
-            append files "\t\t\t\t\t\tName=\"Debug|Win32\">\n"\r
-            append files "\t\t\t\t\t\t<Tool\n"\r
-            append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"\r
-            append files "\t\t\t\t\t\t\tOptimization=\"0\"\n"\r
-            append files "\t\t\t\t\t\t\t[format $fmtcpp $tkloc $tkloc $tkloc] \n"\r
-           append files "\t\t\t\t\t\t\tBasicRuntimeChecks=\"3\"\n"\r
-            append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"\r
-            append files "\t\t\t\t\t</FileConfiguration>\n"\r
-            append files "\t\t\t\t\t<FileConfiguration\n"\r
-            append files "\t\t\t\t\t\tName=\"Release|Win32\">\n"\r
-            append files "\t\t\t\t\t\t<Tool\n"\r
-            append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"\r
-            append files "\t\t\t\t\t\t\tOptimization=\"2\"\n"\r
-            append files "\t\t\t\t\t\t\t[format $fmtcpp $tkloc $tkloc $tkloc] \n"\r
-            append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"\r
-            append files "\t\t\t\t\t</FileConfiguration>\n"\r
-            append files "\t\t\t\t</File>\n"\r
-            append files "\t\t\t</Filter>\n"\r
-       } else {\r
-           puts "Warning : in dsp more than one occurences for [file tail $f]"\r
-       }\r
-       ;#}\r
-    #puts "$temp3 $files"\r
-    regsub -all -- {__FILES__} $temp3 $files temp4\r
-    regsub -all -- {__CONF__} $temp4 $binext temp5\r
-    set fp [open [set fdsp [file join $dir ${tf}.vcproj]] w]\r
-    fconfigure $fp -translation crlf\r
\r
-    puts $fp $temp5\r
-    set fout [lappend fout $fdsp]\r
-    close $fp\r
-   }\r
-   return $fout\r
-}\r
-\r
-proc osutils:vc8x { dir tkloc {tmplat {} } {fmtcpp {} } } {\r
-    if { $tmplat == {} } {set tmplat [osutils:vc8:readtemplatex]}\r
-    if { $fmtcpp == {} } {set fmtcpp [osutils:vc8:fmtcppx]}\r
-    set fout {}\r
-    foreach f [osutils:tk:files $tkloc osutils:am:compilable 0] {\r
-        puts "1"\r
-        set tf [file rootname [file tail $f]]   \r
-        set l_compilable [osutils:vc8:compilable]\r
-        regsub -all -- {__XQTNAM__} $tmplat $tf  temp0\r
-        set tkused ""\r
-        foreach tkx [LibToLinkX [woklocate -u $tkloc] $tf] {\r
-         if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} {\r
-           append tkused "${tkx}.lib "\r
-         }\r
-          if {[lsearch [w_info -l] $tkx] == "-1"} {\r
-           append tkused "${tkx}.lib "\r
-         }\r
-        }\r
-       foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] {\r
-         foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]]  {\r
-           if {[wokparam -t %$element] != 0} {\r
-                set elemlist [wokparam -v "%$element"]\r
-               set felem [file tail [lindex $elemlist 0]] \r
-             if {[lsearch $tkused $felem] == "-1"} {\r
-               if {$felem != "\{\}"} {\r
-                    #puts "was found $element $felem"     \r
-                   set tkused [concat $tkused $felem]\r
-               }\r
-             }   \r
-           }\r
-        }\r
-       }\r
-       if {[wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]] == "#WOKStep_DLLink(exec.tks)"} { \r
-           set tkused [concat $tkused "\/dll"]\r
-           set binext 2\r
-       } else {\r
-           set binext 1\r
-       }\r
-       #puts "$tf requires  $tkused"\r
-       regsub -all -- {__TKDEP__} $temp0  $tkused temp3\r
-       set files ""\r
-       ;#set lsrc   [osutils:tk:files $tkloc osutils:am:compilable 0]\r
-       ;#foreach f $lsrc {\r
-       if { ![info exists written([file tail $f])] } {\r
-           set written([file tail $f]) 1\r
-            append files "\t\t\t<Filter\n"\r
-            append files "\t\t\t\tName=\"$tkloc\"\n"\r
-           append files "\t\t\t\tFilter=\"\">\n"\r
-            append files "\t\t\t\t<File\n"\r
-           append files "\t\t\t\t\tRelativePath=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]]\">\n"\r
-            append files "\t\t\t\t\t<FileConfiguration\n"\r
-            append files "\t\t\t\t\t\tName=\"Debug|Win32\">\n"\r
-            append files "\t\t\t\t\t\t<Tool\n"\r
-            append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"\r
-            append files "\t\t\t\t\t\t\tOptimization=\"0\"\n"\r
-            append files "\t\t\t\t\t\t\t[format $fmtcpp $tkloc $tkloc $tkloc] \n"\r
-           append files "\t\t\t\t\t\t\tBasicRuntimeChecks=\"3\"\n"\r
-            append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"\r
-            append files "\t\t\t\t\t</FileConfiguration>\n"\r
-            append files "\t\t\t\t\t<FileConfiguration\n"\r
-            append files "\t\t\t\t\t\tName=\"Release|Win32\">\n"\r
-            append files "\t\t\t\t\t\t<Tool\n"\r
-            append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"\r
-            append files "\t\t\t\t\t\t\tOptimization=\"2\"\n"\r
-            append files "\t\t\t\t\t\t\t[format $fmtcpp $tkloc $tkloc $tkloc] \n"\r
-            append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"\r
-            append files "\t\t\t\t\t</FileConfiguration>\n"\r
-            append files "\t\t\t\t</File>\n"\r
-            append files "\t\t\t</Filter>\n"\r
-       } else {\r
-           puts "Warning : in dsp more than one occurences for [file tail $f]"\r
-       }\r
-       ;#}\r
-    #puts "$temp3 $files"\r
-    regsub -all -- {__FILES__} $temp3 $files temp4\r
-    regsub -all -- {__CONF__} $temp4 $binext temp5\r
-    set fp [open [set fdsp [file join $dir ${tf}.vcproj]] w]\r
-    fconfigure $fp -translation crlf\r
\r
-    puts $fp $temp5\r
-    set fout [lappend fout $fdsp]\r
-    close $fp\r
-   }\r
-   return $fout\r
-}\r
-\r
-;#\r
-;# Create file tkloc.mak for a shareable library (dll).\r
-;# in dir return the full path of the created file\r
-;#\r
-proc osutils:mkmak { dir tkloc {tmplat {} } {fmtcpp {} } } {\r
-    puts $tkloc\r
-    if { $tmplat == {} } {set tmplat [osutils:mak:readtemplate]}\r
-    if { $fmtcpp == {} } {set fmtcpp [osutils:mak:fmtcpp]}\r
-    set fp [open [set fdsp [file join $dir ${tkloc}.mak]] w]\r
-    fconfigure $fp -translation crlf\r
-    set l_compilable [osutils:vc6:compilable]\r
-    set tkused [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]\r
-    set listloc [osutils:tk:units [woklocate -u $tkloc]]\r
-    set resultloc [osutils:justwnt $listloc]\r
-    regsub -all -- {__TKNAM__} $tmplat $tkloc  temp0\r
-    set area1 ""\r
-    append area1 "\!IF \"\$(RECURSE)\" == \"0\" \n"\r
-    append area1 "ALL : \"\$(OUTDIR)\\${tkloc}.dll\"\n"\r
-    append area1 "\!ELSE\n"\r
-    append area1 "ALL : "\r
-    if {$tkused != ""} {\r
-      foreach tkproj $tkused {\r
-        append area1 "\"$tkproj - Win32 Release\" " \r
-      }\r
-    }\r
-    append area1 " \"\$(OUTDIR)\\$tkloc.dll\"\n"\r
-    append area1 "\!ENDIF \n"\r
-    append area1 "\!IF \"\$(RECURSE)\" == \"1\"\n" \r
-    append area1 "CLEAN :"\r
-    if {$tkused != ""} {\r
-      foreach tkproj $tkused {\r
-        append area1 "\"$tkproj - Win32 ReleaseCLEAN\" " \r
-      }\r
-    }\r
-    append area1 "\n" \r
-    append area1 "\!ELSE\n" \r
-    append area1 "CLEAN :\n"\r
-    append area1 "\!ENDIF\n"\r
-    set tclused 0\r
-    set javaused 0\r
-    if [array exists written] { unset written }\r
-    foreach fxlo $resultloc {\r
-      set xlo [wokinfo -n $fxlo]\r
-      set lsrc   [osutils:tk:files $xlo osutils:am:compilable 0]\r
-      set fxlocxxparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]\r
-      set fxlocparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2]\r
-      if {[lsearch [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_TCL_INCLUDE] 0] 0 end]"] != -1} {\r
-        set tclused 1\r
-      }\r
-      if {[lsearch [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_JavaHome]/include 0] 0 end]"] != -1} {\r
-       set javaused 1\r
-      }\r
-      if {[lsearch [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_TCL_INCLUDE] 0] 0 end]"] != -1} {\r
-         set tclused 1\r
-      }\r
-      if {[lsearch [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_JavaHome]/include 0] 0 end]"] != -1} {\r
-         set javaused 1\r
-      }\r
-\r
-      foreach srcfile $lsrc {\r
-        if { ![info exists written([file tail $srcfile])] } {\r
-         set written([file tail $srcfile]) 1\r
-         append area1 "\t-@erase \"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\"\n"\r
-        }\r
-      }\r
-    } \r
-    regsub -all -- {__FIELD1__} $temp0 $area1  temp1\r
-\r
-    set area2 "LINK32_FLAGS=-nologo -subsystem:windows -dll -incremental:no -machine:IX86 -libpath:\"\$(LIBDIR)\" -implib:\$(LIBDIR)\\$tkloc.lib -out:\$(OUTDIR)\\$tkloc.dll "\r
-    set libused ""\r
-    foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {\r
-       append libused "${tkx}.lib "\r
-    }\r
-    set ltk [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]\r
-    set ltk [lappend ltk $tkloc]\r
-    foreach tk $ltk {\r
-        foreach element [osutils:tk:hascsf [woklocate -p $tk:source:EXTERNLIB [wokcd]]] {\r
-           if {[wokparam -t %$element] != 0} {\r
-             set felem [file tail [lindex [wokparam -v "%$element"] 0]]\r
-             if {[lsearch $libused $felem] == "-1"} {\r
-               if {$felem != "\{\}"} {\r
-                   set libused [concat $libused $felem]\r
-               }\r
-            }   \r
-          }\r
-       }\r
-    }\r
-    if {$tclused == 1} {\r
-      append area2 "-libpath:\"\$(TCLHOME)\\lib\" "\r
-    }\r
-    \r
-    foreach tk $libused {\r
-      append area2 "$tk "\r
-    }\r
-    append area2 "\n"\r
-    append area2 "LINK32_OBJS= \\\n"\r
-    if [array exists written] { unset written }\r
-    foreach fxlo $resultloc {\r
-        set xlo [wokinfo -n $fxlo]\r
-        set lsrc   [osutils:tk:files $xlo osutils:am:compilable 0]\r
-        foreach srcfile $lsrc {\r
-          if { ![info exists written([file tail $srcfile])] } {\r
-           set written([file tail $srcfile]) 1\r
-           append area2 "\t\"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\" \\\n"\r
-          }\r
-        }\r
-    } \r
\r
-    regsub -all -- {__FIELD2__} $temp1 $area2  temp2\r
-       \r
-    set area3 ""\r
-    append area3 "\!IF \"\$(RECURSE)\" == \"0\" \n"\r
-    append area3 "ALL : \"\$(OUTDIR)\\${tkloc}.dll\"\n"\r
-    append area3 "\!ELSE\n"\r
-    append area3 "ALL : "\r
-    if {$tkused != ""} {\r
-      foreach tkproj $tkused {\r
-        append area3 "\"$tkproj - Win32 Debug\" " \r
-      }\r
-    }\r
-    append area3 " \"\$(OUTDIR)\\$tkloc.dll\"\n"\r
-    append area3 "\!ENDIF \n"\r
-    append area3 "\!IF \"\$(RECURSE)\" == \"1\"\n" \r
-    append area3 "CLEAN :"\r
-    if {$tkused != ""} {\r
-      foreach tkproj $tkused {\r
-        append area3 "\"$tkproj - Win32 DebugCLEAN\"" \r
-      }\r
-    }\r
-    append area3 "\n" \r
-    append area3 "\!ELSE\n" \r
-    append area3 "CLEAN :\n"\r
-    append area3 "\!ENDIF\n"\r
-    if [array exists written] { unset written }\r
\r
-   foreach fxlo $resultloc {\r
-      set xlo [wokinfo -n $fxlo]\r
-      set lsrc   [osutils:tk:files $xlo osutils:am:compilable 0]\r
-\r
-      foreach srcfile $lsrc {\r
-        if { ![info exists written([file tail $srcfile])] } {\r
-         set written([file tail $srcfile]) 1\r
-         append area3 "\t-@erase \"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\"\n"\r
-        }\r
-      }\r
-    } \r
-    regsub -all -- {__FIELD3__} $temp2 $area3  temp3\r
-\r
-    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 "\r
-    foreach tk $libused {\r
-      append area4 "$tk "\r
-    }\r
-    if {$tclused == 1} {\r
-      append area4 "-libpath:\"\$(TCLHOME)\\lib\" "\r
-    }\r
-\r
-    append area4 "\n"\r
-    append area4 "LINK32_OBJS= \\\n"\r
-    if [array exists written] { unset written }\r
-    foreach fxlo $resultloc {\r
-        set xlo [wokinfo -n $fxlo]\r
-        set lsrc   [osutils:tk:files $xlo osutils:am:compilable 0]\r
-        foreach srcfile $lsrc {\r
-          if { ![info exists written([file tail $srcfile])] } {\r
-           set written([file tail $srcfile]) 1\r
-           append area4 "\t\"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\" \\\n"\r
-          }\r
-        }\r
-    } \r
\r
-    regsub -all -- {__FIELD4__} $temp3 $area4  temp4\r
-\r
-    set area5 ""\r
-    if [array exists written] { unset written }\r
-    foreach fxlo $resultloc {\r
-      set xlo [wokinfo -n $fxlo]\r
-      set lsrc   [osutils:tk:files $xlo osutils:am:compilable 0]\r
-      set fxlocxxparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]\r
-      set fxlocparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2]\r
-      if {$tclused == 1} {\r
-        set fxlocxxparam "-I\$(TCLHOME)\\include"\r
-      }\r
-      if {$javaused == 1} {\r
-         set fxlocxxparam "-I\$(JAVAHOME)\\include -I\$(JAVAHOME)\\include\\win32"\r
-      }\r
-      set fxloparam "$fxlocparam $fxlocxxparam"\r
-      #puts $fxloparam\r
-      foreach srcfile $lsrc {\r
-        if { ![info exists written([file tail $srcfile])] } {\r
-         set written([file tail $srcfile]) 1\r
-          set pkname [wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]]\r
-          \r
-         append area5 "SOURCE=..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $srcfile 3]]\n"\r
-          append area5 "\!IF  \"\$(CFG)\" == \"$tkloc - Win32 Release\"\n"\r
-         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"\r
-          append area5 "\"\$(INTDIR)\\$pkname.obj\" : \$(SOURCE) \"\$(INTDIR)\"\n"\r
-          append area5 "\t\t\$(CPP) \$(CPP_SWITCHES) \$(SOURCE)\n"\r
-          append area5 "\n"\r
-          append area5 "\!ELSEIF  \"\$(CFG)\" == \"$tkloc - Win32 Debug\"\n"\r
-         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"\r
-          append area5 "\"\$(INTDIR)\\$pkname.obj\" : \$(SOURCE) \"\$(INTDIR)\"\n"\r
-          append area5 "\t\t\$(CPP) \$(CPP_SWITCHES) \$(SOURCE)\n"\r
-          append area5 "\n"\r
-          append area5 "\!ENDIF \n"\r
-        }\r
-      }\r
-    } \r
-    regsub -all -- {__FIELD5__} $temp4 $area5  temp5\r
-\r
-    set area6 ""\r
-    foreach tk $tkused {\r
-      append area6 "\!IF  \"\$(CFG)\" == \"$tkloc - Win32 Release\"\n"\r
-      append area6 "\"$tk - Win32 Release\" \: \n"\r
-      append area6 "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" \n"\r
-      append area6 "\"$tk - Win32 ReleaseCLEAN\" \: \n"\r
-      append area6 "   \$(MAKE)\/NOLOGO  \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" RECURSE=1 CLEAN\n"\r
-      append area6 "\!ELSEIF  \"\$(CFG)\" == \"$tkloc - Win32 Debug\"\n"\r
-      append area6 "\"$tk - Win32 Debug\" \: \n"\r
-      append area6 "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" \n"\r
-      append area6 "\"$tk - Win32 DebugCLEAN\" \: \n"\r
-      append area6 "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" RECURSE=1 CLEAN\n"\r
-      append area6 "\!ENDIF\n"\r
-    }\r
-    regsub -all -- {__FIELD6__} $temp5 $area6  temp6\r
-   \r
-    if {$tclused == 1} {\r
-       set tclwarning "\!IFNDEF TCLHOME \n\!MESSAGE Compilation of this toolkit requires tcl. Set TCLHOME environment variable for proper compilation\n\!ENDIF"\r
-    } else {\r
-       set tclwarning ""\r
-    }\r
-    regsub -all -- {__TCLUSED__} $temp6 $tclwarning  temp7\r
-\r
-    if {$javaused == 1} {\r
-       set javawarning "\!IFNDEF JAVAHOME \n\!MESSAGE Compilation of this toolkit requires java. Set JAVAHOME environment variable for proper compilation\n\!ENDIF"\r
-    } else {\r
-       set javawarning ""\r
-    }\r
-    regsub -all -- {__JAVAUSED__} $temp7 $javawarning  temp8\r
-    puts $fp $temp8\r
-    close $fp\r
-    return $fdsp\r
-}\r
-\r
-proc osutils:mkmakx { dir tkloc {tmplat {} } {fmtcpp {} } } {\r
-    if { $tmplat == {} } {set tmplat [osutils:mak:readtemplatex]}\r
-    if { $fmtcpp == {} } {set fmtcpp [osutils:mak:fmtcppx]}\r
-    foreach f [osutils:tk:files $tkloc osutils:am:compilable 0] {\r
-        set tf [file rootname [file tail $f]]   \r
-        set fp [open [set fdsp [file join $dir ${tf}.mak]] w]\r
-        puts $fdsp\r
-        set tclused 0\r
-        fconfigure $fp -translation crlf\r
-        set l_compilable [osutils:vc6:compilable]\r
-        regsub -all -- {__XQTNAM__} $tmplat $tf  temp0\r
-        set tkused ""\r
-        puts [LibToLinkX [woklocate -u $tkloc] $tf]\r
-        foreach tkx [LibToLinkX [woklocate -u $tkloc] $tf] {\r
-         if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} {\r
-           append tkused "${tkx}.lib "\r
-         }\r
-         if {[woklocate -u $tkx] == "" } {\r
-             append tkused "${tkx}.lib "\r
-         }\r
-        }\r
-        foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] {\r
-         foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {\r
-           if {[wokparam -t %$element] != 0} {\r
-                set elemlist [wokparam -v "%$element"]\r
-               set felem [file tail [lindex $elemlist 0]] \r
-             if {[lsearch $tkused $felem] == "-1"} {\r
-               if {$felem != "\{\}"} {\r
-                    #puts "was found $element $felem"  \r
-                    if {$element == "CSF_TclLibs"} { set tclused 1}   \r
-                   set tkused [concat $tkused $felem]\r
-               }\r
-             }   \r
-           }\r
-        }\r
-       }\r
\r
-       if {[wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]] == "#WOKStep_DLLink(exec.tks)" } { \r
-           set tkused [concat $tkused "\/dll"]\r
-           if {$tclused != 1} {\r
-             regsub -all -- {__COMPOPT__} $temp0 "\/MD" temp1 \r
-             regsub -all -- {__COMPOPTD__} $temp1 "\/MDd" temp2 \r
-           } else {\r
-             regsub -all -- {__COMPOPT__} $temp0 "\/MD \/I \"\$(TCLHOME)\\include\"" temp1 \r
-             regsub -all -- {__COMPOPTD__} $temp1 "\/MDd \/I \"\$(TCLHOME)\\include\"" temp2 \r
-           }             \r
-           regsub -all -- {__XQTNAMEX__} $temp2 "$tf.dll" temp3\r
-       } else {\r
-           if {$tclused != 1} {\r
-            regsub -all -- {__COMPOPT__} $temp0 "\/MD" temp1\r
-            regsub -all -- {__COMPOPTD__} $temp1 "\/MDd" temp2 \r
-           } else {\r
-            regsub -all -- {__COMPOPT__} $temp0 "\/MD \/I \"\$(TCLHOME)\\include\"" temp1\r
-            regsub -all -- {__COMPOPTD__} $temp1 "\/MDd \/I \"\$(TCLHOME)\\include\"" temp2 \r
-           }\r
-           regsub -all -- {__XQTNAMEX__} $temp2 "$tf.exe" temp3\r
-       }\r
-       #puts "$tf requires  $tkused"\r
-       if {$tclused == 1} {\r
-          append tkused " -libpath:\"\$(TCLHOME)\\lib\" "\r
-       }\r
-       regsub -all -- {__TKDEP__} $temp3  $tkused temp4\r
-       set files ""\r
-       set field1 ""\r
-       set field2 ""\r
-       set field3 ""\r
-       set field4 ""\r
-       foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] {\r
-\r
-         append files "\!IF  \"\$(CFG)\" == \"$tf - Win32 Release\"\n"\r
-         append files "\"$tk - Win32 Release\" \: \n"\r
-         append files "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" \n"\r
-         append files "\"$tk - Win32 ReleaseCLEAN\" \: \n"\r
-         append files "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" RECURSE=1 CLEAN\n"\r
-         append files "\!ELSEIF  \"\$(CFG)\" == \"$tf - Win32 Debug\"\n"\r
-         append files "\"$tk - Win32 Debug\" \: \n"\r
-         append files "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" \n"\r
-         append files "\"$tk - Win32 DebugCLEAN\" \: \n"\r
-         append files "   \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" RECURSE=1 CLEAN\n"\r
-         append files "\!ENDIF\n"\r
\r
-         append field1 "\"$tk - Win32 Release\" "\r
-         append field2 "\"$tk - Win32 ReleaseCLEAN\" "\r
-         append field3 "\"$tk - Debug\" "\r
-         append field4 "\"$tk - Win32 DebugCLEAN\" "\r
-         \r
-      }\r
-      regsub -all -- {__FILES__} $temp4 $files temp5\r
-      regsub -all -- {__FIELD1__} $temp5 $field1 temp6\r
-      regsub -all -- {__FIELD2__} $temp6 $field2 temp7\r
-      regsub -all -- {__FIELD3__} $temp7 $field3 temp8\r
-      regsub -all -- {__FIELD4__} $temp8 $field4 temp9\r
-      regsub -all -- {__XNAM__} $temp9 $tkloc temp10\r
-      puts $fp $temp10\r
-      close $fp\r
-      set fout [lappend fout $fdsp]\r
-    }\r
-    return $fout\r
-}\r
-\r
-\r
-;# \r
-;# (((((((((((((((((((((((( AUTOMAKE/ PROJECTs )))))))))))))))))))))))\r
-;#\r
-;# Create in dir the Makefile.am associated with toolkit tkloc.\r
-;# Returns the full path of the created file.\r
-;#\r
-proc osutils:tk:mkam { dir tkloc } {\r
-    set pkgs [woklocate -p ${tkloc}:PACKAGES]\r
-    if { $pkgs == {} } {\r
-       puts stderr "osutils:tk:mkam : Error. File PACKAGES not found for toolkit $tkloc."\r
-       return {}\r
-    }\r
-\r
-    set tmplat [osutils:am:readtemplate]\r
-    set lpkgs  [osutils:justunix [wokUtils:FILES:FileToList $pkgs]]\r
-    set close  [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]\r
-    set lsrc   [lsort [osutils:tk:files $tkloc osutils:am:compilable 1 osutils:justunix]]\r
-    set lobj   [wokUtils:LIST:sanspoint $lsrc]\r
-\r
-    set lcsf   [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]]\r
-\r
-    set final 0\r
-    set externinc ""\r
-    set externlib ""\r
-    if { $lcsf != {} } {\r
-       set final 1\r
-       set fmtinc "\$(%s_INCLUDES) "\r
-       set fmtlib "\$(%s_LIB) "\r
-       set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0]\r
-       set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0]\r
-    }\r
-\r
-    regsub -all -- {__TKNAM__} "$tmplat" "$tkloc"   temp0\r
-    set vpath [osutils:am:__VPATH__ $lpkgs]\r
-    regsub -all -- {__VPATH__} "$temp0" "$vpath"    temp1\r
-    set inclu [osutils:am:__INCLUDES__ $lpkgs]\r
-    regsub -all -- {__INCLUDES__} "$temp1" "$inclu" temp2\r
-    if { $close != {} } {\r
-       set libadd [osutils:am:__LIBADD__ $close $final]\r
-    } else {\r
-       set libadd ""\r
-    }\r
-    regsub -all -- {__LIBADD__} "$temp2" "$libadd"  temp3\r
-    set source [osutils:am:__SOURCES__ $lsrc]\r
-    regsub -all -- {__SOURCES__} "$temp3" "$source" temp4\r
-    regsub -all -- {__EXTERNINC__} "$temp4" "$externinc" temp5\r
-    set CXXFl [osutils:am:__CXXFLAG__ $lpkgs]\r
-    regsub -all -- {__CXXFLAG__} "$temp5" "$CXXFl" temp6\r
-    set CFl [osutils:am:__CFLAG__ $lpkgs]\r
-    regsub -all -- {__CFLAG__} "$temp6" "$CFl" temp7\r
-\r
-    regsub -all -- {__EXTERNLIB__} "$temp7" "$externlib" MakeFile_am\r
-\r
-    wokUtils:FILES:StringToFile "$MakeFile_am" [set fmam [file join $dir Makefile.am]]\r
-\r
-    catch { unset temp0 temp1 temp2 temp3 temp4 temp5 temp6 temp7}\r
-\r
-    #set tmplat [osutils:in:readtemplate]\r
-    \r
-    #regsub -all -- {__TKNAM__} "$tmplat" "$tkloc"   temp0\r
-    #if { $close != {} } {\r
-       #set dpncies  [osutils:in:__DEPENDENCIES__ $close]\r
-    #} else {\r
-       #set dpncies ""\r
-    #}\r
-    #regsub -all -- {__DEPENDENCIES__} "$temp0" "$dpncies" temp1\r
-\r
-    #set objects  [osutils:in:__OBJECTS__ $lobj]\r
-    #regsub -all -- {__OBJECTS__} "$temp1" "$objects" temp2\r
-    #set amdep    [osutils:in:__AMPDEP__ $lobj]\r
-    #regsub -all -- {__AMPDEP__} "$temp2" "$amdep" temp3\r
-    #set amdeptrue [osutils:in:__AMDEPTRUE__ $lobj]\r
-    #regsub -all -- {__AMDEPTRUE__} "$temp3" "$amdeptrue" temp4\r
-;#  so easy..    \r
-    #regsub -all -- {__MAKEFILEIN__} "$temp4" "$MakeFile_am" MakeFile_in\r
-\r
-    #wokUtils:FILES:StringToFile "$MakeFile_in" [set fmin [file join $dir Makefile.in]]\r
-\r
-    return [list $fmam]\r
-    #return [list $fmam $fmin]\r
-}\r
-;#\r
-;# Create in dir the Makefile.am associated with toolkit tkloc.\r
-;# Returns the full path of the created file.\r
-;#\r
-proc osutils:tk:mkamx { dir tkloc } {\r
-  if   { [lsearch [uinfo -f -T source [woklocate -u $tkloc]] ${tkloc}_WOKSteps.edl] != "-1"} {\r
-        set pkgs [woklocate -p ${tkloc}:EXTERNLIB]\r
-        if { $pkgs == {} } {\r
-         puts stderr "osutils:tk:mkamx : Error. File EXTERNLIB not found for executable $tkloc."\r
-       #return {}\r
-    }\r
-    set tmplat [osutils:am:readtemplatex]\r
-    set close  [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]\r
-    set lsrc   [lsort [osutils:tk:files $tkloc osutils:am:compilable 1 osutils:justunix]]\r
-    set lobj   [wokUtils:LIST:sanspoint $lsrc]\r
-    set CXXList {}\r
-    foreach SourceFile [uinfo -f -T source [woklocate -u $tkloc]] {    \r
-     if {[file extension $SourceFile] == ".cxx"} {     \r
-         lappend CXXList [file rootname $SourceFile]\r
-     }\r
-    }\r
-    set pkgs [LibToLinkX [woklocate -u $tkloc] [lindex $CXXList 0]]\r
-    set lpkgs  [osutils:justunix [wokUtils:FILES:FileToList $pkgs]]\r
-    puts "pkgs $pkgs"\r
-    #set lcsf   [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]]\r
-\r
-    set lcsf {}\r
-    foreach tk $pkgs {\r
-       foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {\r
-           if {[lsearch $lcsf $element] == "-1"} {        \r
-          set lcsf [concat $lcsf $element]\r
-         }\r
-       }\r
-    }\r
-    set final 0\r
-    set externinc ""\r
-    set externlib ""\r
-    if { $lcsf != {} } {\r
-       set final 1\r
-       set fmtinc "\$(%s_INCLUDES) "\r
-       set fmtlib "\$(%s_LIB) "\r
-       set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0]\r
-       set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0]\r
-    }\r
-    regsub -all -- {__XQTNAM__} "$tmplat" "$tkloc"   temp0\r
-    set temp1 "$temp0 \nlib_LTLIBRARIES="\r
-    foreach entity $CXXList {\r
-       set temp1 "${temp1} lib${entity}.la"\r
-    }\r
-    set temp1 "${temp1}\n"\r
-    set inclu [osutils:am:__INCLUDES__ $lpkgs]\r
-    regsub -all -- {__INCLUDES__} "$temp1" "$inclu" temp2\r
-    if { $pkgs != {} } {\r
-       set libadd [osutils:am:__LIBADD__ $pkgs $final]\r
-    } else {\r
-       set libadd ""\r
-    }\r
-    regsub -all -- {__LIBADD__} "$temp2" "$libadd"  temp3\r
-    set source [osutils:am:__SOURCES__ $CXXList]\r
-    regsub -all -- {__SOURCES__} "$temp3" "$source" temp4\r
-    regsub -all -- {__EXTERNINC__} "$temp4" "$externinc" MakeFile_am\r
-    foreach entity $CXXList {\r
-       set MakeFile_am "$MakeFile_am lib${entity}_la_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n"\r
-    }\r
-    foreach entity $CXXList {\r
-        set MakeFile_am "$MakeFile_am lib${entity}_la_LIBADD = $libadd $externlib \n"\r
-    }\r
-    wokUtils:FILES:StringToFile "$MakeFile_am" [set fmam [file join $dir Makefile.am]]\r
-\r
-    catch { unset temp0 temp1 temp2 temp3 temp4 temp5}\r
-    return [list $fmam]\r
-\r
-  } else {\r
-    set pkgs [woklocate -p ${tkloc}:EXTERNLIB]\r
-    if { $pkgs == {} } {\r
-       puts stderr "osutils:tk:mkamx : Error. File EXTERNLIB not found for executable $tkloc."\r
-       #return {}\r
-    }\r
-    set tmplat [osutils:am:readtemplatex]\r
-    set close  [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]\r
-    set lsrc   [lsort [osutils:tk:files $tkloc osutils:am:compilable 1 osutils:justunix]]\r
-    set lobj   [wokUtils:LIST:sanspoint $lsrc]\r
-    set CXXList {}\r
-    foreach SourceFile [uinfo -f -T source [woklocate -u $tkloc]] {    \r
-     if {[file extension $SourceFile] == ".cxx"} {     \r
-         lappend CXXList [file rootname $SourceFile]\r
-     }\r
-    }\r
-    set pkgs [LibToLinkX [woklocate -u $tkloc] [lindex $CXXList 0]]\r
-    set lpkgs  [osutils:justunix [wokUtils:FILES:FileToList $pkgs]]\r
-    set lcsf   [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]]\r
-\r
-    set lcsf {}\r
-    foreach tk $pkgs {\r
-       foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {\r
-           if {[lsearch $lcsf $element] == "-1"} {        \r
-          set lcsf [concat $lcsf $element]\r
-         }\r
-       }\r
-    }\r
-    set final 0\r
-    set externinc ""\r
-    set externlib ""\r
-    if { $lcsf != {} } {\r
-       set final 1\r
-       set fmtinc "\$(%s_INCLUDES) "\r
-       set fmtlib "\$(%s_LIB) "\r
-       set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0]\r
-       set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0]\r
-    }\r
-    regsub -all -- {__XQTNAM__} "$tmplat" "$tkloc"   temp0\r
-    set temp1 "$temp0 \nbin_PROGRAMS="\r
-    foreach entity $CXXList {\r
-       set temp1 "${temp1} ${entity}"\r
-    }\r
\r
-    set temp1 "${temp1}\n"\r
-    set inclu [osutils:am:__INCLUDES__ $lpkgs]\r
-    regsub -all -- {__INCLUDES__} "$temp1" "$inclu" temp2\r
-    if { $pkgs != {} } {\r
-       set libadd [osutils:am:__LIBADD__ $pkgs $final]\r
-    } else {\r
-       set libadd ""\r
-    }\r
-    set source [osutils:am:__SOURCES__ $CXXList]\r
-    regsub -all -- {__SOURCES__} "$temp2" "$source" temp3\r
-    regsub -all -- {__EXTERNINC__} "$temp3" "$externinc" MakeFile_am\r
-    foreach entity $CXXList {\r
-       set MakeFile_am "$MakeFile_am ${entity}_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n"\r
-    }\r
-    foreach entity $CXXList {\r
-        set MakeFile_am "$MakeFile_am ${entity}_LDADD = $libadd $externlib \n"\r
-    }\r
-    wokUtils:FILES:StringToFile "$MakeFile_am" [set fmam [file join $dir Makefile.am]]\r
-\r
-    catch { unset temp0 temp1 temp2 temp3 temp4 temp5}\r
-\r
-   # set tmplat [osutils:in:readtemplatex]\r
-    \r
-   # regsub -all -- {__XQTNAM__} "$tmplat" "$tkloc"   temp0\r
-   # if { $close != {} } {\r
-       #set dpncies  [osutils:in:__DEPENDENCIES__ $close]\r
-   # } else {\r
-       #set dpncies ""\r
-   # }\r
-   # regsub -all -- {__DEPENDENCIES__} "$temp0" "$dpncies" temp1\r
-\r
-   # set objects  [osutils:in:__OBJECTS__ $lobj]\r
-   # regsub -all -- {__OBJECTS__} "$temp1" "$objects" temp2\r
-   # #set temp2 $temp1\r
-   # set amdep    [osutils:in:__AMPDEP__ $lobj]\r
-   # regsub -all -- {__AMPDEP__} "$temp2" "$amdep" temp3\r
-    #set temp3 $temp2\r
-   # set amdeptrue [osutils:in:__AMDEPTRUE__ $lobj]\r
-   # regsub -all -- {__AMDEPTRUE__} "$temp3" "$amdeptrue" temp4\r
-    #set temp4 $temp3\r
-;#  so easy..    \r
-   # regsub -all -- {__MAKEFILEIN__} "$temp4" "$MakeFile_am" MakeFile_in\r
-\r
-    #wokUtils:FILES:StringToFile "$MakeFile_in" [set fmin [file join $dir Makefile.in]]\r
-    return [list $fmam]\r
-    #return [list $fmam $fmin]\r
-  }\r
-}\r
-\r
-;#\r
-;#  ((((((((((((( Formats in Makefile.am )))))))))))))\r
-;#\r
-;# List extensions of files compilable in automake\r
-;#\r
-proc osutils:am:compilable { } {\r
-    return [list .c .cxx .cpp]\r
-}\r
-;#\r
-;# Used to replace the string __VPATH__ in Makefile.am\r
-;# l is the list of the units in a toolkit.\r
-;#\r
-proc osutils:am:__VPATH__ { l } {\r
-    set fmt "@top_srcdir@/drv/%s : @top_srcdir@/src/%s:"\r
-    return [wokUtils:EASY:FmtString2 $fmt $l 0 osutils:am:__VPATH__lastoccur]\r
-}\r
-;#\r
-;# remove ":" from last item of dependencies list in target VPATH of Makefile.am\r
-;#\r
-proc osutils:am:__VPATH__lastoccur { str } {\r
-    if { [regsub {:$} $str "" u] != 0 } {\r
-       return $u\r
-    }\r
-}\r
-proc osutils:am:PkCXXOption ppk {\r
- set CXXCOMMON [lindex [wokparam -e  %CMPLRS_CXX_Options [wokcd]] 0]\r
- set FoundFlag ""\r
- foreach pk $ppk {\r
-  if {[lsearch [uinfo -f -T source [woklocate -u $pk]] ${pk}_CMPLRS.edl] != "-1"} {\r
-       set CXXStr  [lindex [wokparam -e %CMPLRS_CXX_Options [woklocate -u $pk]] 0]\r
-       set LastIndex [expr {[string length $CXXCOMMON ] - 1}]\r
-       if {[string equal $CXXCOMMON [string range $CXXStr 0 $LastIndex]]} {\r
-         set CXXOption " "\r
-       } else {\r
-         set CXXOption [string range $CXXStr 0 [expr {[string last $CXXCOMMON $CXXStr] - 1}]]\r
-       }\r
-       if {$CXXOption != " " && $CXXOption != "" && $CXXOption != "  " && $CXXOption != "   "} {\r
-               set FoundList [split $CXXOption " "]\r
-               foreach elem $FoundList {\r
-                 if {$elem != ""} {\r
-                   if {[string first "-I" $elem] == "-1"  } {\r
-                       if {[string first $elem $FoundFlag] == "-1"} {\r
-                          set FoundFlag "$FoundFlag $elem"\r
-                       }\r
-                   }\r
-                 }\r
-               }\r
-        }\r
-  }\r
- }\r
- return $FoundFlag\r
-}\r
-\r
-proc osutils:am:PkCOption ppk {\r
- set CCOMMON [lindex [wokparam -e  %CMPLRS_C_Options [wokcd]] 0]\r
- set FoundFlag ""\r
- foreach pk $ppk {\r
-  if {[lsearch [uinfo -f -T source [woklocate -u $pk]] ${pk}_CMPLRS.edl] != "-1"} {\r
-       set CStr  [lindex [wokparam -e %CMPLRS_C_Options [woklocate -u $pk]] 0]\r
-       set LastIndex [expr {[string length $CCOMMON ] - 1}]\r
-       if {[string equal $CCOMMON [string range $CStr 0 $LastIndex]]} {\r
-         set COption [string range  $CStr $LastIndex end ]\r
-       } else {\r
-         set COption [string range $CStr 0 [expr {[string last $CCOMMON $CStr] - 1}]]\r
-       }\r
-       if {$COption != " " && $COption != "" && $COption != "  " && $COption != "   "} {\r
-               set FoundList [split $COption " "]\r
-               foreach elem $FoundList {\r
-                 if {$elem != ""} {\r
-                   if {[string first "-I" $elem] == "-1"  } {\r
-                       if {[string first $elem $FoundFlag] == "-1"} {\r
-                          set FoundFlag "$FoundFlag $elem"\r
-                       }\r
-                   }\r
-                 }\r
-               }\r
-        }\r
-  }\r
- } \r
-return $FoundFlag\r
-}\r
-\r
-proc osutils:am:__CXXFLAG__ { l } {\r
-    set fmt "%s"\r
-    #puts "l is: $l"\r
-    return [wokUtils:EASY:FmtString1 $fmt [osutils:am:PkCXXOption $l]]\r
-}\r
-;#\r
-;# Used to replace the string __CFLAG__ in Makefile.am\r
-;# l is the list of all compilable files in a toolkit.\r
-;#\r
-proc osutils:am:__CFLAG__ { l } {\r
-    set fmt "%s"\r
-    return [wokUtils:EASY:FmtString1 $fmt [osutils:am:PkCOption $l]]\r
-}\r
-\r
-;#\r
-;# Used to replace the string __INCLUDES__ in Makefile.am\r
-;# l is the list of packages in a toolkit.\r
-;#\r
-proc osutils:am:__INCLUDES__ { l } {\r
-    set fmt "-I@top_srcdir@/drv/%s -I@top_srcdir@/src/%s"\r
-    return [wokUtils:EASY:FmtString2 $fmt $l] \r
-}\r
-;#\r
-;# Used to replace the string __LIBADD__ in Makefile.am\r
-;# l is the toolkit closure list of a toolkit.\r
-;#\r
-proc osutils:am:__LIBADD__ { l {final 0} } {\r
-    set fmt "../%s/lib%s.la"\r
-    return [wokUtils:EASY:FmtString2 $fmt $l $final]\r
-}\r
-;#\r
-;# Used to replace the string __SOURCES__ in Makefile.am\r
-;# l is the list of all compilable files in a toolkit.\r
-;#\r
-proc osutils:am:__SOURCES__ { l } {\r
-    set fmt "%s"\r
-    return [wokUtils:EASY:FmtString1 $fmt $l]\r
-}\r
-;#\r
-;#  ((((((((((((( Formats in Makefile.in )))))))))))))\r
-;#\r
-;#\r
-;# Used to replace the string __DEPENDENCIES__ in Makefile.in\r
-;# l is the toolkit closure list of a toolkit.\r
-;# \r
-proc osutils:in:__DEPENDENCIES__ { l } {\r
-    set fmt1 "../%s/lib%s.la"\r
-    set fmt2 "\t../%s/lib%s.la"\r
-    return [wokUtils:EASY:FmtFmtString2 $fmt1 $fmt2 $l]\r
-}\r
-;#\r
-;# Used to replace the string __OBJECTS__ in Makefile.in\r
-;# l is the list of objects files in toolkit.\r
-;#\r
-proc osutils:in:__OBJECTS__ { l } {\r
-    set fmt1 "%s.lo"\r
-    set fmt2 "\t%s.lo"\r
-    return [wokUtils:EASY:FmtFmtString1 $fmt1 $fmt2 $l]\r
-}\r
-;#\r
-;# Used to replace the string __AMDEP__ in Makefile.in\r
-;# l is the list of objects files in toolkit.\r
-;#\r
-proc osutils:in:__AMPDEP__ { l } {\r
-    set fmt1 "\$(DEPDIR)/%s.Plo"\r
-    set fmt2 "@AMDEP_TRUE@\t\$(DEPDIR)/%s.Plo"\r
-    return [wokUtils:EASY:FmtFmtString1 $fmt1 $fmt2 $l]\r
-}\r
-;#\r
-;# Used to replace the string __AMDEPTRUE__ in Makefile.in\r
-;# l is the list of objects files in toolkit.\r
-;#\r
-proc osutils:in:__AMDEPTRUE__ { l } {\r
-    set fmt "@AMDEP_TRUE@@_am_include@ @_am_quote@\$(DEPDIR)/%s.Plo@_am_quote@"\r
-    return [wokUtils:EASY:FmtSimple1 $fmt $l]\r
-}\r
-\r
-\r
-;#############################################################\r
-;#\r
-proc TESTAM { {root} {ll {}} } {\r
-#    source [woklocate -p OS:source:OS.tcl]\r
-#    source [woklocate -p WOKTclLib:source:osutils.tcl]\r
-    set lesmodules [OS -lm]\r
-    if { $ll != {} } {  set lesmodules $ll }\r
-    foreach theModule $lesmodules {\r
-       foreach unit [$theModule:toolkits] {\r
-           puts " toolkit: $unit ==> [woklocate -p ${unit}:source:EXTERNLIB]"\r
-           wokUtils:FILES:rmdir $root/$unit\r
-           wokUtils:FILES:mkdir $root/$unit\r
-           osutils:tk:mkam $root/$unit $unit\r
-       }\r
-       foreach unit [OS:executable $theModule] {\r
-           wokUtils:FILES:rmdir $root/$unit\r
-           wokUtils:FILES:mkdir $root/$unit\r
-           osutils:tk:mkamx $root/$unit $unit\r
-       }\r
-    }\r
-}\r
+;#
+;# Open source Tcl utilities. This contains material to automatically create
+;# MS project or automake builders from the OpenCascade modules definition.
+;# This file requires:
+;# 1. Tcl utilities of Wok.
+;# 2. Wok commands and workbench environment.
+;#
+;# Author: yolanda_forbes@hotmail.com
+;# 
+;# (((((((((((((((((((((((( MS PROJECT )))))))))))))))))))))))
+;#
+;# the full path of a MS project template file.
+;# Should be overwritten
+;#
+proc osutils:vc8_64:readtemplate { } {
+    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc8_64]]"
+    return [wokUtils:FILES:FileToString $loc]
+}
+proc osutils:vc8_64:readtemplatex { } {
+    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc8x_64]]"
+    return [wokUtils:FILES:FileToString $loc]
+}
+proc osutils:vc8:readtemplate { } {
+    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc8]]"
+    return [wokUtils:FILES:FileToString $loc]
+}
+proc osutils:vc8:readtemplatex { } {
+    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc8x]]"
+    return [wokUtils:FILES:FileToString $loc]
+}
+proc osutils:vc7:readtemplate { } {
+    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc7]]"
+    return [wokUtils:FILES:FileToString $loc]
+}
+proc osutils:vc7:readtemplatex { } {
+    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc7x]]"
+    return [wokUtils:FILES:FileToString $loc]
+}
+proc osutils:vc6:readtemplate { } {
+    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc6 ]]"
+    return [wokUtils:FILES:FileToString $loc]
+}
+proc osutils:vc6:readtemplatex { } {
+    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.vc6x]]"
+    return [wokUtils:FILES:FileToString $loc]
+}
+proc osutils:mak:readtemplate { } {
+    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.mak ]]"
+    return [wokUtils:FILES:FileToString $loc]
+}
+proc osutils:mak:readtemplatex { } {
+    puts stderr "Info : readtemplate : Template for MS project from [set loc [woklocate -p WOKTclLib:source:template.makx]]"
+    return [wokUtils:FILES:FileToString $loc]
+}
+proc osutils:am:readtemplate { } {
+    puts stderr "Info : readtemplate : Template for Makefile.am from [set loc [woklocate -p WOKTclLib:source:template.mam]]"
+    return [wokUtils:FILES:FileToString $loc]
+
+}
+proc osutils:am:readtemplatex { } {
+    puts stderr "Info : readtemplatex : Template for Makefile.am from [set loc [woklocate -p WOKTclLib:source:template.mamx]]"
+    return [wokUtils:FILES:FileToString $loc]
+
+}
+proc osutils:in:readtemplate { } {
+    puts stderr "Info : readtemplate : Template for Makefile.in from [set loc [woklocate -p WOKTclLib:source:template.min]]"
+    return [wokUtils:FILES:FileToString $loc]
+
+}
+proc osutils:in:readtemplatex { } {
+    puts stderr "Info : readtemplatex : Template for Makefile.in from [set loc [woklocate -p WOKTclLib:source:template.minx]]"
+    return [wokUtils:FILES:FileToString $loc]
+
+}
+;#
+;# 
+;#
+proc osutils:vc6proj:header { } {
+    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"
+    return $var
+}
+proc osutils:vc7proj:header { } {
+    append var \
+           "Microsoft Visual Studio Solution File, Format Version 8.00\n" 
+    return $var
+}
+proc osutils:vc8proj:header { } {
+    append var \
+           "Microsoft Visual Studio Solution File, Format Version 9.00\n" \
+           "# Visual Studio 2005\n"
+    return $var
+}
+proc osutils:vc8_64proj:header { } {
+    append var \
+           "Microsoft Visual Studio Solution File, Format Version 9.00\n" \
+           "# Visual Studio 2005\n"
+    return $var
+}
+;#
+;# the leaf of a workspace file
+;#
+proc osutils:vc6proj:projectleaf { TK } {
+    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 { } {
+    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"}
+}
+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:vc7:fmtcpp { } {
+    return {AdditionalIncludeDirectories="..\..\..\inc,..\..\..\drv\%s,..\..\..\src\%s"
+                                                        PreprocessorDefinitions="__%s_DLL;"}
+}
+proc osutils:vc7:fmtcppx { } {
+    return {AdditionalIncludeDirectories="..\..\..\inc,..\..\..\drv\%s,..\..\..\src\%s"
+                                                        PreprocessorDefinitions="__%s_DLL;$(NoInherit)"}
+}
+proc osutils:vc8:fmtcpp { } {
+    return {AdditionalIncludeDirectories="..\..\..\inc,..\..\..\drv\%s,..\..\..\src\%s"
+                                                        PreprocessorDefinitions="__%s_DLL;"}
+}
+proc osutils:vc8:fmtcppx { } {
+    return {AdditionalIncludeDirectories="..\..\..\inc,..\..\..\drv\%s,..\..\..\src\%s"
+                                                        PreprocessorDefinitions="__%s_DLL;$(NoInherit)"}
+}
+proc osutils:vc8_64:fmtcpp { } {
+    return {AdditionalIncludeDirectories="..\..\..\inc,..\..\..\drv\%s,..\..\..\src\%s"
+                                                        PreprocessorDefinitions="__%s_DLL;"}
+}
+proc osutils:vc8_64: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"}
+}
+;#
+;# List extensions of files devoted to be eaten by cl.exe compiler.
+;#
+proc osutils:vc6:compilable { } {
+    return [list .c .cxx .cpp]
+}
+proc osutils:vc7:compilable { } {
+    return [list .c .cxx .cpp]
+}
+proc osutils:vc8:compilable { } {
+    return [list .c .cxx .cpp]
+}
+proc osutils:vc8_64:compilable { } {
+    return [list .c .cxx .cpp]
+}
+;#
+;# 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       
+}
+
+proc osutils:justwnt { 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]
+}
+;#
+;# Define libraries to link
+proc LibToLink {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
+    }
+}
+
+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
+    }
+}
+
+
+;#
+;#      ((((((((WOK toolkits manipulations))))))))
+;#
+;#  close dependencies of ltk. (full wok pathes of toolkits)
+;# 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
+}
+;#
+;# 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
+}
+
+;#
+;# 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"
+    }
+    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]
+    } 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
+}
+;#
+;# 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]
+    }
+    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
+}
+;#
+;# 
+;#
+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
+}
+;#
+;# 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:vc6:readtemplate]}
+    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:vc6:compilable]
+    regsub -all -- {__TKNAM__} $tmplat $tkloc  temp0
+    set tkused ""
+    foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {
+       append tkused "${tkx}.lib "
+    }
+    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} {
+               set felem [file tail [lindex [wokparam -v "%$element"] 0]]
+             if {[lsearch $tkused $felem] == "-1"} {
+               if {$felem != "\{\}"} {
+                   set tkused [concat $tkused $felem]
+               }
+            }   
+          }
+       }
+    }
+
+    #puts "alternative [LibToLink $tkloc]"
+    puts "$tkloc requires  $tkused"
+    regsub -all -- {__TKDEP__} $temp0  $tkused temp1
+    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:am:compilable 1 osutils:justwnt]]
+    if [array exists written] { unset written }
+    foreach fxlo $resultloc {
+        set xlo [wokinfo -n $fxlo]
+       append files "# Begin Group \"${xlo}\"" "\n"        
+       set lsrc   [osutils:tk:files $xlo osutils:am:compilable 0]
+       set 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__} $temp1 $files temp2
+    puts $fp $temp2
+    close $fp
+    return $fdsp
+}
+proc osutils:vc7 { dir tkloc {tmplat {} } {fmtcpp {} } } {
+   if { $tmplat == {} } {set tmplat [osutils:vc7:readtemplate]}
+    if { $fmtcpp == {} } {set fmtcpp [osutils:vc7:fmtcpp]}
+    set fp [open [set fvcproj [file join $dir ${tkloc}.vcproj]] w]
+    fconfigure $fp -translation crlf
+    set l_compilable [osutils:vc7:compilable]
+    regsub -all -- {__TKNAM__} $tmplat $tkloc  temp0
+    set tkused ""
+    foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {
+       append tkused "${tkx}.lib "
+    }
+    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} {
+               set felem [file tail [lindex [wokparam -v "%$element"] 0]]
+             if {[lsearch $tkused $felem] == "-1"} {
+               if {$felem != "\{\}"} {
+                   set tkused [concat $tkused $felem]
+               }
+            }   
+          }
+       }
+    }
+
+    puts "$tkloc requires  $tkused"
+    regsub -all -- {__TKDEP__} $temp0  $tkused temp1
+    set files ""
+    set listloc [osutils:tk:units [woklocate -u $tkloc]]
+    set resultloc [osutils:justwnt $listloc]
+    if [array exists written] { unset written }
+    foreach fxlo $resultloc {
+        set xlo [wokinfo -n $fxlo]        
+       append files "        <Filter\n"
+        append files "                                Name=\"${xlo}\"\n"
+        append files "                                Filter=\"\">\n"
+        set lsrc   [osutils:tk:files $xlo osutils:am:compilable 0]
+       set 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 "\t\t\t\t<File\n"
+               append files "\t\t\t\t\tRelativePath=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]]\">\n"
+                append files "\t\t\t\t\t<FileConfiguration\n"
+                append files "\t\t\t\t\t\tName=\"Debug\|Win32\">\n"
+                append files "\t\t\t\t\t\t<Tool\n"
+                append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+                if {$needparam != ""} {
+                  append files "\t\t\t\t\t\t\tAdditionalOptions=\""
+                  foreach paramm $needparam {
+                     append files "$paramm "
+                  }
+                  append files "\"\n"
+                }
+                append files "\t\t\t\t\t\t\tOptimization=\"0\"\n"
+               append files "\t\t\t\t\t\t\t[format $fmtcpp $xlo $xlo $xlo]\n"
+                append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
+                append files "\t\t\t\t\t</FileConfiguration>\n"
+                append files "\t\t\t\t\t<FileConfiguration\n"
+                append files "\t\t\t\t\t\tName=\"Release\|Win32\">\n"
+                append files "\t\t\t\t\t\t<Tool\n"
+                append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+                if {$needparam != ""} {
+                  append files "\t\t\t\t\t\t\tAdditionalOptions=\""
+                  foreach paramm $needparam {
+                     append files "$paramm "
+                  }
+                  append files "\"\n"
+                }
+                append files "\t\t\t\t\t\t\tOptimization=\"2\"\n"
+               append files "\t\t\t\t\t\t\t[format $fmtcpp $xlo $xlo $xlo]\n"
+                append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
+                append files "\t\t\t\t\t</FileConfiguration>\n"
+               append files "\t\t\t\t</File>\n"
+           } else {
+               puts "Warning : in vcproj more than one occurences for [file tail $f]"
+           }
+       }
+    append files "\t\t\t</Filter>"
+    }
+    
+    regsub -all -- {__FILES__} $temp1 $files temp2
+    puts $fp $temp2
+    close $fp
+    return $fvcproj
+}
+proc osutils:vc8 { dir tkloc {tmplat {} } {fmtcpp {} } } {
+   if { $tmplat == {} } {set tmplat [osutils:vc8:readtemplate]}
+    if { $fmtcpp == {} } {set fmtcpp [osutils:vc8:fmtcpp]}
+    set fp [open [set fvcproj [file join $dir ${tkloc}.vcproj]] w]
+    fconfigure $fp -translation crlf
+    set l_compilable [osutils:vc8:compilable]
+    regsub -all -- {__TKNAM__} $tmplat $tkloc  temp0
+    set tkused ""
+    foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {
+       append tkused "${tkx}.lib "
+    }
+    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} {
+               set felem [file tail [lindex [wokparam -v "%$element"] 0]]
+             if {[lsearch $tkused $felem] == "-1"} {
+               if {$felem != "\{\}"} {
+                   set tkused [concat $tkused $felem]
+               }
+            }   
+          }
+       }
+    }
+
+    puts "$tkloc requires  $tkused"
+    regsub -all -- {__TKDEP__} $temp0  $tkused temp1
+    set files ""
+    set listloc [osutils:tk:units [woklocate -u $tkloc]]
+    set resultloc [osutils:justwnt $listloc]
+    if [array exists written] { unset written }
+    foreach fxlo $resultloc {
+        set xlo [wokinfo -n $fxlo]        
+       append files "        <Filter\n"
+        append files "                                Name=\"${xlo}\"\n"
+        append files "                                Filter=\"\">\n"
+        set lsrc   [osutils:tk:files $xlo osutils:am:compilable 0]
+       set 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 "\t\t\t\t<File\n"
+               append files "\t\t\t\t\tRelativePath=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]]\">\n"
+                append files "\t\t\t\t\t<FileConfiguration\n"
+                append files "\t\t\t\t\t\tName=\"Debug\|Win32\">\n"
+                append files "\t\t\t\t\t\t<Tool\n"
+                append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+                if {$needparam != ""} {
+                  append files "\t\t\t\t\t\t\tAdditionalOptions=\""
+                  foreach paramm $needparam {
+                     append files "$paramm "
+                  }
+                  append files "\"\n"
+                }
+                append files "\t\t\t\t\t\t\tOptimization=\"0\"\n"
+               append files "\t\t\t\t\t\t\t[format $fmtcpp $xlo $xlo $xlo]\n"
+                append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
+                append files "\t\t\t\t\t</FileConfiguration>\n"
+                append files "\t\t\t\t\t<FileConfiguration\n"
+                append files "\t\t\t\t\t\tName=\"Release\|Win32\">\n"
+                append files "\t\t\t\t\t\t<Tool\n"
+                append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+                if {$needparam != ""} {
+                  append files "\t\t\t\t\t\t\tAdditionalOptions=\""
+                  foreach paramm $needparam {
+                     append files "$paramm "
+                  }
+                  append files "\"\n"
+                }
+                append files "\t\t\t\t\t\t\tOptimization=\"2\"\n"
+               append files "\t\t\t\t\t\t\t[format $fmtcpp $xlo $xlo $xlo]\n"
+                append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
+                append files "\t\t\t\t\t</FileConfiguration>\n"
+               append files "\t\t\t\t</File>\n"
+           } else {
+               puts "Warning : in vcproj more than one occurences for [file tail $f]"
+           }
+       }
+    append files "\t\t\t</Filter>"
+    }
+    
+    regsub -all -- {__FILES__} $temp1 $files temp2
+    puts $fp $temp2
+    close $fp
+    return $fvcproj
+}
+proc osutils:vc8_64 { dir tkloc {tmplat {} } {fmtcpp {} } } {
+   if { $tmplat == {} } {set tmplat [osutils:vc8_64:readtemplate]}
+    if { $fmtcpp == {} } {set fmtcpp [osutils:vc8_64:fmtcpp]}
+    set fp [open [set fvcproj [file join $dir ${tkloc}.vcproj]] w]
+    fconfigure $fp -translation crlf
+    set l_compilable [osutils:vc8_64:compilable]
+    regsub -all -- {__TKNAM__} $tmplat $tkloc  temp0
+    set tkused ""
+    foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {
+       append tkused "${tkx}.lib "
+    }
+    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} {
+               set felem [file tail [lindex [wokparam -v "%$element"] 0]]
+             if {[lsearch $tkused $felem] == "-1"} {
+               if {$felem != "\{\}"} {
+                   set tkused [concat $tkused $felem]
+               }
+            }   
+          }
+       }
+    }
+
+    puts "$tkloc requires  $tkused"
+    regsub -all -- {__TKDEP__} $temp0  $tkused temp1
+    set files ""
+    set listloc [osutils:tk:units [woklocate -u $tkloc]]
+    set resultloc [osutils:justwnt $listloc]
+    if [array exists written] { unset written }
+    foreach fxlo $resultloc {
+        set xlo [wokinfo -n $fxlo]        
+       append files "        <Filter\n"
+        append files "                                Name=\"${xlo}\"\n"
+        append files "                                Filter=\"\">\n"
+        set lsrc   [osutils:tk:files $xlo osutils:am:compilable 0]
+       set 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 "\t\t\t\t<File\n"
+               append files "\t\t\t\t\tRelativePath=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]]\">\n"
+                append files "\t\t\t\t\t<FileConfiguration\n"
+                append files "\t\t\t\t\t\tName=\"Debug\|x64\">\n"
+                append files "\t\t\t\t\t\t<Tool\n"
+                append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+                if {$needparam != ""} {
+                  append files "\t\t\t\t\t\t\tAdditionalOptions=\""
+                  foreach paramm $needparam {
+                     append files "$paramm "
+                  }
+                  append files "\"\n"
+                }
+                append files "\t\t\t\t\t\t\tOptimization=\"0\"\n"
+               append files "\t\t\t\t\t\t\t[format $fmtcpp $xlo $xlo $xlo]\n"
+                append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
+                append files "\t\t\t\t\t</FileConfiguration>\n"
+                append files "\t\t\t\t\t<FileConfiguration\n"
+                append files "\t\t\t\t\t\tName=\"Release\|x64\">\n"
+                append files "\t\t\t\t\t\t<Tool\n"
+                append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+                if {$needparam != ""} {
+                  append files "\t\t\t\t\t\t\tAdditionalOptions=\""
+                  foreach paramm $needparam {
+                     append files "$paramm "
+                  }
+                  append files "\"\n"
+                }
+                append files "\t\t\t\t\t\t\tOptimization=\"2\"\n"
+               append files "\t\t\t\t\t\t\t[format $fmtcpp $xlo $xlo $xlo]\n"
+                append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
+                append files "\t\t\t\t\t</FileConfiguration>\n"
+               append files "\t\t\t\t</File>\n"
+           } else {
+               puts "Warning : in vcproj more than one occurences for [file tail $f]"
+           }
+       }
+    append files "\t\t\t</Filter>"
+    }
+    
+    regsub -all -- {__FILES__} $temp1 $files temp2
+    puts $fp $temp2
+    close $fp
+    return $fvcproj
+}
+;#
+;# 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:vc6:readtemplatex]}
+    if { $fmtcpp == {} } {set fmtcpp [osutils:vc6:fmtcppx]}
+    foreach f [osutils:tk:files $tkloc osutils:am: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:vc6:compilable]
+        regsub -all -- {__XQTNAM__} $tmplat $tf  temp0
+        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 "
+         }
+        }
+        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]
+               }
+             }   
+           }
+        }
+       }
+       if {[wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]] == "#WOKStep_DLLink(exec.tks)"} { 
+           set tkused [concat $tkused "\/dll"]
+       }
+       regsub -all -- {__COMPOPT__} $temp0 "\/MD" temp1 
+       regsub -all -- {__COMPOPTD__} $temp1 "\/MDd" temp2 
+       puts "$tf requires  $tkused"
+       regsub -all -- {__TKDEP__} $temp2  $tkused temp3
+       set files ""
+       ;#set lsrc   [osutils:tk:files $tkloc osutils:am: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__} $temp3 $files temp4
+    puts $fp $temp4
+    close $fp
+       set fout [lappend fout $fdsp]
+    }
+    return $fout
+}
+proc osutils:vc7x { dir tkloc {tmplat {} } {fmtcpp {} } } {
+    if { $tmplat == {} } {set tmplat [osutils:vc7:readtemplatex]}
+    if { $fmtcpp == {} } {set fmtcpp [osutils:vc7:fmtcppx]}
+    set fout {}
+    foreach f [osutils:tk:files $tkloc osutils:am:compilable 0] {
+        puts "1"
+        set tf [file rootname [file tail $f]]   
+        set l_compilable [osutils:vc7:compilable]
+        regsub -all -- {__XQTNAM__} $tmplat $tf  temp0
+        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 "
+         }
+        }
+       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"     
+                   set tkused [concat $tkused $felem]
+               }
+             }   
+           }
+        }
+       }
+       if {[wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]] == "#WOKStep_DLLink(exec.tks)"} { 
+           set tkused [concat $tkused "\/dll"]
+           set binext 2
+       } else {
+           set binext 1
+       }
+       #puts "$tf requires  $tkused"
+       regsub -all -- {__TKDEP__} $temp0  $tkused temp3
+       set files ""
+       ;#set lsrc   [osutils:tk:files $tkloc osutils:am:compilable 0]
+       ;#foreach f $lsrc {
+       if { ![info exists written([file tail $f])] } {
+           set written([file tail $f]) 1
+            append files "\t\t\t<Filter\n"
+            append files "\t\t\t\tName=\"$tkloc\"\n"
+           append files "\t\t\t\tFilter=\"\">\n"
+            append files "\t\t\t\t<File\n"
+           append files "\t\t\t\t\tRelativePath=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]]\">\n"
+            append files "\t\t\t\t\t<FileConfiguration\n"
+            append files "\t\t\t\t\t\tName=\"Debug|Win32\">\n"
+            append files "\t\t\t\t\t\t<Tool\n"
+            append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+            append files "\t\t\t\t\t\t\tOptimization=\"0\"\n"
+            append files "\t\t\t\t\t\t\t[format $fmtcpp $tkloc $tkloc $tkloc] \n"
+           append files "\t\t\t\t\t\t\tBasicRuntimeChecks=\"3\"\n"
+            append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
+            append files "\t\t\t\t\t</FileConfiguration>\n"
+            append files "\t\t\t\t\t<FileConfiguration\n"
+            append files "\t\t\t\t\t\tName=\"Release|Win32\">\n"
+            append files "\t\t\t\t\t\t<Tool\n"
+            append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+            append files "\t\t\t\t\t\t\tOptimization=\"2\"\n"
+            append files "\t\t\t\t\t\t\t[format $fmtcpp $tkloc $tkloc $tkloc] \n"
+            append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
+            append files "\t\t\t\t\t</FileConfiguration>\n"
+            append files "\t\t\t\t</File>\n"
+            append files "\t\t\t</Filter>\n"
+       } else {
+           puts "Warning : in dsp more than one occurences for [file tail $f]"
+       }
+       ;#}
+    #puts "$temp3 $files"
+    regsub -all -- {__FILES__} $temp3 $files temp4
+    regsub -all -- {__CONF__} $temp4 $binext temp5
+    set fp [open [set fdsp [file join $dir ${tf}.vcproj]] w]
+    fconfigure $fp -translation crlf
+    puts $fp $temp5
+    set fout [lappend fout $fdsp]
+    close $fp
+   }
+   return $fout
+}
+
+proc osutils:vc8x { dir tkloc {tmplat {} } {fmtcpp {} } } {
+    if { $tmplat == {} } {set tmplat [osutils:vc8:readtemplatex]}
+    if { $fmtcpp == {} } {set fmtcpp [osutils:vc8:fmtcppx]}
+    set fout {}
+    foreach f [osutils:tk:files $tkloc osutils:am:compilable 0] {
+        puts "1"
+        set tf [file rootname [file tail $f]]   
+        set l_compilable [osutils:vc8:compilable]
+        regsub -all -- {__XQTNAM__} $tmplat $tf  temp0
+        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 "
+         }
+        }
+       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"     
+                   set tkused [concat $tkused $felem]
+               }
+             }   
+           }
+        }
+       }
+       if {[wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]] == "#WOKStep_DLLink(exec.tks)"} { 
+           set tkused [concat $tkused "\/dll"]
+           set binext 2
+       } else {
+           set binext 1
+       }
+       #puts "$tf requires  $tkused"
+       regsub -all -- {__TKDEP__} $temp0  $tkused temp3
+       set files ""
+       ;#set lsrc   [osutils:tk:files $tkloc osutils:am:compilable 0]
+       ;#foreach f $lsrc {
+       if { ![info exists written([file tail $f])] } {
+           set written([file tail $f]) 1
+            append files "\t\t\t<Filter\n"
+            append files "\t\t\t\tName=\"$tkloc\"\n"
+           append files "\t\t\t\tFilter=\"\">\n"
+            append files "\t\t\t\t<File\n"
+           append files "\t\t\t\t\tRelativePath=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]]\">\n"
+            append files "\t\t\t\t\t<FileConfiguration\n"
+            append files "\t\t\t\t\t\tName=\"Debug|Win32\">\n"
+            append files "\t\t\t\t\t\t<Tool\n"
+            append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+            append files "\t\t\t\t\t\t\tOptimization=\"0\"\n"
+            append files "\t\t\t\t\t\t\t[format $fmtcpp $tkloc $tkloc $tkloc] \n"
+           append files "\t\t\t\t\t\t\tBasicRuntimeChecks=\"3\"\n"
+            append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
+            append files "\t\t\t\t\t</FileConfiguration>\n"
+            append files "\t\t\t\t\t<FileConfiguration\n"
+            append files "\t\t\t\t\t\tName=\"Release|Win32\">\n"
+            append files "\t\t\t\t\t\t<Tool\n"
+            append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+            append files "\t\t\t\t\t\t\tOptimization=\"2\"\n"
+            append files "\t\t\t\t\t\t\t[format $fmtcpp $tkloc $tkloc $tkloc] \n"
+            append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
+            append files "\t\t\t\t\t</FileConfiguration>\n"
+            append files "\t\t\t\t</File>\n"
+            append files "\t\t\t</Filter>\n"
+       } else {
+           puts "Warning : in dsp more than one occurences for [file tail $f]"
+       }
+       ;#}
+    #puts "$temp3 $files"
+    regsub -all -- {__FILES__} $temp3 $files temp4
+    regsub -all -- {__CONF__} $temp4 $binext temp5
+    set fp [open [set fdsp [file join $dir ${tf}.vcproj]] w]
+    fconfigure $fp -translation crlf
+    puts $fp $temp5
+    set fout [lappend fout $fdsp]
+    close $fp
+   }
+   return $fout
+}
+
+proc osutils:vc8x_64 { dir tkloc {tmplat {} } {fmtcpp {} } } {
+    if { $tmplat == {} } {set tmplat [osutils:vc8_64:readtemplatex]}
+    if { $fmtcpp == {} } {set fmtcpp [osutils:vc8_64:fmtcppx]}
+    set fout {}
+    foreach f [osutils:tk:files $tkloc osutils:am:compilable 0] {
+        puts "1"
+        set tf [file rootname [file tail $f]]   
+        set l_compilable [osutils:vc8_64:compilable]
+        regsub -all -- {__XQTNAM__} $tmplat $tf  temp0
+        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 "
+         }
+        }
+       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"     
+                   set tkused [concat $tkused $felem]
+               }
+             }   
+           }
+        }
+       }
+       if {[wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]] == "#WOKStep_DLLink(exec.tks)"} { 
+           set tkused [concat $tkused "\/dll"]
+           set binext 2
+       } else {
+           set binext 1
+       }
+       #puts "$tf requires  $tkused"
+       regsub -all -- {__TKDEP__} $temp0  $tkused temp3
+       set files ""
+       ;#set lsrc   [osutils:tk:files $tkloc osutils:am:compilable 0]
+       ;#foreach f $lsrc {
+       if { ![info exists written([file tail $f])] } {
+           set written([file tail $f]) 1
+            append files "\t\t\t<Filter\n"
+            append files "\t\t\t\tName=\"$tkloc\"\n"
+           append files "\t\t\t\tFilter=\"\">\n"
+            append files "\t\t\t\t<File\n"
+           append files "\t\t\t\t\tRelativePath=\"..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]]\">\n"
+            append files "\t\t\t\t\t<FileConfiguration\n"
+            append files "\t\t\t\t\t\tName=\"Debug|x64\">\n"
+            append files "\t\t\t\t\t\t<Tool\n"
+            append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+            append files "\t\t\t\t\t\t\tOptimization=\"0\"\n"
+            append files "\t\t\t\t\t\t\t[format $fmtcpp $tkloc $tkloc $tkloc] \n"
+           append files "\t\t\t\t\t\t\tBasicRuntimeChecks=\"3\"\n"
+            append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
+            append files "\t\t\t\t\t</FileConfiguration>\n"
+            append files "\t\t\t\t\t<FileConfiguration\n"
+            append files "\t\t\t\t\t\tName=\"Release|x64\">\n"
+            append files "\t\t\t\t\t\t<Tool\n"
+            append files "\t\t\t\t\t\t\tName=\"VCCLCompilerTool\"\n"
+            append files "\t\t\t\t\t\t\tOptimization=\"2\"\n"
+            append files "\t\t\t\t\t\t\t[format $fmtcpp $tkloc $tkloc $tkloc] \n"
+            append files "\t\t\t\t\t\t\tCompileAs=\"0\"/>\n"
+            append files "\t\t\t\t\t</FileConfiguration>\n"
+            append files "\t\t\t\t</File>\n"
+            append files "\t\t\t</Filter>\n"
+       } else {
+           puts "Warning : in dsp more than one occurences for [file tail $f]"
+       }
+       ;#}
+    #puts "$temp3 $files"
+    regsub -all -- {__FILES__} $temp3 $files temp4
+    regsub -all -- {__CONF__} $temp4 $binext temp5
+    set fp [open [set fdsp [file join $dir ${tf}.vcproj]] w]
+    fconfigure $fp -translation crlf
+    puts $fp $temp5
+    set fout [lappend fout $fdsp]
+    close $fp
+   }
+   return $fout
+}
+
+;#
+;# Create file tkloc.mak for a shareable library (dll).
+;# in dir return the full path of the created file
+;#
+proc osutils:mkmak { dir tkloc {tmplat {} } {fmtcpp {} } } {
+    puts $tkloc
+    if { $tmplat == {} } {set tmplat [osutils:mak:readtemplate]}
+    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:vc6: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  temp0
+    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 "\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:am: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"
+        }
+      }
+    } 
+    regsub -all -- {__FIELD1__} $temp0 $area1  temp1
+
+    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:am: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 -- {__FIELD2__} $temp1 $area2  temp2
+       
+    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:am: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__} $temp2 $area3  temp3
+
+    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\" "
+    }
+
+    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:am: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__} $temp3 $area4  temp4
+
+    set area5 ""
+    if [array exists written] { unset written }
+    foreach fxlo $resultloc {
+      set xlo [wokinfo -n $fxlo]
+      set lsrc   [osutils:tk:files $xlo osutils:am: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"
+      }
+      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__} $temp4 $area5  temp5
+
+    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__} $temp5 $area6  temp6
+   
+    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__} $temp6 $tclwarning  temp7
+
+    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__} $temp7 $javawarning  temp8
+    puts $fp $temp8
+    close $fp
+    return $fdsp
+}
+
+proc osutils:mkmakx { dir tkloc {tmplat {} } {fmtcpp {} } } {
+    if { $tmplat == {} } {set tmplat [osutils:mak:readtemplatex]}
+    if { $fmtcpp == {} } {set fmtcpp [osutils:mak:fmtcppx]}
+    foreach f [osutils:tk:files $tkloc osutils:am: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:vc6:compilable]
+        regsub -all -- {__XQTNAM__} $tmplat $tf  temp0
+        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]
+               }
+             }   
+           }
+        }
+       }
+       if {[wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]] == "#WOKStep_DLLink(exec.tks)" } { 
+           set tkused [concat $tkused "\/dll"]
+           if {$tclused != 1} {
+             regsub -all -- {__COMPOPT__} $temp0 "\/MD" temp1 
+             regsub -all -- {__COMPOPTD__} $temp1 "\/MDd" temp2 
+           } else {
+             regsub -all -- {__COMPOPT__} $temp0 "\/MD \/I \"\$(TCLHOME)\\include\"" temp1 
+             regsub -all -- {__COMPOPTD__} $temp1 "\/MDd \/I \"\$(TCLHOME)\\include\"" temp2 
+           }             
+           regsub -all -- {__XQTNAMEX__} $temp2 "$tf.dll" temp3
+       } else {
+           if {$tclused != 1} {
+            regsub -all -- {__COMPOPT__} $temp0 "\/MD" temp1
+            regsub -all -- {__COMPOPTD__} $temp1 "\/MDd" temp2 
+           } else {
+            regsub -all -- {__COMPOPT__} $temp0 "\/MD \/I \"\$(TCLHOME)\\include\"" temp1
+            regsub -all -- {__COMPOPTD__} $temp1 "\/MDd \/I \"\$(TCLHOME)\\include\"" temp2 
+           }
+           regsub -all -- {__XQTNAMEX__} $temp2 "$tf.exe" temp3
+       }
+       #puts "$tf requires  $tkused"
+       if {$tclused == 1} {
+          append tkused " -libpath:\"\$(TCLHOME)\\lib\" "
+       }
+       regsub -all -- {__TKDEP__} $temp3  $tkused temp4
+       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__} $temp4 $files temp5
+      regsub -all -- {__FIELD1__} $temp5 $field1 temp6
+      regsub -all -- {__FIELD2__} $temp6 $field2 temp7
+      regsub -all -- {__FIELD3__} $temp7 $field3 temp8
+      regsub -all -- {__FIELD4__} $temp8 $field4 temp9
+      regsub -all -- {__XNAM__} $temp9 $tkloc temp10
+      puts $fp $temp10
+      close $fp
+      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:am:readtemplate]
+    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:am: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"   temp0
+    set vpath [osutils:am:__VPATH__ $lpkgs]
+    regsub -all -- {__VPATH__} "$temp0" "$vpath"    temp1
+    set inclu [osutils:am:__INCLUDES__ $lpkgs]
+    regsub -all -- {__INCLUDES__} "$temp1" "$inclu" temp2
+    if { $close != {} } {
+       set libadd [osutils:am:__LIBADD__ $close $final]
+    } else {
+       set libadd ""
+    }
+    regsub -all -- {__LIBADD__} "$temp2" "$libadd"  temp3
+    set source [osutils:am:__SOURCES__ $lsrc]
+    regsub -all -- {__SOURCES__} "$temp3" "$source" temp4
+    regsub -all -- {__EXTERNINC__} "$temp4" "$externinc" temp5
+    set CXXFl [osutils:am:__CXXFLAG__ $lpkgs]
+    regsub -all -- {__CXXFLAG__} "$temp5" "$CXXFl" temp6
+    set CFl [osutils:am:__CFLAG__ $lpkgs]
+    regsub -all -- {__CFLAG__} "$temp6" "$CFl" temp7
+
+    regsub -all -- {__EXTERNLIB__} "$temp7" "$externlib" MakeFile_am
+
+    wokUtils:FILES:StringToFile "$MakeFile_am" [set fmam [file join $dir Makefile.am]]
+
+    catch { unset temp0 temp1 temp2 temp3 temp4 temp5 temp6 temp7}
+
+    #set tmplat [osutils:in:readtemplate]
+    
+    #regsub -all -- {__TKNAM__} "$tmplat" "$tkloc"   temp0
+    #if { $close != {} } {
+       #set dpncies  [osutils:in:__DEPENDENCIES__ $close]
+    #} else {
+       #set dpncies ""
+    #}
+    #regsub -all -- {__DEPENDENCIES__} "$temp0" "$dpncies" temp1
+
+    #set objects  [osutils:in:__OBJECTS__ $lobj]
+    #regsub -all -- {__OBJECTS__} "$temp1" "$objects" temp2
+    #set amdep    [osutils:in:__AMPDEP__ $lobj]
+    #regsub -all -- {__AMPDEP__} "$temp2" "$amdep" temp3
+    #set amdeptrue [osutils:in:__AMDEPTRUE__ $lobj]
+    #regsub -all -- {__AMDEPTRUE__} "$temp3" "$amdeptrue" temp4
+;#  so easy..    
+    #regsub -all -- {__MAKEFILEIN__} "$temp4" "$MakeFile_am" MakeFile_in
+
+    #wokUtils:FILES:StringToFile "$MakeFile_in" [set fmin [file join $dir Makefile.in]]
+
+    return [list $fmam]
+    #return [list $fmam $fmin]
+}
+;#
+;# 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 {}
+    }
+    set tmplat [osutils:am:readtemplatex]
+    set close  [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
+    set lsrc   [lsort [osutils:tk:files $tkloc osutils:am: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]
+     }
+    }
+    set pkgs [LibToLinkX [woklocate -u $tkloc] [lindex $CXXList 0]]
+    set lpkgs  [osutils:justunix [wokUtils:FILES:FileToList $pkgs]]
+    puts "pkgs $pkgs"
+    #set lcsf   [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]]
+
+    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]
+         }
+       }
+    }
+    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 -- {__XQTNAM__} "$tmplat" "$tkloc"   temp0
+    set temp1 "$temp0 \nlib_LTLIBRARIES="
+    foreach entity $CXXList {
+       set temp1 "${temp1} lib${entity}.la"
+    }
+    set temp1 "${temp1}\n"
+    set inclu [osutils:am:__INCLUDES__ $lpkgs]
+    regsub -all -- {__INCLUDES__} "$temp1" "$inclu" temp2
+    if { $pkgs != {} } {
+       set libadd [osutils:am:__LIBADD__ $pkgs $final]
+    } else {
+       set libadd ""
+    }
+    regsub -all -- {__LIBADD__} "$temp2" "$libadd"  temp3
+    set source [osutils:am:__SOURCES__ $CXXList]
+    regsub -all -- {__SOURCES__} "$temp3" "$source" temp4
+    regsub -all -- {__EXTERNINC__} "$temp4" "$externinc" MakeFile_am
+    foreach entity $CXXList {
+       set MakeFile_am "$MakeFile_am lib${entity}_la_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n"
+    }
+    foreach entity $CXXList {
+        set MakeFile_am "$MakeFile_am lib${entity}_la_LIBADD = $libadd $externlib \n"
+    }
+    wokUtils:FILES:StringToFile "$MakeFile_am" [set fmam [file join $dir Makefile.am]]
+
+    catch { unset temp0 temp1 temp2 temp3 temp4 temp5}
+    return [list $fmam]
+
+  } else {
+    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:am:readtemplatex]
+    set close  [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
+    set lsrc   [lsort [osutils:tk:files $tkloc osutils:am: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]
+     }
+    }
+    set pkgs [LibToLinkX [woklocate -u $tkloc] [lindex $CXXList 0]]
+    set lpkgs  [osutils:justunix [wokUtils:FILES:FileToList $pkgs]]
+    set lcsf   [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]]
+
+    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]
+         }
+       }
+    }
+    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 -- {__XQTNAM__} "$tmplat" "$tkloc"   temp0
+    set temp1 "$temp0 \nbin_PROGRAMS="
+    foreach entity $CXXList {
+       set temp1 "${temp1} ${entity}"
+    }
+    set temp1 "${temp1}\n"
+    set inclu [osutils:am:__INCLUDES__ $lpkgs]
+    regsub -all -- {__INCLUDES__} "$temp1" "$inclu" temp2
+    if { $pkgs != {} } {
+       set libadd [osutils:am:__LIBADD__ $pkgs $final]
+    } else {
+       set libadd ""
+    }
+    set source [osutils:am:__SOURCES__ $CXXList]
+    regsub -all -- {__SOURCES__} "$temp2" "$source" temp3
+    regsub -all -- {__EXTERNINC__} "$temp3" "$externinc" MakeFile_am
+    foreach entity $CXXList {
+       set MakeFile_am "$MakeFile_am ${entity}_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n"
+    }
+    foreach entity $CXXList {
+        set MakeFile_am "$MakeFile_am ${entity}_LDADD = $libadd $externlib \n"
+    }
+    wokUtils:FILES:StringToFile "$MakeFile_am" [set fmam [file join $dir Makefile.am]]
+
+    catch { unset temp0 temp1 temp2 temp3 temp4 temp5}
+
+   # set tmplat [osutils:in:readtemplatex]
+    
+   # regsub -all -- {__XQTNAM__} "$tmplat" "$tkloc"   temp0
+   # if { $close != {} } {
+       #set dpncies  [osutils:in:__DEPENDENCIES__ $close]
+   # } else {
+       #set dpncies ""
+   # }
+   # regsub -all -- {__DEPENDENCIES__} "$temp0" "$dpncies" temp1
+
+   # set objects  [osutils:in:__OBJECTS__ $lobj]
+   # regsub -all -- {__OBJECTS__} "$temp1" "$objects" temp2
+   # #set temp2 $temp1
+   # set amdep    [osutils:in:__AMPDEP__ $lobj]
+   # regsub -all -- {__AMPDEP__} "$temp2" "$amdep" temp3
+    #set temp3 $temp2
+   # set amdeptrue [osutils:in:__AMDEPTRUE__ $lobj]
+   # regsub -all -- {__AMDEPTRUE__} "$temp3" "$amdeptrue" temp4
+    #set temp4 $temp3
+;#  so easy..    
+   # regsub -all -- {__MAKEFILEIN__} "$temp4" "$MakeFile_am" MakeFile_in
+
+    #wokUtils:FILES:StringToFile "$MakeFile_in" [set fmin [file join $dir Makefile.in]]
+    return [list $fmam]
+    #return [list $fmam $fmin]
+  }
+}
+
+;#
+;#  ((((((((((((( Formats in Makefile.am )))))))))))))
+;#
+;# List extensions of files compilable in automake
+;#
+proc osutils:am:compilable { } {
+    return [list .c .cxx .cpp]
+}
+;#
+;# Used to replace the string __VPATH__ in Makefile.am
+;# 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]
+}
+;#
+;# 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
+    }
+}
+proc osutils:am:PkCXXOption ppk {
+ set CXXCOMMON [lindex [wokparam -e  %CMPLRS_CXX_Options [wokcd]] 0]
+ set FoundFlag ""
+ 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 ""
+ 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]]
+}
+;#
+;# 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]]
+}
+
+;#
+;# Used to replace the string __INCLUDES__ in Makefile.am
+;# 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] 
+}
+;#
+;# 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]
+}
+;#
+;# 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]
+}
+;#
+;#  ((((((((((((( 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]
+}
+;#
+;# 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]
+}
+;#
+;# 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]
+}
+;#
+;# 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]
+}
+
+
+;#############################################################
+;#
+proc TESTAM { {root} {ll {}} } {
+#    source [woklocate -p OS:source:OS.tcl]
+#    source [woklocate -p WOKTclLib:source:osutils.tcl]
+    set lesmodules [OS -lm]
+    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
+       }
+    }
+}