From: bugmaster Date: Thu, 24 May 2012 10:13:23 +0000 (+0400) Subject: 0022691: WOK configuration improvement X-Git-Tag: V6_7_1~106 X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=4d9207da6f6e9f360b18478cbce3f18121f4d90d;p=occt-wok.git 0022691: WOK configuration improvement --- diff --git a/.gitattributes b/.gitattributes index 5d11379..9741fc2 100644 --- a/.gitattributes +++ b/.gitattributes @@ -16,6 +16,8 @@ *.edl eol=lf *.mm eol=lf *.el eol=lf +*.xpm eol=lf +*.xbm eol=lf *.sh eol=lf *.csh eol=lf *.tcl eol=lf @@ -25,6 +27,10 @@ *.xib eol=lf *.plist eol=lf *.java eol=lf +*.mam eol=lf +*.mamx eol=lf +*.min eol=lf +*.minx eol=lf FILES eol=lf PACKAGES eol=lf EXTERNLIB eol=lf @@ -43,6 +49,8 @@ UDLIST eol=lf *.sln eol=crlf *.res eol=crlf *.resx eol=crlf +*.mak eol=crlf +*.makx eol=crlf *.dll binary *.so binary *.dylib binary diff --git a/adm/UDLIST b/adm/UDLIST index 09686a7..621352e 100644 --- a/adm/UDLIST +++ b/adm/UDLIST @@ -1,3 +1,4 @@ +r VAS n CDLFront n CPPClient n CPPExt diff --git a/src/VAS/FILES b/src/VAS/FILES new file mode 100644 index 0000000..9e9477b --- /dev/null +++ b/src/VAS/FILES @@ -0,0 +1,3 @@ +srcinc:::WOK.tcl +srcinc:::Products.tcl +srcinc:::VAS.tcl diff --git a/src/VAS/Products.tcl b/src/VAS/Products.tcl new file mode 100644 index 0000000..b09aa7e --- /dev/null +++ b/src/VAS/Products.tcl @@ -0,0 +1,6 @@ +;# +;# Retourne la liste ordonnee des noms de Modules +;# +proc VAS:Products {{plat {}}} { + return [list WOK] +} diff --git a/src/VAS/VAS.tcl b/src/VAS/VAS.tcl new file mode 100644 index 0000000..7f99c10 --- /dev/null +++ b/src/VAS/VAS.tcl @@ -0,0 +1,36 @@ +# Definitions for a product: VAS + +# List of toolkits +proc VAS:toolkits { } { + return {} +} + +# List of non-toolkits (resource units, executables etc., with associated info) +proc VAS:ressources { } { + return [list [list both r VAS {} ]] +} + +# Product name +proc VAS:name { } { + return VAS +} + +# And short alias +proc VAS:alias { } { + return VAS +} + +# Dependency on other products +proc VAS:depends { } { + return {} +} + +proc VAS:CompileWith { } { +} + +proc VAS:LinksoWith { } { +} + +proc VAS:Export { } { + return [list source runtime wokadm api] +} diff --git a/src/VAS/WOK.tcl b/src/VAS/WOK.tcl new file mode 100644 index 0000000..4cd2965 --- /dev/null +++ b/src/VAS/WOK.tcl @@ -0,0 +1,120 @@ +;# +;# Liste des toolkits WOK sous forme de full path +;# +proc WOK:toolkits { } { + return {TKWOK TKWOKTcl TKTCPPExt TKCDLFront TKCPPExt TKCPPClient TKIDLFront TKCPPJini TKCPPIntExt TKCSFDBSchema} +} +;# +;# Autres UDs a prendre. Listes de triplets +;# { ar typ UD str } Tous les types de UD vont dans un sous directory nomme root/str +;# Ils seront dans CAS3.0/str de l'archive de type ar (source/runtime) +;# { ar typ UD {} } Tous les types de UD vont dans root/UD/src => CAS3.0/src +;# +proc WOK:ressources { } { + return [list \ + [list both r WOKBuilderDef {}]\ + [list both r WOKStepsDef {}]\ + [list both r WOKEntityDef {}]\ + [list both r WOKTclLib {}] \ + [list both r WOKsite {}] \ + [list both x WOKSH {}] \ + [list both x WOKLibs {}] \ + ] +} +;# +;# retourne une liste de triplets {type /name} +;# permet de faire : cp $CASROOT//name +;# On peut ainsi embarquer des fichiers d'un peu partout et les dispatcher sous +;# la racine d'arrivee et ce avec un autre nom. +;# rien n'empeche de CALCULER automatiquement des paths dans cette proc. +;# type = source/runtime/both pour dire si le fichier va dans l'archive en question. +;# une deux (ou les deux) type d'archive fabriquees. +;# +proc WOK:freefiles { } { + return +} +;# +;# Nom du module +;# +proc WOK:name { } { + return WOK +} +;# +;# Nom du module +;# +proc WOK:alias { } { + return WOK +} +;# +;# +;# +proc WOK:depends { } { + return {} +} +;# +;# Pre-requis pour la compilation ( -I ... ) +;# Returns a list of directory that should be used in -I directives +;# while compiling c or c++ files. +;# +proc WOK:CompileWith { {plat {}}} { + + set l {} + switch -- [OS:os] { + HP-UX { + } + Linux { + lappend l "-I[lindex [wokparam -v %CSF_JavaHome] 0]/include" + lappend l "-I[lindex [wokparam -v %CSF_JavaHome] 0]/include/linux" + lappend l "[lindex [wokparam -v %CSF_TCL_HOME] 0]/include" + lappend l "[lindex [lindex [wokparam -v %STLPortInclude] 0] 0]" + } + + SunOS { + lappend l "/usr/openwin/include" + lappend l "/usr/dt/include" + lappend l "[lindex [wokparam -v %CSF_CXX_INCLUDE] 0]" + lappend l "-I[lindex [wokparam -v %CSF_JavaHome] 0]/include" + lappend l "-I[lindex [wokparam -v %CSF_JavaHome] 0]/include/solaris" + lappend l "[lindex [wokparam -v %CSF_TCL_HOME] 0]/include" + } + + IRIX { + } + } + return $l +} +;# +;# Pre-requis pour la compilation ( -L ... ) +;# Returns a list of directory that should be used in -L directives +;# while creating shareable. +;# +proc WOK:LinksoWith {{plat {}} } { + + set l {} + switch -- [OS:os] { + HP-UX { + } + Linux { + lappend l /usr/X11R6/lib + } + + SunOS { + lappend l "-L[wokparam -v %CSF_TCL_HOME]/lib -R[wokparam -v %CSF_TCL_HOME]/lib -ltcl" + lappend l "-L[wokparam -v %CSF_TCL_HOME]/lib -R[wokparam -v %CSF_TCL_HOME]/lib -ltk" + } + + IRIX { + } + } + return $l +} +;# +;# Returns a list of exported features. +;# source : Source files +;# runtime: Shareables +;# wokadm : WOK admin files +;# api : Public include files +;# +proc WOK:Export { } { + return [list source runtime wokadm api] +} diff --git a/src/WOKBuilderDef/CMPLRS.edl b/src/WOKBuilderDef/CMPLRS.edl index 01c63cb..84228d8 100755 --- a/src/WOKBuilderDef/CMPLRS.edl +++ b/src/WOKBuilderDef/CMPLRS.edl @@ -1,1495 +1,408 @@ +-- +-- WOK Compilers configuration file. +-- +@ifnotdefined (%CMPLRS_EDL) then + @set %CMPLRS_EDL = ""; + + @ifnotdefined (%CSF_EDL) then + @uses "CSF.edl"; + @endif; -@ifnotdefined ( %CMPLRS_EDL ) then - @set %CMPLRS_EDL = ""; - - @ifnotdefined( %CSF_EDL ) then - @uses "CSF.edl"; - @endif; - - @ifnotdefined( %CMPLRS_Unit_C_Options ) then - @set %CMPLRS_Unit_C_Options = "" ; - @endif; - @ifnotdefined( %CMPLRS_Unit_CXX_Options ) then - @set %CMPLRS_Unit_CXX_Options = "" ; - @endif; - - @set %CMPLRS_C_PDBName = "PDBName"; - @set %CMPLRS_C_Object = "Object"; - @set %CMPLRS_C_Files = "Files"; - @set %CMPLRS_C_TmpFile = "DTmpFile"; - @set %CMPLRS_C_Header = "Header"; - @set %CMPLRS_C_InputDirective = "InputDirective"; - @set %CMPLRS_C_Directives = "Directives"; - @set %CMPLRS_C_Template = "CmdLine"; - @set %CMPLRS_C_Footer = "Footer"; - @set %CMPLRS_CXX_PDBName = "PDBName"; - @set %CMPLRS_CXX_Object = "Object"; - @set %CMPLRS_CXX_Files = "Files"; - @set %CMPLRS_CXX_TmpFile = "DTmpFile"; - @set %CMPLRS_CXX_Header = "Header"; - @set %CMPLRS_CXX_InputDirective = "InputDirective"; - @set %CMPLRS_CXX_Directives = "Directives"; - @set %CMPLRS_CXX_Template = "CmdLine"; - @set %CMPLRS_CXX_Footer = "Footer"; - @set %CMPLRS_F77_PDBName = "PDBName"; - @set %CMPLRS_F77_Object = "Object"; - @set %CMPLRS_F77_Files = "Files"; - @set %CMPLRS_F77_TmpFile = "DTmpFile"; - @set %CMPLRS_F77_Header = "Header"; - @set %CMPLRS_F77_InputDirective = "InputDirective"; - @set %CMPLRS_F77_Directives = "Directives"; - @set %CMPLRS_F77_Template = "CmdLine"; - @set %CMPLRS_F77_Footer = "Footer"; - - @set %CMPLRS_CXX_Extensions = "toto.cxx toto.C toto.cpp"; - @set %CMPLRS_C_Extensions = "toto.c"; - @set %CMPLRS_F77_Extensions = "toto.f "; - @set %CMPLRS_Tools = "CMPLRS_C CMPLRS_CXX CMPLRS_F77"; - - @if ( %CSF_CREATECOMP_DEP == "Yes" ) then - @set %CMPLRS_CXX_WOKDirectives = "-MD "; - @set %CMPLRS_C_WOKDirectives = "-MD "; - @else - @set %CMPLRS_CXX_WOKDirectives = ""; - @set %CMPLRS_C_WOKDirectives = ""; - @endif; + @ifnotdefined (%CMPLRS_Unit_C_Options) then + @set %CMPLRS_Unit_C_Options = ""; + @endif; + @ifnotdefined (%CMPLRS_Unit_CXX_Options) then + @set %CMPLRS_Unit_CXX_Options = ""; + @endif; - @if ( %DBMS == "OBJS" ) then - @set %CMPLRS_CXX_DBMSOpt = "-DOBJS"; - @endif; + @set %CMPLRS_C_PDBName = "PDBName"; + @set %CMPLRS_C_Object = "Object"; + @set %CMPLRS_C_Files = "Files"; + @set %CMPLRS_C_TmpFile = "DTmpFile"; + @set %CMPLRS_C_Header = "Header"; + @set %CMPLRS_C_InputDirective = "InputDirective"; + @set %CMPLRS_C_Directives = "Directives"; + @set %CMPLRS_C_Template = "CmdLine"; + @set %CMPLRS_C_Footer = "Footer"; + @set %CMPLRS_CXX_PDBName = "PDBName"; + @set %CMPLRS_CXX_Object = "Object"; + @set %CMPLRS_CXX_Files = "Files"; + @set %CMPLRS_CXX_TmpFile = "DTmpFile"; + @set %CMPLRS_CXX_Header = "Header"; + @set %CMPLRS_CXX_InputDirective = "InputDirective"; + @set %CMPLRS_CXX_Directives = "Directives"; + @set %CMPLRS_CXX_Template = "CmdLine"; + @set %CMPLRS_CXX_Footer = "Footer"; + @set %CMPLRS_F77_PDBName = "PDBName"; + @set %CMPLRS_F77_Object = "Object"; + @set %CMPLRS_F77_Files = "Files"; + @set %CMPLRS_F77_TmpFile = "DTmpFile"; + @set %CMPLRS_F77_Header = "Header"; + @set %CMPLRS_F77_InputDirective = "InputDirective"; + @set %CMPLRS_F77_Directives = "Directives"; + @set %CMPLRS_F77_Template = "CmdLine"; + @set %CMPLRS_F77_Footer = "Footer"; + + @set %CMPLRS_CXX_Extensions = "toto.cxx toto.C toto.cpp"; + @set %CMPLRS_C_Extensions = "toto.c"; + @set %CMPLRS_F77_Extensions = "toto.f "; + @set %CMPLRS_Tools = "CMPLRS_C CMPLRS_CXX CMPLRS_F77"; + + @if (%CSF_CREATECOMP_DEP == "Yes") then + @set %CMPLRS_CXX_WOKDirectives = "-MD "; + @set %CMPLRS_C_WOKDirectives = "-MD "; + @else + @set %CMPLRS_CXX_WOKDirectives = ""; + @set %CMPLRS_C_WOKDirectives = ""; + @endif; - @if ( %DBMS == "DFLT" ) then + @if (%DBMS == "OBJS") then + @set %CMPLRS_CXX_DBMSOpt = "-DOBJS"; + @endif; + @if (%DBMS == "DFLT") then @set %CMPLRS_CXX_DBMSOpt = "-DCSFDB -DHAVE_WOK_CONFIG_H -DHAVE_CONFIG_H "; - @endif; + @endif; - @ifnotdefined ( %DebugMode ) then + @ifnotdefined (%DebugMode) then @set %DebugMode = "False"; - @endif; - - @if ( %Station == "wnt" ) then + @endif; + @if (%Station == "wnt") then --WARNING : For WNT, it is necessary to have $set symbol_name=%symbol_value% -- WITHOUT BLANK before and after equal sign ! - -- WITHOUT double quote - - @set %CMPLRS_CXX_InOutPut = "-c -Tp -Fo -Fd" ; - @set %CMPLRS_C_InOutPut = "-c -Tc -Fo -Fd" ; - @set %CMPLRS_F77_InOutPut = "-c -object: -pdbfile:" ; - - @ifdefined ( %UnitType ) then - @if (%UnitType != "executable") then - @string %CMPLRS_ExportBehaviour = " -D__" %Entity "_DLL"; - @else - @set %CMPLRS_ExportBehaviour = " -DStandard_EXPORT= "; - @endif; + -- WITHOUT double quote + + @set %CMPLRS_CXX_InOutPut = "-c -Tp -Fo -Fd"; + @set %CMPLRS_C_InOutPut = "-c -Tc -Fo -Fd"; + @set %CMPLRS_F77_InOutPut = "-c -object: -pdbfile:"; + + @ifdefined (%UnitType) then + @if (%UnitType != "executable") then + @string %CMPLRS_ExportBehaviour = " -D__" %Entity "_DLL"; + @else + @set %CMPLRS_ExportBehaviour = " -DStandard_EXPORT= "; + @endif; @endif; - @ifnotdefined ( %UnitType ) then - @set %CMPLRS_ExportBehaviour = ""; + @ifnotdefined (%UnitType) then + @set %CMPLRS_ExportBehaviour = ""; @endif; - @template CMPLRS_C_PDBName ( %PDBName ) is - $-Fd%PDBName \^ + @template CMPLRS_C_PDBName (%PDBName) is + $-Fd%PDBName \^ @end; - @template CMPLRS_CXX_PDBName ( %PDBName ) is - $-Fd%PDBName \^ + @template CMPLRS_CXX_PDBName (%PDBName) is + $-Fd%PDBName \^ @end; - @template CMPLRS_F77_PDBName ( %PDBName ) is - $-pdbfile:%PDBName \^ + @template CMPLRS_F77_PDBName (%PDBName) is + $-pdbfile:%PDBName \^ @end; - @template CMPLRS_C_Files ( %InputDir , %Source , - %OutputDir , %ObjectName ) is - $-c -Tc %InputDir/%Source -Fo%OutputDir/%ObjectName \^ + @template CMPLRS_C_Files (%InputDir, %Source, + %OutputDir, %ObjectName) is + $-c -Tc %InputDir/%Source -Fo%OutputDir/%ObjectName \^ @end; - @template CMPLRS_CXX_Files ( %InputDir , %Source , - %OutputDir , %ObjectName ) is - $-c -Tp %InputDir/%Source -Fo%OutputDir/%ObjectName \^ + @template CMPLRS_CXX_Files (%InputDir, %Source, + %OutputDir, %ObjectName) is + $-c -Tp %InputDir/%Source -Fo%OutputDir/%ObjectName \^ @end; - @template CMPLRS_F77_Files ( %InputDir , %Source , - %OutputDir , %ObjectName ) is - $-c %InputDir/%Source -object:%OutputDir/%ObjectName \^ + @template CMPLRS_F77_Files (%InputDir, %Source, + %OutputDir, %ObjectName) is + $-c %InputDir/%Source -object:%OutputDir/%ObjectName \^ @end; - @template CMPLRS_C_Object ( %BaseName ) is - $%BaseName.obj \^ + @template CMPLRS_C_Object (%BaseName) is + $%BaseName.obj \^ @end; - @template CMPLRS_CXX_Object ( %BaseName ) is - $%BaseName.obj \^ + @template CMPLRS_CXX_Object (%BaseName) is + $%BaseName.obj \^ @end; - @template CMPLRS_F77_Object ( %BaseName ) is - $%BaseName.obj \^ + @template CMPLRS_F77_Object (%BaseName) is + $%BaseName.obj \^ @end; - @template CMPLRS_C_Production ( %OutputDir, %BaseName ) is - $ %BaseName.obj %BaseName.m + @template CMPLRS_C_Production (%OutputDir, %BaseName) is + $ %BaseName.obj %BaseName.m @end; - @template CMPLRS_CXX_Production ( %OutputDir, %BaseName ) is - $ %BaseName.obj %BaseName.m + @template CMPLRS_CXX_Production (%OutputDir, %BaseName) is + $ %BaseName.obj %BaseName.m @end; - @template CMPLRS_F77_Production ( %OutputDir, %BaseName ) is - $ %BaseName.obj %BaseName.m + @template CMPLRS_F77_Production (%OutputDir, %BaseName) is + $ %BaseName.obj %BaseName.m @end; - @else + @else --WARNING : For UNIX, it is necessary to have $set symbol_name="symbol_value" - -- WITH double quote + -- WITH double quote - @set %CMPLRS_CXX_InOutPut = "-c -o " ; - @set %CMPLRS_C_InOutPut = "-c -o " ; - @set %CMPLRS_F77_InOutPut = "-c -o " ; + @set %CMPLRS_CXX_InOutPut = "-c -o "; + @set %CMPLRS_C_InOutPut = "-c -o "; + @set %CMPLRS_F77_InOutPut = "-c -o "; - @set %CMPLRS_ExportBehaviour = "" ; + @set %CMPLRS_ExportBehaviour = ""; - @template CMPLRS_C_PDBName ( %PDBName ) is - $ \^ + @template CMPLRS_C_PDBName (%PDBName) is + $ \^ @end; - @template CMPLRS_CXX_PDBName ( %PDBName ) is - $ \^ + @template CMPLRS_CXX_PDBName (%PDBName) is + $ \^ @end; - @template CMPLRS_F77_PDBName ( %PDBName ) is - $ \^ + @template CMPLRS_F77_PDBName (%PDBName) is + $ \^ @end; - @template CMPLRS_C_Files ( %InputDir , %Source , - %OutputDir , %ObjectName ) is - $-c %InputDir/%Source -o %OutputDir/%ObjectName \ + @template CMPLRS_C_Files (%InputDir, %Source, + %OutputDir, %ObjectName) is + $-c %InputDir/%Source -o %OutputDir/%ObjectName \ @end; - @template CMPLRS_CXX_Files ( %InputDir , %Source , - %OutputDir , %ObjectName ) is - $-c %InputDir/%Source -o %OutputDir/%ObjectName \ + @template CMPLRS_CXX_Files (%InputDir, %Source, + %OutputDir, %ObjectName) is + $-c %InputDir/%Source -o %OutputDir/%ObjectName \ @end; - @template CMPLRS_F77_Files ( %InputDir , %Source , - %OutputDir , %ObjectName ) is - $-c %InputDir/%Source -o %OutputDir/%ObjectName \ + @template CMPLRS_F77_Files (%InputDir, %Source, + %OutputDir, %ObjectName) is + $-c %InputDir/%Source -o %OutputDir/%ObjectName \ @end; - @template CMPLRS_C_Object ( %BaseName ) is - $%BaseName.o \ + @template CMPLRS_C_Object (%BaseName) is + $%BaseName.o \ @end; - @template CMPLRS_CXX_Object ( %BaseName ) is - $%BaseName.o \ + @template CMPLRS_CXX_Object (%BaseName) is + $%BaseName.o \ @end; - @template CMPLRS_F77_Object ( %BaseName ) is - $%BaseName.o \ + @template CMPLRS_F77_Object (%BaseName) is + $%BaseName.o \ @end; - @template CMPLRS_C_Production ( %OutputDir, %BaseName ) is - $ %BaseName.o %BaseName.m + @template CMPLRS_C_Production (%OutputDir, %BaseName) is + $ %BaseName.o %BaseName.m @end; - @template CMPLRS_CXX_Production ( %OutputDir, %BaseName ) is - $ %BaseName.o %BaseName.m + @template CMPLRS_CXX_Production (%OutputDir, %BaseName) is + $ %BaseName.o %BaseName.m @end; - @template CMPLRS_F77_Production ( %OutputDir, %BaseName ) is - $ %BaseName.o %BaseName.m + @template CMPLRS_F77_Production (%OutputDir, %BaseName) is + $ %BaseName.o %BaseName.m @end; - @endif; + @endif; - @template CMPLRS_IncDirective (%IncDirectory) is - $-I%IncDirectory \ - @end; + @template CMPLRS_IncDirective (%IncDirectory) is + $-I%IncDirectory \ + @end; - @if ( %Station != "wnt" ) then + @if (%Station != "wnt") then @template CMPLRS_ValDirective (%Symbol) is - $${%Symbol}\^ - @end; - @template CMPLRS_SetDirective (%Symbol , %Value) is - $setenv %Symbol "%Value"\^ + $${%Symbol}\^ @end; - @template CMPLRS_UnitSetDirectives ( - %IncDirectives , - %OutputDir ) is - $set IncDirectives="%IncDirectives" - $set OutputDir="%OutputDir" + @template CMPLRS_SetDirective (%Symbol, %Value) is + $setenv %Symbol "%Value"\^ @end; - @template CMPLRS_C_Header ( - %Unit_C_Options , - %CMPLRS_C_ModeOpt, - %CMPLRS_ExportBehaviour , - %C_PDBName ) is - $set Unit_C_Options="%Unit_C_Options" - $set C_ModeOpt="%CMPLRS_C_ModeOpt" - $set C_Export="%CMPLRS_ExportBehaviour" - $set C_PDBName="%C_PDBName" + @template CMPLRS_UnitSetDirectives (%IncDirectives, + %OutputDir) is + $set IncDirectives="%IncDirectives" + $set OutputDir="%OutputDir" @end; - @template CMPLRS_CXX_Header ( - %Unit_CXX_Options , - %CMPLRS_CXX_ModeOpt , - %CMPLRS_ExportBehaviour , - %CMPLRS_CXX_DBMSOpt , - %CXX_PDBName ) is - $set Unit_CXX_Options="%Unit_CXX_Options" - $set CXX_ModeOpt="%CMPLRS_CXX_ModeOpt" - $set CXX_Export="%CMPLRS_ExportBehaviour" - $set CXX_DBMSOpt="%CMPLRS_CXX_DBMSOpt" - $set CXX_PDBName="%CXX_PDBName" + @template CMPLRS_C_Header (%Unit_C_Options, + %CMPLRS_C_ModeOpt, + %CMPLRS_ExportBehaviour, + %C_PDBName) is + $set Unit_C_Options="%Unit_C_Options" + $set C_ModeOpt="%CMPLRS_C_ModeOpt" + $set C_Export="%CMPLRS_ExportBehaviour" + $set C_PDBName="%C_PDBName" @end; - @template CMPLRS_F77_Header ( - %CMPLRS_F77_ModeOpt , - %F77_PDBName ) is - $set F77_ModeOpt="%CMPLRS_F77_ModeOpt" - $set F77_PDBName="%F77_PDBName" + @template CMPLRS_CXX_Header (%Unit_CXX_Options, + %CMPLRS_CXX_ModeOpt, + %CMPLRS_ExportBehaviour, + %CMPLRS_CXX_DBMSOpt, + %CXX_PDBName) is + $set Unit_CXX_Options="%Unit_CXX_Options" + $set CXX_ModeOpt="%CMPLRS_CXX_ModeOpt" + $set CXX_Export="%CMPLRS_ExportBehaviour" + $set CXX_DBMSOpt="%CMPLRS_CXX_DBMSOpt" + $set CXX_PDBName="%CXX_PDBName" @end; - @else - @template CMPLRS_ValDirective (%Symbol) is - $%%Symbol%\^ - @end; - @template CMPLRS_SetDirective (%Symbol , %Value) is - $set %Symbol=%Value\^ + @template CMPLRS_F77_Header (%CMPLRS_F77_ModeOpt, + %F77_PDBName) is + $set F77_ModeOpt="%CMPLRS_F77_ModeOpt" + $set F77_PDBName="%F77_PDBName" @end; - @template CMPLRS_UnitSetDirectives ( - %IncDirectives , - %OutputDir ) is - $set IncDirectives=%IncDirectives - $set OutputDir=%OutputDir - @end; + @else - @template CMPLRS_C_Header ( - %Unit_C_Options , - %CMPLRS_C_ModeOpt, - %CMPLRS_ExportBehaviour , - %C_PDBName ) is - $set Unit_C_Options=%Unit_C_Options - $set C_ModeOpt=%CMPLRS_C_ModeOpt - $set C_Export=%CMPLRS_ExportBehaviour - $set C_PDBName=%C_PDBName - @end; - - @template CMPLRS_CXX_Header ( - %Unit_CXX_Options , - %CMPLRS_CXX_ModeOpt , - %CMPLRS_ExportBehaviour , - %CMPLRS_CXX_DBMSOpt , - %CXX_PDBName ) is - $set Unit_CXX_Options=%Unit_CXX_Options - $set CXX_ModeOpt=%CMPLRS_CXX_ModeOpt - $set CXX_Export=%CMPLRS_ExportBehaviour - $set CXX_DBMSOpt=%CMPLRS_CXX_DBMSOpt - $set CXX_PDBName=%CXX_PDBName + @template CMPLRS_ValDirective (%Symbol) is + $%%Symbol%\^ @end; - @template CMPLRS_F77_Header ( - %CMPLRS_F77_ModeOpt , - %F77_PDBName ) is - $set F77_ModeOpt=%CMPLRS_F77_ModeOpt - $set F77_PDBName=%F77_PDBName + @template CMPLRS_SetDirective (%Symbol, %Value) is + $set %Symbol=%Value\^ @end; - @endif ; - - @set %CMPLRS_CXX_COMPILER = %CSF_CXX_COMPILER ; - @set %CMPLRS_CXX_SysOptions = %CSF_CXX_SysOptions ; - @set %CMPLRS_CXX_Options = %CSF_CXX_Options ; - @set %CMPLRS_CXX_INCLUDE = %CSF_CXX_INCLUDE ; - @string %CMPLRS_CXX_INCLUDE += %CSF_JAVA_INCLUDE ; - - @set %CMPLRS_C_COMPILER = %CSF_C_COMPILER ; - @set %CMPLRS_C_SysOptions = %CSF_C_SysOptions; - @set %CMPLRS_C_Options = %CSF_C_Options; - @set %CMPLRS_C_INCLUDE = %CSF_C_INCLUDE ; - @set %CMPLRS_C_INCLUDE = %CSF_C_INCLUDE ; - - @set %CMPLRS_F77_COMPILER = %CSF_F77_COMPILER ; - @set %CMPLRS_F77_SysOptions = %CSF_F77_SysOptions; - @set %CMPLRS_F77_Options = %CSF_F77_Options; - - - @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , - %CMPLRS_F77_WOKDirectives , %Source , %OutputDir , %BaseName , %Entity ) is - $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o - $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile - $ touch %OutputDir/%BaseName.m - @end; - @template CMPLRS_F77_OptLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt ) is - $Following parameters make up F77 compilation command in this order: - $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER - $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions - $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt + @template CMPLRS_UnitSetDirectives (%IncDirectives, + %OutputDir) is + $set IncDirectives=%IncDirectives + $set OutputDir=%OutputDir @end; --- # ### # # -- --- # # ## # -- --- # # # # # -- --- # # # # # -- --- # # # # # -- --- # # # ## -- --- ####### ### # # -- - - @if ( %Station == "lin" ) then - - @template CMPLRS_C_DTmpFile (%TmpFile) is - $>& %TmpFile \ + @template CMPLRS_C_Header (%Unit_C_Options, + %CMPLRS_C_ModeOpt, + %CMPLRS_ExportBehaviour, + %C_PDBName) is + $set Unit_C_Options=%Unit_C_Options + $set C_ModeOpt=%CMPLRS_C_ModeOpt + $set C_Export=%CMPLRS_ExportBehaviour + $set C_PDBName=%C_PDBName @end; - @template CMPLRS_CXX_DTmpFile (%TmpFile) is - $>& %TmpFile \ + @template CMPLRS_CXX_Header (%Unit_CXX_Options, + %CMPLRS_CXX_ModeOpt, + %CMPLRS_ExportBehaviour, + %CMPLRS_CXX_DBMSOpt, + %CXX_PDBName) is + $set Unit_CXX_Options=%Unit_CXX_Options + $set CXX_ModeOpt=%CMPLRS_CXX_ModeOpt + $set CXX_Export=%CMPLRS_ExportBehaviour + $set CXX_DBMSOpt=%CMPLRS_CXX_DBMSOpt + $set CXX_PDBName=%CXX_PDBName @end; - @template CMPLRS_F77_DTmpFile (%TmpFile) is - $ \ + @template CMPLRS_F77_Header (%CMPLRS_F77_ModeOpt, + %F77_PDBName) is + $set F77_ModeOpt=%CMPLRS_F77_ModeOpt + $set F77_PDBName=%F77_PDBName @end; - @if ( %DebugMode == "True" ) then --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb --- @set %CMPLRS_CXX_ModeOpt = "-g -O0 -DDEB -D_DEBUG"; --- @set %CMPLRS_C_ModeOpt = "-g -O0 -DDEB -D_DEBUG"; --- @set %CMPLRS_F77_ModeOpt = "-g -DDEB -D_DEBUG"; - @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb ; - @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOptDeb ; - @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb ; - @else --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb --- @set %CMPLRS_CXX_ModeOpt = "-O3 -DNDEBUG -DNo_Exception"; --- @set %CMPLRS_C_ModeOpt = "-O3 -DNDEBUG -DNo_Exception"; --- @set %CMPLRS_F77_ModeOpt = "-O3 -DNDEBUG -DNo_Exception"; - @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt ; - @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOpt ; - @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt ; - @endif; + @endif; - @set %CMPLRS_CXX_WOKDirectives = "-MD "; - @set %CMPLRS_C_WOKDirectives = "-MD "; - @set %CMPLRS_F77_WOKDirectives = ""; + @set %CMPLRS_CXX_COMPILER = %CSF_CXX_COMPILER; + @set %CMPLRS_CXX_SysOptions = %CSF_CXX_SysOptions; + @set %CMPLRS_CXX_Options = %CSF_CXX_Options; + @set %CMPLRS_CXX_INCLUDE = %CSF_CXX_INCLUDE; + @string %CMPLRS_CXX_INCLUDE += %CSF_JAVA_INCLUDE; + @set %CMPLRS_C_COMPILER = %CSF_C_COMPILER; + @set %CMPLRS_C_SysOptions = %CSF_C_SysOptions; + @set %CMPLRS_C_Options = %CSF_C_Options; + @set %CMPLRS_C_INCLUDE = %CSF_C_INCLUDE; + @set %CMPLRS_C_INCLUDE = %CSF_C_INCLUDE; - @template CMPLRS_F77_OptLine ( - %CMPLRS_F77_COMPILER , - %CMPLRS_F77_SysOptions , - %CMPLRS_F77_ModeOpt - ) is - $Following parameters make up F77 compilation command in this order: - $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER - $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions - $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt - @end; + @set %CMPLRS_F77_COMPILER = %CSF_F77_COMPILER; + @set %CMPLRS_F77_SysOptions = %CSF_F77_SysOptions; + @set %CMPLRS_F77_Options = %CSF_F77_Options; - @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , - %CMPLRS_F77_WOKDirectives , %Source , %OutputDir , %BaseName , %Entity ) is + @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt, + %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile $ touch %OutputDir/%BaseName.m - @end; - - - @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER , - %CMPLRS_C_SysOptions , - %CMPLRS_C_Options , - %CMPLRS_C_ModeOpt , - %CMPLRS_C_INCLUDE , - %IncDirectives , - %CMPLRS_Unit_C_Options , - %CMPLRS_C_WOKDirectives , - %Entity ) is - $Following parameters make up C compilation command in this order: - $CMPLRS_C_COMPILER = %CMPLRS_C_COMPILER - $CMPLRS_C_SysOptions = %CMPLRS_C_SysOptions - $CMPLRS_C_Options = %CMPLRS_C_Options - $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options - $CMPLRS_C_INCLUDE = %CMPLRS_C_INCLUDE - $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives - $Dynamic include directives are : - $%IncDirectives - @end; - @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER , - %CMPLRS_C_SysOptions , - %CMPLRS_C_Options , - %CMPLRS_C_ModeOpt , - %CMPLRS_CXX_DBMSOpt , --- %C_Export , - %CMPLRS_C_INCLUDE , - %IncDirectives , - %CMPLRS_Unit_C_Options , - %CMPLRS_C_WOKDirectives , - %Source , - %BaseName, - %OutputDir , - %TmpFile , %Entity ) is - $cd %OutputDir && %CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o - $set stat = $status - $echo '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile - $if ( $stat == 0 ) then - $ if ( -e %OutputDir/%BaseName.d ) then - $ sed -e '/:/d' -e 's/\\/ /g' %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m - $ endif - $endif - $set status = $stat - @end; - - @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER, - %CMPLRS_CXX_SysOptions , - %CMPLRS_CXX_Options , - %CMPLRS_CXX_ModeOpt , %CMPLRS_CXX_DBMSOpt , - %CMPLRS_CXX_INCLUDE , - %CMPLRS_CXX_WOKDirectives , - %IncDirectives , - %DBDirectives , - %Entity ) is - $Following parameters make up C++ compilation command in this order: - $CMPLRS_CXX_COMPILER = %CMPLRS_CXX_COMPILER - $CMPLRS_CXX_SysOptions = %CMPLRS_CXX_SysOptions - $CMPLRS_CXX_Options = %CMPLRS_CXX_Options - $CMPLRS_CXX_ModeOpt = %CMPLRS_CXX_ModeOpt - $CMPLRS_CXX_DBMSOpt = %CMPLRS_CXX_DBMSOpt - $CMPLRS_CXX_INCLUDE = %CMPLRS_CXX_INCLUDE - $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives - $Dynamic include directives are : - $%IncDirectives - @end; - - @template CMPLRS_CXX_CmdLine ( %CMPLRS_CXX_COMPILER, - %CMPLRS_CXX_SysOptions , - %CMPLRS_CXX_Options , - %CMPLRS_CXX_ModeOpt , - %CMPLRS_CXX_DBMSOpt , - %CMPLRS_CXX_INCLUDE , - %CMPLRS_CXX_WOKDirectives , - %IncDirectives , - %DBDirectives , - %Source, - %BaseName, - %OutputDir , - %TmpFile , %Entity ) is - $cd %OutputDir && %CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o >& %TmpFile - $set stat = $status - - $if ( $stat == 0 ) then - $ if ( -e %OutputDir/%BaseName.d ) then - $ sed -e '/:/d' -e 's/\\/ /g' %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m - $ endif - $endif - $if( -e %TmpFile ) grep ':' %TmpFile - $/bin/rm -f %TmpFile - $set status = $stat - - @end; - - - @endif; - - - --- ##### # # # # -- --- # # # # ## # -- --- # # # # # # -- --- ##### # # # # # -- --- # # # # # # -- --- # # # # # ## -- --- ##### ##### # # -- - - - @if ( %Station == "sun" ) then - @template CMPLRS_DBDirective (%DBDirectory) is - $ -ptr%DBDirectory \ - @end; - - @template CMPLRS_C_DTmpFile (%TmpFile) is - $ \ - @end; - - @template CMPLRS_CXX_DTmpFile (%TmpFile) is - $>& %TmpFile \ - @end; - - @template CMPLRS_F77_DTmpFile (%TmpFile) is - $ \ - @end; - - @if ( %DebugMode == "True" ) then --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb --- @set %CMPLRS_CXX_ModeOpt = "-g0 -DDEB +w"; --- @set %CMPLRS_C_ModeOpt = "-g0 -DDEB +w"; --- @set %CMPLRS_F77_ModeOpt = "-g"; - @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb ; - @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOptDeb ; - @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb ; - @else --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb --- @set %CMPLRS_CXX_ModeOpt = "-O2 -DNo_Exception +w "; --- @set %CMPLRS_C_ModeOpt = "-O2 -DNo_Exception +w "; --- @set %CMPLRS_F77_ModeOpt = "-O2"; - @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt ; - @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOpt ; - @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt ; - @endif; - - @set %CMPLRS_CXX_WOKDirectives = "-H "; - @set %CMPLRS_C_WOKDirectives = ""; - @set %CMPLRS_F77_WOKDirectives = ""; - - @if ( %DBMS == "OBJS" ) then - @set %CMPLRS_CXX_DBMSOpt = "-mt -DOBJS -I/PRODUCTS/OS5.0/sunpro/include"; - @endif; + @end; - @template CMPLRS_F77_OptLine ( - %CMPLRS_F77_COMPILER , - %CMPLRS_F77_SysOptions , - %CMPLRS_F77_ModeOpt - ) is + @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt) is $Following parameters make up F77 compilation command in this order: $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt - @end; - - @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , - %CMPLRS_F77_WOKDirectives , %Source , %OutputDir , %BaseName , %Entity ) is - $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o - $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile - $ touch %OutputDir/%BaseName.m - @end; - - - @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER , - %CMPLRS_C_SysOptions , - %CMPLRS_C_Options , - %CMPLRS_C_ModeOpt , - %CMPLRS_C_INCLUDE , - %IncDirectives , - %CMPLRS_Unit_C_Options , - %CMPLRS_C_WOKDirectives , - %Entity ) is - $Following parameters make up C compilation command in this order: - $CMPLRS_C_COMPILER = %CMPLRS_C_COMPILER - $CMPLRS_C_SysOptions = %CMPLRS_C_SysOptions - $CMPLRS_C_Options = %CMPLRS_C_Options - $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options - $CMPLRS_C_INCLUDE = %CMPLRS_C_INCLUDE - $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives - $Dynamic include directives are : - $%IncDirectives - @end; - - @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER , - %CMPLRS_C_SysOptions , - %CMPLRS_C_Options , - %CMPLRS_C_ModeOpt , - %CMPLRS_CXX_DBMSOpt , - %CMPLRS_C_INCLUDE , - %IncDirectives , - %CMPLRS_Unit_C_Options , - %CMPLRS_C_WOKDirectives , - %Source , - %BaseName, - %OutputDir , - %TmpFile , %Entity ) is - - $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o - $set stat = $status - $echo '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile - $if ( $stat == 0 ) then - $ cpp %IncDirectives -Usun -DSOLARIS -M %Source \^ - $ | sed -e '1d' -e 's/.*://g' -e 's/[ *]*//g' -e 's%/./%/%g' -e 's%//%/%g' \^ - $ | sort -u > %OutputDir/%BaseName.m - $endif - $set status = $stat - @end; - - @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER, - %CMPLRS_CXX_SysOptions , - %CMPLRS_CXX_Options , - %CMPLRS_CXX_ModeOpt , - %CMPLRS_CXX_DBMSOpt , - %CMPLRS_CXX_INCLUDE , - %CMPLRS_CXX_WOKDirectives , - %IncDirectives , - %DBDirectives , - %Entity ) is - $Following parameters make up C++ compilation command in this order: - $CMPLRS_CXX_COMPILER = %CMPLRS_CXX_COMPILER - $CMPLRS_CXX_SysOptions = %CMPLRS_CXX_SysOptions - $CMPLRS_CXX_Options = %CMPLRS_CXX_Options - $CMPLRS_CXX_ModeOpt = %CMPLRS_CXX_ModeOpt - $CMPLRS_CXX_DBMSOpt = %CMPLRS_CXX_DBMSOpt - $CMPLRS_CXX_INCLUDE = %CMPLRS_CXX_INCLUDE - $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives - $Dynamic include directives are : - $%IncDirectives - @end; - - @template CMPLRS_CXX_CmdLine ( %CMPLRS_CXX_COMPILER, - %CMPLRS_CXX_SysOptions , - %CMPLRS_CXX_Options , - %CMPLRS_CXX_ModeOpt , - %CMPLRS_CXX_DBMSOpt , - %CMPLRS_CXX_INCLUDE , - %CMPLRS_CXX_WOKDirectives , - %IncDirectives , - %DBDirectives , - %Source, - %BaseName, - %OutputDir , - %TmpFile , %Entity) is - $%CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o >& %TmpFile - $set stat = $status - $echo '$CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options $INCDIRS %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/cxx.compile - $if ( $stat == 0 ) then - $ sed -e 's/ //g' -e '/Compilation failed/d' -e '/:/d' -e 's%/\./%/%g' -e 's%//%/%g' %TmpFile \^ - $| grep -v 'detected.$' | sort -u > %OutputDir/%BaseName.m - $endif - $if( -e %TmpFile ) grep ':' %TmpFile - $/bin/rm -f %TmpFile - $set status = $stat - @end; - - @endif; - --- # # # # ####### -- --- # # # ## # # -- --- # # # # # # # -- --- # # # # # # # -- --- # # # # # # # -- --- # # # # ## # -- --- ## ## # # # -- - - @if ( %Station == "wnt" ) then - @template CMPLRS_C_DTmpFile (%TmpFile) is - $ ; - @end; - - @template CMPLRS_CXX_DTmpFile (%TmpFile) is - $ ; - @end; - - @template CMPLRS_F77_DTmpFile (%TmpFile) is - $ ; - @end; - - @if ( %DebugMode == "True" ) then --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb --- @set %CMPLRS_CXX_ModeOpt = "-DDEB -D_DEBUG"; --- @set %CMPLRS_C_ModeOpt = "-DDEB -D_DEBUG"; --- @set %CMPLRS_CXX_SysOptions = "-nologo -MDd -W3 -Gm -GX -Od -Zi"; --- @set %CMPLRS_C_SysOptions = "-nologo -MDd -W3 -Gm -GX -Od -Zi"; --- @set %CMPLRS_F77_ModeOpt = "-DDEB -D_DEBUG"; - @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb ; - @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOptDeb ; - @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb ; - @else --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb --- @set %CMPLRS_CXX_ModeOpt = "-DNDEBUG -DNo_Exception"; --- @set %CMPLRS_C_ModeOpt = "-DNDEBUG -DNo_Exception"; --- @set %CMPLRS_CXX_SysOptions = "-nologo -MD -W3 -GX -O2 "; --- @set %CMPLRS_C_SysOptions = "-nologo -MD -W3 -GX -O2 "; --- @set %CMPLRS_F77_ModeOpt = "-DNDEBUG -DNo_Exception"; - @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt ; - @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOpt ; - @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt ; - @endif; - - @set %CMPLRS_CXX_WOKDirectives = ""; - @set %CMPLRS_C_WOKDirectives = ""; - @set %CMPLRS_F77_WOKDirectives = ""; - - @if ( %DBMS == "OBJS" ) then - @set %CMPLRS_CXX_DBMSOpt = "-DOBJS"; - @endif; - @if ( %DBMS == "DFLT" ) then - @set %CMPLRS_CXX_DBMSOpt = "-DCSFDB"; - @endif; - - @template CMPLRS_C_Footer ( - %CMPLRS_C_Options, - %CMPLRS_ExportBehaviour , - %IncDirectives, - %Unit_C_Options , - %InputDir , - %Source, - %BaseName, - %OutputDir ) is - $set cmplrs_status=%status%; - $@acpp.exe -M -m -+ %CMPLRS_C_Options -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives %Unit_C_Options \^ - $ %InputDir/%Source -o %OutputDir%BaseName.m; - $set status=%cmplrs_status%; - @end; - - @template CMPLRS_CXX_Footer( - %CMPLRS_CXX_Options, - %CMPLRS_ExportBehaviour , - %IncDirectives, - %Unit_CXX_Options , - %InputDir , - %Source, - %BaseName, - %OutputDir) is - $set cmplrs_status=%status%; - $@acpp.exe -M -m -+ %CMPLRS_CXX_Options -D__cplusplus -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives %Unit_CXX_Options \^ - $ %InputDir/%Source -o %OutputDir%BaseName.m; - $set status=%cmplrs_status%; - @end; - - ---> wnt - - @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER, - %CMPLRS_CXX_SysOptions , - %CMPLRS_CXX_Options , - %CMPLRS_ExportBehaviour , - %CMPLRS_CXX_ModeOpt , - %CMPLRS_CXX_DBMSOpt , - %CMPLRS_CXX_INCLUDE , - %CMPLRS_CXX_WOKDirectives , - %IncDirectives , - %DBDirectives , - %Entity ) is - $Following parameters make up C++ compilation command in this order: - $CMPLRS_CXX_COMPILER = %CMPLRS_CXX_COMPILER - $CMPLRS_CXX_SysOptions = %CMPLRS_CXX_SysOptions - $CMPLRS_CXX_Options = %CMPLRS_CXX_Options - $CMPLRS_ExportBehaviour = %CMPLRS_ExportBehaviour - $CMPLRS_CXX_ModeOpt = %CMPLRS_CXX_ModeOpt - $CMPLRS_CXX_DBMSOpt = %CMPLRS_CXX_DBMSOpt - $CMPLRS_CXX_INCLUDE = %CMPLRS_CXX_INCLUDE - $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives - $Dynamic include directives are : - $%IncDirectives - @end; - - - - @template CMPLRS_CXX_CmdLine ( - %CMPLRS_CXX_COMPILER, %CMPLRS_CXX_SysOptions, %CMPLRS_CXX_Options, %CMPLRS_CXX_ModeOpt, - %CMPLRS_CXX_DBMSOpt, %IncDirectives, %CMPLRS_CXX_INCLUDE, %PDBName, %Source, - %BaseName, %OutputDir, %CMPLRS_ExportBehaviour - ) is - $%CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_ExportBehaviour\^ - $ %IncDirectives %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt \^ - $ -Fd%PDBName -c -Tp %Source -Fo%OutputDir%BaseName.obj; - $set cmplrs_status=%status%; - $@acpp.exe -M -m -+ %CMPLRS_CXX_Options -D__cplusplus -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives %CMPLRS_CXX_INCLUDE\^ - $ %Source -o %OutputDir%BaseName.m; - $set status=%cmplrs_status%; @end; - @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER , - %CMPLRS_C_SysOptions , - %CMPLRS_C_Options , - %CMPLRS_C_ModeOpt , - %IncDirectives , - %CMPLRS_Unit_C_Options , - %CMPLRS_C_WOKDirectives , - %CMPLRS_ExportBehaviour , - %Entity ) is - $Following parameters make up C compilation command in this order: - $CMPLRS_C_COMPILER = %CMPLRS_C_COMPILER - $CMPLRS_C_SysOptions = %CMPLRS_C_SysOptions - $CMPLRS_C_Options = %CMPLRS_C_Options - $CMPLRS_C_ModeOpt = %CMPLRS_C_ModeOpt - $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options - $CMPLRS_C_WOKDirectives = %CMPLRS_C_WOKDirectives - $CMPLRS_ExportBehaviour = %CMPLRS_ExportBehaviour - $Dynamic include directives are : - $%IncDirectives - @end; - - @template CMPLRS_C_CmdLine ( - %CMPLRS_C_COMPILER, %CMPLRS_C_SysOptions, %CMPLRS_C_Options, %CMPLRS_C_ModeOpt, %CMPLRS_CXX_DBMSOpt, - %IncDirectives, %PDBName, %Source, - %BaseName, %OutputDir, %CMPLRS_ExportBehaviour - ) is - $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_ExportBehaviour\^ - $ %IncDirectives %CMPLRS_CXX_DBMSOpt %CMPLRS_C_ModeOpt \^ - $ -Fd%PDBName -c -Tc %Source -Fo%OutputDir%BaseName.obj; - $set cmplrs_status=%status%; - $@acpp.exe -M -m -+ %CMPLRS_C_Options -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives\^ - $ %Source -o %OutputDir%BaseName.m; - $set status=%cmplrs_status%; - @end; - - - @endif; - - --- ##### ### # -- --- # # # # -- --- # # # -- --- ##### # # -- --- # # # -- --- # # # # -- --- ##### ### ####### -- - - @if ( %Station == "sil" ) then - @set %CMPLRS_F77_Command = "f77 "; - @set %CMPLRS_F77_Options = "-n32 -mips3"; - - @if ( %DebugMode == "True" ) then --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb --- @set %CMPLRS_CXX_ModeOpt = "-g -gslim -DDEB"; --- @set %CMPLRS_C_ModeOpt = "-g -gslim -DDEB"; --- @set %CMPLRS_F77_ModeOpt = "-g"; - @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb ; - @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOptDeb ; - @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb ; - @else --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb --- @set %CMPLRS_CXX_ModeOpt = "-O3 -DNo_Exception -D__INLINE_INTRINSICS -TARG:processor=R10000 "; --- @set %CMPLRS_C_ModeOpt = "-O3 -DNo_Exception -TARG:processor=R10000 "; --- @set %CMPLRS_F77_ModeOpt = "-O3"; - @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt ; - @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOpt ; - @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt ; + -- + -- For Linux platforms + -- + @if (%Station == "lin") then + @ifnotdefined (%CMPLRS_LIN_EDL) then + @uses "CMPLRS_LIN.edl"; @endif; + @endif; - @set %CMPLRS_CXX_WOKDirectives = "-MDupdate "; - @set %CMPLRS_C_WOKDirectives = ""; - @set %CMPLRS_F77_WOKDirectives = ""; - - @if ( %DBMS == "OBJS" ) then - @set %CMPLRS_CXX_DBMSOpt = "-DOBJS -I/PRODUCTS/OS5.0/include"; + -- + -- For Windows platforms + -- + @if (%Station == "wnt") then + @ifnotdefined (%CMPLRS_WNT_EDL) then + @uses "CMPLRS_WNT.edl"; @endif; + @endif; - - @template CMPLRS_F77_OptLine ( - %CMPLRS_F77_COMPILER , - %CMPLRS_F77_SysOptions , - %CMPLRS_F77_ModeOpt ) is - $Following parameters make up F77 compilation command in this order: - $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER - $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions - $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt - @end; - - @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , - %CMPLRS_F77_WOKDirectives , %Source , %OutputDir , %BaseName , %Entity ) is - $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o - $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile - $ touch %OutputDir/%BaseName.m - @end; - - @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER , - %CMPLRS_C_SysOptions , - %CMPLRS_C_Options , - %CMPLRS_C_ModeOpt , - %IncDirectives , - %CMPLRS_Unit_C_Options , - %CMPLRS_C_WOKDirectives , - %Entity ) is - $Following parameters make up C compilation command in this order: - $CMPLRS_C_COMPILER = %CMPLRS_C_COMPILER - $CMPLRS_C_SysOptions = %CMPLRS_C_SysOptions - $CMPLRS_C_Options = %CMPLRS_C_Options - $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options - $CMPLRS_C_INCLUDE = %CMPLRS_C_INCLUDE - $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives - $Dynamic include directives are : - $%IncDirectives - @end; - - @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER , - %CMPLRS_C_SysOptions , - %CMPLRS_C_Options , - %CMPLRS_C_ModeOpt , - %CMPLRS_C_ModeOpt , - %CMPLRS_C_INCLUDE , - %CMPLRS_CXX_DBMSOpt , - --%CMPLRS_C_Export , - %IncDirectives , - %CMPLRS_Unit_C_Options , - %CMPLRS_C_WOKDirectives , - %CMPLRS_C_PDBName , - %Source , - %BaseName, - %OutputDir, %Entity ) is - $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o - $set cmplrs_status = $status - $echo '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile - $if ( $cmplrs_status == 0 ) then - $ /usr/lib/cpp %CMPLRS_C_Options %IncDirectives -M -DIRIX %Source | \^ - $ sed -e '1d' -e 's/.*://g' -e 's/[ *]*//g' -e 's%/./%/%g' -e 's+//+/+g' | sort -u > %OutputDir/%BaseName.m - $endif - $set status = $cmplrs_status - @end; - - @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER, - %CMPLRS_CXX_SysOptions , - %CMPLRS_CXX_Options , - %CMPLRS_CXX_ModeOpt , - %CMPLRS_CXX_DBMSOpt , - %CMPLRS_CXX_INCLUDE , - %CMPLRS_CXX_WOKDirectives , - %IncDirectives , - %DBDirectives , - %Entity ) is - $Following parameters make up C++ compilation command in this order: - $CMPLRS_CXX_COMPILER = %CMPLRS_CXX_COMPILER - $CMPLRS_CXX_SysOptions = %CMPLRS_CXX_SysOptions - $CMPLRS_CXX_Options = %CMPLRS_CXX_Options - $CMPLRS_CXX_ModeOpt = %CMPLRS_CXX_ModeOpt - $CMPLRS_CXX_DBMSOpt = %CMPLRS_CXX_DBMSOpt - $CMPLRS_CXX_INCLUDE = %CMPLRS_CXX_INCLUDE - $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives - $Dynamic include directives are : - $%IncDirectives - @end; - - @template CMPLRS_CXX_CmdLine ( %CMPLRS_CXX_COMPILER, - %CMPLRS_CXX_SysOptions , - %CMPLRS_CXX_Options , - %CMPLRS_CXX_ModeOpt , - %CMPLRS_CXX_DBMSOpt , - %CMPLRS_CXX_INCLUDE , - %CMPLRS_CXX_WOKDirectives , - %IncDirectives , - %DBDirectives , - %Source, - %BaseName, - %OutputDir , - %TmpFile, %Entity ) is - $%CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives %TmpFile -c %Source -o %OutputDir/%BaseName.o - $set stat = $status - $echo '$CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options $INCDIRS %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/cxx.compile - $if ( $stat == 0 ) then - $ if ( -e %TmpFile ) then - $ cat %TmpFile | tr ' ' '\012' | sed -e '1d' -e 's%/./%/%g' | grep -v '^#'| sort -u > %OutputDir/%BaseName.m - $ else - $ touch %OutputDir/%BaseName.m - $ endif - $endif - $ /bin/rm -f %TmpFile - $endif - $set status = $stat - @end; - - @endif; - - - --- # # ###### # # # # -- --- # # # # # # # # -- --- # # # # # # # # -- --- ####### ###### ##### # # # -- --- # # # # # # # -- --- # # # # # # # -- --- # # # ##### # # -- - - @if ( %Station == "hp" ) then - @template CMPLRS_DBDirective (%DBDirectory) is - $ -ptr%DBDirectory/ptrepository \ - @end; - - @set %CMPLRS_F77_Command = "f77 "; - @set %CMPLRS_F77_Options = "-PIC"; - - @if ( %DebugMode == "True" ) then - @set %CMPLRS_CXX_ModeOpt = "-g -DDEB"; - @set %CMPLRS_C_ModeOpt = "-g -DDEB"; - @set %CMPLRS_F77_ModeOpt = "-g"; + -- + -- For MacOS platforms (not supported) + -- + @if (%Station == "mac") then + @ifnotdefined (%CMPLRS_MAC_EDL) then + @uses "CMPLRS_MAC.edl"; @endif; + @endif; - @if ( %DebugMode == "False" ) then - @set %CMPLRS_CXX_ModeOpt = "+O2 +Onomoveflops -DNo_Exception "; - @set %CMPLRS_C_ModeOpt = "+O2 +Onomoveflops -DNo_Exception "; - @set %CMPLRS_F77_ModeOpt = "+O2 +Onomoveflops "; + -- + -- For SunOS platforms (not supported) + -- + @if (%Station == "sun") then + @ifnotdefined (%CMPLRS_SUN_EDL) then + @uses "CMPLRS_SUN.edl"; @endif; + @endif; - @set %CMPLRS_CXX_WOKDirectives = ""; - @set %CMPLRS_C_WOKDirectives = ""; - @set %CMPLRS_F77_WOKDirectives = ""; - - @if ( %DBMS == "OBJS" ) then - @set %CMPLRS_CXX_DBMSOpt = "-DOBJS -I/PRODUCTS/OS5.0/include "; + -- + -- The IRIX platform is (not supported) + -- + @if (%Station == "sil") then + @ifnotdefined (%CMPLRS_SIL_EDL) then + @uses "CMPLRS_SIL.edl"; @endif; + @endif; - @template CMPLRS_F77_OptLine ( - %CMPLRS_F77_COMPILER , - %CMPLRS_F77_SysOptions , - %CMPLRS_F77_ModeOpt ) is - $Following parameters make up F77 compilation command in this order: - $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER - $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions - $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt - @end; - - @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , - %CMPLRS_F77_WOKDirectives , %Source , %OutputDir , %BaseName , %Entity ) is - $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o - $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile - $ touch %OutputDir/%BaseName.m - @end; - - @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER , - %CMPLRS_C_SysOptions , - %CMPLRS_C_Options , - %CMPLRS_C_ModeOpt , - %CMPLRS_C_INCLUDE , - %CMPLRS_C_Export , - %IncDirectives , - %Unit_C_Options , - %C_WOKDirectives , - %C_PDBName , - %Source , - %BaseName, - %OutputDir , - %TmpFile ) is - $%CMPLRS_C_COMPILER %C_SysOptions %C_Options %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %C_ModeOpt %C_Export %IncDirectives %Unit_C_Options %C_WOKDirectives %C_PDBName %Files %DTmpFile - $if ( $status == 0 ) then - $ cc %IncDirectives -E %CMPLRS_C_Options %Source | egrep -e '^#' | awk '{print $3}' \ - $| sed -e 's/\"//g' -e '/^$/d' -e 's%/./%/%g' | sort -u | grep -v %Source | grep '/' > %OutputDir/%BaseName.m - $endif - $set status = $stat - @end; - - @template CMPLRS_CXX_CmdLine ( %CSF_CXX_COMPILER, - %CMPLRS_CXX_SysOptions , - %CMPLRS_CXX_Options , - %CMPLRS_CXX_ModeOpt , %CMPLRS_CXX_DBMSOpt , - %CSF_CXX_INCLUDE , - %CMPLRS_CXX_WOKDirectives , - %IncDirectives , - %DBDirectives , - %Source, - %BaseName, - %OutputDir , - %TmpFile ) is - $%CSF_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CSF_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o >& %TmpFile - $set stat = $status - $if ( $stat == 0 ) then - $ /opt/aCC/bin/aCC -I/opt/aCC/include -I/opt/aCC/include/iostream %IncDirectives -E %CMPLRS_CXX_Options %CMPLRS_CXX_DBMSOpt %Source | egrep -e '^#' | awk '{print $3}' \ - $| sed -e 's/\"//g' -e '/^$/d' -e 's%/./%/%g' | sort -u | grep -v %Source | grep '/' > %OutputDir/%BaseName.m - $endif - $set status = $stat - - @end; - - @endif; - - --- ####### ### # # -- --- # # # # # -- --- # # # # # -- --- ####### # # -- --- # # # # # -- --- # # # # # -- --- # # ### # # -- - - @if ( %Station == "aix" ) then - @if ( %DebugMode == "True" ) then - @set %CMPLRS_CXX_ModeOpt = "-g0 -DDEB -D_DEBUG"; - @set %CMPLRS_C_ModeOpt = "-g0 -DDEB -D_DEBUG"; - @set %CMPLRS_F77_ModeOpt = "-g -DDEB -D_DEBUG"; - @else - @set %CMPLRS_CXX_ModeOpt = "-O2 "; - @set %CMPLRS_C_ModeOpt = "-O2 "; - @set %CMPLRS_F77_ModeOpt = "-O2 "; + -- + -- The HP-UX platform is (not supported) + -- + @if (%Station == "hp") then + @ifnotdefined (%CMPLRS_HP_EDL) then + @uses "CMPLRS_HP.edl"; @endif; + @endif; - @set %CMPLRS_CXX_WOKDirectives = ""; - @set %CMPLRS_C_WOKDirectives = ""; - @set %CMPLRS_F77_WOKDirectives = ""; - - @if ( %DBMS == "OBJS" ) then - @set %CMPLRS_CXX_DBMSOpt = "-DOBJS"; + -- + -- The AIX platform is (not supported) + -- + @if (%Station == "aix") then + @ifnotdefined (%CMPLRS_AIX_EDL) then + @uses "CMPLRS_AIX.edl"; @endif; - - - - @template CMPLRS_F77_OptLine ( - %CMPLRS_F77_COMPILER , - %CMPLRS_F77_SysOptions , - %CMPLRS_F77_ModeOpt ) is - $Following parameters make up F77 compilation command in this order: - $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER - $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions - $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt - @end; - - @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , - %CMPLRS_F77_WOKDirectives , %Source , %OutputDir , %BaseName , %Entity ) is - $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o - $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile - $ touch %OutputDir/%BaseName.m - @end; - - @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER , - %CMPLRS_C_SysOptions , - %CMPLRS_C_Options , - %CMPLRS_C_ModeOpt , - %CMPLRS_C_Export , - %IncDirectives , - %CMPLRS_Unit_C_Options , - %CMPLRS_C_WOKDirectives , - %CMPLRS_C_PDBName , - %Files , - %BaseName, - %OutputDir , - %TmpFile ) is - $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_Export %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives %CMPLRS_C_PDBName %Files %DTmpFile - - $if ( $status == 0 ) then - $ sed -e 's/ //g' -e '/:/d' %TmpFile | sort -u > %OutputDir/%BaseName.m - $endif - $if( -e %TmpFile ) grep ':' %TmpFile - $/bin/rm -f %TmpFile - $set status = $stat - @end; - - - @template CMPLRS_CXX_CmdLine ( %CSF_CXX_COMPILER, - %CMPLRS_CXX_SysOptions, - %CMPLRS_CXX_Options , - %CMPLRS_CXX_ModeOpt , %CMPLRS_CXX_DBMSOpt , - %CSF_CXX_INCLUDE , - %CMPLRS_CXX_WOKDirectives , - %IncDirectives , - %DBDirectives , - %Source, - %BaseName, - %OutputDir , - %TmpFile ) is - $%CSF_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CSF_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o >& %TmpFile - $set stat = $status - $if ( $stat == 0 ) then - $ sed -e 's/ //g' -e '/:/d' %TmpFile | sort -u > %OutputDir/%BaseName.m - $endif - $if( -e %TmpFile ) grep ':' %TmpFile - $/bin/rm -f %TmpFile - $set status = $stat - @end; - - @endif; - - @if ( defined( %UnitType ) ) then - @if ( ( %UnitType == "idl" || %UnitType == "server" || %UnitType == "executable" ) && - %Station != "wnt" - ) then - --@uses "ORBIX.edl"; - @if ( %Station == "sun" ) then - @set %CMPLRS_CXX_Command = %CSF_CXX_COMPILER ; - @endif; - --@string %CMPLRS_CXX_Options += " -I" %ORBIX_Home "/include "; @endif; - @endif; - -@endif; - --- # # # #### -- --- ## ## # # # # -- --- # # # # # # # -- --- # # # # # # -- --- # # ####### # -- --- # # # # # # -- --- # # # # #### -- - -@if ( %Station == "mac" ) then - @template CMPLRS_C_DTmpFile (%TmpFile) is - $>& %TmpFile \ - @end; - - @template CMPLRS_CXX_DTmpFile (%TmpFile) is - $>& %TmpFile \ - @end; - - @template CMPLRS_F77_DTmpFile (%TmpFile) is - $ \ - @end; - - @if ( %DebugMode == "True" ) then --- @set %CMPLRS_CXX_ModeOpt = "-gdwarf-2 -O0 -DDEB -D_DEBUG"; --- @set %CMPLRS_C_ModeOpt = "-gdwarf-2 -O0 -DDEB -D_DEBUG"; --- @set %CMPLRS_F77_ModeOpt = "-gdwarf-2 -DDEB -D_DEBUG"; - @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb ; - @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOptDeb ; - @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb ; - @else --- @set %CMPLRS_CXX_ModeOpt = "-O3 -DNDEBUG -DNo_Exception"; --- @set %CMPLRS_C_ModeOpt = "-O3 -DNDEBUG -DNo_Exception"; --- @set %CMPLRS_F77_ModeOpt = "-O3 -DNDEBUG -DNo_Exception"; - @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt ; - @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOpt ; - @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt ; + -- + -- For FreeBSD platforms (not supported) + -- + @if (%Station == "bsd") then + @ifnotdefined (%CMPLRS_BSD_EDL) then + @uses "CMPLRS_BSD.edl"; @endif; + @endif; - @set %CMPLRS_CXX_WOKDirectives = "-MD "; - @set %CMPLRS_C_WOKDirectives = "-MD "; - @set %CMPLRS_F77_WOKDirectives = ""; - - - @template CMPLRS_F77_OptLine ( - %CMPLRS_F77_COMPILER , - %CMPLRS_F77_SysOptions , - %CMPLRS_F77_ModeOpt - ) is - $Following parameters make up F77 compilation command in this order: - $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER - $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions - $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt - @end; - - @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , - %CMPLRS_F77_WOKDirectives , %Source , %OutputDir , %BaseName , %Entity ) is - $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o - $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile - $ touch %OutputDir/%BaseName.m - @end; - - - @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER , - %CMPLRS_C_SysOptions , - %CMPLRS_C_Options , - %CMPLRS_C_ModeOpt , - %CMPLRS_C_INCLUDE , - %IncDirectives , - %CMPLRS_Unit_C_Options , - %CMPLRS_C_WOKDirectives , - %Entity ) is - $Following parameters make up C compilation command in this order: - $CMPLRS_C_COMPILER = %CMPLRS_C_COMPILER - $CMPLRS_C_SysOptions = %CMPLRS_C_SysOptions - $CMPLRS_C_Options = %CMPLRS_C_Options - $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options - $CMPLRS_C_INCLUDE = %CMPLRS_C_INCLUDE - $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives - $Dynamic include directives are : - $%IncDirectives - @end; - @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER , - %CMPLRS_C_SysOptions , - %CMPLRS_C_Options , - %CMPLRS_C_ModeOpt , - %CMPLRS_CXX_DBMSOpt , --- %C_Export , - %CMPLRS_C_INCLUDE , - %IncDirectives , - %CMPLRS_Unit_C_Options , - %CMPLRS_C_WOKDirectives , - %Source , - %BaseName, - %OutputDir , - %TmpFile , %Entity ) is - $cd %OutputDir && %CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o - $set stat = $status - $echo '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile - $if ( $stat == 0 ) then - $ if ( -e %OutputDir/%BaseName.d ) then - $ sed -e '/:/d' -e 's/\\/ /g' %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m - $ endif - $endif - $set status = $stat - @end; - - @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER, - %CMPLRS_CXX_SysOptions , - %CMPLRS_CXX_Options , - %CMPLRS_CXX_ModeOpt , %CMPLRS_CXX_DBMSOpt , - %CMPLRS_CXX_INCLUDE , - %CMPLRS_CXX_WOKDirectives , - %IncDirectives , - %DBDirectives , - %Entity ) is - $Following parameters make up C++ compilation command in this order: - $CMPLRS_CXX_COMPILER = %CMPLRS_CXX_COMPILER - $CMPLRS_CXX_SysOptions = %CMPLRS_CXX_SysOptions - $CMPLRS_CXX_Options = %CMPLRS_CXX_Options - $CMPLRS_CXX_ModeOpt = %CMPLRS_CXX_ModeOpt - $CMPLRS_CXX_DBMSOpt = %CMPLRS_CXX_DBMSOpt - $CMPLRS_CXX_INCLUDE = %CMPLRS_CXX_INCLUDE - $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives - $Dynamic include directives are : - $%IncDirectives - @end; - - @template CMPLRS_CXX_CmdLine ( %CMPLRS_CXX_COMPILER, - %CMPLRS_CXX_SysOptions , - %CMPLRS_CXX_Options , - %CMPLRS_CXX_ModeOpt , - %CMPLRS_CXX_DBMSOpt , - %CMPLRS_CXX_INCLUDE , - %CMPLRS_CXX_WOKDirectives , - %IncDirectives , - %DBDirectives , - %Source, - %BaseName, - %OutputDir , - %TmpFile , %Entity ) is - $cd %OutputDir && %CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o >& %TmpFile - $set stat = $status - - $if ( $stat == 0 ) then - $ if ( -e %OutputDir/%BaseName.d ) then - $ sed -e '/:/d' -e 's/\\/ /g' %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m - $ endif - $endif - $if( -e %TmpFile ) grep ':' %TmpFile - $/bin/rm -f %TmpFile - $set status = $stat - - @end; - -@endif; - - --- ###### ##### ###### -- --- # # # # # # -- --- # # # # # -- --- ###### ##### # # -- --- # # # # # -- --- # # # # # # -- --- ###### ##### ###### -- - - -@if ( %Station == "bsd" ) then - - @template CMPLRS_C_DTmpFile (%TmpFile) is - $>& %TmpFile \ - @end; - - @template CMPLRS_CXX_DTmpFile (%TmpFile) is - $>& %TmpFile \ - @end; - - @template CMPLRS_F77_DTmpFile (%TmpFile) is - $ \ - @end; - - @if ( %DebugMode == "True" ) then - @set %CMPLRS_CXX_ModeOpt = "-g -O0 -DDEB -D_DEBUG"; - @set %CMPLRS_C_ModeOpt = "-g -O0 -DDEB -D_DEBUG"; - @set %CMPLRS_F77_ModeOpt = "-g -DDEB -D_DEBUG"; - @else - @set %CMPLRS_CXX_ModeOpt = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -DNDEBUG -DNo_Exception"; - @set %CMPLRS_C_ModeOpt = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -DNDEBUG -DNo_Exception"; - @set %CMPLRS_F77_ModeOpt = "-O -DNDEBUG -DNo_Exception"; + @if (defined (%UnitType)) then + @if ( (%UnitType == "idl" || %UnitType == "server" || %UnitType == "executable") && %Station != "wnt") then + @if ( %Station == "sun" ) then + @set %CMPLRS_CXX_Command = %CSF_CXX_COMPILER; + @endif; @endif; - - @set %CMPLRS_CXX_WOKDirectives = "-MD "; - @set %CMPLRS_C_WOKDirectives = "-MD "; - @set %CMPLRS_F77_WOKDirectives = ""; - - - @template CMPLRS_F77_OptLine ( - %CMPLRS_F77_COMPILER , - %CMPLRS_F77_SysOptions , - %CMPLRS_F77_ModeOpt - ) is - $Following parameters make up F77 compilation command in this order: - $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER - $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions - $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt - @end; - - @template CMPLRS_F77_CmdLine ( %CMPLRS_F77_COMPILER , %CMPLRS_F77_SysOptions , %CMPLRS_F77_ModeOpt , - %CMPLRS_F77_WOKDirectives , %Source , %OutputDir , %BaseName , %Entity ) is - $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o - $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile - $ touch %OutputDir/%BaseName.m - @end; - - - @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER , - %CMPLRS_C_SysOptions , - %CMPLRS_C_Options , - %CMPLRS_C_ModeOpt , - %CMPLRS_C_INCLUDE , - %IncDirectives , - %CMPLRS_Unit_C_Options , - %CMPLRS_C_WOKDirectives , - %Entity ) is - $Following parameters make up C compilation command in this order: - $CMPLRS_C_COMPILER = %CMPLRS_C_COMPILER - $CMPLRS_C_SysOptions = %CMPLRS_C_SysOptions - $CMPLRS_C_Options = %CMPLRS_C_Options - $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options - $CMPLRS_C_INCLUDE = %CMPLRS_C_INCLUDE - $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives - $Dynamic include directives are : - $%IncDirectives - @end; - @template CMPLRS_C_CmdLine ( %CMPLRS_C_COMPILER , - %CMPLRS_C_SysOptions , - %CMPLRS_C_Options , - %CMPLRS_C_ModeOpt , - %CMPLRS_CXX_DBMSOpt , --- %C_Export , - %CMPLRS_C_INCLUDE , - %IncDirectives , - %CMPLRS_Unit_C_Options , - %CMPLRS_C_WOKDirectives , - %Source , - %BaseName, - %OutputDir , - %TmpFile , %Entity ) is - $cd %OutputDir && %CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o - $set stat = $status - $echo '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile - $if ( $stat == 0 ) then - $ if ( -e %OutputDir/%BaseName.d ) then - $ sed -e '/:/d' -e 's/\\/ /g' %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m - $ endif - $endif - $set status = $stat - @end; - - @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER, - %CMPLRS_CXX_SysOptions , - %CMPLRS_CXX_Options , - %CMPLRS_CXX_ModeOpt , %CMPLRS_CXX_DBMSOpt , - %CMPLRS_CXX_INCLUDE , - %CMPLRS_CXX_WOKDirectives , - %IncDirectives , - %DBDirectives , - %Entity ) is - $Following parameters make up C++ compilation command in this order: - $CMPLRS_CXX_COMPILER = %CMPLRS_CXX_COMPILER - $CMPLRS_CXX_SysOptions = %CMPLRS_CXX_SysOptions - $CMPLRS_CXX_Options = %CMPLRS_CXX_Options - $CMPLRS_CXX_ModeOpt = %CMPLRS_CXX_ModeOpt - $CMPLRS_CXX_DBMSOpt = %CMPLRS_CXX_DBMSOpt - $CMPLRS_CXX_INCLUDE = %CMPLRS_CXX_INCLUDE - $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives - $Dynamic include directives are : - $%IncDirectives - @end; - - @template CMPLRS_CXX_CmdLine ( %CMPLRS_CXX_COMPILER, - %CMPLRS_CXX_SysOptions , - %CMPLRS_CXX_Options , - %CMPLRS_CXX_ModeOpt , - %CMPLRS_CXX_DBMSOpt , - %CMPLRS_CXX_INCLUDE , - %CMPLRS_CXX_WOKDirectives , - %IncDirectives , - %DBDirectives , - %Source, - %BaseName, - %OutputDir , - %TmpFile , %Entity ) is - $cd %OutputDir && %CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o >& %TmpFile - $set stat = $status - - $if ( $stat == 0 ) then - $ if ( -e %OutputDir/%BaseName.d ) then - $ sed -e '/:/d' -e 's/\\/ /g' %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m - $ endif - $endif - $if( -e %TmpFile ) grep ':' %TmpFile - $/bin/rm -f %TmpFile - $set status = $stat - - @end; - + @endif; @endif; - diff --git a/src/WOKBuilderDef/CMPLRS_AIX.edl b/src/WOKBuilderDef/CMPLRS_AIX.edl new file mode 100644 index 0000000..5af184f --- /dev/null +++ b/src/WOKBuilderDef/CMPLRS_AIX.edl @@ -0,0 +1,86 @@ +-- +-- This is compilers configuration file for AIX platform (not supported). +-- Included into "CMPLRS.edl". +-- +@ifnotdefined (%CMPLRS_AIX_EDL) then + @set %CMPLRS_AIX_EDL = ""; + + @if (%DebugMode == "True") then + @set %CMPLRS_CXX_ModeOpt = "-g0 -DDEB -D_DEBUG"; + @set %CMPLRS_C_ModeOpt = "-g0 -DDEB -D_DEBUG"; + @set %CMPLRS_F77_ModeOpt = "-g -DDEB -D_DEBUG"; + @else + @set %CMPLRS_CXX_ModeOpt = "-O2 "; + @set %CMPLRS_C_ModeOpt = "-O2 "; + @set %CMPLRS_F77_ModeOpt = "-O2 "; + @endif; + + @set %CMPLRS_CXX_WOKDirectives = ""; + @set %CMPLRS_C_WOKDirectives = ""; + @set %CMPLRS_F77_WOKDirectives = ""; + + @if (%DBMS == "OBJS") then + @set %CMPLRS_CXX_DBMSOpt = "-DOBJS"; + @endif; + + @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER, + %CMPLRS_F77_SysOptions, + %CMPLRS_F77_ModeOpt) is + $Following parameters make up F77 compilation command in this order: + $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER + $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions + $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt + @end; + + @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt, + %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is + $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o + $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile + $ touch %OutputDir/%BaseName.m + @end; + + @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER, + %CMPLRS_C_SysOptions, + %CMPLRS_C_Options, + %CMPLRS_C_ModeOpt, + %CMPLRS_C_Export, + %IncDirectives, + %CMPLRS_Unit_C_Options, + %CMPLRS_C_WOKDirectives, + %CMPLRS_C_PDBName, + %Files, + %BaseName, + %OutputDir, + %TmpFile) is + $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_Export %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives %CMPLRS_C_PDBName %Files %DTmpFile + $if ( $status == 0 ) then + $ sed -e 's/ //g' -e '/:/d' %TmpFile | sort -u > %OutputDir/%BaseName.m + $endif + $if( -e %TmpFile ) grep ':' %TmpFile + $/bin/rm -f %TmpFile + $set status = $stat + @end; + + @template CMPLRS_CXX_CmdLine (%CSF_CXX_COMPILER, + %CMPLRS_CXX_SysOptions, + %CMPLRS_CXX_Options, + %CMPLRS_CXX_ModeOpt, %CMPLRS_CXX_DBMSOpt, + %CSF_CXX_INCLUDE, + %CMPLRS_CXX_WOKDirectives, + %IncDirectives, + %DBDirectives, + %Source, + %BaseName, + %OutputDir, + %TmpFile) is + $%CSF_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CSF_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o >& %TmpFile + $set stat = $status + $if ( $stat == 0 ) then + $ sed -e 's/ //g' -e '/:/d' %TmpFile | sort -u > %OutputDir/%BaseName.m + $endif + $if( -e %TmpFile ) grep ':' %TmpFile + $/bin/rm -f %TmpFile + $set status = $stat + @end; + +@endif; diff --git a/src/WOKBuilderDef/CMPLRS_BSD.edl b/src/WOKBuilderDef/CMPLRS_BSD.edl new file mode 100644 index 0000000..dd7ea3c --- /dev/null +++ b/src/WOKBuilderDef/CMPLRS_BSD.edl @@ -0,0 +1,140 @@ +-- +-- This is compilers configuration file for BSD platform (not supported). +-- Included into "CMPLRS.edl". +-- +@ifnotdefined (%CMPLRS_BSD_EDL) then + @set %CMPLRS_BSD_EDL = ""; + + @template CMPLRS_C_DTmpFile (%TmpFile) is + $>& %TmpFile \ + @end; + + @template CMPLRS_CXX_DTmpFile (%TmpFile) is + $>& %TmpFile \ + @end; + + @template CMPLRS_F77_DTmpFile (%TmpFile) is + $ \ + @end; + + @if (%DebugMode == "True") then + @set %CMPLRS_CXX_ModeOpt = "-g -O0 -DDEB -D_DEBUG"; + @set %CMPLRS_C_ModeOpt = "-g -O0 -DDEB -D_DEBUG"; + @set %CMPLRS_F77_ModeOpt = "-g -DDEB -D_DEBUG"; + @else + @set %CMPLRS_CXX_ModeOpt = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -DNDEBUG -DNo_Exception"; + @set %CMPLRS_C_ModeOpt = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -DNDEBUG -DNo_Exception"; + @set %CMPLRS_F77_ModeOpt = "-O -DNDEBUG -DNo_Exception"; + @endif; + + @set %CMPLRS_CXX_WOKDirectives = "-MD "; + @set %CMPLRS_C_WOKDirectives = "-MD "; + @set %CMPLRS_F77_WOKDirectives = ""; + + @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER, + %CMPLRS_F77_SysOptions, + %CMPLRS_F77_ModeOpt) is + $Following parameters make up F77 compilation command in this order: + $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER + $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions + $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt + @end; + + @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt, + %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is + $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o + $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile + $ touch %OutputDir/%BaseName.m + @end; + + @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER, + %CMPLRS_C_SysOptions, + %CMPLRS_C_Options, + %CMPLRS_C_ModeOpt, + %CMPLRS_C_INCLUDE, + %IncDirectives, + %CMPLRS_Unit_C_Options, + %CMPLRS_C_WOKDirectives, + %Entity) is + $Following parameters make up C compilation command in this order: + $CMPLRS_C_COMPILER = %CMPLRS_C_COMPILER + $CMPLRS_C_SysOptions = %CMPLRS_C_SysOptions + $CMPLRS_C_Options = %CMPLRS_C_Options + $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options + $CMPLRS_C_INCLUDE = %CMPLRS_C_INCLUDE + $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives + $Dynamic include directives are : + $%IncDirectives + @end; + + @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER, + %CMPLRS_C_SysOptions, + %CMPLRS_C_Options, + %CMPLRS_C_ModeOpt, + %CMPLRS_CXX_DBMSOpt, + %CMPLRS_C_INCLUDE, + %IncDirectives, + %CMPLRS_Unit_C_Options, + %CMPLRS_C_WOKDirectives, + %Source, + %BaseName, + %OutputDir, + %TmpFile, %Entity) is + $cd %OutputDir && %CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o + $set stat = $status + $echo '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile + $if ( $stat == 0 ) then + $ if ( -e %OutputDir/%BaseName.d ) then + $ sed -e '/:/d' -e 's/\\/ /g' %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m + $ endif + $endif + $set status = $stat + @end; + + @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER, + %CMPLRS_CXX_SysOptions, + %CMPLRS_CXX_Options, + %CMPLRS_CXX_ModeOpt, %CMPLRS_CXX_DBMSOpt, + %CMPLRS_CXX_INCLUDE, + %CMPLRS_CXX_WOKDirectives, + %IncDirectives, + %DBDirectives, + %Entity) is + $Following parameters make up C++ compilation command in this order: + $CMPLRS_CXX_COMPILER = %CMPLRS_CXX_COMPILER + $CMPLRS_CXX_SysOptions = %CMPLRS_CXX_SysOptions + $CMPLRS_CXX_Options = %CMPLRS_CXX_Options + $CMPLRS_CXX_ModeOpt = %CMPLRS_CXX_ModeOpt + $CMPLRS_CXX_DBMSOpt = %CMPLRS_CXX_DBMSOpt + $CMPLRS_CXX_INCLUDE = %CMPLRS_CXX_INCLUDE + $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives + $Dynamic include directives are : + $%IncDirectives + @end; + + @template CMPLRS_CXX_CmdLine (%CMPLRS_CXX_COMPILER, + %CMPLRS_CXX_SysOptions, + %CMPLRS_CXX_Options, + %CMPLRS_CXX_ModeOpt, + %CMPLRS_CXX_DBMSOpt, + %CMPLRS_CXX_INCLUDE, + %CMPLRS_CXX_WOKDirectives, + %IncDirectives, + %DBDirectives, + %Source, + %BaseName, + %OutputDir, + %TmpFile, %Entity) is + $cd %OutputDir && %CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o >& %TmpFile + $set stat = $status + $if ( $stat == 0 ) then + $ if ( -e %OutputDir/%BaseName.d ) then + $ sed -e '/:/d' -e 's/\\/ /g' %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m + $ endif + $endif + $if( -e %TmpFile ) grep ':' %TmpFile + $/bin/rm -f %TmpFile + $set status = $stat + @end; + +@endif; diff --git a/src/WOKBuilderDef/CMPLRS_HP.edl b/src/WOKBuilderDef/CMPLRS_HP.edl new file mode 100644 index 0000000..b151002 --- /dev/null +++ b/src/WOKBuilderDef/CMPLRS_HP.edl @@ -0,0 +1,94 @@ +-- +-- This is compilers configuration file for HP-UX platform (not supported). +-- Included into "CMPLRS.edl". +-- +@ifnotdefined (%CMPLRS_HP_EDL) then + @set %CMPLRS_HP_EDL = ""; + + @template CMPLRS_DBDirective (%DBDirectory) is + $ -ptr%DBDirectory/ptrepository \ + @end; + + @set %CMPLRS_F77_Command = "f77 "; + @set %CMPLRS_F77_Options = "-PIC"; + + @if (%DebugMode == "True") then + @set %CMPLRS_CXX_ModeOpt = "-g -DDEB"; + @set %CMPLRS_C_ModeOpt = "-g -DDEB"; + @set %CMPLRS_F77_ModeOpt = "-g"; + @endif; + + @if (%DebugMode == "False") then + @set %CMPLRS_CXX_ModeOpt = "+O2 +Onomoveflops -DNo_Exception "; + @set %CMPLRS_C_ModeOpt = "+O2 +Onomoveflops -DNo_Exception "; + @set %CMPLRS_F77_ModeOpt = "+O2 +Onomoveflops "; + @endif; + + @set %CMPLRS_CXX_WOKDirectives = ""; + @set %CMPLRS_C_WOKDirectives = ""; + @set %CMPLRS_F77_WOKDirectives = ""; + + @if (%DBMS == "OBJS") then + @set %CMPLRS_CXX_DBMSOpt = "-DOBJS -I/PRODUCTS/OS5.0/include "; + @endif; + + @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER, + %CMPLRS_F77_SysOptions, + %CMPLRS_F77_ModeOpt) is + $Following parameters make up F77 compilation command in this order: + $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER + $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions + $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt + @end; + + @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt, + %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is + $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o + $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile + $ touch %OutputDir/%BaseName.m + @end; + + @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER, + %CMPLRS_C_SysOptions, + %CMPLRS_C_Options, + %CMPLRS_C_ModeOpt, + %CMPLRS_C_INCLUDE, + %CMPLRS_C_Export, + %IncDirectives, + %Unit_C_Options, + %C_WOKDirectives, + %C_PDBName, + %Source, + %BaseName, + %OutputDir, + %TmpFile) is + $%CMPLRS_C_COMPILER %C_SysOptions %C_Options %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %C_ModeOpt %C_Export %IncDirectives %Unit_C_Options %C_WOKDirectives %C_PDBName %Files %DTmpFile + $if ( $status == 0 ) then + $ cc %IncDirectives -E %CMPLRS_C_Options %Source | egrep -e '^#' | awk '{print $3}' \ + $| sed -e 's/\"//g' -e '/^$/d' -e 's%/./%/%g' | sort -u | grep -v %Source | grep '/' > %OutputDir/%BaseName.m + $endif + $set status = $stat + @end; + + @template CMPLRS_CXX_CmdLine (%CSF_CXX_COMPILER, + %CMPLRS_CXX_SysOptions, + %CMPLRS_CXX_Options, + %CMPLRS_CXX_ModeOpt, %CMPLRS_CXX_DBMSOpt, + %CSF_CXX_INCLUDE, + %CMPLRS_CXX_WOKDirectives, + %IncDirectives, + %DBDirectives, + %Source, + %BaseName, + %OutputDir, + %TmpFile) is + $%CSF_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CSF_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o >& %TmpFile + $set stat = $status + $if ( $stat == 0 ) then + $ /opt/aCC/bin/aCC -I/opt/aCC/include -I/opt/aCC/include/iostream %IncDirectives -E %CMPLRS_CXX_Options %CMPLRS_CXX_DBMSOpt %Source | egrep -e '^#' | awk '{print $3}' \ + $| sed -e 's/\"//g' -e '/^$/d' -e 's%/./%/%g' | sort -u | grep -v %Source | grep '/' > %OutputDir/%BaseName.m + $endif + $set status = $stat + @end; + +@endif; diff --git a/src/WOKBuilderDef/CMPLRS_LIN.edl b/src/WOKBuilderDef/CMPLRS_LIN.edl new file mode 100644 index 0000000..5a59905 --- /dev/null +++ b/src/WOKBuilderDef/CMPLRS_LIN.edl @@ -0,0 +1,141 @@ +-- +-- This is compilers configuration file for Linux platform. +-- Included into "CMPLRS.edl". +-- +@ifnotdefined (%CMPLRS_LIN_EDL) then + @set %CMPLRS_LIN_EDL = ""; + + @template CMPLRS_C_DTmpFile (%TmpFile) is + $>& %TmpFile \ + @end; + + @template CMPLRS_CXX_DTmpFile (%TmpFile) is + $>& %TmpFile \ + @end; + + @template CMPLRS_F77_DTmpFile (%TmpFile) is + $ \ + @end; + + @if (%DebugMode == "True") then + @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb; + @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOptDeb; + @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb; + @else + @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt; + @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOpt; + @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt; + @endif; + + @set %CMPLRS_CXX_WOKDirectives = "-MD "; + @set %CMPLRS_C_WOKDirectives = "-MD "; + @set %CMPLRS_F77_WOKDirectives = ""; + + @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER, + %CMPLRS_F77_SysOptions, + %CMPLRS_F77_ModeOpt) is + $Following parameters make up F77 compilation command in this order: + $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER + $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions + $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt + @end; + + @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt, + %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is + $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o + $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile + $ touch %OutputDir/%BaseName.m + @end; + + @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER, + %CMPLRS_C_SysOptions, + %CMPLRS_C_Options, + %CMPLRS_C_ModeOpt, + %CMPLRS_C_INCLUDE, + %IncDirectives, + %CMPLRS_Unit_C_Options, + %CMPLRS_C_WOKDirectives, + %Entity) is + $Following parameters make up C compilation command in this order: + $CMPLRS_C_COMPILER = %CMPLRS_C_COMPILER + $CMPLRS_C_SysOptions = %CMPLRS_C_SysOptions + $CMPLRS_C_Options = %CMPLRS_C_Options + $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options + $CMPLRS_C_INCLUDE = %CMPLRS_C_INCLUDE + $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives + $Dynamic include directives are : + $%IncDirectives + @end; + + @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER, + %CMPLRS_C_SysOptions, + %CMPLRS_C_Options, + %CMPLRS_C_ModeOpt, + %CMPLRS_CXX_DBMSOpt, + %CMPLRS_C_INCLUDE, + %IncDirectives, + %CMPLRS_Unit_C_Options, + %CMPLRS_C_WOKDirectives, + %Source, + %BaseName, + %OutputDir, + %TmpFile, %Entity) is + $cd %OutputDir && %CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o + $set stat = $status + $echo '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile + $if ( $stat == 0 ) then + $ if ( -e %OutputDir/%BaseName.d ) then + $ sed -e '/:/d' -e 's/\\/ /g' %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m + $ endif + $endif + $set status = $stat + @end; + + @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER, + %CMPLRS_CXX_SysOptions, + %CMPLRS_CXX_Options, + %CMPLRS_CXX_ModeOpt, %CMPLRS_CXX_DBMSOpt, + %CMPLRS_CXX_INCLUDE, + %CMPLRS_CXX_WOKDirectives, + %IncDirectives, + %DBDirectives, + %Entity) is + $Following parameters make up C++ compilation command in this order: + $CMPLRS_CXX_COMPILER = %CMPLRS_CXX_COMPILER + $CMPLRS_CXX_SysOptions = %CMPLRS_CXX_SysOptions + $CMPLRS_CXX_Options = %CMPLRS_CXX_Options + $CMPLRS_CXX_ModeOpt = %CMPLRS_CXX_ModeOpt + $CMPLRS_CXX_DBMSOpt = %CMPLRS_CXX_DBMSOpt + $CMPLRS_CXX_INCLUDE = %CMPLRS_CXX_INCLUDE + $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives + $Dynamic include directives are : + $%IncDirectives + @end; + + @template CMPLRS_CXX_CmdLine (%CMPLRS_CXX_COMPILER, + %CMPLRS_CXX_SysOptions, + %CMPLRS_CXX_Options, + %CMPLRS_CXX_ModeOpt, + %CMPLRS_CXX_DBMSOpt, + %CMPLRS_CXX_INCLUDE, + %CMPLRS_CXX_WOKDirectives, + %IncDirectives, + %DBDirectives, + %Source, + %BaseName, + %OutputDir, + %TmpFile, %Entity) is + $cd %OutputDir && %CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o >& %TmpFile + $set stat = $status + + $if ( $stat == 0 ) then + $ if ( -e %OutputDir/%BaseName.d ) then + $ sed -e '/:/d' -e 's/\\/ /g' %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m + $ endif + $endif + $if( -e %TmpFile ) grep ':' %TmpFile + $/bin/rm -f %TmpFile + $set status = $stat + @end; + +@endif; diff --git a/src/WOKBuilderDef/CMPLRS_MAC.edl b/src/WOKBuilderDef/CMPLRS_MAC.edl new file mode 100644 index 0000000..d63c521 --- /dev/null +++ b/src/WOKBuilderDef/CMPLRS_MAC.edl @@ -0,0 +1,140 @@ +-- +-- This is compilers configuration file for MacOS platform (not supported). +-- Included into "CMPLRS.edl". +-- +@ifnotdefined (%CMPLRS_MAC_EDL) then + @set %CMPLRS_MAC_EDL = ""; + + @template CMPLRS_C_DTmpFile (%TmpFile) is + $>& %TmpFile \ + @end; + + @template CMPLRS_CXX_DTmpFile (%TmpFile) is + $>& %TmpFile \ + @end; + + @template CMPLRS_F77_DTmpFile (%TmpFile) is + $ \ + @end; + + @if (%DebugMode == "True") then + @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb; + @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOptDeb; + @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb; + @else + @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt; + @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOpt; + @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt; + @endif; + + @set %CMPLRS_CXX_WOKDirectives = "-MD "; + @set %CMPLRS_C_WOKDirectives = "-MD "; + @set %CMPLRS_F77_WOKDirectives = ""; + + @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER, + %CMPLRS_F77_SysOptions, + %CMPLRS_F77_ModeOpt) is + $Following parameters make up F77 compilation command in this order: + $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER + $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions + $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt + @end; + + @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt, + %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is + $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o + $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile + $ touch %OutputDir/%BaseName.m + @end; + + @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER, + %CMPLRS_C_SysOptions, + %CMPLRS_C_Options, + %CMPLRS_C_ModeOpt, + %CMPLRS_C_INCLUDE, + %IncDirectives, + %CMPLRS_Unit_C_Options, + %CMPLRS_C_WOKDirectives, + %Entity) is + $Following parameters make up C compilation command in this order: + $CMPLRS_C_COMPILER = %CMPLRS_C_COMPILER + $CMPLRS_C_SysOptions = %CMPLRS_C_SysOptions + $CMPLRS_C_Options = %CMPLRS_C_Options + $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options + $CMPLRS_C_INCLUDE = %CMPLRS_C_INCLUDE + $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives + $Dynamic include directives are : + $%IncDirectives + @end; + + @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER, + %CMPLRS_C_SysOptions, + %CMPLRS_C_Options, + %CMPLRS_C_ModeOpt, + %CMPLRS_CXX_DBMSOpt, + %CMPLRS_C_INCLUDE, + %IncDirectives, + %CMPLRS_Unit_C_Options, + %CMPLRS_C_WOKDirectives, + %Source, + %BaseName, + %OutputDir, + %TmpFile, %Entity) is + $cd %OutputDir && %CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o + $set stat = $status + $echo '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile + $if ( $stat == 0 ) then + $ if ( -e %OutputDir/%BaseName.d ) then + $ sed -e '/:/d' -e 's/\\/ /g' %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m + $ endif + $endif + $set status = $stat + @end; + + @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER, + %CMPLRS_CXX_SysOptions, + %CMPLRS_CXX_Options, + %CMPLRS_CXX_ModeOpt, %CMPLRS_CXX_DBMSOpt, + %CMPLRS_CXX_INCLUDE, + %CMPLRS_CXX_WOKDirectives, + %IncDirectives, + %DBDirectives, + %Entity) is + $Following parameters make up C++ compilation command in this order: + $CMPLRS_CXX_COMPILER = %CMPLRS_CXX_COMPILER + $CMPLRS_CXX_SysOptions = %CMPLRS_CXX_SysOptions + $CMPLRS_CXX_Options = %CMPLRS_CXX_Options + $CMPLRS_CXX_ModeOpt = %CMPLRS_CXX_ModeOpt + $CMPLRS_CXX_DBMSOpt = %CMPLRS_CXX_DBMSOpt + $CMPLRS_CXX_INCLUDE = %CMPLRS_CXX_INCLUDE + $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives + $Dynamic include directives are : + $%IncDirectives + @end; + + @template CMPLRS_CXX_CmdLine (%CMPLRS_CXX_COMPILER, + %CMPLRS_CXX_SysOptions, + %CMPLRS_CXX_Options, + %CMPLRS_CXX_ModeOpt, + %CMPLRS_CXX_DBMSOpt, + %CMPLRS_CXX_INCLUDE, + %CMPLRS_CXX_WOKDirectives, + %IncDirectives, + %DBDirectives, + %Source, + %BaseName, + %OutputDir, + %TmpFile, %Entity) is + $cd %OutputDir && %CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o >& %TmpFile + $set stat = $status + $if ( $stat == 0 ) then + $ if ( -e %OutputDir/%BaseName.d ) then + $ sed -e '/:/d' -e 's/\\/ /g' %OutputDir/%BaseName.d | tr ' ' '\012' | sort -u > %OutputDir/%BaseName.m + $ endif + $endif + $if( -e %TmpFile ) grep ':' %TmpFile + $/bin/rm -f %TmpFile + $set status = $stat + @end; + +@endif; diff --git a/src/WOKBuilderDef/CMPLRS_SIL.edl b/src/WOKBuilderDef/CMPLRS_SIL.edl new file mode 100644 index 0000000..bf75f49 --- /dev/null +++ b/src/WOKBuilderDef/CMPLRS_SIL.edl @@ -0,0 +1,138 @@ +-- +-- This is compilers configuration file for IRIX platform (not supported). +-- Included into "CMPLRS.edl". +-- +@ifnotdefined (%CMPLRS_SIL_EDL) then + @set %CMPLRS_SIL_EDL = ""; + + @set %CMPLRS_F77_Command = "f77 "; + @set %CMPLRS_F77_Options = "-n32 -mips3"; + + @if (%DebugMode == "True") then + @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb; + @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOptDeb; + @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb; + @else + @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt; + @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOpt; + @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt; + @endif; + + @set %CMPLRS_CXX_WOKDirectives = "-MDupdate "; + @set %CMPLRS_C_WOKDirectives = ""; + @set %CMPLRS_F77_WOKDirectives = ""; + + @if (%DBMS == "OBJS") then + @set %CMPLRS_CXX_DBMSOpt = "-DOBJS -I/PRODUCTS/OS5.0/include"; + @endif; + + @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER, + %CMPLRS_F77_SysOptions, + %CMPLRS_F77_ModeOpt) is + $Following parameters make up F77 compilation command in this order: + $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER + $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions + $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt + @end; + + @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt, + %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is + $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o + $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile + $ touch %OutputDir/%BaseName.m + @end; + + @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER, + %CMPLRS_C_SysOptions, + %CMPLRS_C_Options, + %CMPLRS_C_ModeOpt, + %IncDirectives, + %CMPLRS_Unit_C_Options, + %CMPLRS_C_WOKDirectives, + %Entity) is + $Following parameters make up C compilation command in this order: + $CMPLRS_C_COMPILER = %CMPLRS_C_COMPILER + $CMPLRS_C_SysOptions = %CMPLRS_C_SysOptions + $CMPLRS_C_Options = %CMPLRS_C_Options + $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options + $CMPLRS_C_INCLUDE = %CMPLRS_C_INCLUDE + $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives + $Dynamic include directives are : + $%IncDirectives + @end; + + @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER, + %CMPLRS_C_SysOptions, + %CMPLRS_C_Options, + %CMPLRS_C_ModeOpt, + %CMPLRS_C_ModeOpt, + %CMPLRS_C_INCLUDE, + %CMPLRS_CXX_DBMSOpt, + %IncDirectives, + %CMPLRS_Unit_C_Options, + %CMPLRS_C_WOKDirectives, + %CMPLRS_C_PDBName, + %Source, + %BaseName, + %OutputDir, %Entity) is + $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o + $set cmplrs_status = $status + $echo '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile + $if ( $cmplrs_status == 0 ) then + $ /usr/lib/cpp %CMPLRS_C_Options %IncDirectives -M -DIRIX %Source | \^ + $ sed -e '1d' -e 's/.*://g' -e 's/[ *]*//g' -e 's%/./%/%g' -e 's+//+/+g' | sort -u > %OutputDir/%BaseName.m + $endif + $set status = $cmplrs_status + @end; + + @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER, + %CMPLRS_CXX_SysOptions, + %CMPLRS_CXX_Options, + %CMPLRS_CXX_ModeOpt, + %CMPLRS_CXX_DBMSOpt, + %CMPLRS_CXX_INCLUDE, + %CMPLRS_CXX_WOKDirectives, + %IncDirectives, + %DBDirectives, + %Entity) is + $Following parameters make up C++ compilation command in this order: + $CMPLRS_CXX_COMPILER = %CMPLRS_CXX_COMPILER + $CMPLRS_CXX_SysOptions = %CMPLRS_CXX_SysOptions + $CMPLRS_CXX_Options = %CMPLRS_CXX_Options + $CMPLRS_CXX_ModeOpt = %CMPLRS_CXX_ModeOpt + $CMPLRS_CXX_DBMSOpt = %CMPLRS_CXX_DBMSOpt + $CMPLRS_CXX_INCLUDE = %CMPLRS_CXX_INCLUDE + $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives + $Dynamic include directives are : + $%IncDirectives + @end; + + @template CMPLRS_CXX_CmdLine (%CMPLRS_CXX_COMPILER, + %CMPLRS_CXX_SysOptions, + %CMPLRS_CXX_Options, + %CMPLRS_CXX_ModeOpt, + %CMPLRS_CXX_DBMSOpt, + %CMPLRS_CXX_INCLUDE, + %CMPLRS_CXX_WOKDirectives, + %IncDirectives, + %DBDirectives, + %Source, + %BaseName, + %OutputDir, + %TmpFile, %Entity) is + $%CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives %TmpFile -c %Source -o %OutputDir/%BaseName.o + $set stat = $status + $echo '$CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options $INCDIRS %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/cxx.compile + $if ( $stat == 0 ) then + $ if ( -e %TmpFile ) then + $ cat %TmpFile | tr ' ' '\012' | sed -e '1d' -e 's%/./%/%g' | grep -v '^#'| sort -u > %OutputDir/%BaseName.m + $ else + $ touch %OutputDir/%BaseName.m + $ endif + $endif + $ /bin/rm -f %TmpFile + $endif + $set status = $stat + @end; + +@endif; diff --git a/src/WOKBuilderDef/CMPLRS_SUN.edl b/src/WOKBuilderDef/CMPLRS_SUN.edl new file mode 100644 index 0000000..1c31b0c --- /dev/null +++ b/src/WOKBuilderDef/CMPLRS_SUN.edl @@ -0,0 +1,149 @@ +-- +-- This is compilers configuration file for SunOS platform (not supported). +-- Included into "CMPLRS.edl". +-- +@ifnotdefined (%CMPLRS_SUN_EDL) then + @set %CMPLRS_SUN_EDL = ""; + + @template CMPLRS_DBDirective (%DBDirectory) is + $ -ptr%DBDirectory \ + @end; + + @template CMPLRS_C_DTmpFile (%TmpFile) is + $ \ + @end; + + @template CMPLRS_CXX_DTmpFile (%TmpFile) is + $>& %TmpFile \ + @end; + + @template CMPLRS_F77_DTmpFile (%TmpFile) is + $ \ + @end; + + @if (%DebugMode == "True") then + @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb; + @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOptDeb; + @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb; + @else + @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt; + @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOpt; + @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt; + @endif; + + @set %CMPLRS_CXX_WOKDirectives = "-H "; + @set %CMPLRS_C_WOKDirectives = ""; + @set %CMPLRS_F77_WOKDirectives = ""; + + @if (%DBMS == "OBJS") then + @set %CMPLRS_CXX_DBMSOpt = "-mt -DOBJS -I/PRODUCTS/OS5.0/sunpro/include"; + @endif; + + @template CMPLRS_F77_OptLine (%CMPLRS_F77_COMPILER, + %CMPLRS_F77_SysOptions, + %CMPLRS_F77_ModeOpt) is + $Following parameters make up F77 compilation command in this order: + $CMPLRS_F77_COMPILER = %CMPLRS_F77_COMPILER + $CMPLRS_F77_SysOptions = %CMPLRS_F77_SysOptions + $CMPLRS_F77_ModeOpt = %CMPLRS_F77_ModeOpt + @end; + + @template CMPLRS_F77_CmdLine (%CMPLRS_F77_COMPILER, %CMPLRS_F77_SysOptions, %CMPLRS_F77_ModeOpt, + %CMPLRS_F77_WOKDirectives, %Source, %OutputDir, %BaseName, %Entity) is + $%CMPLRS_F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt %CMPLRS_F77_WOKDirectives -c %Source -o %OutputDir/%BaseName.o + $echo '$F77_COMPILER %CMPLRS_F77_SysOptions %CMPLRS_F77_ModeOpt $INCDIRS -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/f77.compile + $ touch %OutputDir/%BaseName.m + @end; + + @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER, + %CMPLRS_C_SysOptions, + %CMPLRS_C_Options, + %CMPLRS_C_ModeOpt, + %CMPLRS_C_INCLUDE, + %IncDirectives, + %CMPLRS_Unit_C_Options, + %CMPLRS_C_WOKDirectives, + %Entity) is + $Following parameters make up C compilation command in this order: + $CMPLRS_C_COMPILER = %CMPLRS_C_COMPILER + $CMPLRS_C_SysOptions = %CMPLRS_C_SysOptions + $CMPLRS_C_Options = %CMPLRS_C_Options + $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options + $CMPLRS_C_INCLUDE = %CMPLRS_C_INCLUDE + $CMPLRS_C_WOKDirectives= %CMPLRS_C_WOKDirectives + $Dynamic include directives are : + $%IncDirectives + @end; + + @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER, + %CMPLRS_C_SysOptions, + %CMPLRS_C_Options, + %CMPLRS_C_ModeOpt, + %CMPLRS_CXX_DBMSOpt, + %CMPLRS_C_INCLUDE, + %IncDirectives, + %CMPLRS_Unit_C_Options, + %CMPLRS_C_WOKDirectives, + %Source, + %BaseName, + %OutputDir, + %TmpFile, %Entity) is + $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt %IncDirectives %CMPLRS_Unit_C_Options %CMPLRS_C_WOKDirectives -c %Source -o %OutputDir/%BaseName.o + $set stat = $status + $echo '$C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options $INCDIRS %CMPLRS_C_ModeOpt %CMPLRS_C_INCLUDE %CMPLRS_CXX_DBMSOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/c.compile + $if ( $stat == 0 ) then + $ cpp %IncDirectives -Usun -DSOLARIS -M %Source \^ + $ | sed -e '1d' -e 's/.*://g' -e 's/[ *]*//g' -e 's%/./%/%g' -e 's%//%/%g' \^ + $ | sort -u > %OutputDir/%BaseName.m + $endif + $set status = $stat + @end; + + @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER, + %CMPLRS_CXX_SysOptions, + %CMPLRS_CXX_Options, + %CMPLRS_CXX_ModeOpt, + %CMPLRS_CXX_DBMSOpt, + %CMPLRS_CXX_INCLUDE, + %CMPLRS_CXX_WOKDirectives, + %IncDirectives, + %DBDirectives, + %Entity) is + $Following parameters make up C++ compilation command in this order: + $CMPLRS_CXX_COMPILER = %CMPLRS_CXX_COMPILER + $CMPLRS_CXX_SysOptions = %CMPLRS_CXX_SysOptions + $CMPLRS_CXX_Options = %CMPLRS_CXX_Options + $CMPLRS_CXX_ModeOpt = %CMPLRS_CXX_ModeOpt + $CMPLRS_CXX_DBMSOpt = %CMPLRS_CXX_DBMSOpt + $CMPLRS_CXX_INCLUDE = %CMPLRS_CXX_INCLUDE + $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives + $Dynamic include directives are : + $%IncDirectives + @end; + + @template CMPLRS_CXX_CmdLine (%CMPLRS_CXX_COMPILER, + %CMPLRS_CXX_SysOptions, + %CMPLRS_CXX_Options, + %CMPLRS_CXX_ModeOpt, + %CMPLRS_CXX_DBMSOpt, + %CMPLRS_CXX_INCLUDE, + %CMPLRS_CXX_WOKDirectives, + %IncDirectives, + %DBDirectives, + %Source, + %BaseName, + %OutputDir, + %TmpFile, %Entity) is + $%CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt %IncDirectives %DBDirectives %CMPLRS_CXX_WOKDirectives -c %Source -o %OutputDir/%BaseName.o >& %TmpFile + $set stat = $status + $echo '$CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options $INCDIRS %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt -c $SOURCE -o $OBJECT' > %OutputDir/../%Entity/.adm/cxx.compile + $if ( $stat == 0 ) then + $ sed -e 's/ //g' -e '/Compilation failed/d' -e '/:/d' -e 's%/\./%/%g' -e 's%//%/%g' %TmpFile \^ + $| grep -v 'detected.$' | sort -u > %OutputDir/%BaseName.m + $endif + $if( -e %TmpFile ) grep ':' %TmpFile + $/bin/rm -f %TmpFile + $set status = $stat + @end; + +@endif; diff --git a/src/WOKBuilderDef/CMPLRS_WNT.edl b/src/WOKBuilderDef/CMPLRS_WNT.edl new file mode 100644 index 0000000..c85cff0 --- /dev/null +++ b/src/WOKBuilderDef/CMPLRS_WNT.edl @@ -0,0 +1,138 @@ +-- +-- This is configuration file for Windows platform. +-- Included into "CMPLRS.edl". +-- +@ifnotdefined (%CMPLRS_WNT_EDL) then + @set %CMPLRS_WNT_EDL = ""; + + @template CMPLRS_C_DTmpFile (%TmpFile) is + $ ; + @end; + + @template CMPLRS_CXX_DTmpFile (%TmpFile) is + $ ; + @end; + + @template CMPLRS_F77_DTmpFile (%TmpFile) is + $ ; + @end; + + @if (%DebugMode == "True") then + @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOptDeb; + @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOptDeb; + @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOptDeb; + @else + @set %CMPLRS_CXX_ModeOpt = %CSF_CXX_ModeOpt; + @set %CMPLRS_C_ModeOpt = %CSF_C_ModeOpt; + @set %CMPLRS_F77_ModeOpt = %CSF_F77_ModeOpt; + @endif; + + @set %CMPLRS_CXX_WOKDirectives = ""; + @set %CMPLRS_C_WOKDirectives = ""; + @set %CMPLRS_F77_WOKDirectives = ""; + + @if (%DBMS == "OBJS") then + @set %CMPLRS_CXX_DBMSOpt = "-DOBJS"; + @endif; + @if (%DBMS == "DFLT") then + @set %CMPLRS_CXX_DBMSOpt = "-DCSFDB"; + @endif; + + @template CMPLRS_C_Footer (%CMPLRS_C_Options, + %CMPLRS_ExportBehaviour, + %IncDirectives, + %Unit_C_Options, + %InputDir, + %Source, + %BaseName, + %OutputDir) is + $set cmplrs_status=%status%; + $@acpp.exe -M -m -+ %CMPLRS_C_Options -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives %Unit_C_Options \^ + $ %InputDir/%Source -o %OutputDir%BaseName.m; + $set status=%cmplrs_status%; + @end; + + @template CMPLRS_CXX_Footer(%CMPLRS_CXX_Options, + %CMPLRS_ExportBehaviour, + %IncDirectives, + %Unit_CXX_Options, + %InputDir, + %Source, + %BaseName, + %OutputDir) is + $set cmplrs_status=%status%; + $@acpp.exe -M -m -+ %CMPLRS_CXX_Options -D__cplusplus -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives %Unit_CXX_Options \^ + $ %InputDir/%Source -o %OutputDir%BaseName.m; + $set status=%cmplrs_status%; + @end; + + @template CMPLRS_CXX_OptLine (%CMPLRS_CXX_COMPILER, + %CMPLRS_CXX_SysOptions, + %CMPLRS_CXX_Options, + %CMPLRS_ExportBehaviour, + %CMPLRS_CXX_ModeOpt, + %CMPLRS_CXX_DBMSOpt, + %CMPLRS_CXX_INCLUDE, + %CMPLRS_CXX_WOKDirectives, + %IncDirectives, + %DBDirectives, + %Entity) is + $Following parameters make up C++ compilation command in this order: + $CMPLRS_CXX_COMPILER = %CMPLRS_CXX_COMPILER + $CMPLRS_CXX_SysOptions = %CMPLRS_CXX_SysOptions + $CMPLRS_CXX_Options = %CMPLRS_CXX_Options + $CMPLRS_ExportBehaviour = %CMPLRS_ExportBehaviour + $CMPLRS_CXX_ModeOpt = %CMPLRS_CXX_ModeOpt + $CMPLRS_CXX_DBMSOpt = %CMPLRS_CXX_DBMSOpt + $CMPLRS_CXX_INCLUDE = %CMPLRS_CXX_INCLUDE + $CMPLRS_CXX_WOKDirectives = %CMPLRS_CXX_WOKDirectives + $Dynamic include directives are : + $%IncDirectives + @end; + + @template CMPLRS_CXX_CmdLine (%CMPLRS_CXX_COMPILER, %CMPLRS_CXX_SysOptions, %CMPLRS_CXX_Options, %CMPLRS_CXX_ModeOpt, + %CMPLRS_CXX_DBMSOpt, %IncDirectives, %CMPLRS_CXX_INCLUDE, %PDBName, %Source, + %BaseName, %OutputDir, %CMPLRS_ExportBehaviour) is + $%CMPLRS_CXX_COMPILER %CMPLRS_CXX_SysOptions %CMPLRS_CXX_Options %CMPLRS_ExportBehaviour\^ + $ %IncDirectives %CMPLRS_CXX_INCLUDE %CMPLRS_CXX_DBMSOpt %CMPLRS_CXX_ModeOpt \^ + $ -Fd%PDBName -c -Tp %Source -Fo%OutputDir%BaseName.obj; + $set cmplrs_status=%status%; + $@acpp.exe -M -m -+ %CMPLRS_CXX_Options -D__cplusplus -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives %CMPLRS_CXX_INCLUDE\^ + $ %Source -o %OutputDir%BaseName.m; + $set status=%cmplrs_status%; + @end; + + @template CMPLRS_C_OptLine (%CMPLRS_C_COMPILER, + %CMPLRS_C_SysOptions, + %CMPLRS_C_Options, + %CMPLRS_C_ModeOpt, + %IncDirectives, + %CMPLRS_Unit_C_Options, + %CMPLRS_C_WOKDirectives, + %CMPLRS_ExportBehaviour, + %Entity) is + $Following parameters make up C compilation command in this order: + $CMPLRS_C_COMPILER = %CMPLRS_C_COMPILER + $CMPLRS_C_SysOptions = %CMPLRS_C_SysOptions + $CMPLRS_C_Options = %CMPLRS_C_Options + $CMPLRS_C_ModeOpt = %CMPLRS_C_ModeOpt + $CMPLRS_Unit_C_Options = %CMPLRS_Unit_C_Options + $CMPLRS_C_WOKDirectives = %CMPLRS_C_WOKDirectives + $CMPLRS_ExportBehaviour = %CMPLRS_ExportBehaviour + $Dynamic include directives are : + $%IncDirectives + @end; + + @template CMPLRS_C_CmdLine (%CMPLRS_C_COMPILER, %CMPLRS_C_SysOptions, %CMPLRS_C_Options, %CMPLRS_C_ModeOpt, %CMPLRS_CXX_DBMSOpt, + %IncDirectives, %PDBName, %Source, + %BaseName, %OutputDir, %CMPLRS_ExportBehaviour) is + $%CMPLRS_C_COMPILER %CMPLRS_C_SysOptions %CMPLRS_C_Options %CMPLRS_ExportBehaviour\^ + $ %IncDirectives %CMPLRS_CXX_DBMSOpt %CMPLRS_C_ModeOpt \^ + $ -Fd%PDBName -c -Tc %Source -Fo%OutputDir%BaseName.obj; + $set cmplrs_status=%status%; + $@acpp.exe -M -m -+ %CMPLRS_C_Options -D_DLL -D_MT %CMPLRS_ExportBehaviour %IncDirectives\^ + $ %Source -o %OutputDir%BaseName.m; + $set status=%cmplrs_status%; + @end; + +@endif; diff --git a/src/WOKBuilderDef/CODEGEN.edl b/src/WOKBuilderDef/CODEGEN.edl index 53b046e..0108d59 100755 --- a/src/WOKBuilderDef/CODEGEN.edl +++ b/src/WOKBuilderDef/CODEGEN.edl @@ -3,87 +3,60 @@ -- History: Thu Jul 11 17:31:05 1996 Jean GAUTIER Creation -- Copyright: Matra Datavision 1996 -@ifnotdefined ( %CODEGEN_EDL) then -@set %CODEGEN_EDL = ""; +@ifnotdefined (%CODEGEN_EDL) then + @set %CODEGEN_EDL = ""; + + @set %CODEGEN_Tools = "CODEGEN_LEX CODEGEN_YACC"; + + @set %CODEGEN_LEX_Template = "CODEGEN_LEX_CmdLine"; + @set %CODEGEN_LEX_Extensions = "toto.lex"; + + @set %CODEGEN_YACC_Template = "CODEGEN_YACC_CmdLine"; + @set %CODEGEN_YACC_Extensions = "toto.yacc"; + + -- assume flex and bison in PATH + @set %CODEGEN_LEX_CmdPath = "flex"; + @set %CODEGEN_YACC_CmdPath = "bison"; + + --@if (%Station == "wnt") then + -- @set %CODEGEN_FlexBisHome = "%WOKHOME%/lib/wnt"; + --@endif; + --@if (%Station == "lin") then + -- @set %CODEGEN_FlexBisHome = "/usr/bin"; + --@endif; + --@if (%Station == "mac") then + -- @set %CODEGEN_FlexBisHome = "/sw/bin"; + --@endif; + --@ifnotdefined (%CODEGEN_FlexBisHome) then + -- @set %CODEGEN_FlexBisHome = "/PRODUCTS/flexbis-253-125/bin"; + --@endif; + --@string %CODEGEN_LEX_CmdPath = %CODEGEN_FlexBisHome "/bin/flex"; + --@string %CODEGEN_YACC_CmdPath = %CODEGEN_FlexBisHome "/bin/bison"; + + @template CODEGEN_LEX_Production (%BaseName) is + $lex.%BaseName.c + @end; + + @template CODEGEN_LEX_OptLine (%CODEGEN_LEX_CmdPath) is + $%CODEGEN_LEX_CmdPath -f -P -L -8 -f + @end; + + @template CODEGEN_LEX_CmdLine (%CODEGEN_LEX_CmdPath, %Source, %BaseName, %OutputDir) is + $cd %OutputDir; + $%CODEGEN_LEX_CmdPath -P%BaseName -L -8 -f %Source + @end; + + @template CODEGEN_YACC_Production (%BaseName) is + $%BaseName.tab.h %BaseName.tab.c + @end; + + @template CODEGEN_YACC_OptLine (%CODEGEN_YACC_CmdPath) is + $%CODEGEN_YACC_CmdPath -d -b -p + @end; + + @template CODEGEN_YACC_CmdLine (%CODEGEN_YACC_CmdPath, %Source, %BaseName, %OutputDir) is + $cd %OutputDir; + $%CODEGEN_YACC_CmdPath -d -b %BaseName -p %BaseName %Source -o %BaseName.tab.c + @end; -@set %CODEGEN_Tools = "CODEGEN_LEX CODEGEN_YACC"; - -@set %CODEGEN_LEX_Template = "CODEGEN_LEX_CmdLine"; -@set %CODEGEN_LEX_Extensions = "toto.lex"; - -@set %CODEGEN_YACC_Template = "CODEGEN_YACC_CmdLine"; -@set %CODEGEN_YACC_Extensions = "toto.yacc"; - -@if ( %Station != "wnt" ) then - - @if ( %Station == "lin" ) then - @set %CODEGEN_FlexBisHome = "${WOKHOME}/lib/lin"; - @else - @if ( %Station == "mac" ) then - @set %CODEGEN_FlexBisHome = "/sw"; - @else - @set %CODEGEN_FlexBisHome = "/PRODUCTS/flexbis-253-125/bin"; - @endif; - @endif; - -@template CODEGEN_LEX_Production ( %BaseName ) is -$lex.%BaseName.c -@end; - -@template CODEGEN_LEX_OptLine (%CODEGEN_FlexBisHome) is -$%CODEGEN_FlexBisHome/flex -f -P -L -8 -f -@end; - -@template CODEGEN_LEX_CmdLine ( %CODEGEN_FlexBisHome, %Source, %BaseName, %OutputDir ) is -$cd %OutputDir -$%CODEGEN_FlexBisHome/flex -f -P%BaseName -L -8 -f %Source -@end; - - -@template CODEGEN_YACC_Production ( %CODEGEN_FlexBisHome, %BaseName ) is -$%BaseName.tab.h %BaseName.tab.c -@end; - -@template CODEGEN_YACC_OptLine (%CODEGEN_FlexBisHome) is -$%CODEGEN_FlexBisHome/bison -d -b -p -@end; - -@template CODEGEN_YACC_CmdLine ( %CODEGEN_FlexBisHome, %Source, %BaseName, %OutputDir ) is -$cd %OutputDir -$%CODEGEN_FlexBisHome/bison -d -b %BaseName -p %BaseName %Source -o %BaseName.tab.c -@end; - -@else - -@template CODEGEN_LEX_Production ( %BaseName ) is -$lex.%BaseName.c -@end; - -@template CODEGEN_LEX_OptLine (%CODEGEN_LEX_CmdPath) is -$%CODEGEN_LEX_CmdPath -f -P -L -8 -f -@end; - -@set %CODEGEN_LEX_CmdPath = "%WOKHOME%/lib/wnt/flex"; - -@template CODEGEN_LEX_CmdLine ( %CODEGEN_LEX_CmdPath, %Source, %BaseName, %OutputDir ) is -$cd %OutputDir; -$%CODEGEN_LEX_CmdPath -P%BaseName -L -8 -f %Source -@end; - -@template CODEGEN_YACC_Production ( %BaseName ) is -$%BaseName.tab.h %BaseName.tab.c -@end; - -@set %CODEGEN_YACC_CmdPath = "%WOKHOME%/lib/wnt/bison"; - -@template CODEGEN_YACC_OptLine (%CODEGEN_YACC_CmdPath) is -$%CODEGEN_YACC_CmdPath -d -b -p -@end; - -@template CODEGEN_YACC_CmdLine (%CODEGEN_YACC_CmdPath, %Source, %BaseName, %OutputDir ) is -$cd %OutputDir; -$%CODEGEN_YACC_CmdPath -d -b %BaseName -p %BaseName %Source -o %BaseName.tab.c -@end; - -@endif; @endif; diff --git a/src/WOKBuilderDef/CSF.edl b/src/WOKBuilderDef/CSF.edl index 40a564b..7247247 100755 --- a/src/WOKBuilderDef/CSF.edl +++ b/src/WOKBuilderDef/CSF.edl @@ -1,781 +1,240 @@ +-- -- WOK Build process configuration file. -- This file contains the definiton of parameters used during compilation -- and link process launched by the commands umake or wprocess. --- The items you have to modify are surrounded py a comment beginning with the --- string "--<> - @set %CSF_WOKHOME = "${WOKHOME}" ; --->> END TODO - - @set %CSF_C_COMPILER = ""; - @set %CSF_C_SysOptions = ""; - @set %CSF_C_Options = ""; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb - @set %CSF_C_ModeOpt = ""; - @set %CSF_C_ModeOptDeb = ""; - - @set %CSF_CXX_COMPILER = ""; - @set %CSF_CXX_SysOptions = ""; - @set %CSF_CXX_Options = ""; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb - @set %CSF_CXX_ModeOpt = ""; - @set %CSF_CXX_ModeOptDeb = ""; - - @set %CSF_F77_COMPILER = ""; - @set %CSF_F77_SysOptions = ""; - @set %CSF_F77_Options = ""; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb - @set %CSF_F77_ModeOpt = ""; - @set %CSF_F77_ModeOptDeb = ""; - - @set %CSF_LINKER = ""; - @set %CSF_CSF_VirtualDevice = ""; - @set %CSF_LINKER_DBMSOpt = ""; - @set %CSF_LINKER_SysShared = ""; - @set %CSF_LINKER_SysExe = ""; - @set %CSF_LINKER_SysExeC = ""; - @set %CSF_LINKER_SysExeW = ""; - @set %CSF_LINKER_SysOpt = ""; - @set %CSF_LINKER_SysLib = ""; - @set %CSF_LINKER_CheckOpt = ""; - @set %CSF_LINKER_CheckOut = ""; - - @set %CSF_LibraryHeaderLib = ""; - @set %CSF_LibraryHeaderOpt = ""; - - @set %CSF_JavaHome = ""; - @set %CSF_JavaLibs = ""; - - @string %CSF_C_INCLUDE = " -I" %CSF_WOKHOME "/lib "; - @string %CSF_CXX_INCLUDE = " -I" %CSF_WOKHOME "/lib "; - - @set %CSF_TCL_HOME = ""; - @set %CSF_TCL_INCLUDE = ""; - @set %CSF_JAVA_INCLUDE = ""; - - @set %CSF_X11_INCLUDE = ""; - @set %CSF_X11_INCLUDE_EXTENSION = ""; - @set %CSF_XMU_INCLUDE = ""; - @set %CSF_MOTIF_INCLUDE = ""; - @set %CSF_OPENGL_INCLUDE = ""; - - @set %CSF_SOCKETLibs = ""; - @set %CSF_RISCRETURNObject = "" ; - @set %CSF_FPELibs = "" ; - @set %CSF_ThreadLibs = "" ; - - @set %CSF_kernel32 = "" ; - @set %CSF_advapi32 = "" ; - @set %CSF_gdi32 = "" ; - @set %CSF_user32 = "" ; - @set %CSF_glu32 = "" ; - @set %CSF_opengl32 = "" ; - @set %CSF_wsock32 = "" ; - - @set %CSF_AviLibs = "" ; - - @set %CSF_dpsLibs = "" ; - @set %CSF_XwLibs = "" ; - @set %CSF_OpenGlLibs = "" ; - @set %CSF_MotifLibs = "" ; - - @set %CSF_TclLibs = "" ; - @set %CSF_TclTkLibs = "" ; - - @set %CSF_OODBLibs = ""; - @set %CSF_STANDARDDB = "StandardTRAN"; - @set %STLPortHome = ""; - - @ifnotdefined ( %DBMS ) then - @set %DBMS = "DFLT"; - @endif; - - @if ( %DBMS == "DFLT") then - @set %CSF_STANDARDDB = "StandardCSFDB"; - @endif; - - @if ( %DBMS == "OBJY" ) then - @set %CSF_STANDARDDB = "StandardOBJY"; - @endif; - - @if ( %DBMS == "OBJS" ) then - @set %CSF_STANDARDDB = "StandardOBJS"; - @endif; - - -- - -- For Linux platforms - -- - @if ( %Station == "lin" ) then - @if ( %DBMS == "OBJS" ) then - @set %CSF_OODBLibs = ""; - @endif; - - --<< TODO : If applicable , modify the location of the C++ compiler. - @set %CSF_CXX_COMPILER = "/usr/bin/g++ "; - -->> END TODO - @set %STLPortHome = ""; - @if ( %STLPortHome != "") then - @string %STLPortInclude = "-I" %STLPortHome "/stlport "; - @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_gcc"; - @else - @set %STLPortInclude = ""; - @set %STLPortLib = ""; - @endif; - @set %CSF_CXX_SysOptions = "-fPIC -funsigned-char -Wall -fmessage-length=0"; - @string %CSF_CXX_Options = "-DLIN -DLININTEL -DOCC_CONVERT_SIGNALS " %STLPortInclude; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb - @set %CSF_CXX_ModeOpt = " -O3 -DNDEBUG -DNo_Exception "; - @set %CSF_CXX_ModeOptDeb = " -g -O0 -DDEB -D_DEBUG "; - - --<< TODO : If applicable , modify the location of the c compiler. - @set %CSF_C_COMPILER = "/usr/bin/gcc "; - @string %CSF_C_INCLUDE += ""; - -->> END TODO - - @set %CSF_C_SysOptions = "-fPIC -funsigned-char -Wall -fexceptions"; - @set %CSF_C_Options = "-DLIN -DLININTEL "; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb - @set %CSF_C_ModeOpt = " -O3 -DNDEBUG -DNo_Exception "; - @set %CSF_C_ModeOptDeb = " -g -O0 -DDEB -D_DEBUG "; - - --<< TODO : If applicable , modify the location of the Fortran compiler. - @set %CSF_F77_COMPILER = "/usr/bin/f77 "; - -->> END TODO - - @set %CSF_F77_SysOptions = "-fPIC "; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb - @set %CSF_F77_ModeOpt = " -O3 -DNDEBUG -DNo_Exception "; - @set %CSF_F77_ModeOptDeb = " -g -DDEB -D_DEBUG "; - - @string %CSF_LINKER = "/usr/bin/ld " %STLPortLib; - @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER ; - @set %CSF_LINKER_DBMSOpt = ""; - @set %CSF_LINKER_SysShared = "-shared "; - @set %CSF_LINKER_SysExe = ""; - @set %CSF_LINKER_SysOpt = ""; - @set %CSF_LINKER_SysLib = "-ldl -lc "; - @set %CSF_LINKER_CheckOpt = "-nostartfiles "; - @set %CSF_LINKER_CheckOut = "-o /dev/null "; - @set %CSF_SOCKETLibs = " -ldl" ; - - --<< TODO : If applicable , modify the root location where TCL is installed. - @set %CSF_TCL_HOME = "/usr"; - -->> END TODO - - @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include "; - - --<< TODO : If applicable , modify the root location where Java is installed. - @set %CSF_JavaHome = "/PRODUCTS/java/lin/jdk1.2.2"; - -->> END TODO - - @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/linux "; - @set %CSF_JAVA_COMPILER = "javac"; - @set %CSF_JAVA_JNI = "javah"; - - @set %CSF_DOXIGEN = "/PRODUCTS/maintenance/Linux/doxygen-1.4.1/bin/doxygen"; - @set %CSF_GRAPHVIZ_HOME = "/PRODUCTS/maintenance/Linux/graphviz/bin"; - - @set %CSF_X11_INCLUDE = "-I/usr/X11R6/include "; - @set %CSF_OPENGL_INCLUDE = "-I/usr/X11R6/include "; - - @set %CSF_ThreadLibs = "-lpthread" ; - @set %X11_LIB = "/usr/X11R6/lib"; - - @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu -lXi "; - - @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL " ; - - @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib -ltcl "; - @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -ltk -L" %X11_LIB " -lX11"; - @endif; - - -- - -- For SunOS platforms - -- - @if ( %Station == "sun" ) then - @if ( %DBMS == "OBJS" ) then - @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.2/sunpro/lib/ -los -losthr -loscol -losmop"; - @endif; - - --<< TODO : If applicable , modify the location of the C++ compiler. - @set %CSF_CXX_COMPILER = "/opt/DEV5_1/SUNWspro/bin/CC"; - -->> END TODO - - @set %STLPortHome = ""; - @if ( %STLPortHome != "") then - @string %STLPortInclude = "-I" %STLPortHome "/stlport"; - @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_sunpro42"; - @else - @set %STLPortInclude = ""; - @set %STLPortLib = ""; - @endif; - @set %CSF_CXX_SysOptions = "-PIC -xchip=ultra -xarch=v8 -vdelx -Usun -instances=static " ; - @string %CSF_CXX_Options = "-DSOLARIS -DOCC_CONVERT_SIGNALS "%STLPortInclude ; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb - @set %CSF_CXX_ModeOpt = " -O2 -DNo_Exception +w "; - @set %CSF_CXX_ModeOptDeb = " -g0 -DDEB +w "; - --yan @string %CSF_CXX_INCLUDE += " -I/opt/DEV5_1/SUNWspro/SC4.2/include/CC "; - @string %CSF_CXX_INCLUDE += " -I" %CSF_CXX_COMPILER "/../../SC4.2/include/CC "; - - --<< TODO : If applicable , modify the location of the c compiler. - @set %CSF_C_COMPILER = "/opt/DEV5_1/SUNWspro/bin/cc "; - @string %CSF_C_INCLUDE += ""; - -->> END TODO - - @set %CSF_C_SysOptions = "-K PIC -Usun "; - @set %CSF_C_Options = "-DSOLARIS "; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb - @set %CSF_C_ModeOpt = " -O2 -DNo_Exception +w "; - @set %CSF_C_ModeOptDeb = " -g0 -DDEB +w "; - - @set %CSF_F77_COMPILER = "f77 "; - @set %CSF_F77_SysOptions = "-PIC"; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb - @set %CSF_F77_ModeOpt = " -O2 "; - @set %CSF_F77_ModeOptDeb = " -g "; - - @set %CSF_LINKER = "/usr/ccs/bin/ld "; - @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER ; - @if ( %DBMS == "OBJS" ) then - @set %CSF_LINKER_DBMSOpt = "-mt "; - @endif; - @set %CSF_LINKER_SysShared = "-G "; - @set %CSF_LINKER_SysExe = ""; - @set %CSF_LINKER_SysOpt = "-xchip=ultra -xarch=v8 "; - @set %CSF_LINKER_SysLib = " -lC -lc "; - @set %CSF_LINKER_CheckOpt = ""; - @set %CSF_LINKER_CheckOut = "-o /dev/null "; - - --<< TODO : If applicable , modify the root location where Java is installed. - @set %CSF_JavaHome = "/PRODUCTS/java/jdk1.2"; - -->> END TODO - - @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/solaris "; - @string %CSF_JavaLibs = " -L" %CSF_JavaHome "/jre/lib/sparc/ -ljava "; - @set %CSF_JAVA_COMPILER = "javac"; - @set %CSF_JAVA_JNI = "javah"; - - @set %CSF_DOXIGEN = "/dn02/users_Sun/cascade/doxigen/bin/doxigen"; - @set %CSF_GRAPHVIZ_HOME = "/dn02/users_Sun/cascade/graphviz"; - - - @set %CSF_SOCKETLibs = "-lsocket -lnsl -lsunmath -lm -ldl -lc " ; - ---@set %CSF_RISCRETURNObject = "/missing/missing/risc_return.o" ; - @set %CSF_RISCRETURNObject = "/dn01/KAS/dev/Gallery/src/EngineStarter/risc_return.o" ; - --<< TODO : If applicable , modify the root location where TCL is installed. - @set %CSF_TCL_HOME = "/PRODUCTS/tcltk-84"; - -->> END TODO - - @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include -DUSE_NON_CONST "; - @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib -R" %CSF_TCL_HOME "/lib -ltcl8.4 "; - @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -R" %CSF_TCL_HOME "/lib -ltk8.4 "; - - - @set %X11_LIB = "/usr/openwin/lib"; - @set %CSF_X11_INCLUDE = "-I/usr/openwin/include/X11 "; - @set %CSF_OPENGL_INCLUDE = "-I/usr/openwin/include "; - - @set %CSF_ThreadLibs = "-lpthread" ; - - @string %CSF_dpsLibs = "-L" %X11_LIB " -ldps" ; - @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu"; - @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL " ; - @string %CSF_MotifLibs = "-L/usr/dt/lib -lXm -L" %X11_LIB " -lXt -lX11"; - - @endif; - - -- - -- For Windows platform. The lines below works with MS Visual Studio installed on D:/DevTools - -- - - @if (%Station == "wnt") then - - --<< TODO : If applicable , modify the root location where C++ compiler is installed. - @set %CSF_CXX_COMPILER = "D:/DevTools/VStudio/VC7/bin/cl "; - -->> END TODO - @set %STLPortHome = ""; - @if ( %STLPortHome != "") then - @string %STLPortInclude = "-I" %STLPortHome "/stlport "; - @string %STLPortLib = %STLPortHome "/lib/stlport_vc6.lib"; - @else - @set %STLPortInclude = ""; - @set %STLPortLib = ""; - @endif; - - @string %CSF_CXX_Options = "-DWNT -D_WINDOWS -DWIN32 " %STLPortInclude; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb --- @set %CSF_CXX_SysOptions = "-nologo -MD -W3 -GX -Ob1 -Zi "; - @set %CSF_CXX_SysOptions = " -nologo -W3 "; - @set %CSF_CXX_ModeOpt = " -MD -GX -O2 -DNDEBUG -DNo_Exception "; - @set %CSF_CXX_ModeOptDeb = " -MDd -Gm -GX -Od -Zi -DDEB -D_DEBUG "; - - --<< TODO : If applicable , modify the root location where c compiler is installed (same as above). - @set %CSF_C_COMPILER = "D:/DevTools/VStudio/VC7/bin/cl "; - @string %CSF_C_INCLUDE += ""; - -->> END TODO - - @set %CSF_C_Options = "-DWNT -D_WINDOWS -DWIN32 "; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb --- @set %CSF_C_SysOptions = "-nologo -MD -W3 -GX -Ob1 -Zi "; - @set %CSF_C_SysOptions = " -nologo -W3 "; - @set %CSF_C_ModeOpt = " -MD -GX -O2 -DNDEBUG -DNo_Exception "; - @set %CSF_C_ModeOptDeb = " -MDd -Gm -GX -Od -Zi -DDEB -D_DEBUG "; - - --<< TODO : If applicable , modify the root location where the Fortran compiler is installed. - @set %CSF_F77_COMPILER = "D:/DevTools/VStudio/DF98/bin/fl32 "; - -->> END TODO - - @set %CSF_F77_SysOptions = "-nologo -libs:dll -Zi "; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb - @set %CSF_F77_ModeOpt = " -DNDEBUG -DNo_Exception "; - @set %CSF_F77_ModeOptDeb = " -DDEB -D_DEBUG "; - - @set %CSF_LINKER = "D:/DevTools/VStudio/VC7/bin/link "; - @set %CSF_CXX_COMPILERLINKER = %CSF_LINKER ; - @set %CSF_VirtualDevice = "Q:"; - @set %CSF_LINKER_DBMSOpt = ""; - @set %CSF_LINKER_SysShared = "-subsystem:windows -dll "; - @set %CSF_LINKER_SysExe = "CSF_LINKER_SysExeC"; - @set %CSF_LINKER_SysExeC = "-subsystem:CONSOLE"; - @set %CSF_LINKER_SysExeW = "-subsystem:WINDOWS"; - @set %CSF_LINKER_SysOpt = "-nologo -incremental:no -machine:IX86 -debug "; - @set %CSF_LINKER_SysLib = ""; - - @set %CSF_LibraryHeaderLib = "D:/DevTools/VStudio/VC7/bin/lib "; - @set %CSF_LibraryHeaderOpt = "-nologo "; - - --<< TODO : If applicable , modify the root location where Java is installed. - @string %CSF_JavaHome = "D:/jdk1.3.1"; - -->> END TODO - - @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/win32 "; - @set %CSF_JAVA_COMPILER = "javac"; - @set %CSF_JAVA_JNI = "javah"; - - @set %CSF_TCL_HOME = "D:/DevTools/TclTk/tcl8.4"; - @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include "; - @string %CSF_TclLibs = %CSF_TCL_HOME "/lib/tcl84.lib"; - @string %CSF_TclTkLibs = %CSF_TCL_HOME "/lib/tk84.lib"; - @string %CSF_TclTkxLibs = %CSF_TCL_HOME"/lib/tkx84.lib "; - - @set %CSF_OpenGlLibs = "opengl32.lib glu32.lib" ; - - @set %CSF_kernel32 = "kernel32.lib" ; - @set %CSF_advapi32 = "advapi32.lib" ; - @set %CSF_gdi32 = "gdi32.lib" ; - @set %CSF_user32 = "user32.lib" ; - @set %CSF_glu32 = "glu32.lib" ; - @set %CSF_opengl32 = "opengl32.lib" ; - @set %CSF_wsock32 = "wsock32.lib" ; - @set %CSF_netapi32 = "netapi32.lib"; - - @set %CSF_AviLibs = "ws2_32.lib vfw32.lib" ; - - - - @endif; - - -- - -- The Dec Ultrix platform is not supported - -- - @if ( %Station == "ao1" ) then - @if ( %DBMS == "OBJS" ) then - @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.2/lib/ -los -losthr -loscol -losmop"; - @endif; - - @set %CSF_C_COMPILER = "cc "; - @string %CSF_C_INCLUDE += ""; - @set %CSF_CXX_COMPILER = "/usr/bin/cxx "; - @set %CSF_F77_COMPILER = ""; - - @set %STLPortHome = "/dn01/KAS/STLport-4.5.3"; - @if ( %STLPortHome != "") then - @string %STLPortInclude = "-I" %STLPortHome "/stlport"; - @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_dec"; - @else - @set %STLPortInclude = ""; - @set %STLPortLib = ""; - @endif; - - @set %CSF_CXX_SysOptions = "-shared "; - @set %CSF_CXX_Options = "-DDECOSF1 -DOCC_CONVERT_SIGNALS -D__USE_STD_IOSTREAM "; - @set %CSF_CXX_INCLUDE = "-I/usr/include/cxx -I/dn01/KAS/dev/Dec "; - - @set %CSF_C_SysOptions = ""; - @set %CSF_C_Options = "-DDECOSF1 -O3 -DOCC_CONVERT_SIGNALS"; - - @set %CSF_TCL_HOME = "/usr/tcltk"; - @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include/itcl "; - - @string %CSF_JavaHome = "/PRODUCTS/java/j2sdk1_3_1"; - @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/solaris "; - @set %CSF_JAVA_COMPILER = "javac"; - @set %CSF_JAVA_JNI = "javah"; - - @set %CSF_ThreadLibs = "-lpthread" ; - - @set %X11_LIB = "/usr/shlib"; - @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu"; - @set %CSF_dpsLibs = "-ldps" ; - @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL " %CSF_XwLibs ; - - @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib/itcl -ltcl7.5i"; - @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib/itcl -ltk4.1i " %CSF_XwLibs; - @endif; - - -- - -- The IRIX platform is not currently supported - -- - @if ( %Station == "sil" ) then - @if ( %DBMS == "OBJS" ) then - @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.3/lib/ -los -losths -loscol -losmop"; - @endif; - - @set %CSF_C_COMPILER = "cc "; - @string %CSF_C_INCLUDE += ""; - @set %CSF_C_SysOptions = " -signed -n32 -mips4 "; - @set %CSF_C_Options = "-DIRIX "; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb - @set %CSF_C_ModeOpt = " -O3 -DNo_Exception -TARG:processor=R10000 "; - @set %CSF_C_ModeOptDeb = " -g -gslim -DDEB "; - - @set %CSF_CXX_COMPILER = "/usr/bin/CC "; - @set %STLPortHome = ""; - @if ( %STLPortHome != "") then - @string %STLPortInclude = "-I" %STLPortHome "/stlport"; - @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_mipspro"; - @else - @set %STLPortInclude = ""; - @set %STLPortLib = ""; - @endif; - - @set %CSF_CXX_SysOptions = " -signed -n32 -mips4 -woff 3115 -woff 3273 -woff 1021 -woff 1188 -woff 1460 -woff 3303 -ptused"; - @string %CSF_CXX_Options = "-DIRIX -DOCC_CONVERT_SIGNALS " %STLPortInclude; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb - @set %CSF_CXX_ModeOpt = " -O3 -DNo_Exception -D__INLINE_INTRINSICS -TARG:processor=R10000 "; - @set %CSF_CXX_ModeOptDeb = " -g -gslim -DDEB "; - - - @set %CSF_F77_COMPILER = "f77 "; --- Corrected by APV: *_SysOptions, *_ModeOpt and *_ModeOptDeb - @set %CSF_F77_ModeOpt = " -O3 "; - @set %CSF_F77_ModeOptDeb = " -g "; - - @set %CSF_LINKER = "/usr/bin/ld"; - @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER ; - @set %CSF_LINKER_SysShared = " -shared "; - @set %CSF_LINKER_SysExe = ""; - @set %CSF_LINKER_SysOpt = " -n32 -mips3 -Wl,-mmap -multigot -no_prelink "; - @set %CSF_LINKER_SysLib = ""; - @set %CSF_LINKER_CheckOpt = " -n32 -mips3 -mmap -multigot -no_unresolved "; - @set %CSF_LINKER_CheckOut = " -o /dev/null"; - - @set %CSF_FPELibs = "-L/usr/lib32 -lfpe" ; - @set %CSF_pthread = "-lpthread" ; - - @set %CSF_TCL_HOME = "/usr/tcltk.64"; - @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include/itcl "; - - @set %CSF_X11_INCLUDE_EXTENSION = " -I/usr/include/X11/extensions "; - - - - @string %CSF_JavaHome = "/PRODUCTS/java/sil_1.2"; - @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/irix "; - @set %CSF_JAVA_COMPILER = "javac"; - @set %CSF_JAVA_JNI = "javah"; - - @set %CSF_ThreadLibs = "-lpthread" ; - - @set %X11_LIB = "/usr/lib32"; - - @set %CSF_dpsLibs = "-L/usr/lib32 -ldps" ; - @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu"; - @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL " ; - - @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib/itcl -rpath " %CSF_TCL_HOME "/lib/itcl -ltcl7.5i"; - @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib/itcl -rpath " %CSF_TCL_HOME "/lib/itcl -ltk4.1i"; - @endif; - - -- - -- The HP-UX platform is not currently supported - -- - @if ( %Station == "hp" ) then - @if ( %DBMS == "OBJS" ) then - @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.2/lib/ -los -losthr -loscol -losmop"; - @endif; - - @set %CSF_C_COMPILER = "cc "; - @string %CSF_C_INCLUDE += ""; - @set %CSF_CXX_COMPILER = "/opt/aCC/bin/aCC "; - @set %CSF_F77_COMPILER = "f77 "; - @set %STLPortHome = ""; - @if ( %STLPortHome != "") then - @string %STLPortInclude = "-I" %STLPortHome "/stlport"; - @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_aCC"; - @else - @set %STLPortInclude = ""; - @set %STLPortLib = ""; - @endif; - - @string %CSF_CXX_Options = " -w -DHPUX -D_IOSTREAM_INIT_NOT_NEEDED " %STLPortInclude; - @set %CSF_C_Options = " -DHPUX "; - - @set %CSF_TCL_HOME = "/missing/missing "; - @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include "; - - @set %CSF_X11_INCLUDE = "-I/usr/include/X11R6 "; - @set %CSF_XMU_INCLUDE = "-I/usr/contrib/X11R6/include "; - @set %CSF_MOTIF_INCLUDE = "-I/usr/include/Motif1.2 "; - @set %CSF_OPENGL_INCLUDE = "-I/opt/graphics/OpenGL/include "; - - @set %CSF_SOCKETLibs = "" ; - - @set %CSF_ThreadLibs = "-lpthread" ; - - @set %X11_LIB = "/usr/lib/X11R6"; - - @set %XMU_LIB = "/PRODUCTS/Xmu-R6"; - - @set %OPENGL_LIB = "/opt/graphics/OpenGL/lib"; - - @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -L" %XMU_LIB " -lXmu"; - - @string %CSF_OpenGlLibs = "-L" %OPENGL_LIB " -lGLU -lGL "; - - @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib -ltcl"; - @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -ltk"; - - @string %CSF_JavaHome = "/missing/JavaHome"; - @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/hp-ux "; - @set %CSF_JAVA_COMPILER = "javac"; - @set %CSF_JAVA_JNI = "javah"; - - - @endif; - - -- - -- The AIX platform is not currently supported - -- - @if ( %Station == "aix" ) then - @if ( %DBMS == "OBJS" ) then - @set %CSF_OODBLibs = ""; - @endif; - - @set %CSF_C_COMPILER = "xlC_r "; - @string %CSF_C_INCLUDE += ""; - @set %CSF_CXX_COMPILER = "xlC_r "; - @set %CSF_F77_COMPILER = "/usr/bin/f77 "; +@ifnotdefined (%CSF_EDL) then + @set %CSF_EDL = ""; + + @set %CSF_SYMBOLS = "C_COMPILER C_SysOptions C_Options C_ModeOpt C_ModeOptDeb C_INCLUDE CXX_INCLUDE"; + @string %CSF_SYMBOLS += " CXX_COMPILER CXX_SysOptions CXX_Options CXX_ModeOpt CXX_ModeOptDeb"; + @string %CSF_SYMBOLS += " F77_COMPILER F77_SysOptions F77_Options F77_ModeOpt F77_ModeOptDeb"; + @string %CSF_SYMBOLS += " CSF_LINKER CXX_COMPILERLINKER CSF_VirtualDevice CSF_LINKER_CheckOpt CSF_LINKER_CheckOut LINKER_DBMSOpt LINKER_SysShared LINKER_SysExeC LINKER_SysExeW LINKER_SysOpt LINKER_SysLib LINKER_CheckOpt LINKER_CheckOut LibraryHeaderLib LibraryHeaderOpt"; + @string %CSF_SYMBOLS += " JavaHome JavaLibs JAVA_COMPILER JAVA_JNI JAVA_INCLUDE"; + @string %CSF_SYMBOLS += " TCL_INCLUDE X11_INCLUDE XMU_INCLUDE MOTIF_INCLUDE OPENGL_INCLUDE SOCKETLibs FPELibs ThreadLibs kernel32 advapi32 gdi32 user32 glu32 opengl32 wsock32 dpsLibs XwLibs OpenGlLibs MotifLibs TclLibs TclTkLibs DOXIGEN_HOME FREETYPE_INCLUDES FTGL_INCLUDES CSF_FTGL CSF_GL2PS_INCLUDES CSF_GL2PS GRAPVIZ_HOME CSF_QT_INCLUDES CSF_QT"; + + @set %CSF_CREATECOMP_DEP = "Yes"; + @set %CSF_USE_EXTERNLIB = "Yes"; + + @set %CSF_C_COMPILER = ""; + @set %CSF_C_SysOptions = ""; + @set %CSF_C_Options = ""; + @set %CSF_C_ModeOpt = ""; + @set %CSF_C_ModeOptDeb = ""; + + @set %CSF_CXX_COMPILER = ""; + @set %CSF_CXX_SysOptions = ""; + @set %CSF_CXX_Options = ""; + @set %CSF_CXX_ModeOpt = ""; + @set %CSF_CXX_ModeOptDeb = ""; + + @set %CSF_F77_COMPILER = ""; + @set %CSF_F77_SysOptions = ""; + @set %CSF_F77_Options = ""; + @set %CSF_F77_ModeOpt = ""; + @set %CSF_F77_ModeOptDeb = ""; + + @set %CSF_LINKER = ""; + @set %CSF_CSF_VirtualDevice = ""; + @set %CSF_LINKER_DBMSOpt = ""; + @set %CSF_LINKER_SysShared = ""; + @set %CSF_LINKER_SysExe = ""; + @set %CSF_LINKER_SysExeC = ""; + @set %CSF_LINKER_SysExeW = ""; + @set %CSF_LINKER_SysOpt = ""; + @set %CSF_LINKER_SysLib = ""; + @set %CSF_LINKER_CheckOpt = ""; + @set %CSF_LINKER_CheckOut = ""; + + @set %CSF_LibraryHeaderLib = ""; + @set %CSF_LibraryHeaderOpt = ""; + + @set %CSF_JavaHome = ""; + @set %CSF_JavaLibs = ""; + + @string %CSF_C_INCLUDE = ""; + @string %CSF_CXX_INCLUDE = ""; + + @set %CSF_TCL_HOME = ""; + -- workaround against dummy code in WOKSH_CMPLRS.edl that append -I%CSF_TCL_INCLUDE + @set %CSF_TCL_INCLUDE = ": "; + @set %CSF_JAVA_INCLUDE = ""; + + @set %CSF_X11_INCLUDE = ""; + @set %CSF_X11_INCLUDE_EXTENSION = ""; + @set %CSF_XMU_INCLUDE = ""; + @set %CSF_MOTIF_INCLUDE = ""; + @set %CSF_OPENGL_INCLUDE = ""; + + @set %CSF_SOCKETLibs = ""; + @set %CSF_RISCRETURNObject = ""; + @set %CSF_FPELibs = ""; + @set %CSF_ThreadLibs = ""; + + @set %CSF_kernel32 = ""; + @set %CSF_advapi32 = ""; + @set %CSF_gdi32 = ""; + @set %CSF_user32 = ""; + @set %CSF_glu32 = ""; + @set %CSF_opengl32 = ""; + @set %CSF_wsock32 = ""; + + @set %CSF_AviLibs = ""; + + @set %CSF_dpsLibs = ""; + @set %CSF_XwLibs = ""; + @set %CSF_OpenGlLibs = ""; + @set %CSF_MotifLibs = ""; + + @set %CSF_TclLibs = ""; + @set %CSF_TclTkLibs = ""; + + @set %CSF_FreeImagePlus = ""; + @set %CSF_FREETYPE_INCLUDES = ""; + @set %CSF_FTGL_INCLUDES = ""; + @set %CSF_FTGL = ""; + @set %CSF_GL2PS_INCLUDES = ""; + @set %CSF_GL2PS = ""; + @set %CSF_TBB_INCLUDES = ""; + @set %CSF_TBB = ""; + + @set %CSF_QT_INCLUDES = ""; + @set %CSF_QT = ""; + + @set %CSF_OODBLibs = ""; + @set %CSF_STANDARDDB = "StandardTRAN"; + @set %STLPortHome = ""; + @set %STLPortInclude = ""; + @set %STLPortLib = ""; + + @set %CSF_DOXIGEN = "doxygen"; + @set %CSF_GRAPHVIZ_HOME = ""; + + @ifnotdefined (%DBMS) then + @set %DBMS = "DFLT"; + @endif; - @set %STLPortHome = ""; - @if ( %STLPortHome != "") then - @string %STLPortInclude = "-I" %STLPortHome "/stlport"; - @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_xlC50"; - @else - @set %STLPortInclude = ""; - @set %STLPortLib = ""; - @endif; + @if (%DBMS == "DFLT") then + @set %CSF_STANDARDDB = "StandardCSFDB"; + @endif; + @if (%DBMS == "OBJY") then + @set %CSF_STANDARDDB = "StandardOBJY"; + @endif; - @set %CSF_SOCKETLibs = " " ; + @if (%DBMS == "OBJS") then + @set %CSF_STANDARDDB = "StandardOBJS"; + @endif; - @set %CSF_TCL_HOME = "/missing/missing "; - @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include "; + -- Defines to turn on optional 3rd-parties + @set %ENV_HAVE_FREEIMAGE = "${HAVE_FREEIMAGE}"; + @set %ENV_HAVE_GL2PS = "${HAVE_GL2PS}"; + @set %ENV_HAVE_TBB = "${HAVE_TBB}"; + @set %CSF_PRODUCTS_DEFINES = ""; + @if (%ENV_HAVE_FREEIMAGE == "true") then + @string %CSF_PRODUCTS_DEFINES = %CSF_PRODUCTS_DEFINES " -DHAVE_FREEIMAGE"; + @if (%Station != "wnt") then + @set %CSF_FreeImagePlus = "-lfreeimageplus "; + @endif; + @endif; + @if (%ENV_HAVE_GL2PS == "true") then + @string %CSF_PRODUCTS_DEFINES = %CSF_PRODUCTS_DEFINES " -DHAVE_GL2PS"; + @if (%Station != "wnt") then + @set %CSF_GL2PS = "-lgl2ps "; + @endif; + @endif; + @if (%ENV_HAVE_TBB == "true") then + @string %CSF_PRODUCTS_DEFINES = %CSF_PRODUCTS_DEFINES " -DHAVE_TBB"; + @if (%Station != "wnt") then + @set %CSF_TBB = "-ltbb -ltbbmalloc "; + @endif; + @endif; - @set %CSF_ThreadLibs = "-lpthread" ; + -- On UNIX systems default configuration file 'config.h' + -- placed in ${WOKHOME}/lib folder. + @set %CSF_WOKHOME = "${WOKHOME}"; + @string %CSF_C_INCLUDE = " -I" %CSF_WOKHOME "/lib "; + @string %CSF_CXX_INCLUDE = " -I" %CSF_WOKHOME "/lib "; - @set %X11_LIB = "/usr/lpp/X11/lib/R6"; - @set %CSF_XwLibs = "-L/usr/lpp/X11/lib/R6 -lX11 -lXext -lXmu "; + -- + -- For Linux platforms + -- + @if (%Station == "lin") then + @ifnotdefined (%CSF_LIN_EDL) then + @uses "CSF_LIN.edl"; + @endif; + @endif; - @set %OPENGL_LIB = "/usr/lpp/OpenGL/lib"; - @string %CSF_OpenGlLibs = "-L" %OPENGL_LIB " -lGLU -lGL "; + -- + -- For Windows platforms + -- + @if (%Station == "wnt") then + @ifnotdefined (%CSF_WNT_EDL) then + @uses "CSF_WNT.edl"; + @endif; + @endif; - @string %CSF_TclLibs = "-I" %CSF_TCL_HOME "/lib/libtcl.exp "; - @string %CSF_TclTkLibs = "-I" %CSF_TCL_HOME "/lib/libtk.exp "; + -- + -- For MacOS platforms (not supported) + -- + @if (%Station == "mac") then + @ifnotdefined (%CSF_MAC_EDL) then + @uses "CSF_MAC.edl"; + @endif; + @endif; + -- + -- For SunOS platforms (not supported) + -- + @if (%Station == "sun") then + @ifnotdefined (%CSF_SUN_EDL) then + @uses "CSF_SUN.edl"; + @endif; + @endif; - @string %CSF_JavaHome = "/missing/JavaHome"; - @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/aix "; - @set %CSF_JAVA_COMPILER = "javac"; - @set %CSF_JAVA_JNI = "javah"; + -- + -- The Dec Ultrix platform (not supported) + -- + @if (%Station == "ao1") then + @ifnotdefined (%CSF_AO1_EDL) then + @uses "CSF_AO1.edl"; + @endif; + @endif; + -- + -- The IRIX platform is (not supported) + -- + @if (%Station == "sil") then + @ifnotdefined (%CSF_SIL_EDL) then + @uses "CSF_SIL.edl"; + @endif; + @endif; + -- + -- The HP-UX platform is (not supported) + -- + @if (%Station == "hp") then + @ifnotdefined (%CSF_HP_EDL) then + @uses "CSF_HP.edl"; + @endif; @endif; -- - -- For Mac platforms (not supported) + -- The AIX platform is (not supported) -- - @if ( %Station == "mac" ) then - @if ( %DBMS == "OBJS" ) then - @set %CSF_OODBLibs = ""; - @endif; - - --<< TODO : If applicable , modify the location of the C++ compiler. - @set %CSF_CXX_COMPILER = "/usr/bin/g++ "; - -->> END TODO - @set %STLPortHome = ""; - @if ( %STLPortHome != "") then - @string %STLPortInclude = ""; - @string %STLPortLib = ""; - @else - @set %STLPortInclude = " -I/sw/include "; - @set %STLPortLib = ""; - @endif; - @set %CSF_CXX_SysOptions = "-fPIC -funsigned-char -Wall -fmessage-length=0"; - @string %CSF_CXX_Options = " -DOCC_CONVERT_SIGNALS " %STLPortInclude; - @set %CSF_CXX_ModeOpt = " -O3 -DNDEBUG -DNo_Exception "; - @set %CSF_CXX_ModeOptDeb = " -gdwarf-2 -O0 -DDEB -D_DEBUG "; - - --<< TODO : If applicable , modify the location of the c compiler. - @set %CSF_C_COMPILER = "/usr/bin/gcc "; - @string %CSF_C_INCLUDE += ""; - -->> END TODO - - @set %CSF_C_SysOptions = "-fPIC -funsigned-char -Wall -fexceptions"; - @set %CSF_C_Options = ""; - @set %CSF_C_ModeOpt = " -O3 -DNDEBUG -DNo_Exception "; - @set %CSF_C_ModeOptDeb = " -gdwarf-2 -O0 -DDEB -D_DEBUG "; - - --<< TODO : If applicable , modify the location of the Fortran compiler. - @set %CSF_F77_COMPILER = "/sw/bin/gfortran "; - -->> END TODO - - @set %CSF_F77_SysOptions = "-fPIC "; - @set %CSF_F77_ModeOpt = " -O3 -DNDEBUG -DNo_Exception "; - @set %CSF_F77_ModeOptDeb = " -gdwarf-2 -DDEB -D_DEBUG "; - - @set %CSF_LINKER = "/usr/bin/ld "; - @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER ; - @set %CSF_LINKER_DBMSOpt = ""; - @set %CSF_LINKER_SysShared = "-dynamiclib -Wl,-single_module "; - @set %CSF_LINKER_SysExe = ""; - @set %CSF_LINKER_SysOpt = ""; - @set %CSF_LINKER_SysLib = "-ldl -lc "; - @set %CSF_LINKER_CheckOpt = " -nostartfiles "; - @set %CSF_LINKER_CheckOut = " -o /dev/null "; - @set %CSF_SOCKETLibs = " -ldl" ; - - --<< TODO : If applicable , modify the root location where TCL is installed. - @set %CSF_TCL_HOME = "/sw"; - -->> END TODO - - @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include "; - - --<< TODO : If applicable , modify the root location where Java is installed. - @set %CSF_JavaHome = "/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home"; - -->> END TODO - - @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/Headers" ; - @set %CSF_JAVA_COMPILER = "javac"; - @set %CSF_JAVA_JNI = "javah"; - - @set %CSF_DOXIGEN = "/PRODUCTS/maintenance/Linux/doxygen-1.4.1/bin/doxygen"; - @set %CSF_GRAPHVIZ_HOME = "/PRODUCTS/maintenance/Linux/graphviz/bin"; - - @set %CSF_X11_INCLUDE = "-I/usr/X11R6/include "; - @set %CSF_OPENGL_INCLUDE = "-I/usr/X11R6/include "; - - @set %X11_LIB = "/usr/X11R6/lib"; - - @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu -lXi "; - - @string %CSF_OpenGlLibs = %CSF_XwLibs " -lGLU -lGL " ; - - @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib -ltcl "; - @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -ltk -L" %X11_LIB " -lX11"; + @if (%Station == "aix") then + @ifnotdefined (%CSF_AIX_EDL) then + @uses "CSF_AIX.edl"; + @endif; @endif; - -- - -- For FreeBSD platforms (not supported) - -- - @if ( %Station == "bsd" ) then - @if ( %DBMS == "OBJS" ) then - @set %CSF_OODBLibs = ""; - @endif; - - --<< TODO : If applicable , modify the location of the C++ compiler. - @set %CSF_CXX_COMPILER = "c++ "; - -->> END TODO - @set %STLPortHome = ""; - @if ( %STLPortHome != "") then - @string %STLPortInclude = "-I" %STLPortHome "/stlport "; - @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_gcc"; - @else - @set %STLPortInclude = "/usr/local/include/stlport"; - @string %STLPortLib = "-L/usr/local/lib -lstlport_gcc"; - @endif; - @set %CSF_CXX_SysOptions = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -fPIC -funsigned-char -Wall -fmessage-length=0"; - @string %CSF_CXX_Options = "-DLIN -DLININTEL -DNO_CXX_EXCEPTION " %STLPortInclude; - - --<< TODO : If applicable , modify the location of the C compiler. - @set %CSF_C_COMPILER = "cc "; - @string %CSF_C_INCLUDE += ""; - -->> END TODO - - @set %CSF_C_SysOptions = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -fPIC -funsigned-char -Wall"; - @set %CSF_C_Options = "-DLIN -DLININTEL "; - - --<< TODO : If applicable , modify the location of the Fortran compiler. - @set %CSF_F77_COMPILER = "gfortran42 "; - -->> END TODO - - @set %CSF_F77_SysOptions = "-O -fPIC "; - - @set %CSF_LINKER = "ld "; - @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER ; - @set %CSF_LINKER_DBMSOpt = ""; - @set %CSF_LINKER_SysShared = "-shared "; - @set %CSF_LINKER_SysExe = ""; - @set %CSF_LINKER_SysOpt = ""; - @set %CSF_LINKER_SysLib = "-ldl -lc "; - @set %CSF_LINKER_CheckOpt = " -nostartfiles "; - @set %CSF_LINKER_CheckOut = " -o /dev/null "; - @set %CSF_SOCKETLibs = " -ldl" ; - - --<< TODO : If applicable , modify the root location where TCL is installed. - @set %CSF_TCL_HOME = "/usr/local"; - -->> END TODO - - @string %CSF_TCL_INCLUDE = "/usr/local/include/tcl8.4 "; - - --<< TODO : If applicable , modify the root location where Java is installed. - @set %CSF_JavaHome = "/usr/local/diablo-jdk1.5.0"; - -->> END TODO - - @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/freebsd "; - @set %CSF_JAVA_COMPILER = "javac"; - @set %CSF_JAVA_JNI = "javah"; - - @set %CSF_DOXIGEN = "/usr/local/bin/doxygen"; - @set %CSF_GRAPHVIZ_HOME = "/usr/local/lib/graphviz"; - - @set %CSF_X11_INCLUDE = "-I/usr/X11R6/include "; - @set %CSF_OPENGL_INCLUDE = "-I/usr/X11R6/include "; - - @set %X11_LIB = "/usr/X11R6/lib"; - - @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu -lXi "; - - @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL " ; - - @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib -ltcl "; - @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -ltk -L" %X11_LIB " -lX11"; - @endif; + -- + -- For FreeBSD platforms (not supported) + -- + @if (%Station == "bsd") then + @ifnotdefined (%CSF_BSD_EDL) then + @uses "CSF_BSD.edl"; + @endif; + @endif; @endif; diff --git a/src/WOKBuilderDef/CSF_AIX.edl b/src/WOKBuilderDef/CSF_AIX.edl new file mode 100644 index 0000000..0a323cc --- /dev/null +++ b/src/WOKBuilderDef/CSF_AIX.edl @@ -0,0 +1,47 @@ +-- +-- This is configuration file for AIX platform (not supported). +-- Included into "CSF.edl". +-- +@ifnotdefined (%CSF_AIX_EDL) then + @set %CSF_AIX_EDL = ""; + + @if (%DBMS == "OBJS") then + @set %CSF_OODBLibs = ""; + @endif; + + @set %CSF_C_COMPILER = "xlC_r "; + @string %CSF_C_INCLUDE += ""; + @set %CSF_CXX_COMPILER = "xlC_r "; + @set %CSF_F77_COMPILER = "/usr/bin/f77 "; + + @set %STLPortHome = ""; + @if (%STLPortHome != "") then + @string %STLPortInclude = "-I" %STLPortHome "/stlport"; + @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_xlC50"; + @else + @set %STLPortInclude = ""; + @set %STLPortLib = ""; + @endif; + + @set %CSF_SOCKETLibs = " "; + + @set %CSF_TCL_HOME = "/missing/missing "; + @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include "; + + @set %CSF_ThreadLibs = "-lpthread"; + + @set %X11_LIB = "/usr/lpp/X11/lib/R6"; + @set %CSF_XwLibs = "-L/usr/lpp/X11/lib/R6 -lX11 -lXext -lXmu "; + + @set %OPENGL_LIB = "/usr/lpp/OpenGL/lib"; + @string %CSF_OpenGlLibs = "-L" %OPENGL_LIB " -lGLU -lGL "; + + @string %CSF_TclLibs = "-I" %CSF_TCL_HOME "/lib/libtcl.exp "; + @string %CSF_TclTkLibs = "-I" %CSF_TCL_HOME "/lib/libtk.exp "; + + @string %CSF_JavaHome = "/missing/JavaHome"; + @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/aix "; + @set %CSF_JAVA_COMPILER = "javac"; + @set %CSF_JAVA_JNI = "javah"; + +@endif; diff --git a/src/WOKBuilderDef/CSF_AO1.edl b/src/WOKBuilderDef/CSF_AO1.edl new file mode 100644 index 0000000..c759666 --- /dev/null +++ b/src/WOKBuilderDef/CSF_AO1.edl @@ -0,0 +1,51 @@ +-- +-- This is configuration file for Dec Ultrix platform (not supported). +-- Included into "CSF.edl". +-- +@ifnotdefined (%CSF_AO1_EDL) then + @set %CSF_AO1_EDL = ""; + + @if (%DBMS == "OBJS") then + @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.2/lib/ -los -losthr -loscol -losmop"; + @endif; + + @set %CSF_C_COMPILER = "cc "; + @string %CSF_C_INCLUDE += ""; + @set %CSF_CXX_COMPILER = "/usr/bin/cxx "; + @set %CSF_F77_COMPILER = ""; + + @set %STLPortHome = "/dn01/KAS/STLport-4.5.3"; + @if (%STLPortHome != "") then + @string %STLPortInclude = "-I" %STLPortHome "/stlport"; + @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_dec"; + @else + @set %STLPortInclude = ""; + @set %STLPortLib = ""; + @endif; + + @set %CSF_CXX_SysOptions = "-shared "; + @set %CSF_CXX_Options = "-DDECOSF1 -DOCC_CONVERT_SIGNALS -D__USE_STD_IOSTREAM "; + @set %CSF_CXX_INCLUDE = "-I/usr/include/cxx -I/dn01/KAS/dev/Dec "; + + @set %CSF_C_SysOptions = ""; + @set %CSF_C_Options = "-DDECOSF1 -O3 -DOCC_CONVERT_SIGNALS"; + + @set %CSF_TCL_HOME = "/usr/tcltk"; + @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include/itcl "; + + @string %CSF_JavaHome = "/PRODUCTS/java/j2sdk1_3_1"; + @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/solaris "; + @set %CSF_JAVA_COMPILER = "javac"; + @set %CSF_JAVA_JNI = "javah"; + + @set %CSF_ThreadLibs = "-lpthread"; + + @set %X11_LIB = "/usr/shlib"; + @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu"; + @set %CSF_dpsLibs = "-ldps"; + @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL " %CSF_XwLibs; + + @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib/itcl -ltcl7.5i"; + @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib/itcl -ltk4.1i " %CSF_XwLibs; + +@endif; diff --git a/src/WOKBuilderDef/CSF_BSD.edl b/src/WOKBuilderDef/CSF_BSD.edl new file mode 100644 index 0000000..9ebbdf1 --- /dev/null +++ b/src/WOKBuilderDef/CSF_BSD.edl @@ -0,0 +1,80 @@ +-- +-- This is configuration file for FreeBSD platform (not supported). +-- Included into "CSF.edl". +-- +@ifnotdefined (%CSF_BSD_EDL) then + @set %CSF_BSD_EDL = ""; + + @if (%DBMS == "OBJS") then + @set %CSF_OODBLibs = ""; + @endif; + + --<< TODO : If applicable , modify the location of the C++ compiler. + @set %CSF_CXX_COMPILER = "c++ "; + -->> END TODO + @set %STLPortHome = ""; + @if (%STLPortHome != "") then + @string %STLPortInclude = "-I" %STLPortHome "/stlport "; + @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_gcc"; + @else + @set %STLPortInclude = "/usr/local/include/stlport"; + @string %STLPortLib = "-L/usr/local/lib -lstlport_gcc"; + @endif; + + @set %CSF_CXX_SysOptions = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -fPIC -funsigned-char -Wall -fmessage-length=0"; + @string %CSF_CXX_Options = "-DLIN -DLININTEL -DNO_CXX_EXCEPTION " %STLPortInclude; + + --<< TODO : If applicable , modify the location of the C compiler. + @set %CSF_C_COMPILER = "cc "; + @string %CSF_C_INCLUDE += ""; + -->> END TODO + + @set %CSF_C_SysOptions = "-O2 -fno-strict-aliasing -pipe -march=pentiumpro -fPIC -funsigned-char -Wall"; + @set %CSF_C_Options = "-DLIN -DLININTEL "; + + --<< TODO : If applicable , modify the location of the Fortran compiler. + @set %CSF_F77_COMPILER = "gfortran42 "; + -->> END TODO + + @set %CSF_F77_SysOptions = "-O -fPIC "; + + @set %CSF_LINKER = "ld "; + @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER; + @set %CSF_LINKER_DBMSOpt = ""; + @set %CSF_LINKER_SysShared = "-shared "; + @set %CSF_LINKER_SysExe = ""; + @set %CSF_LINKER_SysOpt = ""; + @set %CSF_LINKER_SysLib = "-ldl -lc "; + @set %CSF_LINKER_CheckOpt = " -nostartfiles "; + @set %CSF_LINKER_CheckOut = " -o /dev/null "; + @set %CSF_SOCKETLibs = " -ldl"; + + --<< TODO : If applicable , modify the root location where TCL is installed. + @set %CSF_TCL_HOME = "/usr/local"; + -->> END TODO + + @string %CSF_TCL_INCLUDE = "/usr/local/include/tcl8.4 "; + + --<< TODO : If applicable , modify the root location where Java is installed. + @set %CSF_JavaHome = "/usr/local/diablo-jdk1.5.0"; + -->> END TODO + + @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/freebsd "; + @set %CSF_JAVA_COMPILER = "javac"; + @set %CSF_JAVA_JNI = "javah"; + + @set %CSF_DOXIGEN = "/usr/local/bin/doxygen"; + @set %CSF_GRAPHVIZ_HOME = "/usr/local/lib/graphviz"; + + @set %CSF_X11_INCLUDE = "-I/usr/X11R6/include "; + @set %CSF_OPENGL_INCLUDE = "-I/usr/X11R6/include "; + + @set %X11_LIB = "/usr/X11R6/lib"; + + @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu -lXi "; + @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL "; + + @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib -ltcl "; + @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -ltk -L" %X11_LIB " -lX11"; + +@endif; diff --git a/src/WOKBuilderDef/CSF_HP.edl b/src/WOKBuilderDef/CSF_HP.edl new file mode 100644 index 0000000..8460308 --- /dev/null +++ b/src/WOKBuilderDef/CSF_HP.edl @@ -0,0 +1,54 @@ +-- +-- This is configuration file for HP-UX platform (not supported). +-- Included into "CSF.edl". +-- +@ifnotdefined (%CSF_HP_EDL) then + @set %CSF_HP_EDL = ""; + + @if (%DBMS == "OBJS") then + @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.2/lib/ -los -losthr -loscol -losmop"; + @endif; + + @set %CSF_C_COMPILER = "cc "; + @string %CSF_C_INCLUDE += ""; + @set %CSF_CXX_COMPILER = "/opt/aCC/bin/aCC "; + @set %CSF_F77_COMPILER = "f77 "; + @set %STLPortHome = ""; + @if (%STLPortHome != "") then + @string %STLPortInclude = "-I" %STLPortHome "/stlport"; + @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_aCC"; + @else + @set %STLPortInclude = ""; + @set %STLPortLib = ""; + @endif; + + @string %CSF_CXX_Options = " -w -DHPUX -D_IOSTREAM_INIT_NOT_NEEDED " %STLPortInclude; + @set %CSF_C_Options = " -DHPUX "; + + @set %CSF_TCL_HOME = "/missing/missing "; + @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include "; + + @set %CSF_X11_INCLUDE = "-I/usr/include/X11R6 "; + @set %CSF_XMU_INCLUDE = "-I/usr/contrib/X11R6/include "; + @set %CSF_MOTIF_INCLUDE = "-I/usr/include/Motif1.2 "; + @set %CSF_OPENGL_INCLUDE = "-I/opt/graphics/OpenGL/include "; + + @set %CSF_SOCKETLibs = ""; + @set %CSF_ThreadLibs = "-lpthread"; + + @set %X11_LIB = "/usr/lib/X11R6"; + @set %XMU_LIB = "/PRODUCTS/Xmu-R6"; + @set %OPENGL_LIB = "/opt/graphics/OpenGL/lib"; + + @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -L" %XMU_LIB " -lXmu"; + @string %CSF_OpenGlLibs = "-L" %OPENGL_LIB " -lGLU -lGL "; + + @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib -ltcl"; + @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -ltk"; + + @string %CSF_JavaHome = "/missing/JavaHome"; + @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/hp-ux "; + @set %CSF_JAVA_COMPILER = "javac"; + @set %CSF_JAVA_JNI = "javah"; + +@endif; diff --git a/src/WOKBuilderDef/CSF_LIN.edl b/src/WOKBuilderDef/CSF_LIN.edl new file mode 100644 index 0000000..c62b500 --- /dev/null +++ b/src/WOKBuilderDef/CSF_LIN.edl @@ -0,0 +1,79 @@ +-- +-- This is configuration file for Linux platform. +-- Included into "CSF.edl". +-- +@ifnotdefined (%CSF_LIN_EDL) then + @set %CSF_LIN_EDL = ""; + + @if (%DBMS == "OBJS") then + @set %CSF_OODBLibs = ""; + @endif; + + -- gcc tools should be available in PATH + -- C++ compiler + @set %CSF_CXX_COMPILER = "g++ "; + @set %CSF_CXX_SysOptions = " -fPIC -DPIC"; + @string %CSF_CXX_Options = " -DLIN -DLININTEL -DOCC_CONVERT_SIGNALS -D_GNU_SOURCE=1 " %CSF_PRODUCTS_DEFINES " "; + @set %CSF_CXX_ModeOpt = " -O3 -DNDEBUG -DNo_Exception "; + @set %CSF_CXX_ModeOptDeb = " -g -O0 -DDEB -D_DEBUG "; + + -- C compiler + @set %CSF_C_COMPILER = "gcc "; + @string %CSF_C_INCLUDE += ""; + @set %CSF_C_SysOptions = " -fPIC -DPIC"; + @set %CSF_C_Options = " -DLIN -DLININTEL -D_GNU_SOURCE=1 "; + @set %CSF_C_ModeOpt = " -O3 -DNDEBUG -DNo_Exception "; + @set %CSF_C_ModeOptDeb = " -O0 -g -DDEB -D_DEBUG "; + + -- Fortran compiler + @set %CSF_F77_COMPILER = "f77 "; + @set %CSF_F77_SysOptions = " -fPIC "; + @set %CSF_F77_ModeOpt = " -O3 -DNDEBUG -DNo_Exception "; + @set %CSF_F77_ModeOptDeb = " -g -DDEB -D_DEBUG "; + + -- Linker settings + @string %CSF_LINKER = "ld "; + @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER; + @set %CSF_LINKER_DBMSOpt = ""; + @set %CSF_LINKER_SysShared = "-shared "; + @set %CSF_LINKER_SysExe = ""; + @set %CSF_LINKER_SysOpt = ""; + @set %CSF_LINKER_SysLib = "-lc "; + @set %CSF_LINKER_CheckOpt = "-Bdynamic "; + @set %CSF_LINKER_CheckOut = "-o /dev/null "; + @set %CSF_SOCKETLibs = " -ldl"; + + -- Java compiler + @set %CSF_JAVA_COMPILER = "javac"; + @set %CSF_JAVA_JNI = "javah"; + @if (%CSF_JavaHome != "") then + @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/linux "; + @endif; + + @if (%CSF_GRAPHVIZ_HOME == "") then + @set %CSF_GRAPHVIZ_HOME = "/usr/bin"; + @endif; + + -- system libraries (X11 / pthreads / OpenGL) + @set %CSF_X11_INCLUDE = "-I/usr/include "; + @set %CSF_OPENGL_INCLUDE = "-I/usr/include "; + @set %CSF_ThreadLibs = "-lpthread -lrt"; + @set %X11_LIB = "/usr/X11R6/lib"; + @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu -lXi "; + @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL "; + @string %CSF_MotifLibs = "-L" %X11_LIB " -lX11 "; + + -- Tcl/Tk configuration + @if (%CSF_TCL_HOME != "") then + @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include "; + @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib -ltcl8.5 "; + @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -ltk8.5 -L" %X11_LIB " -lX11 "; + @else + @string %CSF_TclLibs = " -ltcl8.5 "; + @string %CSF_TclTkLibs = " -ltk8.5 -L" %X11_LIB " -lX11 "; + @endif; + + -- FTGL (font renderer for OpenGL) + @set %CSF_FTGL = "-lftgl "; + +@endif; diff --git a/src/WOKBuilderDef/CSF_MAC.edl b/src/WOKBuilderDef/CSF_MAC.edl new file mode 100644 index 0000000..2d8c52f --- /dev/null +++ b/src/WOKBuilderDef/CSF_MAC.edl @@ -0,0 +1,76 @@ +-- +-- This is configuration file for MacOS platform (not supported). +-- Included into "CSF.edl". +-- +@ifnotdefined (%CSF_MAC_EDL) then + @set %CSF_MAC_EDL = ""; + + @if (%DBMS == "OBJS") then + @set %CSF_OODBLibs = ""; + @endif; + + @set %CSF_CXX_COMPILER = "g++ "; + + @set %CSF_CXX_SysOptions = " -fPIC -funsigned-char -Wall -fmessage-length=0"; + @string %CSF_CXX_Options = " -DOCC_CONVERT_SIGNALS " %CSF_PRODUCTS_DEFINES " "; + @set %CSF_CXX_ModeOpt = " -O3 -DNDEBUG -DNo_Exception "; + @set %CSF_CXX_ModeOptDeb = " -gdwarf-2 -O0 -DDEB -D_DEBUG "; + + @set %CSF_C_COMPILER = "gcc "; + @string %CSF_C_INCLUDE += ""; + + @set %CSF_C_SysOptions = " -fPIC -funsigned-char -Wall -fexceptions"; + @set %CSF_C_Options = ""; + @set %CSF_C_ModeOpt = " -O3 -DNDEBUG -DNo_Exception "; + @set %CSF_C_ModeOptDeb = " -gdwarf-2 -O0 -DDEB -D_DEBUG "; + + -- Fortran compiler + @set %CSF_F77_COMPILER = "/sw/bin/gfortran "; + @set %CSF_F77_SysOptions = " -fPIC "; + @set %CSF_F77_ModeOpt = " -O3 -DNDEBUG -DNo_Exception "; + @set %CSF_F77_ModeOptDeb = " -gdwarf-2 -DDEB -D_DEBUG "; + + -- Linker settings + @set %CSF_LINKER = "ld "; + @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER ; + @set %CSF_LINKER_DBMSOpt = ""; + @set %CSF_LINKER_SysShared = "-dynamiclib -Wl,-single_module "; + @set %CSF_LINKER_SysExe = ""; + @set %CSF_LINKER_SysOpt = ""; + @set %CSF_LINKER_SysLib = "-ldl -lc "; + @set %CSF_LINKER_CheckOpt = " -nostartfiles "; + @set %CSF_LINKER_CheckOut = " -o /dev/null "; + @set %CSF_SOCKETLibs = " -ldl"; + + -- Java compiler + @set %CSF_JAVA_COMPILER = "javac"; + @set %CSF_JAVA_JNI = "javah"; + @set %CSF_JavaHome = "/System/Library/Frameworks/JavaVM.framework/Home"; + @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include "; + + @set %CSF_DOXIGEN = "/PRODUCTS/maintenance/Linux/doxygen-1.4.1/bin/doxygen"; + @set %CSF_GRAPHVIZ_HOME = "/PRODUCTS/maintenance/Linux/graphviz/bin"; + + @set %CSF_X11_INCLUDE = "-I/usr/X11R6/include "; + @set %CSF_OPENGL_INCLUDE = "-I/usr/X11R6/include "; + + @set %X11_LIB = "/usr/X11R6/lib"; + + @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu -lXi "; + @string %CSF_OpenGlLibs = %CSF_XwLibs " -lGLU -lGL "; + @string %CSF_MotifLibs = "-L" %X11_LIB " -lX11 "; + + -- Tcl/Tk configuration + @if (%CSF_TCL_HOME != "") then + @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include "; + @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib -ltcl8.5 "; + @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -ltk8.5 -L" %X11_LIB " -lX11 "; + @else + @string %CSF_TclLibs = " -ltcl8.5 "; + @string %CSF_TclTkLibs = " -ltk8.5 -L" %X11_LIB " -lX11 "; + @endif; + + -- FTGL (font renderer for OpenGL) + @set %CSF_FTGL = "-lftgl "; + +@endif; diff --git a/src/WOKBuilderDef/CSF_SIL.edl b/src/WOKBuilderDef/CSF_SIL.edl new file mode 100644 index 0000000..6030ccb --- /dev/null +++ b/src/WOKBuilderDef/CSF_SIL.edl @@ -0,0 +1,71 @@ +-- +-- This is configuration file for IRIX platform (not supported). +-- Included into "CSF.edl". +-- +@ifnotdefined (%CSF_SIL_EDL) then + @set %CSF_SIL_EDL = ""; + + @if (%DBMS == "OBJS") then + @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.3/lib/ -los -losths -loscol -losmop"; + @endif; + + @set %CSF_C_COMPILER = "cc "; + @string %CSF_C_INCLUDE += ""; + @set %CSF_C_SysOptions = " -signed -n32 -mips4 "; + @set %CSF_C_Options = "-DIRIX "; + @set %CSF_C_ModeOpt = " -O3 -DNo_Exception -TARG:processor=R10000 "; + @set %CSF_C_ModeOptDeb = " -g -gslim -DDEB "; + + @set %CSF_CXX_COMPILER = "/usr/bin/CC "; + @set %STLPortHome = ""; + @if (%STLPortHome != "") then + @string %STLPortInclude = "-I" %STLPortHome "/stlport"; + @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_mipspro"; + @else + @set %STLPortInclude = ""; + @set %STLPortLib = ""; + @endif; + + @set %CSF_CXX_SysOptions = " -signed -n32 -mips4 -woff 3115 -woff 3273 -woff 1021 -woff 1188 -woff 1460 -woff 3303 -ptused"; + @string %CSF_CXX_Options = "-DIRIX -DOCC_CONVERT_SIGNALS " %STLPortInclude; + @set %CSF_CXX_ModeOpt = " -O3 -DNo_Exception -D__INLINE_INTRINSICS -TARG:processor=R10000 "; + @set %CSF_CXX_ModeOptDeb = " -g -gslim -DDEB "; + + @set %CSF_F77_COMPILER = "f77 "; + @set %CSF_F77_ModeOpt = " -O3 "; + @set %CSF_F77_ModeOptDeb = " -g "; + + @set %CSF_LINKER = "/usr/bin/ld"; + @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER; + @set %CSF_LINKER_SysShared = " -shared "; + @set %CSF_LINKER_SysExe = ""; + @set %CSF_LINKER_SysOpt = " -n32 -mips3 -Wl,-mmap -multigot -no_prelink "; + @set %CSF_LINKER_SysLib = ""; + @set %CSF_LINKER_CheckOpt = " -n32 -mips3 -mmap -multigot -no_unresolved "; + @set %CSF_LINKER_CheckOut = " -o /dev/null"; + + @set %CSF_FPELibs = "-L/usr/lib32 -lfpe"; + @set %CSF_pthread = "-lpthread"; + + @set %CSF_TCL_HOME = "/usr/tcltk.64"; + @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include/itcl "; + + @set %CSF_X11_INCLUDE_EXTENSION = " -I/usr/include/X11/extensions "; + + @string %CSF_JavaHome = "/PRODUCTS/java/sil_1.2"; + @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/irix "; + @set %CSF_JAVA_COMPILER = "javac"; + @set %CSF_JAVA_JNI = "javah"; + + @set %CSF_ThreadLibs = "-lpthread"; + + @set %X11_LIB = "/usr/lib32"; + + @set %CSF_dpsLibs = "-L/usr/lib32 -ldps"; + @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu"; + @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL "; + + @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib/itcl -rpath " %CSF_TCL_HOME "/lib/itcl -ltcl7.5i"; + @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib/itcl -rpath " %CSF_TCL_HOME "/lib/itcl -ltk4.1i"; + +@endif; diff --git a/src/WOKBuilderDef/CSF_SUN.edl b/src/WOKBuilderDef/CSF_SUN.edl new file mode 100644 index 0000000..f162dcc --- /dev/null +++ b/src/WOKBuilderDef/CSF_SUN.edl @@ -0,0 +1,92 @@ +-- +-- This is configuration file for SunOS platform (not supported). +-- Included into "CSF.edl". +-- +@ifnotdefined (%CSF_SUN_EDL) then + @set %CSF_SUN_EDL = ""; + + @if (%DBMS == "OBJS") then + @set %CSF_OODBLibs = " -L/PRODUCTS/OS4.0.2/sunpro/lib/ -los -losthr -loscol -losmop"; + @endif; + + --<< TODO : If applicable , modify the location of the C++ compiler. + @set %CSF_CXX_COMPILER = "/opt/DEV5_1/SUNWspro/bin/CC"; + -->> END TODO + + @set %STLPortHome = ""; + @if (%STLPortHome != "") then + @string %STLPortInclude = "-I" %STLPortHome "/stlport"; + @string %STLPortLib = "-L" %STLPortHome "/lib -lstlport_sunpro42"; + @else + @set %STLPortInclude = ""; + @set %STLPortLib = ""; + @endif; + + @set %CSF_CXX_SysOptions = "-PIC -xchip=ultra -xarch=v8 -vdelx -Usun -instances=static "; + @string %CSF_CXX_Options = "-DSOLARIS -DOCC_CONVERT_SIGNALS "%STLPortInclude; + @set %CSF_CXX_ModeOpt = " -O2 -DNo_Exception +w "; + @set %CSF_CXX_ModeOptDeb = " -g0 -DDEB +w "; + @string %CSF_CXX_INCLUDE += " -I" %CSF_CXX_COMPILER "/../../SC4.2/include/CC "; + + --<< TODO : If applicable , modify the location of the c compiler. + @set %CSF_C_COMPILER = "/opt/DEV5_1/SUNWspro/bin/cc "; + @string %CSF_C_INCLUDE += ""; + -->> END TODO + + @set %CSF_C_SysOptions = "-K PIC -Usun "; + @set %CSF_C_Options = "-DSOLARIS "; + @set %CSF_C_ModeOpt = " -O2 -DNo_Exception +w "; + @set %CSF_C_ModeOptDeb = " -g0 -DDEB +w "; + + @set %CSF_F77_COMPILER = "f77 "; + @set %CSF_F77_SysOptions = "-PIC"; + @set %CSF_F77_ModeOpt = " -O2 "; + @set %CSF_F77_ModeOptDeb = " -g "; + + @set %CSF_LINKER = "/usr/ccs/bin/ld "; + @set %CSF_CXX_COMPILERLINKER = %CSF_CXX_COMPILER; + @if (%DBMS == "OBJS") then + @set %CSF_LINKER_DBMSOpt = "-mt "; + @endif; + @set %CSF_LINKER_SysShared = "-G "; + @set %CSF_LINKER_SysExe = ""; + @set %CSF_LINKER_SysOpt = "-xchip=ultra -xarch=v8 "; + @set %CSF_LINKER_SysLib = " -lC -lc "; + @set %CSF_LINKER_CheckOpt = ""; + @set %CSF_LINKER_CheckOut = "-o /dev/null "; + + --<< TODO : If applicable , modify the root location where Java is installed. + @set %CSF_JavaHome = "/PRODUCTS/java/jdk1.2"; + -->> END TODO + + @string %CSF_JAVA_INCLUDE = "-I" %CSF_JavaHome "/include -I" %CSF_JavaHome "/include/solaris "; + @string %CSF_JavaLibs = " -L" %CSF_JavaHome "/jre/lib/sparc/ -ljava "; + @set %CSF_JAVA_COMPILER = "javac"; + @set %CSF_JAVA_JNI = "javah"; + + @set %CSF_DOXIGEN = "/dn02/users_Sun/cascade/doxigen/bin/doxigen"; + @set %CSF_GRAPHVIZ_HOME = "/dn02/users_Sun/cascade/graphviz"; + + @set %CSF_SOCKETLibs = "-lsocket -lnsl -lsunmath -lm -ldl -lc "; + ---@set %CSF_RISCRETURNObject = "/missing/missing/risc_return.o"; + @set %CSF_RISCRETURNObject = "/dn01/KAS/dev/Gallery/src/EngineStarter/risc_return.o"; + --<< TODO : If applicable , modify the root location where TCL is installed. + @set %CSF_TCL_HOME = "/PRODUCTS/tcltk-84"; + -->> END TODO + + @string %CSF_TCL_INCLUDE = %CSF_TCL_HOME "/include -DUSE_NON_CONST "; + @string %CSF_TclLibs = "-L" %CSF_TCL_HOME "/lib -R" %CSF_TCL_HOME "/lib -ltcl8.4 "; + @string %CSF_TclTkLibs = "-L" %CSF_TCL_HOME "/lib -R" %CSF_TCL_HOME "/lib -ltk8.4 "; + + @set %X11_LIB = "/usr/openwin/lib"; + @set %CSF_X11_INCLUDE = "-I/usr/openwin/include/X11 "; + @set %CSF_OPENGL_INCLUDE = "-I/usr/openwin/include "; + + @set %CSF_ThreadLibs = "-lpthread"; + + @string %CSF_dpsLibs = "-L" %X11_LIB " -ldps"; + @string %CSF_XwLibs = "-L" %X11_LIB " -lX11 -lXext -lXmu"; + @string %CSF_OpenGlLibs = "-L" %X11_LIB " -lGLU -lGL "; + @string %CSF_MotifLibs = "-L/usr/dt/lib -lXm -L" %X11_LIB " -lXt -lX11"; + +@endif; diff --git a/src/WOKBuilderDef/CSF_WNT.edl b/src/WOKBuilderDef/CSF_WNT.edl new file mode 100644 index 0000000..ba8a027 --- /dev/null +++ b/src/WOKBuilderDef/CSF_WNT.edl @@ -0,0 +1,83 @@ +-- +-- This is configuration file for Windows platform only. +-- Included into "CSF.edl". +-- +@ifnotdefined (%CSF_WNT_EDL) then + @set %CSF_WNT_EDL = ""; + + -- Target configuration + @set %ENV_ARCH = "${ARCH}"; + @if (%ENV_ARCH == "64") then + @set %CSF_VC_MACHINE = " -machine:X64"; + @set %CSF_ARCH = "64"; + @else + @set %CSF_VC_MACHINE = " -machine:IX86"; + @set %CSF_ARCH = "32"; + @endif; + + -- Visual Studio compilers and tools should be set in PATH + @set %CSF_CXX_COMPILER = "cl.exe "; + @set %CSF_CXX_SysOptions = " -nologo -W3 "; + @string %CSF_CXX_Options = " -DWNT -D_WINDOWS -D_CRT_SECURE_NO_DEPRECATE " %CSF_PRODUCTS_DEFINES " "; + @set %CSF_CXX_ModeOpt = " -MD -EHa -O2 -Gy -DNDEBUG -DNo_Exception "; + @set %CSF_CXX_ModeOptDeb = " -MDd -EHa -Od -Gm -Zi -DDEB -D_DEBUG "; + + -- C compiler + @set %CSF_C_COMPILER = "cl.exe "; + @set %CSF_C_SysOptions = " -nologo -W3 "; + @string %CSF_C_Options = " -DWNT -D_WINDOWS -D_CRT_SECURE_NO_DEPRECATE " %CSF_PRODUCTS_DEFINES " "; + @set %CSF_C_ModeOpt = " -MD -EHa -O2 -Gy -DNDEBUG -DNo_Exception "; + @set %CSF_C_ModeOptDeb = " -MDd -EHa -Od -Gm -Zi -DDEB -D_DEBUG "; + + -- Fortran compiler + @set %CSF_F77_COMPILER = "fl32.exe "; + @set %CSF_F77_SysOptions = " -nologo -libs:dll -Zi "; + @set %CSF_F77_ModeOpt = " -DNDEBUG -DNo_Exception "; + @set %CSF_F77_ModeOptDeb = " -DDEB -D_DEBUG "; + + -- Java compiler + @set %CSF_JAVA_COMPILER = "javac"; + @set %CSF_JAVA_JNI = "javah"; + + -- Linker settings + @set %CSF_LINKER = "link.exe "; + @set %CSF_CXX_COMPILERLINKER = %CSF_LINKER; + @set %CSF_LINKER_DBMSOpt = ""; + @set %CSF_LINKER_SysShared = "-subsystem:windows -dll "; + @set %CSF_LINKER_SysExe = "CSF_LINKER_SysExeC"; + @set %CSF_LINKER_SysExeC = "-subsystem:CONSOLE"; + @set %CSF_LINKER_SysExeW = "-subsystem:WINDOWS"; + @string %CSF_LINKER_SysOpt = "-nologo -incremental:no" %CSF_VC_MACHINE " -debug "; + @set %CSF_LINKER_SysLib = ""; + + @set %CSF_LibraryHeaderLib = "lib.exe "; + @set %CSF_LibraryHeaderOpt = "-nologo "; + + -- WinAPI libraries + @set %CSF_kernel32 = "kernel32.lib"; + @set %CSF_advapi32 = "advapi32.lib"; + @set %CSF_gdi32 = "gdi32.lib"; + @set %CSF_user32 = "user32.lib"; + @set %CSF_glu32 = "glu32.lib"; + @set %CSF_opengl32 = "opengl32.lib"; + @set %CSF_wsock32 = "wsock32.lib"; + @set %CSF_netapi32 = "netapi32.lib"; + @set %CSF_AviLibs = "ws2_32.lib vfw32.lib"; + @set %CSF_OpenGlLibs = "opengl32.lib glu32.lib"; + + -- + -- 3rd-parties precompiled libraries + -- + + -- Tcl/Tk configuration + @string %CSF_TclLibs = "tcl85.lib"; + @string %CSF_TclTkLibs = "tk85.lib"; + + -- FTGL (font renderer for OpenGL) + @string %CSF_FTGL = "ftgl_dynamic_MTD.lib"; + + -- Qt4 framework, doesn't required for OCCT itself + @string %CSF_QT_INCLUDES = " "; + @string %CSF_QT = "QtCore4.lib QtGui4.lib"; + +@endif; diff --git a/src/WOKBuilderDef/JAVA.edl b/src/WOKBuilderDef/JAVA.edl index 7410016..5c2d7b5 100755 --- a/src/WOKBuilderDef/JAVA.edl +++ b/src/WOKBuilderDef/JAVA.edl @@ -15,18 +15,18 @@ %CSF_JavaHome, %JAVA_Command, %JAVA_Options, %IncludeDir, %Source, %OutDir ) is - $%CSF_JavaHome/bin/%JAVA_Command %JAVA_Options -classpath %IncludeDir -d %OutDir %Source\^ + $%JAVA_Command %JAVA_Options -classpath %IncludeDir -d %OutDir %Source\^ @end; @template JAVA_Header ( %CSF_JavaHome, %JAVA_HeaderCommand, %JAVA_HeaderOptions, %IncludeDir, %Class, %OutFile ) is - $%CSF_JavaHome/bin/%JAVA_HeaderCommand %JAVA_HeaderOptions -classpath %IncludeDir -o %OutFile %Class\^ + $%JAVA_HeaderCommand %JAVA_HeaderOptions -classpath %IncludeDir -o %OutFile %Class\^ @end; @endif; -@string %CXX_JAVA = " -I" %CSF_JavaHome "/include "; +--@string %CXX_JAVA = " -I" %CSF_JavaHome "/include "; @if ( %Station == "sun" ) then @string %CXX_JAVA += " -I" %CSF_JavaHome "/include/solaris "; diff --git a/src/WOKBuilderDef/LINK.edl b/src/WOKBuilderDef/LINK.edl index 111554e..ef86129 100755 --- a/src/WOKBuilderDef/LINK.edl +++ b/src/WOKBuilderDef/LINK.edl @@ -1,85 +1,96 @@ --- File : LINK.edl --- Author : Eugeny PLOTNIKOV --- Date : 23-OCT-1996 --- Copyright : MATRA Datavision --- Purpose : Defines tools for link and library management --- ( Microsoft Visual C/C++ V4.1 ) - -@ifnotdefined ( %LINK_EDL ) then +-- File : LINK.edl +-- Author : Eugeny PLOTNIKOV +-- Date : 23-OCT-1996 +-- Copyright : MATRA Datavision +-- Purpose : Defines tools for link and library management (Microsoft Visual C/C++) + +@ifnotdefined (%LINK_EDL) then -- @set %LINK_EDL = ""--; Syntax error - @cout "LINK"; - - @uses "CSF.edl"; - --- filename extension for linker command file ( DLL ) - @set %LINK_LinkerCFExtDLL = ".lnkDLL"; - --- filename extension for linker command file ( EXE ) - @set %LINK_LinkerCFExtEXE = ".lnkEXE"; - --- switch for linker .def file - @set %LINK_LinkerDEFSwitch = " -def:"; - - @set %LINK_LinkerImplib = " -implib:"; - @set %LINK_LinkerOutput = " -out:"; - - - @set %LINKModeOpt = "-debug"; - --- Set %LINK_NoDefStub if you do not want to link with stub objects - @set %LINK_NoDefStub = "1 "; - - @if ( %DebugMode == "True" ) then - @set %LinkModeOpt = "-debug "; - @set %LINK_LinkerPDBOption = " -pdb:"; - @template LINK_LinkerPDB ( %CollectorOutput ) is - $%CollectorOutput.pdb\^ - @end; - @else - @set %LinkModeOpt = " "; - @set %LINK_LinkerPDBOption = " "; - @template LINK_LinkerPDB ( %CollectorOutput ) is - $ \^ - @end; - - @endif; - - - @template LINK_LinkerIMP ( %CollectorOutput ) is - $%CollectorOutput.lib\^ - @end; - - @template LINK_LinkerEXP ( %CollectorOutput ) is - $%CollectorOutput.exp\^ - @end; - - @template LINK_DLLMAN ( %CollectorOutput ) is - $%CollectorOutput.dll.manifest\^ - @end; - - @template LINK_EXEMAN ( %CollectorOutput ) is - $%CollectorOutput.exe.manifest\^ - @end; - - @template LINK_LinkerDLL ( %CollectorOutput ) is - $%CollectorOutput.dll\^ - @end; - - @template LINK_LinkerEXE ( %CollectorOutput ) is - $%CollectorOutput.exe\^ - @end; - - @template LINK_LinkerHeaderDLL ( %CSF_LINKER , - %Station, - %LINKModeOpt ) is - $%CSF_LINKER -nologo -subsystem:windows -dll -incremental:no -machine:IX86 %LINKModeOpt \^ - @end; - - @template LINK_LinkerHeaderEXE ( %CSF_LINKER , - %Station, - %LINKModeOpt, - %LinkSubsystem ) is - $%CSF_LINKER -nologo -subsystem:%LinkSubsystem -incremental:no -machine:IX86 %LINKModeOpt \^ - @end; + @cout "LINK"; + + @uses "CSF.edl"; + + -- filename extension for linker command file ( DLL ) + @set %LINK_LinkerCFExtDLL = ".lnkDLL"; + + -- filename extension for linker command file ( EXE ) + @set %LINK_LinkerCFExtEXE = ".lnkEXE"; + + -- switch for linker .def file + @set %LINK_LinkerDEFSwitch = " -def:"; + + @set %LINK_LinkerImplib = " -implib:"; + @set %LINK_LinkerOutput = " -out:"; + + @set %LINKModeOpt = "-debug"; + + -- Set %LINK_NoDefStub if you do not want to link with stub objects + @set %LINK_NoDefStub = "1 "; + + @if (%DebugMode == "True") then + @set %LinkModeOpt = "-debug "; + @set %LINK_LinkerPDBOption = " -pdb:"; + @template LINK_LinkerPDB (%CollectorOutput) is + $%CollectorOutput.pdb\^ + @end; + @else + @set %LinkModeOpt = " "; + @set %LINK_LinkerPDBOption = " "; + @template LINK_LinkerPDB (%CollectorOutput) is + $ \^ + @end; + @endif; + + @template LINK_LinkerIMP (%CollectorOutput) is + $%CollectorOutput.lib\^ + @end; + + @template LINK_LinkerEXP (%CollectorOutput) is + $%CollectorOutput.exp\^ + @end; + + @template LINK_DLLMAN (%CollectorOutput) is + $%CollectorOutput.dll.manifest\^ + @end; + + @template LINK_EXEMAN (%CollectorOutput) is + $%CollectorOutput.exe.manifest\^ + @end; + + @template LINK_LinkerDLL (%CollectorOutput) is + $%CollectorOutput.dll\^ + @end; + + @template LINK_LinkerEXE (%CollectorOutput) is + $%CollectorOutput.exe\^ + @end; + + @if (%CSF_ARCH == "64") then + @template LINK_LinkerHeaderDLL (%CSF_LINKER, + %Station, + %LINKModeOpt) is + $%CSF_LINKER -nologo -subsystem:windows -dll -incremental:no -machine:X64 %LINKModeOpt \^ + @end; + + @template LINK_LinkerHeaderEXE (%CSF_LINKER, + %Station, + %LINKModeOpt, + %LinkSubsystem) is + $%CSF_LINKER -nologo -subsystem:%LinkSubsystem -incremental:no -machine:X64 %LINKModeOpt \^ + @end; + @else + @template LINK_LinkerHeaderDLL (%CSF_LINKER, + %Station, + %LINKModeOpt) is + $%CSF_LINKER -nologo -subsystem:windows -dll -incremental:no -machine:IX86 %LINKModeOpt \^ + @end; + + @template LINK_LinkerHeaderEXE (%CSF_LINKER, + %Station, + %LINKModeOpt, + %LinkSubsystem) is + $%CSF_LINKER -nologo -subsystem:%LinkSubsystem -incremental:no -machine:IX86 %LINKModeOpt \^ + @end; + @endif; @endif; diff --git a/src/WOKStepsDef/WOKSteps_package.edl b/src/WOKStepsDef/WOKSteps_package.edl index 0e86269..06259bd 100755 --- a/src/WOKStepsDef/WOKSteps_package.edl +++ b/src/WOKStepsDef/WOKSteps_package.edl @@ -55,8 +55,8 @@ @set %WOKSteps_delivery_lib_shared_list_extensions = ".dylib .ImplDep"; @endif; @if (%Station == "wnt") then - @set %WOKSteps_delivery_lib_shared_list_extensions = ".DLL .LIB .PDB .ImplDep"; - @string %WOKSteps_delivery_lib_shared_list_steps +=" obj.implib"; + --@set %WOKSteps_delivery_lib_shared_list_extensions = ".DLL .LIB .PDB .ImplDep"; + --@string %WOKSteps_delivery_lib_shared_list_steps +=" obj.implib"; @endif; @endif; diff --git a/src/WOKStepsDef/WOKSteps_package_wnt.edl b/src/WOKStepsDef/WOKSteps_package_wnt.edl index 15d4da5..d89ef1c 100755 --- a/src/WOKStepsDef/WOKSteps_package_wnt.edl +++ b/src/WOKStepsDef/WOKSteps_package_wnt.edl @@ -6,23 +6,23 @@ @ifnotdefined ( %WOKSteps_package_wnt_EDL) then @set %WOKSteps_package_wnt_EDL = ""; -@string %WOKSteps_DepGroup += " obj.implib "; -@set %WOKSteps_obj_implib = "WOKStep_ImportLibrary(obj.comp)"; +--@string %WOKSteps_DepGroup += " obj.implib "; +--@set %WOKSteps_obj_implib = "WOKStep_ImportLibrary(obj.comp)"; --@set %WOKSteps_LibGroup = " obj.libs obj.tks obj.lib"; -@set %WOKSteps_obj_libs = "WOKStep_DirectLinkList(obj.comp,obj.idep)"; -@set %WOKSteps_obj_tks = "WOKStep_DirectTKReplace(obj.libs)"; -@set %WOKSteps_obj_lib = "WOKStep_DLLink(obj.tks,obj.implib)"; - -@set %WOKSteps_toolkit_LinksWith = " obj.implib "; -@set %WOKSteps_package_LinksWith = " obj.implib "; -@set %WOKSteps_nocdlpack_LinksWith = " obj.implib "; -@set %WOKSteps_engine_LinksWith = " obj.implib "; -@set %WOKSteps_interface_LinksWith = " obj.implib "; -@set %WOKSteps_executable_LinksWith = " obj.implib "; -@set %WOKSteps_jini_LinksWith = " obj.implib "; -@set %WOKSteps_schema_LinksWith = " obj.implib "; +--@set %WOKSteps_obj_libs = "WOKStep_DirectLinkList(obj.comp,obj.idep)"; +--@set %WOKSteps_obj_tks = "WOKStep_DirectTKReplace(obj.libs)"; +--@set %WOKSteps_obj_lib = "WOKStep_DLLink(obj.tks,obj.implib)"; + +--@set %WOKSteps_toolkit_LinksWith = " obj.implib "; +--@set %WOKSteps_package_LinksWith = " obj.implib "; +--@set %WOKSteps_nocdlpack_LinksWith = " obj.implib "; +--@set %WOKSteps_engine_LinksWith = " obj.implib "; +--@set %WOKSteps_interface_LinksWith = " obj.implib "; +--@set %WOKSteps_executable_LinksWith = " obj.implib "; +--@set %WOKSteps_jini_LinksWith = " obj.implib "; +--@set %WOKSteps_schema_LinksWith = " obj.implib "; --- on ajoute src pour les .res @set %WOKSteps_toolkit_ListWith = " obj.comp obj.idep src "; diff --git a/src/WOKTclLib/FILES b/src/WOKTclLib/FILES index 3413b27..6b94868 100755 --- a/src/WOKTclLib/FILES +++ b/src/WOKTclLib/FILES @@ -130,7 +130,7 @@ srcinc:::wokSEA.tcl srcinc:::wokPROP.tcl srcinc:::news_cpwb.tcl srcinc:::cback.xpm -srcinc:::cfrwd.xpm +srcinc:::cfrwd.xpm srcinc:::wokRPR.tcl srcinc:::wokCOO.tcl srcinc:::wokQUE.tcl @@ -140,28 +140,12 @@ srcinc:::envir_open.xpm srcinc:::README srcinc:::wokcvs.tcl srcinc:::ud2cvs_unix -srcinc:::template.vc6 -srcinc:::template.vc6x srcinc:::template.min srcinc:::template.minx srcinc:::template.mam srcinc:::template.mamx srcinc:::template.mak srcinc:::template.makx -srcinc:::template.vc7 -srcinc:::template.vc7x -srcinc:::template.vc8 -srcinc:::template.vc8x -srcinc:::template.vc8_64 -srcinc:::template.vc8x_64 -srcinc:::template.vc9 -srcinc:::template.vc9x -srcinc:::template.vc9_64 -srcinc:::template.vc9x_64 -srcinc:::template.vc10 -srcinc:::template.vc10x -srcinc:::template.vc10_64 -srcinc:::template.vc10x_64 srcinc:::osutils.tcl srcinc:::config.h srcinc:::opencascade.gif diff --git a/src/WOKTclLib/OS.tcl b/src/WOKTclLib/OS.tcl index d16a36b..36b7481 100644 --- a/src/WOKTclLib/OS.tcl +++ b/src/WOKTclLib/OS.tcl @@ -1,205 +1,205 @@ proc OSUsage {} { - puts stderr \ - { - Usage : OS [ options ] [ module ] - - Options : - - -lsource : Liste les sources de module. - - -lshare : Liste les shareables de module - - -lressource : Liste des ressources de module - - -lwokadm : Liste des sources d'administration de wok pour module - - -lfreefiles : Liste les fichiers isoles d'un module. - (i.e. ceux qui n'appartiennent pas a une UD.) - peut etre utilisee avec -type pour savoir dans quel type d'archive - ils sont embarques. - - -v : Verbose mode. - - -alias : Donne le nom court de module. - - -type : Specifie le type de l'archive a faire. ou - - -os : Specifie le nom de la plateforme a traiter. - - -make dir: Fabrique les makefile de et les place dans dir. - Cette option doit etre utilisee avec -os. - - -makadm dir : Fabrique les fichiers d'admin de et les place dans dir - Cette option doit etre utilisee avec -os, -substr str1,str2 - Retourne une liste utilisable par mktree. - - -substr str1,str2 : Substitue str1 par str2 dans les fichiers d'admin ci dessus. - -subdone file : Ecrit dans file la liste des noms de fichiers dans lesquels - la substitution a ete effectivement faite. - - -outdir dir: Path to directory where Visual Studio projects will be created; + puts stderr \ + { + Usage : OS [ options ] [ module ] + + Options : + + -lsource : Liste les sources de module. + + -lshare : Liste les shareables de module + + -lressource : Liste des ressources de module + + -lwokadm : Liste des sources d'administration de wok pour module + + -lfreefiles : Liste les fichiers isoles d'un module. + (i.e. ceux qui n'appartiennent pas a une UD.) + peut etre utilisee avec -type pour savoir dans quel type d'archive + ils sont embarques. + + -v : Verbose mode. + + -alias : Donne le nom court de module. + + -type : Specifie le type de l'archive a faire. ou + + -os : Specifie le nom de la plateforme a traiter. + + -make dir: Fabrique les makefile de et les place dans dir. + Cette option doit etre utilisee avec -os. + + -makadm dir : Fabrique les fichiers d'admin de et les place dans dir + Cette option doit etre utilisee avec -os, -substr str1,str2 + Retourne une liste utilisable par mktree. + + -substr str1,str2 : Substitue str1 par str2 dans les fichiers d'admin ci dessus. + -subdone file : Ecrit dans file la liste des noms de fichiers dans lesquels + la substitution a ete effectivement faite. + + -outdir dir: Path to directory where Visual Studio projects will be created; default is ros/adm/<-os>/<-vc> - -tksort : retourne la liste triee des toolkits de(s) module(s) - - -dest file : Specifie que les fichiers listes dans file iront dans le sous - repertorie de l'archive . - - -from f1,f2,.. : Utilise les fichiers fi pour fabrique l'archive. Chacun de ces fichiers - contient sur chaque ligne 2 champs separes par un blanc. . - est le full path du fichier a embarquer. - est un nom de sous directory ou sera place le fichier dans l'archive donc - dans la version une fois downloadee. - - -o : Met la sortie ( s'il y en a une ) dans le fichier specifie. - - -mktree : fabrique une arborescence a partir d'une liste. (genere par -lsource) - - -mode : Specifie que les fichiers de l'arborescence sont copies(cp),lies(ln) + -tksort : retourne la liste triee des toolkits de(s) module(s) + + -dest file : Specifie que les fichiers listes dans file iront dans le sous + repertorie de l'archive . + + -from f1,f2,.. : Utilise les fichiers fi pour fabrique l'archive. Chacun de ces fichiers + contient sur chaque ligne 2 champs separes par un blanc. . + est le full path du fichier a embarquer. + est un nom de sous directory ou sera place le fichier dans l'archive donc + dans la version une fois downloadee. + + -o : Met la sortie ( s'il y en a une ) dans le fichier specifie. + + -mktree : fabrique une arborescence a partir d'une liste. (genere par -lsource) + + -mode : Specifie que les fichiers de l'arborescence sont copies(cp),lies(ln) lors du mktree. - - -mkar : fabrique une archive a partir d'une arborescence - - -fmtar : specifie le type de l'archive a creer ( defaut :tar.gz ) par traite encore. - - -tmpdir dir : Cree la racine de l'arborescence pour mktree dans dir. ( Voir -root) - - -root r : Designe r comme racine de l'archive (de fait dir/r) - - -l : Liste sur stdout les modules connus. - - -ll : Liste des toolkits dans l'ordre de fabrication. - - -lm : Liste des modules and products - - -L : Idem que ci dessus avec un peu plus de details.(utilise WOK) - - -cvsmod : Cree une liste de definition de module CVS. Ne - Utiliser ca avec -o modules, puis faire checkin de modules. - Ne sont pris en compte que les modules pour lesquels la methode Export - retourne (au moins) "source". - - -u key : Liste les UDs d'un module. - Si key = "ucreate" imprime la liste des ud precedees de leur type. (utilise WOK) - Si key = "list" retourne une liste des ud - Si key = "udlist" retourne une liste "UDLIST like" - - -info : Donne dezinfo sur les modules. - - -xml : Ecrit un fichier contenant la description xml du ou des modules concernes. - OS -xml list-de-Modules -o /tmp/occ.xml - - -ask : Cree un questionnaire utilisable pour l'installation. ( utiliser avec -o ) - - -box : Donne le nom du repertoire ou sont crees les listes de fichiers a archiver - dans CVS. ( repertoire adm ...) - - -wpack : Cree une archive au format wpack avec tous les sources de . - L'archive cree s'appellera .bck.Z - L'argument suivant wpack est le nom du directory ou on cree l'archive. - - Exemples: + + -mkar : fabrique une archive a partir d'une arborescence + + -fmtar : specifie le type de l'archive a creer ( defaut :tar.gz ) par traite encore. + + -tmpdir dir : Cree la racine de l'arborescence pour mktree dans dir. ( Voir -root) + + -root r : Designe r comme racine de l'archive (de fait dir/r) + + -l : Liste sur stdout les modules connus. + + -ll : Liste des toolkits dans l'ordre de fabrication. + + -lm : Liste des modules and products + + -L : Idem que ci dessus avec un peu plus de details.(utilise WOK) + + -cvsmod : Cree une liste de definition de module CVS. Ne + Utiliser ca avec -o modules, puis faire checkin de modules. + Ne sont pris en compte que les modules pour lesquels la methode Export + retourne (au moins) "source". + + -u key : Liste les UDs d'un module. + Si key = "ucreate" imprime la liste des ud precedees de leur type. (utilise WOK) + Si key = "list" retourne une liste des ud + Si key = "udlist" retourne une liste "UDLIST like" + + -info : Donne dezinfo sur les modules. + + -xml : Ecrit un fichier contenant la description xml du ou des modules concernes. + OS -xml list-de-Modules -o /tmp/occ.xml + + -ask : Cree un questionnaire utilisable pour l'installation. ( utiliser avec -o ) + + -box : Donne le nom du repertoire ou sont crees les listes de fichiers a archiver + dans CVS. ( repertoire adm ...) + + -wpack : Cree une archive au format wpack avec tous les sources de . + L'archive cree s'appellera .bck.Z + L'argument suivant wpack est le nom du directory ou on cree l'archive. + + Exemples: 1. Fabriquer toutes les makefiles de FoundationClasses dans le directory /adv_11/... - et dire que ces procedures iront dans un sous repertoire adm . - > OS -make /adv_11.../transfert -o /tmp/Liste1 FoundationClasses - + et dire que ces procedures iront dans un sous repertoire adm . + > OS -make /adv_11.../transfert -o /tmp/Liste1 FoundationClasses + 2. Specifie que les fichiers listes dans /tmp/Liste1 iront dans adm - > OS -dest adm /tmp/Liste1 - (ecrit dans le fichier /tmp/Liste1 adm) - + > OS -dest adm /tmp/Liste1 + (ecrit dans le fichier /tmp/Liste1 adm) + 3. Fabriquer la liste des sources de FoundationClasses (cette option utilise WOK) - > OS -lsource -o /tmp/Liste2 FoundationClasses - + > OS -lsource -o /tmp/Liste2 FoundationClasses + 4. Fabriquer une arborescence avec les 2 listes (fabriquees avec OS -dest) - > OS -mktree -from /tmp/Liste1,/tmp/Liste2 -tmpdir /tmp -root CASXXX - + > OS -mktree -from /tmp/Liste1,/tmp/Liste2 -tmpdir /tmp -root CASXXX + Ce qui suit est nettement plus utile: - 5. Utilisation des procedures pour tout fabriquer. (sur une seule plateforme avec Gnu tar) + 5. Utilisation des procedures pour tout fabriquer. (sur une seule plateforme avec Gnu tar) Ceci se fait depuis une plateforme avec Gnu tar - OS:MKPRC : Fabrique et edite les procs compil/link. ([OS-box]/Platform) - OS:PKGSRC {} : Fabrique toutes les archives source - OS:PKGRTL {} {} : Fabrique toutes les archives runtime (tt plat.) - Comtper plus de 2 heures pour tout faire. - - Pour ne refaire que des bouts: - - OS:PKGRTL {} Draw ; runtime ttes ptfm pour Draw - OS:PKGRTL Linux {} ; runtime Linux tous modules - OS:PKGRTL {} {Draw Viewer} ; runtime ttes ptfm pour Draw et Viewer - OS:PKGRTL Linux Draw ; runtime Linux pour Draw - + OS:MKPRC : Fabrique et edite les procs compil/link. ([OS-box]/Platform) + OS:PKGSRC {} : Fabrique toutes les archives source + OS:PKGRTL {} {} : Fabrique toutes les archives runtime (tt plat.) + Comtper plus de 2 heures pour tout faire. + + Pour ne refaire que des bouts: + + OS:PKGRTL {} Draw ; runtime ttes ptfm pour Draw + OS:PKGRTL Linux {} ; runtime Linux tous modules + OS:PKGRTL {} {Draw Viewer} ; runtime ttes ptfm pour Draw et Viewer + OS:PKGRTL Linux Draw ; runtime Linux pour Draw + 5bis. Creation des archives pour les fichiers d'adm de WOK. Il faut se logger ecffectivement sur la machine comme explique ci dessous. - - ( sur SunOS : telnet h2ox ; tclsh ; wokcd KAS:C30:ref) - > OS:PKGADM SunOS - ( sur Linux : telnet archimex ; tclsh ; wokcd KAS:C30:ref) - > OS:PKGADM Linux - ( sur IRIX : telnet ; tclsh ; wokcd KAS:C30:ref) - > OS:PKGADM IRIX - ( sur AIX : telnet bourin ; tclsh ; wokcd KAS:C30:ref) - > OS:PKGADM AIX - - 7. Dans 5 si on ne specifie pas de nom de module, la liste + + ( sur SunOS : telnet h2ox ; tclsh ; wokcd KAS:C30:ref) + > OS:PKGADM SunOS + ( sur Linux : telnet archimex ; tclsh ; wokcd KAS:C30:ref) + > OS:PKGADM Linux + ( sur IRIX : telnet ; tclsh ; wokcd KAS:C30:ref) + > OS:PKGADM IRIX + ( sur AIX : telnet bourin ; tclsh ; wokcd KAS:C30:ref) + > OS:PKGADM AIX + + 7. Dans 5 si on ne specifie pas de nom de module, la liste des modules traites est obtenue par la commande "OS -lm". - - 8. Rien ici. - 9. Fabrication d'une image CD OpenSource: - Cette image se trouve dans le directory pointe par la commande OS -cdrom. - Elle contient un ensemble de fichiers (noms 8.3) destines a aller sur le CD. - ( Liens sur le tar.gz de [OS -distrib] ) - Cette image se creer par la commande : - > OS:MKCDOS - - } - return + 8. Rien ici. + + 9. Fabrication d'une image CD OpenSource: + Cette image se trouve dans le directory pointe par la commande OS -cdrom. + Elle contient un ensemble de fichiers (noms 8.3) destines a aller sur le CD. + ( Liens sur le tar.gz de [OS -distrib] ) + Cette image se creer par la commande : + > OS:MKCDOS + + } + return } ;# ;# Fabrique et remplit l'arborescence d'un module ;# proc OS { args } { - + global OpenSource set tblreq(-h) {} set tblreq(-v) {} set tblreq(-box) {} - + set tblreq(-o) value_required:file - + set tblreq(-mode) value_required:string set tblreq(-archtype) value_required:string - set tblreq(-type) value_required:string + set tblreq(-type) value_required:string set tblreq(-keep) {} - - set tblreq(-l) {} - set tblreq(-ll) {} - set tblreq(-lm) {} - - set tblreq(-L) {} - set tblreq(-cvsmod) {} - set tblreq(-u) value_required:string - - set tblreq(-param) {} - + + set tblreq(-l) {} + set tblreq(-ll) {} + set tblreq(-lm) {} + + set tblreq(-L) {} + set tblreq(-cvsmod) {} + set tblreq(-u) value_required:string + + set tblreq(-param) {} + set tblreq(-make) value_required:file set tblreq(-makadm) value_required:file set tblreq(-substr) value_required:list set tblreq(-subdone) value_required:file set tblreq(-outdir) value_required:file set tblreq(-tksort) {} - set tblreq(-plat) value_required:string + set tblreq(-plat) value_required:string set tblreq(-wpack) value_required:file set tblreq(-os) value_required:string set tblreq(-xml) value_required:string set tblreq(-dest) value_required:string - + set tblreq(-tmpdir) value_required:string set tblreq(-root) value_required:string - + set tblreq(-lsource) {} set tblreq(-LSOURCE) {} set tblreq(-lshare) {} @@ -211,13 +211,13 @@ proc OS { args } { set tblreq(-LFREEFILES) {} set tblreq(-since) value_required:string - + set tblreq(-from) value_required:list - + set tblreq(-mktree) {} set tblreq(-mkar) value_required:string set tblreq(-info) {} - + set tblreq(-alias) {} set tblreq(-ask) {} @@ -227,20 +227,20 @@ proc OS { args } { puts stderr "Error: incorrect options for command OS: $args" return } - + if [info exists tabarg(-h)] { OSUsage return } - + set os "" ;# default if [info exists tabarg(-os)] { set os $tabarg(-os) - } + } ;# ;# debut: Options ne dependant pas d'un nom de module - ;# + ;# if [info exists tabarg(-param)] { if { [OS:init $os] == {} } { return } @@ -281,8 +281,8 @@ proc OS { args } { if [info exists tabarg(-ask)] { - set l {} - set i 0 + set l {} + set i 0 set w {} foreach module [OS -lm] { lappend l [format " (%d) : %s" [incr i] $module] @@ -340,7 +340,7 @@ proc OS { args } { if { [OS:init $os] == {} } { return } OS:lsmodule 0 OS:end - return + return } if [info exists tabarg(-L)] { @@ -450,9 +450,9 @@ proc OS { args } { puts stderr "Erreur Option -from requise." return } - } else { + } else { puts stderr "Impossible de creer $root" - return + return } } else { puts stderr "Erreur Option -root requise." @@ -463,10 +463,10 @@ proc OS { args } { return } } - + ;# ;# fin: Options ne dependant pas d'un nom de module - ;# + ;# ;# ;# deb: Options qui prennent soit un nom de module soit rien . @@ -488,7 +488,7 @@ proc OS { args } { puts stderr "Erreur : Impossible de creer $tabarg(-o)" } } else { - foreach x [OS:lstk $lm] { + foreach x [OS:lstk $lm] { puts $x } } @@ -535,9 +535,9 @@ proc OS { args } { if { $lm == {} } { set lm [OS -lm] } - + switch -- $tabarg(-u) { - + ucreate { set out [pwd]/UCREATE if [info exists tabarg(-o)] { set out $tabarg(-o) } @@ -549,7 +549,7 @@ proc OS { args } { lappend l "ucreate -$u" } } - foreach add [${mod}:ressources] { + foreach add [${mod}:ressources] { lappend l "ucreate -[lindex $add 1] [lindex $add 2]" } } @@ -562,10 +562,10 @@ proc OS { args } { OS:end return } - + udlist { - if [info exists tabarg(-o)] { - set out $tabarg(-o) + if [info exists tabarg(-o)] { + set out $tabarg(-o) } set l {} foreach mod $lm { @@ -575,7 +575,7 @@ proc OS { args } { lappend l "$u" } } - foreach add [${mod}:ressources] { + foreach add [${mod}:ressources] { lappend l "[lindex $add 1] [lindex $add 2]" } } @@ -594,7 +594,7 @@ proc OS { args } { OS:end return } - + list { set l {} @@ -605,7 +605,7 @@ proc OS { args } { lappend l [lindex $u 1] } } - foreach add [${mod}:ressources] { + foreach add [${mod}:ressources] { lappend l [lindex $add 2] } } @@ -622,15 +622,15 @@ proc OS { args } { if { $lm == {} } { set lm [OS -lm] } - if [info exists tabarg(-o)] { - wokUtils:FILES:StringToFile [OS:xml $lm] $tabarg(-o) + if [info exists tabarg(-o)] { + wokUtils:FILES:StringToFile [OS:xml $lm] $tabarg(-o) } else { puts stderr "Erreur : Specifier -o pour donner un nom de fichier. " } - + return - } - + } + @@ -642,19 +642,19 @@ proc OS { args } { puts stderr "OS:wpack: Le directory $dir ne peut etre cree." return } - + set lm $module if { $lm == {} } { set lm [OS -lm] } - + foreach module $lm { if { $verbose } { puts "Processing module $module" } OS:wpack $module $dir $verbose } OS:end - return + return } ;# @@ -738,7 +738,7 @@ proc OS { args } { } } } else { - puts stderr "Erreur : Specifier -substr string1,string2 " + puts stderr "Erreur : Specifier -substr string1,string2 " } OS:end } else { @@ -788,7 +788,7 @@ proc OS { args } { OS:end return } - + if [info exists tabarg(-LSOURCE)] { if { [OS:init $os] == {} } { return } set lso [OS:SOURCES ${module} $verbose] @@ -825,8 +825,8 @@ proc OS { args } { } return } - - + + if [info exists tabarg(-lshare)] { if { [OS:init $os] == {} } { return } if [info exists tabarg(-os)] { @@ -843,7 +843,7 @@ proc OS { args } { } } } else { - puts stderr "Erreur : Specifier -os avec -lshare" + puts stderr "Erreur : Specifier -os avec -lshare" } OS:end return @@ -863,7 +863,7 @@ proc OS { args } { return [OS:SHARE ${module} $tabarg(-os) $verbose] } } else { - puts stderr "Erreur : Specifier -os avec -lshare" + puts stderr "Erreur : Specifier -os avec -lshare" } OS:end return @@ -917,11 +917,11 @@ proc OS { args } { } OS:end } else { - puts stderr "Erreur : Specifier -type avec -lressource" + puts stderr "Erreur : Specifier -type avec -lressource" } return } - + if [info exists tabarg(-LRESSOURCE)] { if [info exists tabarg(-type)] { set type $tabarg(-type) @@ -961,12 +961,12 @@ proc OS { args } { return $lso } } else { - puts stderr "Erreur : Specifier -type avec -LRESSOURCE" + puts stderr "Erreur : Specifier -type avec -LRESSOURCE" } return } - - + + if [info exists tabarg(-lwokadm)] { if ![info exists tabarg(-os)] { puts stderr "Erreur : Specifier -os avec -lwokadm" @@ -1012,7 +1012,7 @@ proc OS { args } { OS:end return } - + if [info exists tabarg(-lfreefiles)] { if { [OS:init $os] == {} } { return } set type both @@ -1079,7 +1079,7 @@ proc OS { args } { OS:end return $a } - + } ;# ((((((((((((((((((((((((((((( O S ))))))))))))))))))))))))))))) @@ -1091,11 +1091,11 @@ proc OS:all8 { module plat type } { set l {} if { "$type" == "rtl" } { switch -- $plat { - + SunOS { set litm [list sun wsn] } - + Linux { set litm [list lin wln] } @@ -1105,21 +1105,21 @@ proc OS:all8 { module plat type } { } IRIX { - set litm [list sil wsl] + set litm [list sil wsl] } - + AIX { - set litm [list aix wax] + set litm [list aix wax] } WindowsNT { - set litm [list win32 wwt] + set litm [list win32 wwt] } default { set litm {} } - + } } else { set litm [list src] @@ -1127,7 +1127,7 @@ proc OS:all8 { module plat type } { foreach itm $litm { set l [concat $l ${itm}${a}[OS:simple_version].tgz] - } + } return $l } ;# @@ -1148,28 +1148,28 @@ proc OS:lsdep { m } { ;# ;# ;# retourne la liste des fichiers d'administration wok de module -;# A lancer sur la plateforme Cible +;# A lancer sur la plateforme Cible ;# DE FAIT PLAT N'EST PAS UTILISE: ;# On rajoute de force Standard.ImplDep proc OS:wokadm { module plat {verbose 0} } { global OpenSource - + set lret {} set sourceType [list dbadmfile stadmfile admfile] foreach tkloc [${module}:toolkits] { - + set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]] - foreach loc $listloc { - + foreach loc $listloc { + set utyp [uinfo -t [woklocate -u $loc]] - + ;# Le worbench ou est l'ud ;# 1. recup des pathes de tous les fichiers de loc osutils:tk:loadunit $loc map - + ;# 2. Selection des types "wokadm" associes a l'UD ;# (semblent ne pas dependre du type de l'UD) @@ -1178,8 +1178,8 @@ proc OS:wokadm { module plat {verbose 0} } { unset map($typ) } } - - ;# 3. + + ;# 3. set count 0 set destart "" set wborig [wokinfo -w [woklocate -u $loc]] @@ -1209,7 +1209,7 @@ proc OS:wokadm { module plat {verbose 0} } { set dectyp [lindex $XXX 1] set loc [woklocate -u [lindex $XXX 2]] set destin [lindex $XXX 3] - + osutils:tk:loadunit $loc map foreach typ [array names map] { @@ -1218,7 +1218,7 @@ proc OS:wokadm { module plat {verbose 0} } { } } - ;# 3. + ;# 3. set count 0 set destart "" set wborig [wokinfo -w [woklocate -u $loc]] @@ -1240,7 +1240,7 @@ proc OS:wokadm { module plat {verbose 0} } { } } } - return $lret + return $lret } ;# ;# retourne la liste des executables de module. @@ -1258,7 +1258,7 @@ proc OS:executable { module } { ;# retourne la liste des fichiers de ressource de module ;# un item XXX ressemble a : [list both x TTOPOLOGY {}] ;# Si reqtyp est "source" on retourne les sources des UD de type resource -;# sinon on retourne tout car dans le cas d'une archive runtime il faut +;# sinon on retourne tout car dans le cas d'une archive runtime il faut ;# aussi embarquer les shells de lancement qui sont des sources. ;# proc OS:ressources { module plat reqtyp {verbose 0} } { @@ -1266,7 +1266,7 @@ proc OS:ressources { module plat reqtyp {verbose 0} } { set lret {} if { $verbose } { puts "OS:ressources : reqtyp = $reqtyp " } if { "[info procs ${module}:ressources]" != "" } { - + foreach XXX [${module}:ressources] { set artyp [lindex $XXX 0] set dectyp [lindex $XXX 1] @@ -1282,8 +1282,8 @@ proc OS:ressources { module plat reqtyp {verbose 0} } { unset map($typ) } } - - ;# 3. + + ;# 3. set count 0 foreach typ [lsort [array names map]] { @@ -1324,7 +1324,7 @@ proc OS:ressources { module plat reqtyp {verbose 0} } { lappend lret "$fulp [file join bin [file tail $f]]" puts "Pour $plat : Ressource exec on embarque : $fulp" } else { - puts "Erreur : executable [file tail $f] introuvable sur $plat" + puts "Erreur : executable [file tail $f] introuvable sur $plat" } } } @@ -1348,7 +1348,7 @@ proc OS:RESSOURCES { module plat reqtyp {verbose 0} } { set lret {} if { $verbose } { puts "OS:ressources : reqtyp = $reqtyp " } if { "[info procs ${module}:ressources]" != "" } { - + foreach XXX [${module}:ressources] { set artyp [lindex $XXX 0] set dectyp [lindex $XXX 1] @@ -1365,8 +1365,8 @@ proc OS:RESSOURCES { module plat reqtyp {verbose 0} } { if { $verbose } { puts " Unit $loc : types conserve : $typ " } } } - - ;# 3. + + ;# 3. set count 0 foreach typ [lsort [array names map]] { @@ -1382,7 +1382,7 @@ proc OS:RESSOURCES { module plat reqtyp {verbose 0} } { foreach f $map($typ) { if { "$typ" != "executable" } { if { "$typ" != "library" } { - lappend lret $f + lappend lret $f incr count if { $verbose} {puts "ress($loc): $f"} } else { @@ -1401,7 +1401,7 @@ proc OS:RESSOURCES { module plat reqtyp {verbose 0} } { incr count puts "Pour $plat : Ressource exec on embarque : $fulp" } else { - puts "Erreur : executable [file tail $f] introuvable sur $plat" + puts "Erreur : executable [file tail $f] introuvable sur $plat" } } } @@ -1421,30 +1421,30 @@ proc OS:RESSOURCES { module plat reqtyp {verbose 0} } { return $lret } ;# -;# utilise WOK pour creer la liste des sources d'un module +;# utilise WOK pour creer la liste des sources d'un module ;# retourne une liste de string de la forme "f1 f2" ;# f1 est le full path du fichier d'origine ;# f2 est le nom du sous directory ou on accrochera ca ;# -;# +;# proc OS:sources { module {verbose 0 } } { global OpenSource set lret {} foreach tkloc [${module}:toolkits] { - + set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]] - foreach loc $listloc { - + foreach loc $listloc { + set utyp [uinfo -t [woklocate -u $loc]] - + ;# Le worbench ou est l'ud set wborig [wokinfo -w [woklocate -u $loc]] ;# 1. recup des pathes de tous les fichiers de loc osutils:tk:loadunit $loc map - + ;# 2. Selection des types "sources" associes a l'UD set sourceType $OpenSource(source,${utyp}) foreach typ [array names map] { @@ -1452,8 +1452,8 @@ proc OS:sources { module {verbose 0 } } { unset map($typ) } } - - ;# 3. + + ;# 3. set count 0 foreach typ [lsort [array names map]] { set wbt $OpenSource(${typ},wbtype) @@ -1468,7 +1468,7 @@ proc OS:sources { module {verbose 0 } } { incr count if { $verbose } { puts "File $dst ([lindex $rr 1])" } } else { - puts " loc = $loc wbt = $wbt root = $root " + puts " loc = $loc wbt = $wbt root = $root " puts "Erreur : peu pas parser ????? $f" } } @@ -1490,25 +1490,25 @@ proc OS:SOURCES { module {verbose 0 } } { set lret {} foreach tkloc [${module}:toolkits] { - + set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]] - - foreach loc $listloc { - + + foreach loc $listloc { + set utyp [uinfo -t [woklocate -u $loc]] - + ;# 1. recup des pathes de tous les fichiers de loc osutils:tk:loadunit $loc map - + ;# 2. Selection des types "sources" associes a l'UD set sourceType $OpenSource(source,${utyp}) - + foreach typ [array names map] { if { [lsearch $sourceType $typ] == -1 } { unset map($typ) } } - + ;# 3. Cumul des full pathes set count 0 foreach typ [lsort [array names map]] { @@ -1516,14 +1516,14 @@ proc OS:SOURCES { module {verbose 0 } } { if { $verbose } { puts "OS:SOURCES: File $f" } lappend lret $f incr count - + } } if { $verbose } {puts "OS:SOURCES: ( $loc -> Source Copies : $count )" } if { $count == 0 } { puts "Erreur : Rien a copier pour $loc" } } } - + return $lret } ;# recherche a partir de wbfom en remontant les ancetres, @@ -1531,7 +1531,7 @@ proc OS:SOURCES { module {verbose 0 } } { ;# utilisant le type (type associe a un wb evidemment.) ;# retourne la partie de f qui ne depend pas de ce wb. ;# OS:wbparseloc /adv_11/KAS/C30/ref/src/gp/gp.cdl srcdir OpenSource -;# +;# proc OS:wbparseloc { f wbt wbfrom } { set res {} foreach wborig [w_info -A $wbfrom] { @@ -1558,13 +1558,13 @@ proc OS:strparseloc { f wbfrom included direction} { } ;# -;# utilise WOK pour creer la liste des shareables d'un module +;# utilise WOK pour creer la liste des shareables d'un module ;# i. e. les shareables de chaque toolkit du module. ;# les autres shareables et executables sont donnees dans les ressources. ;# retourne une liste de string de la forme "f1 f2" ;# f1 est le full path du fichier d'origine ;# f2 est le nom du sous directory ou on accrochera ca -;# +;# proc OS:share { module plat {verbose 0} } { set lret {} @@ -1601,7 +1601,7 @@ proc OS:SHARE { module plat {verbose 0} } { foreach tkloc [${module}:toolkits] { foreach shr [OS:getshare $tkloc $plat] { if {[file exists $shr] } { - lappend lret $shr + lappend lret $shr } else { puts stderr "Erreur : Pas de shareable pour ${tkloc}." } @@ -1644,7 +1644,7 @@ proc OS:freefiles { module {artyp both} {check 0} {verbose 0} } { puts stderr "Error : File $loc not found" } } else { - puts stderr "Format error in proc ${module}:freefiles. Return either \"source\" \"runtime\" or \"both\" " + puts stderr "Format error in proc ${module}:freefiles. Return either \"source\" \"runtime\" or \"both\" " } } else { if { "$typ" == "$artyp" || "$typ" == "both" } { @@ -1681,7 +1681,7 @@ proc OS:FREEFILES { module {artyp both} {check 0} {verbose 0} } { puts stderr "Error : File $loc not found" } } else { - puts stderr "Format error in proc ${module}:freefiles. Return either \"source\" \"runtime\" or \"both\" " + puts stderr "Format error in proc ${module}:freefiles. Return either \"source\" \"runtime\" or \"both\" " } } else { if { "$typ" == "$artyp" || "$typ" == "both" } { @@ -1710,7 +1710,7 @@ proc OS:mkfile { wbfile tofile {mode copy} {verbose 0} } { OS:mkdir [file dirname $tofile] switch -- $mode { - + copy { if { [file exists $tofile] && ![file writable $tofile] } { set chmded 1 @@ -1727,12 +1727,12 @@ proc OS:mkfile { wbfile tofile {mode copy} {verbose 0} } { return -1 } } - + jact { puts "$wbfile $tofile" return 1 } - + link { if { ![file exists $wbfile] } { puts stderr "OS:mkfile : File $wbfile existe pas." @@ -1758,7 +1758,7 @@ proc OS:mkfile { wbfile tofile {mode copy} {verbose 0} } { if [file exists $tofile] { if { [wokUtils:FILES:AreSame $wbfile $tofile] == 0 } { OS:mkfile $wbfile $tofile copy $verbose - } + } } else { OS:mkfile $wbfile $tofile copy $verbose } @@ -1783,7 +1783,7 @@ proc OS:parray { a {id stdout} {sep "" } } { if { "$array($name)" != "" } { puts $id [format "%-*s %s %s" $maxl $nameString $sep $array($name)] } - } + } } ;# ;# Liste la definition des modules pour CVS, sinon fait un affichage pourri mais suffizant. @@ -1794,7 +1794,7 @@ proc OS:lsmodule { {long 1} {id stdout} } { if { [lsearch [${mo}:Export] source] != -1 } { lappend openmod $mo } - } + } if { $long == 2 } { set ltk {} puts $id "# " @@ -1863,13 +1863,13 @@ proc OS:lstk { lm } { foreach tk [${m}:toolkits] { lappend lret $tk } - } + } return $lret } ;# ;# Les types du workbench qu'il faut exporter: -;# sttmpdir workdir HomeDir pubincdir drvdir objdir libdir tmpdir +;# sttmpdir workdir HomeDir pubincdir drvdir objdir libdir tmpdir ;# bindir AdmDir DefinitionFile srcdir UnitListFile dbtmpdir admfile ;#;#;sttmpdir: /adv_11/KAS/C40/ref/sun/obj/.tmp ;# @@ -1899,7 +1899,7 @@ proc OS:init {{os {}}} { ;# set OpenSource(box) [OS:defbox] - ;# On utilise gtar si possible. => + ;# On utilise gtar si possible. => ;# set OpenSource(tar) tar if { $tcl_platform(os) == "SunOS"} { set OpenSource(tar) [file join $env(WOK_LIBRARY) sun gtar] } @@ -1921,7 +1921,7 @@ proc OS:init {{os {}}} { } } } - + ;# ;# Load list of products and their definitions ;# @@ -1941,7 +1941,7 @@ proc OS:init {{os {}}} { ;# -------------------- FICHIERS "SOURCES" c,cxx,hxx,_0.cxx,ixx,jxx,etc.. ------------- ;# ;# 1. Definitions de l'origine des fichiers - ;# + ;# set OpenSource(source,package) {source derivated privinclude pubinclude drvfile} set OpenSource(source,nocdlpack) {source pubinclude drvfile} set OpenSource(source,schema) {source derivated privinclude pubinclude drvfile} @@ -1962,7 +1962,7 @@ proc OS:init {{os {}}} { ;# -------------------- FICHIERS "RUNTIME" .so,executable,etc.. ------------- ;# ;# 1. Definitions de l'origine des fichiers - ;# + ;# set OpenSource(runtime,package) {library} set OpenSource(runtime,nocdlpack) {library} set OpenSource(runtime,schema) {} @@ -1987,20 +1987,20 @@ proc OS:init {{os {}}} { ;# Si on sait pas on prend HomeDir et on suppose que c'est Ud independant set OpenSource(source,wbtype) srcdir - set OpenSource(derivated,wbtype) drvdir + set OpenSource(derivated,wbtype) drvdir set OpenSource(drvfile,wbtype) drvdir ;# ExprIntrp.tab.c (lex,yacc) set OpenSource(privinclude,wbtype) drvdir set OpenSource(pubinclude,wbtype) pubincdir set OpenSource(library,wbtype) libdir - set OpenSource(executable,wbtype) bindir + set OpenSource(executable,wbtype) bindir ;# ;# Defintion de la destination des fichiers d'un module dans l'archive. ;# Les memes que au dessus chaque racine des workbenchs , il faut savoir ou la mettre a l'arrivee ;# set OpenSource(source,artype) src - set OpenSource(derivated,artype) drv - set OpenSource(drvfile,artype) drv + set OpenSource(derivated,artype) drv + set OpenSource(drvfile,artype) drv set OpenSource(privinclude,artype) drv set OpenSource(pubinclude,artype) inc ;# @@ -2008,7 +2008,7 @@ proc OS:init {{os {}}} { set OpenSource(executable,artype) bin ;# -------------------- DEFINITION de l'adresse et de la structure des archives. - ;# + ;# ;# Nom de la racine ou on accroche l'arborescence en fonction du type de l'archive (source/runtime) ;# set OpenSource(dest,root) /dn01/KAS/dev/ros/work @@ -2024,7 +2024,7 @@ proc OS:init {{os {}}} { ;# ;# les sources sont directement accroches sous la racine ;# - set OpenSource(inar,source) "" + set OpenSource(inar,source) "" ;# ;# les runtime sont sont sous le nom de la plateforme cible ;# @@ -2042,7 +2042,7 @@ proc OS:init {{os {}}} { return 1 } ;# -;# +;# ;# ;# proc OS:info { lm {id stdout} } { @@ -2066,7 +2066,7 @@ proc OS:info { lm {id stdout} } { ;# PKGS appelle direct PACKAGES car sur archimex pas WOK pour l'instant. ;# proc OS:procs { module plat} { - + set lret {} foreach tkloc [${module}:toolkits] { set PKGS [woklocate -p ${tkloc}:PACKAGES] @@ -2082,7 +2082,7 @@ proc OS:procs { module plat} { puts stderr "Erreur: Pas de fichier PACKAGES pour $tkloc" } if [file exists [set lnkf [OS:getlinkso $tkloc $plat]]] { - lappend lret [list link $tkloc $tkloc $lnkf] + lappend lret [list link $tkloc $tkloc $lnkf] } else { puts stderr "Erreur: Pas de fichier $lnkf" } @@ -2134,7 +2134,7 @@ proc OS:procs { module plat} { } } else { if [file exists [set lnkf [OS:getlinkso $loc $plat]]] { - lappend lret [list link {} $loc $lnkf] + lappend lret [list link {} $loc $lnkf] } else { puts stderr "Information: Pas de fichier $lnkf" } @@ -2151,7 +2151,7 @@ proc OS:casroot {} { if { [info exists env(CASROOT)] } { return $env(CASROOT) } - + return [lindex [wokinfo -R [lindex [w_info -A [wokcd]] end]] 0] } ;# @@ -2231,14 +2231,14 @@ proc OS:admadm { module dir plat since ls1s2 {verbose 0} } { return [list $lret $ldon] } ;# -;# fabrique la proc pour reconstruire un module a partir du format -;# retourne par OS:procs { {type tk ud path} } +;# fabrique la proc pour reconstruire un module a partir du format +;# retourne par OS:procs { {type tk ud path} } ;# retourne la liste des fulls paths des fichiers fabriques. ;# ainsi que celui les invoquant tous a la queue leu leu ;# option since genere des .COMP INCOMPLETS !! ;# proc OS:mkmk { module dir plat since {verbose 0} } { - + set lret {} set lnk {} set lothcmp {} ;# il ya 2 listes pour lancer les compils d'abord @@ -2266,7 +2266,7 @@ proc OS:mkmk { module dir plat since {verbose 0} } { if { ($since == {}) || ($since != {} && ([file mtime $pfile] > $since)) } { switch -- $type { - + compilation { set incstr " -I[OS:srcroot $plat]/$loc -I[OS:drvroot $plat]/$loc -I[OS:incroot $plat] -I[OS:srcroot $plat]/WOKTclLib -I\${JAVAHOME}/include -I\${JAVAHOME}/include/${OsName}" set tcstr [OS:casroot $plat]/ @@ -2280,7 +2280,7 @@ proc OS:mkmk { module dir plat since {verbose 0} } { set lwr [OS:edcomp $plat $hdr $pfile $exceptcc $incstr $tcstr $tostr] lappend lwr "popd >& /dev/null" } else { - if [info exists CLOC($loc)] { + if [info exists CLOC($loc)] { } else { set lwr {} set hdr {} @@ -2302,11 +2302,11 @@ proc OS:mkmk { module dir plat since {verbose 0} } { set TLOC($tkloc) $mktk } else { set mktk {} - lappend mktk "csh -f [OS:admroot $plat]/${loc}.comp" + lappend mktk "csh -f [OS:admroot $plat]/${loc}.comp" set TLOC($tkloc) $mktk } } else { - if [info exists XLOC($loc)] { + if [info exists XLOC($loc)] { #set lothcmp $XLOC($loc) ;# Procedure de compils d'uds non dans le toolkit. ;#lappend lothcmp "csh -f [OS:admroot $plat]/${loc}.comp" @@ -2318,7 +2318,7 @@ proc OS:mkmk { module dir plat since {verbose 0} } { } } } - + link { if { [lsearch $do_nothing_here $plat] == -1 } { set hdrl {} @@ -2337,7 +2337,7 @@ proc OS:mkmk { module dir plat since {verbose 0} } { lappend lothlnk "csh -f [OS:admroot $plat]/${loc}.lnk" } } - + executable { if { [lsearch $do_nothing_here $plat] == -1 } { set hdrl {} @@ -2354,7 +2354,7 @@ proc OS:mkmk { module dir plat since {verbose 0} } { [file join $dir ${loc}.lnk] } lappend lnk [file join $dir ${loc}.lnk] - ;# mettre [file tail $pfile plutot que ${loc}.lnk TOPOLOGY ?? + ;# mettre [file tail $pfile plutot que ${loc}.lnk TOPOLOGY ?? } else { lappend lnk $pfile } @@ -2369,9 +2369,9 @@ proc OS:mkmk { module dir plat since {verbose 0} } { puts "bof du since" } } - + ;# Fab d'un TK Compilations + link du Tk apres ces compils. - ;# + ;# if [info exists TLOC] { foreach tk [array names TLOC] { set do [lsort $TLOC($tk)] @@ -2423,7 +2423,7 @@ proc OS:edcomp { plat lhdr comp {except {}} {incstr } {tcstr ""} } if [regexp -- {/cc} $compiler all find] { set compstring "\${CCOMP} " - } + } } if {$plat == "Linux"} { if [regexp -- {/gcc} $compiler all find] { @@ -2448,18 +2448,18 @@ proc OS:edcomp { plat lhdr comp {except {}} {incstr } {tcstr ""} #puts "X11 was captured" append str "-I\${X11_INCLUDE} " } elseif {"$new " =="[lindex [wokparam -v %CSF_JavaHome] 0]"} { - + } else { append str "$tok " } - + } else { if { $done == 0 } { append str "$incstr" set done 1 } - } - + } + } elseif { $tok == "-o" } { set to 1 } elseif { $tok == "-c" } { @@ -2469,7 +2469,7 @@ proc OS:edcomp { plat lhdr comp {except {}} {incstr } {tcstr ""} if { "$plat" == "SunOS" || "$plat" == "Linux" } { set TrueCond [expr {"$tok" != "-H" && "$tok" != "/usr/bin/g++" && "$tok" != "/usr/bin/gcc" && ![regexp -- {/CC} $tok all find] && ![regexp -- {/cc} $tok all find] && "$tok" != "cd" && "$tok" != "&&" && ![regexp -- {/obj/.tmp/} $tok all find]}] if { $TrueCond } { - append str $tok " " + append str $tok " " } } else { append str $tok " " @@ -2483,7 +2483,7 @@ proc OS:edcomp { plat lhdr comp {except {}} {incstr } {tcstr ""} if { $to == 1 } { append str " -o ${tostr}[file tail $tok]" set to 0 - } + } } @@ -2568,10 +2568,10 @@ proc OS:edlnkx { plat lhdr lnkf { except {} } {incstr } {tcstr " } } } - return $lret + return $lret } ;# -;# idem que edcomp mais modifie un fichier .lnk Linux d'un toolkit +;# idem que edcomp mais modifie un fichier .lnk Linux d'un toolkit ;# ici incstr est utilise pour la directive -L ;# i.e -L/un/path devient -L$incstr si il n'est pas dans except ;# @@ -2604,14 +2604,14 @@ proc OS:edlnkso { plat lhdr lnkf { except {} } {incstr } {tcstr if { $TCLLIB} { lappend str " -L\${TCLHOME}/lib -ltcl \\" } elseif { $TKLIB } { - lappend str " -L\${TCLHOME}/lib -ltk \\" + lappend str " -L\${TCLHOME}/lib -ltk \\" } elseif { $X11LIB} { lappend str " -L\${X11_LIB} -lX11 -lXext -lXmu \\" } elseif { [expr {$lin == " [lindex [wokparam -v %CSF_dpsLibs] 0] \\"}]} { if { $plat == "SunOS" } { - lappend str " -L\${X11_LIB} -ldps \\" + lappend str " -L\${X11_LIB} -ldps \\" } - } else { + } else { foreach tok [split $lin] { if { $tok == "-o" } { set to 1 @@ -2629,9 +2629,9 @@ proc OS:edlnkso { plat lhdr lnkf { except {} } {incstr } {tcstr if [regexp {^[ ]*-L(.*)} $tok all dir] { if { [lsearch $except $dir] == -1 } { lappend str -L${incstr} - } else { + } else { lappend str $tok - } + } } else { set Truetok [string compare $tok [string trimright [lindex [wokparam -v %CSF_CXX_COMPILER] 0]]] if {$Truetok} { @@ -2655,20 +2655,20 @@ proc OS:edlnkso { plat lhdr lnkf { except {} } {incstr } {tcstr set res {} set inx 0 foreach x $lret { - lappend res $x + lappend res $x incr inx if [regexp -- {[^;]*;} $x] { break } } - return $res + return $res } ;# retourne la composante de path avec la partie a gauchae ;# ou a droite de str ;# ;# proc OS:trimpath { path str {included 1} {from left} } { - set l [file split $path] + set l [file split $path] if { [set i [lsearch $l $str]] != -1 } { if { $from == "left" } { if { $included } { @@ -2719,7 +2719,7 @@ proc OS:delete { f } { } } ;# -;# +;# ;# proc OS:copy { fin fout } { global tcl_version @@ -2727,7 +2727,7 @@ proc OS:copy { fin fout } { if { [catch { set in [ open $fin r ] } errin] == 0 } { if { [catch { set out [ open $fout w ] } errout] == 0 } { set nb [copyfile $in $out] - close $in + close $in close $out return 1 } else { @@ -2738,7 +2738,7 @@ proc OS:copy { fin fout } { puts stderr "Error: $errin" return -1 } - + } else { if { "[file type $fin]" == "link" } { file copy -force [file readlink $fin] $fout @@ -2754,9 +2754,9 @@ proc OS:copy { fin fout } { proc OS:wpack { module dir {verbose 0} } { set lret {} foreach m $module { - set fbck [file join $dir ${m}.bck] + set fbck [file join $dir ${m}.bck] if { $verbose } { - wpack -v -c -f $fbck -u [join [OS -u list $m] ,] + wpack -v -c -f $fbck -u [join [OS -u list $m] ,] } else { wpack -c -f $fbck -u [join [OS -u list $m] ,] } @@ -2764,44 +2764,9 @@ proc OS:wpack { module dir {verbose 0} } { } return $lret } -proc OS:vc6proj:projectby2 { TK Dep_Name module} { - append var \ - "Project: \"$Dep_Name\"=.\\$Dep_Name.dsp - Package Owner=<4>" "\n" \ - "\n" \ - "Package=<5>" "\n" \ - "\{\{\{" "\n" \ - "\}\}\}" "\n" \ - "\n" \ - "Package=<4>" "\n" \ - "\{\{\{" "\n" - if {[wokinfo -x [woklocate -u $TK]] != "0"} { - if {[uinfo -t [woklocate -u $TK]] == "toolkit"} { - set deplist [LibToLink [woklocate -u $TK]] - } else { - set deplist [LibToLinkX [woklocate -u $TK] $Dep_Name] - ;#puts "$TK + $Dep_Name = $deplist " - } - foreach deplib $deplist { - if {[lsearch [wokUtils:LIST:reverse [osutils:tk:sort [${module}:toolkits]]] $deplib] != "-1"} { - #;puts [wokUtils:LIST:reverse [osutils:tk:sort [${module}:toolkits]]] - if {$deplib != $TK} { - append var " Begin Project Dependency" "\n" \ - " Project_Dep_Name $deplib" "\n" \ - " End Project Dependency" "\n" - } - } - } - } - - append var "\}\}\}" "\n" \ - "\n" \ - "###############################################################################" "\n" \ - "\n" - return $var -} ;# -;# ((((((( C R E A T I O N D E S P R O J E T S V I S U A L ))))))) +;# ((((((( GENERATION OF PROJECT FILES FOR VISUAL STUDIO ))))))) ;# ;# fabrique le sln de module et le place dans dir. Retourne le ;# full path du fichier cree. @@ -2809,442 +2774,437 @@ proc OS:vc6proj:projectby2 { TK Dep_Name module} { ;# Sinon utilise tklist donnee en argument. ;# Dans ce cas module est seulement utilise pour le nom de fichier .sln ;# Avec ca je fais un OCC.sln qui concatene plusieurs modules dans le bon ordre. -;# +;# proc OS:genGUID {} { - set p1 "[format %07X [random 268435456]][format %X [random 16]]" - set p2 "[format %04X [random 6536]]" - set p3 "[format %04X [random 6536]]" - set p4 "[format %04X [random 6536]]" - set p5 "[format %06X [random 16777216]][format %06X [random 16777216]]" - return "{$p1-$p2-$p3-$p4-$p5}" - } - -# generate Visual Studio solution file for VC++ 7.1 - 9.0 -# if module is empty, generates one solution for all known modules -proc OS:vcsolution { vc plat name modules dir _guids } { - upvar $_guids guids - - # collect list of projects to be created - set projects {} - set deps {} - foreach m $modules { - # toolkits - foreach tk [osutils:tk:sort [${m}:toolkits]] { - lappend projects $tk - lappend projects_in_module($m) $tk - lappend deps [LibToLink [woklocate -u $tk]] - } - # executables, assume one project per cxx file... - foreach unit [OS:executable ${m}] { - set uloc [woklocate -u $unit] - set sourcefiles [uinfo -f -T source $uloc] - foreach cxxfile $sourcefiles { - set cxxextension [file extension $cxxfile] - if { $cxxextension == ".cxx" } { - set prjname [file rootname $cxxfile] - lappend projects $prjname - lappend projects_in_module($m) $prjname - if {[wokinfo -x $uloc] != "0"} { - lappend deps [LibToLinkX $uloc [file rootname $cxxfile]] - } else { - lappend deps {} - } - } - } - } - } - - # generate GUIDs for projects (unless already known) - foreach prj $projects { - if { ! [info exists guids($prj)] } { - set guids($prj) [OS:genGUID] - } - } - - # generate solution file - puts "Generating Visual Studio ($vc $plat) solution file for $name ($projects)" - append buffer [osutils:vcsolution:header $vc] - - # GUID identifying group projects in Visual Studio - set VC_GROUP_GUID "{2150E333-8FDC-42A3-9474-1A3956D46DE8}" - - # generate group projects -- one per module - if { "$vc" != "vc7" && [llength "$modules"] > 1 } { - foreach m $modules { - set guid [OS:genGUID] - set guids(_$m) $guid - append buffer "Project(\"${VC_GROUP_GUID}\") = \"$m\", \"$m\", \"$guid\"\nEndProject\n" - } - } - - # extension of project files - set vcprojext [osutils:vcproj:ext $vc] - - # GUID identifying C++ projects in Visual Studio - set VC_CPP_GUID "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}" - - # generate project "All" -# set allGUID \{570118B7-F56D-41C9-A838-29464CD03149\} -# append buffer "Project(\"${VC_CPP_GUID}\") = \"All\", \"All.${vcprojext}\", \"$allGUID\"\n" -# if { [llength $guids] > 0 } { -# append buffer "\tProjectSection(ProjectDependencies) = postProject\n" -# foreach guid $guids { -# append buffer "\t\t$guid = $guid\n" -# } -# append buffer "\tEndProjectSection\n" -# } -# append buffer "EndProject\n" - - # generate normal projects - set len [llength $projects] - for {set i 0} {$i < $len} {incr i} { - set proj [lindex $projects $i] - set guid $guids($proj) - append buffer "Project(\"${VC_CPP_GUID}\") = \"$proj\", \"$proj.${vcprojext}\", \"$guid\"\n" - # write projects dependencies information (vc7 to vc9) - set depguids "" - foreach deplib [lindex $deps $i] { - if { $deplib != $proj && [lsearch $projects $deplib] != "-1" } { - set depGUID $guids($deplib) - append depguids "\t\t$depGUID = $depGUID\n" - } - } - if { "$depguids" != "" } { - append buffer "\tProjectSection(ProjectDependencies) = postProject\n" - append buffer "$depguids" - append buffer "\tEndProjectSection\n" - } - append buffer "EndProject\n" - } - - # generate configuration section - append buffer [osutils:vcsolution:config:begin $vc $plat] -# append buffer [osutils:vcsolution:config:project $vc $plat $allGUID] - foreach proj $projects { - append buffer [osutils:vcsolution:config:project $vc $plat $guids($proj)] - } - append buffer [osutils:vcsolution:config:end $vc $plat] - - # write information of grouping of projects by module - if { "$vc" != "vc7" && [llength "$modules"] > 1 } { - append buffer " GlobalSection(NestedProjects) = preSolution\n" - foreach m $modules { - if { ! [info exists projects_in_module($m)] } { continue } - foreach project $projects_in_module($m) { - append buffer " $guids($project) = $guids(_$m)\n" - } - } - append buffer " EndGlobalSection\n" - } - - # final word (footer) - append buffer "EndGlobal" - - # write solution - set fp [open [set fdsw [file join $dir ${name}.sln]] w] - fconfigure $fp -translation crlf - puts $fp $buffer - close $fp - return [file join $dir ${name}.sln] + set p1 "[format %07X [expr { int(rand() * 268435456) }]][format %X [expr { int(rand() * 16) }]]" + set p2 "[format %04X [expr { int(rand() * 6536) }]]" + set p3 "[format %04X [expr { int(rand() * 6536) }]]" + set p4 "[format %04X [expr { int(rand() * 6536) }]]" + set p5 "[format %06X [expr { int(rand() * 16777216) }]][format %06X [expr { int(rand() * 16777216) }]]" + return "{$p1-$p2-$p3-$p4-$p5}" } -;# fabrique le dsw de module et le place dans dir. Retourne le -;# full path du fichier cree. -;# Si tklist est {} utilise module pour la calculer. -;# Sinon utilise tklist donnee en argument. -;# Dans ce cas module est seulement utilise pour le nom de fichier .dsw -;# Avec ca je fais un OCC.dsw qui concatene plusieurs modules dans le bon ordre. -;# -proc OS:vc6proj { module dir {inlist {}} } { - if { $inlist == {} } { - set list [wokUtils:LIST:reverse [osutils:tk:sort [${module}:toolkits]]] - } else { - set list $inlist - } - set list1 $list - foreach execunit [OS:executable ${module}] { - set sourcefiles [uinfo -f -T source [woklocate -u ${execunit}]] - foreach cxxfile $sourcefiles { - set cxxextension [file extension $cxxfile] - if { $cxxextension == ".cxx" } { - set list [concat [file rootname $cxxfile] $list] - } +# generate Visual Studio solution file +# if module is empty, generates one solution for all known modules +proc OS:vcsolution { theVcVer theSolName theModules theOutDir theGuidsMap } { + upvar $theGuidsMap aGuidsMap + + # collect list of projects to be created + set aProjects {} + set aDependencies {} + foreach aModule $theModules { + # toolkits + foreach aToolKit [osutils:tk:sort [${aModule}:toolkits]] { + lappend aProjects $aToolKit + lappend aProjectsInModule($aModule) $aToolKit + lappend aDependencies [LibToLink [woklocate -u $aToolKit]] + } + + # executables, assume one project per cxx file... + foreach aUnit [OS:executable ${aModule}] { + set aUnitLoc [woklocate -u $aUnit] + set aSrcFiles [uinfo -f -T source $aUnitLoc] + foreach aSrcFile $aSrcFiles { + set aFileExtension [file extension $aSrcFile] + if { $aFileExtension == ".cxx" } { + set aPrjName [file rootname $aSrcFile] + lappend aProjects $aPrjName + lappend aProjectsInModule($aModule) $aPrjName + if {[wokinfo -x $aUnitLoc] != "0"} { + lappend aDependencies [LibToLinkX $aUnitLoc [file rootname $aSrcFile]] + } else { + lappend aDependencies {} + } } - set list1 [concat $execunit $list1] - } - set len [llength $list1] - puts "OS:vc6proj list = $list1" - append buffer [osutils:vcsolution:header vc6] - append buffer "Project: \"All\"=.\\All.dsp - Package Owner=<4>" "\n" \ - "\n" \ - "Package=<5>" "\n" \ - "\{\{\{" "\n" \ - "\}\}\}" "\n" \ - "\n" \ - "Package=<4>" "\n" \ - "\{\{\{" "\n" - for {set i 0} {$i < $len} {incr i 1} { - set mastr [lindex $list1 $i] - if {[uinfo -t [woklocate -u $mastr]] == "executable"} { - set sourcefiles [uinfo -f -T source [woklocate -u $mastr]] - foreach cxxfile $sourcefiles { - set cxxextension [file extension $cxxfile] - if { $cxxextension == ".cxx" } { - append buffer " Begin Project Dependency" "\n" \ - " Project_Dep_Name [file rootname ${cxxfile}]" "\n" \ - " End Project Dependency" "\n" - - } - } - } else { - if {[lsearch [wokUtils:LIST:reverse [osutils:tk:sort [${module}:toolkits]]] $mastr] != "-1"} { - append buffer " Begin Project Dependency" "\n" \ - " Project_Dep_Name $mastr" "\n" \ - " End Project Dependency" "\n" - } - + } + } + } + + # generate GUIDs for projects (unless already known) + foreach aProject $aProjects { + if { ! [info exists aGuidsMap($aProject)] } { + set aGuidsMap($aProject) [OS:genGUID] + } + } + + # generate solution file + puts "Generating Visual Studio ($theVcVer) solution file for $theSolName ($aProjects)" + append aFileBuff [osutils:vcsolution:header $theVcVer] + + # GUID identifying group projects in Visual Studio + set VC_GROUP_GUID "{2150E333-8FDC-42A3-9474-1A3956D46DE8}" + + # generate group projects -- one per module + if { "$theVcVer" != "vc7" && [llength "$theModules"] > 1 } { + foreach aModule $theModules { + if { ! [info exists aGuidsMap(_$aModule)] } { + set aGuidsMap(_$aModule) [OS:genGUID] + } + set aGuid $aGuidsMap(_$aModule) + append aFileBuff "Project(\"${VC_GROUP_GUID}\") = \"$aModule\", \"$aModule\", \"$aGuid\"\nEndProject\n" + } + } + + # extension of project files + set aProjExt [osutils:vcproj:ext $theVcVer] + + # GUID identifying C++ projects in Visual Studio + set VC_CPP_GUID "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}" + + # generate project "All" + # set allGUID \{570118B7-F56D-41C9-A838-29464CD03149\} + # append aFileBuff "Project(\"${VC_CPP_GUID}\") = \"All\", \"All.${aProjExt}\", \"$allGUID\"\n" + # if { [llength $aGuidsMap] > 0 } { + # append aFileBuff "\tProjectSection(ProjectDependencies) = postProject\n" + # foreach aGuid $aGuidsMap { + # append aFileBuff "\t\t$aGuid = $aGuid\n" + # } + # append aFileBuff "\tEndProjectSection\n" + # } + # append aFileBuff "EndProject\n" + + # generate normal projects + set aProjsNb [llength $aProjects] + for {set aProjId 0} {$aProjId < $aProjsNb} {incr aProjId} { + set aProj [lindex $aProjects $aProjId] + set aGuid $aGuidsMap($aProj) + append aFileBuff "Project(\"${VC_CPP_GUID}\") = \"$aProj\", \"$aProj.${aProjExt}\", \"$aGuid\"\n" + # write projects dependencies information (vc7 to vc9) + set aDepGuids "" + foreach aDepLib [lindex $aDependencies $aProjId] { + if { $aDepLib != $aProj && [lsearch $aProjects $aDepLib] != "-1" } { + set depGUID $aGuidsMap($aDepLib) + append aDepGuids "\t\t$depGUID = $depGUID\n" + } + } + if { "$aDepGuids" != "" } { + append aFileBuff "\tProjectSection(ProjectDependencies) = postProject\n" + append aFileBuff "$aDepGuids" + append aFileBuff "\tEndProjectSection\n" + } + append aFileBuff "EndProject\n" + } + + # generate configuration section + if { "$theVcVer" == "vc8" } { + append aFileBuff [osutils:vcsolution:config:begin $theVcVer] + foreach aProj $aProjects { + append aFileBuff [osutils:vcsolution:config:project $theVcVer $aGuidsMap($aProj)] + } + append aFileBuff [osutils:vcsolution:config:end $theVcVer] + } else { + append aFileBuff [osutils:vcsolution:config:begin $theVcVer] + # append aFileBuff [osutils:vcsolution:config:project $theVcVer $allGUID] + foreach aProj $aProjects { + append aFileBuff [osutils:vcsolution:config:project $theVcVer $aGuidsMap($aProj)] + } + append aFileBuff [osutils:vcsolution:config:end $theVcVer] + } + + # write information of grouping of projects by module + if { "$theVcVer" != "vc7" && [llength "$theModules"] > 1 } { + append aFileBuff " GlobalSection(NestedProjects) = preSolution\n" + foreach aModule $theModules { + if { ! [info exists aProjectsInModule($aModule)] } { continue } + foreach aProject $aProjectsInModule($aModule) { + append aFileBuff " $aGuidsMap($aProject) = $aGuidsMap(_$aModule)\n" + } + } + append aFileBuff " EndGlobalSection\n" + } + + # final word (footer) + append aFileBuff "EndGlobal" + + # write solution + set aFile [open [set fdsw [file join $theOutDir ${theSolName}.sln]] w] + fconfigure $aFile -translation crlf + puts $aFile $aFileBuff + close $aFile + return [file join $theOutDir ${theSolName}.sln] +} + +# Generate Visual Studio projects for specified version +proc OS:vcproj { theVcVer theModules theOutDir theGuidsMap } { + upvar $theGuidsMap aGuidsMap + + set aProjectFiles {} + + foreach aModule $theModules { + foreach aToolKit [${aModule}:toolkits] { + lappend aProjectFiles [osutils:vcproj $theVcVer $theOutDir $aToolKit aGuidsMap] + } + foreach anExecutable [OS:executable ${aModule}] { + lappend aProjectFiles [osutils:vcprojx $theVcVer $theOutDir $anExecutable aGuidsMap] + } + } + return $aProjectFiles +} + +# Generate Code::Blocks projects +proc OS:cbp { theModules theOutDir } { + set aProjectFiles {} + foreach aModule $theModules { + foreach aToolKit [${aModule}:toolkits] { + lappend aProjectFiles [osutils:cbptk $theOutDir $aToolKit ] + } + foreach anExecutable [OS:executable ${aModule}] { + lappend aProjectFiles [osutils:cbpx $theOutDir $anExecutable] + } + } + return $aProjectFiles +} + +proc OS:cworkspace { theSolName theModules theOutDir } { + set aWsFilePath "${theOutDir}/${theSolName}.workspace" + set aFile [open $aWsFilePath "w"] + puts $aFile "" + puts $aFile "" + puts $aFile "\t" + + # collect list of projects to be created + foreach aModule $theModules { + # toolkits + foreach aToolKit [osutils:tk:sort [${aModule}:toolkits]] { + set aDependencies [LibToLink [woklocate -u $aToolKit]] + if { [llength $aDependencies] == 0 } { + puts $aFile "\t\t" + } else { + puts $aFile "\t\t" + foreach aDepTk $aDependencies { + puts $aFile "\t\t\t" } - } - append buffer "\}\}\}" "\n" \ - "\n" \ - "###############################################################################" "\n" \ - "\n" - - for {set i 0} {$i < $len} {incr i 1} { - set mastr [lindex $list1 $i] - if {[uinfo -t [woklocate -u $mastr]] == "executable"} { - set sourcefiles [uinfo -f -T source [woklocate -u ${mastr}]] - foreach cxxfile $sourcefiles { - set cxxextension [file extension $cxxfile] - if { $cxxextension == ".cxx" } { - append buffer [OS:vc6proj:projectby2 $mastr [file rootname $cxxfile] $module] - } - } - } else { - append buffer [OS:vc6proj:projectby2 $mastr $mastr $module] + puts $aFile "\t\t" + } + } + + # executables, assume one project per cxx file... + foreach aUnit [OS:executable ${aModule}] { + set aUnitLoc [woklocate -u $aUnit] + set aSrcFiles [uinfo -f -T source $aUnitLoc] + foreach aSrcFile $aSrcFiles { + set aFileExtension [file extension $aSrcFile] + if { $aFileExtension == ".cxx" } { + set aPrjName [file rootname $aSrcFile] + set aDependencies [list] + if {[wokinfo -x $aUnitLoc] != "0"} { + set aDependencies [LibToLinkX $aUnitLoc [file rootname $aSrcFile]] + } + if { [llength $aDependencies] == 0 } { + puts $aFile "\t\t" + } else { + puts $aFile "\t\t" + foreach aDepTk $aDependencies { + puts $aFile "\t\t\t" + } + puts $aFile "\t\t" + } } - } - append buffer [osutils:vc6proj:footer] - set fp [open [set fdsw [file join $dir ${module}.dsw]] w] - fconfigure $fp -translation crlf - puts $fp $buffer - close $fp - return [file join $dir ${module}.dsw] -} -;# -;# fabrique les dsp de module et les place dans dir. Retourne la liste -;# des full pathes des fichiers .dsp crees -;# que faire des UDs qui se balladent toutes seules. -;# -proc OS:vc6 { module dir } { - - set lret {} - - foreach tkloc [${module}:toolkits] { - lappend lret [osutils:vc6 $dir $tkloc] - } - if { [set lxqt [OS:executable ${module}]] != {} } { - foreach x $lxqt { - lappend lret [osutils:vc6x $dir $x] - } - } - - lappend lret [OS:vc6proj $module $dir] - return $lret -} - -# Generate Visual Studio projects for specified version (7 - 9) and platform -proc OS:vcproj { vc plat modules dir _guids } { - upvar $_guids guids - - set lret {} - - foreach mod $modules { - foreach tkloc [${mod}:toolkits] { - lappend lret [osutils:vcproj $vc $plat $dir $tkloc guids] - } - foreach x [OS:executable ${mod}] { - lappend lret [osutils:vcprojx $vc $plat $dir $x guids] - } - } - - return $lret -} - -;# -;# Pour la fab des procs de reconstruction (ainsi que pour -;# les projets Visual, tout peut se faire sur Unix.) d'ou: -;# -proc OS:MKPRC { {outdir {}} {modules {}} {platforms {}} {vcver {vc8 vc9 vc10}} } { - - set BOX $outdir - if { $BOX == "" } { - set BOX [OS -box] - } - - # versions of VC supported for each platform - set vcversions(win32) {vc6 vc7 vc8 vc9 vc10} - set vcversions(win64) {vc8 vc9 vc10} - - # make list of modules and platforms - set lesmodules [OS:listmodules $modules $platforms] - set lesplats $platforms - if { "$lesplats" == "" } { set lesplats [concat [OS:plats_disponibles] "win32 win64"] } - - # generate one solution for all projects if complete OS or VAS is processed - set one_solution "" - if { $modules == "OS" } { - set one_solution "OCCT" - } elseif { $modules == "VAS" } { - set one_solution "Products" - } - - foreach plat $lesplats { - puts stderr "OS:MKPRC: $plat" - - # compatibility: WindowsNT is alias to win32 - if { "$plat" == "WindowsNT" } { set plat "win32" } - - # make sure that we know such platform and can generate VC projects for it - if { ! [info exists vcversions($plat)] } { - puts stderr "Error: No supported versions of Visual Studio are known for platform $plat" - continue - } - - # generate projects for each of supported versions of VC - foreach vc $vcversions($plat) { - if { [llength $vcver] >0 && [lsearch $vcver $vc] < 0 } { - continue; - } - puts stderr "Generating project files for $vc $plat" - - # create output directory - set outdir $BOX/$plat/$vc - OS:mkdir $outdir - if { ! [file exists $outdir] } { - puts stderr "Error: Could not create output directory \"$outdir\"" - continue - } - - # generate projects for toolkits and separate solution for each module - foreach module $lesmodules { - if { "$vc" == "vc6" } { - OS:vc6 $module $outdir - } else { - OS:vcsolution $vc $plat $module $module $outdir guids - OS:vcproj $vc $plat $module $outdir guids - } - } - - # generate single solution "OCCT" containing projects from all modules - if { "$one_solution" != "" && "$vc" != "vc6" } { - OS:vcsolution $vc $plat $one_solution $lesmodules $BOX/$plat/$vc guids - } - } - } + } + } + } + + puts $aFile "\t" + puts $aFile "" + close $aFile + + return $aWsFilePath +} + +# Store global GUIDs map to reproduce same values on sequential calls +set aTKNullKey "TKNull" +set THE_GUIDS_LIST($aTKNullKey) "{00000000-0000-0000-0000-000000000000}" + +# Entry function to generate VS project files and solutions +proc OS:MKPRC { {theOutDir {}} {theModules {}} {theVcVersions {vc8 vc9 vc10}} } { + set anOutRoot $theOutDir + if { $anOutRoot == "" } { + set anOutRoot [OS -box] + } + + # versions of VC supported for each platform + set aVcVersions {vc7 vc8 vc9 vc10} + + # read map of already generated GUIDs + set aGuidsFilePath [file join $::env(WOK_SESSIONID) "wok_vs_guids.txt"] + if [file exists "$aGuidsFilePath"] { + set aFileIn [open "$aGuidsFilePath" r] + set aFileDataRaw [read $aFileIn] + close $aFileIn + set aFileData [split $aFileDataRaw "\n"] + foreach aLine $aFileData { + set aLineSplt [split $aLine "="] + if { [llength $aLineSplt] == 2 } { + set ::THE_GUIDS_LIST([lindex $aLineSplt 0]) [lindex $aLineSplt 1] + } + } + } + + # make list of modules and platforms + set aModules [OS:listmodules $theModules {win32}] + + # generate one solution for all projects if complete OS or VAS is processed + set anAllSolution "" + if { $theModules == "OS" } { + set anAllSolution "OCCT" + } elseif { $theModules == "VAS" } { + set anAllSolution "Products" + } + + # generate projects for each of supported versions of VC + foreach aVcVer $aVcVersions { + if { [llength $theVcVersions] > 0 && [lsearch $theVcVersions $aVcVer] < 0 } { + #puts stderr "Error: No supported versions of Visual Studio" + continue; + } + puts stderr "Generating VS project files for $aVcVer" + + # create output directory + set anOutDir $anOutRoot/msvc/$aVcVer + OS:mkdir $anOutDir + if { ! [file exists $anOutDir] } { + puts stderr "Error: Could not create output directory \"$anOutDir\"" + continue + } + + # generate projects for toolkits and separate solution for each module + foreach aModule $aModules { + OS:vcsolution $aVcVer $aModule $aModule $anOutDir ::THE_GUIDS_LIST + OS:vcproj $aVcVer $aModule $anOutDir ::THE_GUIDS_LIST + } + + # generate single solution "OCCT" containing projects from all modules + if { "$anAllSolution" != "" } { + OS:vcsolution $aVcVer $anAllSolution $aModules $anOutDir ::THE_GUIDS_LIST + } + } + + # create output directory for Code::Blocks project files + set aWokStation "$::env(WOKSTATION)" + set anOutDir "${anOutRoot}/${aWokStation}/cbp" + OS:mkdir $anOutDir + if { ! [file exists $anOutDir] } { + puts stderr "Error: Could not create output directory \"$anOutDir\"" + } else { + foreach aModule $aModules { + OS:cworkspace $aModule $aModule $anOutDir + OS:cbp $aModule $anOutDir + } + if { "$anAllSolution" != "" } { + OS:cworkspace $anAllSolution $aModules $anOutDir + } + } + + # Store generated GUIDs map + set anOutFile [open "$aGuidsFilePath" "w"] + fconfigure $anOutFile -translation lf + foreach aKey [array names ::THE_GUIDS_LIST] { + set aValue $::THE_GUIDS_LIST($aKey) + puts $anOutFile "${aKey}=${aValue}" + } + close $anOutFile } # This function was created for *.mak files generation (compilation with nmake utilite of MS Visual Studio). # The function creates *.mak files for toolkits of all the modules of OCC with osutils:mkmak procedure, -# for executables of all the modules of OCC with osutils:mkmakx procedure, then it generates All.mak files, +# for executables of all the modules of OCC with osutils:mkmakx procedure, then it generates All.mak files, # which will call compilation with generated *.mak files for toolkits and executables in appropriate order. -# -proc OS:MKMAK { {plase {}} {ll {} } } { - if {$plase == ""} { - set BOX "[OS -box]/WindowsNT" - } else { - set BOX $plase - } - - set lesmodules [OS -lm] - if { $ll != {} } { set lesmodules $ll } - - OS:mkdir $BOX - - set unitlist "" - set filelist "" - foreach module $lesmodules { - append unitlist "[${module}:toolkits] " - append filelist "[${module}:toolkits] " - foreach execunit [OS:executable $module] { - append unitlist "$execunit " - foreach execfile [osutils:tk:files $execunit osutils:am:compilable 0] { - append filelist "[file rootname [file tail $execfile]] " - } - } - } - puts "unitlist is $unitlist" - foreach unit $unitlist { - if {[uinfo -t [woklocate -u $unit]] == "toolkit"} { - osutils:mkmak $BOX $unit - } - if {[uinfo -t [woklocate -u $unit]] == "executable"} { - osutils:mkmakx $BOX $unit - } - } - - set fp [open [set fmak [file join $BOX All.mak]] w] - fconfigure $fp -translation crlf - - set buffer "" - append buffer "\!IF \"\$(CFG)\" == \"\"\n" - append buffer "CFG=All - Win32 Debug\n" - append buffer "\!MESSAGE No configuration specified. Defaulting to All - Win32 Debug.\n" - append buffer "\!ENDIF \n" - append buffer "\!IF \"\$(OS)\" == \"Windows_NT\"\n" - append buffer "NULL=\n" - append buffer "\!ELSE \n" - append buffer "NULL=nul\n" - append buffer "\!ENDIF \n" - append buffer "\n" +proc OS:MKMAK { {plase {}} {ll {} } } { + if {$plase == ""} { + set BOX "[OS -box]/WindowsNT" + } else { + set BOX $plase + } + + set lesmodules [OS -lm] + if { $ll != {} } { set lesmodules $ll } + + OS:mkdir $BOX + + set unitlist "" + set filelist "" + foreach module $lesmodules { + append unitlist "[${module}:toolkits] " + append filelist "[${module}:toolkits] " + foreach execunit [OS:executable $module] { + append unitlist "$execunit " + foreach execfile [osutils:tk:files $execunit osutils:am:compilable 0] { + append filelist "[file rootname [file tail $execfile]] " + } + } + } + puts "unitlist is $unitlist" + foreach unit $unitlist { + if {[uinfo -t [woklocate -u $unit]] == "toolkit"} { + osutils:mkmak $BOX $unit + } + if {[uinfo -t [woklocate -u $unit]] == "executable"} { + osutils:mkmakx $BOX $unit + } + } + + set fp [open [set fmak [file join $BOX All.mak]] w] + fconfigure $fp -translation crlf + + set buffer "" + append buffer "\!IF \"\$(CFG)\" == \"\"\n" + append buffer "CFG=All - Win32 Debug\n" + append buffer "\!MESSAGE No configuration specified. Defaulting to All - Win32 Debug.\n" + append buffer "\!ENDIF \n" + append buffer "\!IF \"\$(OS)\" == \"Windows_NT\"\n" + append buffer "NULL=\n" + append buffer "\!ELSE \n" + append buffer "NULL=nul\n" + append buffer "\!ENDIF \n" + append buffer "\n" + append buffer "\!IF \"\$(CFG)\" == \"All - Win32 Release\"\n" + append buffer "ALL : " + foreach unit $filelist { + append buffer "\"$unit - Win32 Release\" " + } + append buffer "\n" + append buffer "\n" + append buffer "CLEAN : " + foreach unit $filelist { + append buffer "\"$unit - Win32 ReleaseCLEAN\" " + } + append buffer "\n" + append buffer "\n" + append buffer "\!ELSEIF \"\$(CFG)\" == \"All - Win32 Debug\"\n" + append buffer "ALL : " + foreach unit $filelist { + append buffer "\"$unit - Win32 Debug\" " + } + append buffer "\n" + append buffer "\n" + append buffer "CLEAN : " + foreach unit $filelist { + append buffer "\"$unit - Win32 DebugCLEAN\" " + } + append buffer "\n" + append buffer "\n" + append buffer "\!ENDIF \n" + append buffer "\n" + append buffer "\!IF \"\$(CFG)\" == \"All - Win32 Release\" \|\| \"\$(CFG)\" == \"All - Win32 Debug\"\n" + append buffer "\n" + append buffer "\n" + + foreach unit $filelist { append buffer "\!IF \"\$(CFG)\" == \"All - Win32 Release\"\n" - append buffer "ALL : " - foreach unit $filelist { - append buffer "\"$unit - Win32 Release\" " - } - append buffer "\n" - append buffer "\n" - append buffer "CLEAN : " - foreach unit $filelist { - append buffer "\"$unit - Win32 ReleaseCLEAN\" " - } - append buffer "\n" - append buffer "\n" + append buffer "\"$unit - Win32 Release\" : \n" + append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Release\" RECURSE=0 \n" + append buffer "\"$unit - Win32 ReleaseCLEAN\" : \n" + append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Release\" CLEAN \n" append buffer "\!ELSEIF \"\$(CFG)\" == \"All - Win32 Debug\"\n" - append buffer "ALL : " - foreach unit $filelist { - append buffer "\"$unit - Win32 Debug\" " - } - append buffer "\n" - append buffer "\n" - append buffer "CLEAN : " - foreach unit $filelist { - append buffer "\"$unit - Win32 DebugCLEAN\" " - } - append buffer "\n" - append buffer "\n" + append buffer "\"$unit - Win32 Debug\" : \n" + append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Debug\" RECURSE=0 \n" + append buffer "\"$unit - Win32 DebugCLEAN\" : \n" + append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Debug\" CLEAN \n" append buffer "\!ENDIF \n" - append buffer "\n" - append buffer "\!IF \"\$(CFG)\" == \"All - Win32 Release\" \|\| \"\$(CFG)\" == \"All - Win32 Debug\"\n" - append buffer "\n" - append buffer "\n" - - foreach unit $filelist { - append buffer "\!IF \"\$(CFG)\" == \"All - Win32 Release\"\n" - append buffer "\"$unit - Win32 Release\" : \n" - append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Release\" RECURSE=0 \n" - append buffer "\"$unit - Win32 ReleaseCLEAN\" : \n" - append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Release\" CLEAN \n" - append buffer "\!ELSEIF \"\$(CFG)\" == \"All - Win32 Debug\"\n" - append buffer "\"$unit - Win32 Debug\" : \n" - append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Debug\" RECURSE=0 \n" - append buffer "\"$unit - Win32 DebugCLEAN\" : \n" - append buffer "\t\$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\${unit}.mak CFG=\"${unit} - Win32 Debug\" CLEAN \n" - append buffer "\!ENDIF \n" - } - append buffer "\!ENDIF \n" - puts $fp $buffer - close $fp + } + append buffer "\!ENDIF \n" + puts $fp $buffer + close $fp } ;# ;# Fabrication des archives "source" : @@ -3265,7 +3225,7 @@ proc OS:PKGSRC { {ll {} } {mode link} } { ;# La ou on cree l'arborescence pour l'archive. ;# et le nom de la racine contenue dans l'archive ;# - set TMPDIR /dn01/KAS/dev/ros/work + set TMPDIR /dn01/KAS/dev/ros/work set ROOT [OS:archive_root] ;# La ou on met le tar.gz avec le nom desire. ;# @@ -3282,8 +3242,8 @@ proc OS:PKGSRC { {ll {} } {mode link} } { puts stderr "OS:PKGSRC($module)" set LISTE {} - ;#OS -lsource $module -v -o $BOX/$module.sources - OS -lsource $module -o $BOX/$module.sources + ;#OS -lsource $module -v -o $BOX/$module.sources + OS -lsource $module -o $BOX/$module.sources OS -u udlist $module -o $BOX/$module.UDLIST set lx [wokUtils:FILES:FileToList $BOX/$module.sources] lappend lx "$BOX/$module.UDLIST [file join adm $module.UDLIST]" @@ -3308,7 +3268,7 @@ proc OS:PKGSRC { {ll {} } {mode link} } { if [file exists $BOX/${module}.ressources] { lappend LISTE $BOX/${module}.ressources } - + OS -lfreefiles ${module} -type source -o $BOX/${module}.freefiles if [file exists $BOX/${module}.freefiles] { lappend LISTE $BOX/${module}.freefiles @@ -3319,7 +3279,7 @@ proc OS:PKGSRC { {ll {} } {mode link} } { set tmpdir [file join $TMPDIR $module src] set r [OS -mktree -mode $mode -from [join $LISTE ,] -tmpdir $tmpdir -root $ROOT] - + set znam [format $fmtnam [${module}:name]] set z [OS -mkar $znam $module -tmpdir $tmpdir -root $ROOT] @@ -3362,7 +3322,7 @@ proc OS:PKGRTL { {llplat {}} {ll {} } { mode link } } { if { $llplat != {} } { set lesplats $llplat } set lmodules [OS -lm] if { $ll != {} } { set lmodules $ll } - + set lesmodules {} foreach mo $lmodules { if { [lsearch [${mo}:Export] runtime] != -1 } { @@ -3390,7 +3350,7 @@ proc OS:PKGRTL { {llplat {}} {ll {} } { mode link } } { OS -lfreefiles ${module} -type runtime -o $BOX/$plat/${module}.freefiles lappend LISTE $BOX/$plat/${module}.freefiles set tmpdir [file join $TMPDIR $module $plat] - + puts "mktree: " set r [OS -v -mktree -mode $mode -from [join $LISTE ,] -tmpdir $tmpdir -root [file join $ROOT $plat]] if [file exists $r/src ] { @@ -3400,7 +3360,7 @@ proc OS:PKGRTL { {llplat {}} {ll {} } { mode link } } { exec mv $plat/src . cd $savpwd } - + puts "mkar: " set znam [format $fmtnam $plat [${module}:name]] set z [OS -mkar $znam -tmpdir $tmpdir -root $ROOT] @@ -3408,435 +3368,417 @@ proc OS:PKGRTL { {llplat {}} {ll {} } { mode link } } { } } } -;# -;# Administration de wok -;# -proc OS:PKGADM { plat { ll {} } } { -;# -;# ce qui suit veut dire que: -;# on substitue /adv_11/KAS/C30/ref par TOSUBSTITUTE ET /adv_11/KAS/C30/UpdateC31 par TOSUBSTITUTE etc.. -;# sur la plateforme correspondante. -;# - set TOTRIM(wokadm,WindowsNT) nothing,nothing - set TOTRIM(wokadm,SunOS) \ - /dn01/KAS/dev/roc,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE - set TOTRIM(wokadm,IRIX) \ - /dn01/KAS/dev/ros,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE - set TOTRIM(wokadm,Linux) \ - /dn01/KAS/dev/ros,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE - set TOTRIM(wokadm,AIX) \ - /dn01/KAS/dev/ros,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE - - set BOX [OS -box] - set lmodules [OS -lm] - if { $ll != {} } { set lmodules $ll } - set lesmodules {} - foreach mo $lmodules { - if { [lsearch [${mo}:Export] wokadm] != -1 } { - lappend lesmodules $mo - } - } - - set TMPDIR /dn01/KAS/dev/ros/work/ADM - set ROOT [OS:archive_root] - set DISTRIB [OS -distrib] - set fmtnam "$DISTRIB/%swokadm%s-[OS:dotted_version].tar" - - puts stderr "OS:PKGADM: $plat . On retire $TOTRIM(wokadm,$plat) des fichiers wokadm" - - foreach module $lesmodules { - set tmpdir [file join $TMPDIR $module $plat] - catch { exec rm -rf $tmpdir } - OS -os $plat -makadm $tmpdir $module -substr $TOTRIM(wokadm,$plat) \ - -subdone [file join $tmpdir $module.TOSUBSTITUTE] -o $BOX/$plat/$module.wokadm - OS -u udlist $module -o [file join $tmpdir $module.UDLIST] - set lx [wokUtils:FILES:FileToList $BOX/$plat/$module.wokadm] - lappend lx "[file join $tmpdir $module.UDLIST] [file join adm $module.UDLIST]" - lappend lx "[file join $tmpdir $module.TOSUBSTITUTE] [file join adm $plat $module.TOSUBSTITUTE]" - wokUtils:FILES:ListToFile $lx $BOX/$plat/$module.wokadm - set r [OS -mktree -from $BOX/$plat/$module.wokadm -tmpdir $tmpdir -root $ROOT] - set znam [format $fmtnam $plat [${module}:name]] - set z [OS -mkar $znam -tmpdir $tmpdir -root $ROOT] - } -} -;# -;# Sources des modules compactes a la wok -;# +# Administration de wok +proc OS:PKGADM { plat { ll {} } } { + ;# + ;# ce qui suit veut dire que: + ;# on substitue /adv_11/KAS/C30/ref par TOSUBSTITUTE ET /adv_11/KAS/C30/UpdateC31 par TOSUBSTITUTE etc.. + ;# sur la plateforme correspondante. + ;# + set TOTRIM(wokadm,WindowsNT) nothing,nothing + set TOTRIM(wokadm,SunOS) \ + /dn01/KAS/dev/roc,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE + set TOTRIM(wokadm,IRIX) \ + /dn01/KAS/dev/ros,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE + set TOTRIM(wokadm,Linux) \ + /dn01/KAS/dev/ros,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE + set TOTRIM(wokadm,AIX) \ + /dn01/KAS/dev/ros,TOSUBSTITUTE,/adv_11/KAS/C30/UpdateC31,TOSUBSTITUTE,/adv_10/KAS/C30/UpdateC31,TOSUBSTITUTE + + set BOX [OS -box] + set lmodules [OS -lm] + if { $ll != {} } { set lmodules $ll } + set lesmodules {} + foreach mo $lmodules { + if { [lsearch [${mo}:Export] wokadm] != -1 } { + lappend lesmodules $mo + } + } + + set TMPDIR /dn01/KAS/dev/ros/work/ADM + set ROOT [OS:archive_root] + + set DISTRIB [OS -distrib] + set fmtnam "$DISTRIB/%swokadm%s-[OS:dotted_version].tar" + + puts stderr "OS:PKGADM: $plat . On retire $TOTRIM(wokadm,$plat) des fichiers wokadm" + + foreach module $lesmodules { + set tmpdir [file join $TMPDIR $module $plat] + catch { exec rm -rf $tmpdir } + OS -os $plat -makadm $tmpdir $module -substr $TOTRIM(wokadm,$plat) \ + -subdone [file join $tmpdir $module.TOSUBSTITUTE] -o $BOX/$plat/$module.wokadm + OS -u udlist $module -o [file join $tmpdir $module.UDLIST] + set lx [wokUtils:FILES:FileToList $BOX/$plat/$module.wokadm] + lappend lx "[file join $tmpdir $module.UDLIST] [file join adm $module.UDLIST]" + lappend lx "[file join $tmpdir $module.TOSUBSTITUTE] [file join adm $plat $module.TOSUBSTITUTE]" + wokUtils:FILES:ListToFile $lx $BOX/$plat/$module.wokadm + set r [OS -mktree -from $BOX/$plat/$module.wokadm -tmpdir $tmpdir -root $ROOT] + set znam [format $fmtnam $plat [${module}:name]] + set z [OS -mkar $znam -tmpdir $tmpdir -root $ROOT] + } +} + +# Sources des modules compactes a la wok proc OS:SRCBCK { {ll {}} } { - - set BOX [OS -box] - set lmodules [OS -lm] - if { $ll != {} } { set lmodules $ll } - set lesmodules {} - foreach mo $lmodules { - if { [lsearch [${mo}:Export] source] != -1 } { - lappend lesmodules $mo - } - } - ;# La ou on cree l'arborescence pour l'archive. - ;# et le nom de la racine contenue dans l'archive + + set BOX [OS -box] + set lmodules [OS -lm] + if { $ll != {} } { set lmodules $ll } + set lesmodules {} + foreach mo $lmodules { + if { [lsearch [${mo}:Export] source] != -1 } { + lappend lesmodules $mo + } + } + ;# La ou on cree l'arborescence pour l'archive. + ;# et le nom de la racine contenue dans l'archive + ;# + ;# La ou on met le tar.gz avec le nom desire. + ;# + set DISTRIB [OS -distrib] + set fmtnam "$DISTRIB/%s-[OS:dotted_version].bck" + + foreach module $lesmodules { + wokcd KAS:dev:ros + puts stderr "OS:SRCBCK($module)" + OS:wpack $module $DISTRIB 1 + } +} + +# Fabrication des tar.gz avec option --files de tar. + rapide , + sur, + simple, + elegant. +proc OSPKGS { {ll {} } } { + + set BOX [OS -box] + set lmodules [OS -lm] + if { $ll != {} } { set lmodules $ll } + set lesmodules {} + foreach mo $lmodules { + if { [lsearch [${mo}:Export] source] != -1 } { + lappend lesmodules $mo + } + } + + ;# La ou on cree l'arborescence pour l'archive. + ;# et le nom de la racine contenue dans l'archive + ;# + set ROOT [OS:archive_root] + ;# La ou on met le tar.gz avec le nom desire. + ;# + set DISTRIB [OS -distrib] + ;#set fmtnam "$DISTRIB/source%s-[OS:dotted_version].tar" + set fmtnam "$DISTRIB/SOURCE%s-[OS:dotted_version].tar" + + set LISTOFROOTS [list /dn01/KAS/dev/ros/ /adv_11/KAS/C30/UpdateC31/ /dn01/KAS/dev/ros/drv/ /adv_11/KAS/C30/ros/ ] + + foreach module $lesmodules { + puts stderr "OS:PKGS($module)" + ;# Init de lsource par module. + set lsource {} + set lsource [concat $lsource [OS -LSOURCE $module]] + OS -u udlist $module -o $BOX/$module.UDLIST + set lsource [concat $lsource $BOX/$module.UDLIST] ;# - ;# La ou on met le tar.gz avec le nom desire. + ;# Pour embarquer les projets Visual. ;# - set DISTRIB [OS -distrib] - set fmtnam "$DISTRIB/%s-[OS:dotted_version].bck" - - foreach module $lesmodules { - wokcd KAS:dev:ros - puts stderr "OS:SRCBCK($module)" - OS:wpack $module $DISTRIB 1 + foreach plats [concat [OS:plats_disponibles] WindowsNT] { + if [file exists $BOX/$plats/${module}.admfiles] { + puts " ADM = $BOX/$plats/${module}.admfiles " + foreach proc [wokUtils:FILES:FileToList $BOX/$plats/${module}.admfiles] { + ;#puts " proc = [lindex $proc 0]" + set lsource [concat $lsource [lindex $proc 0]] + } + ;#lappend LISTE $BOX/$plats/${module}.admfiles + } else { + puts stderr "Note : pas de fichier $BOX/$plats/${module}.admfiles" + } + } + + set lsource [concat $lsource [OS -LRESSOURCE $module -type source]] + set lsource [concat $lsource [OS -LFREEFILES $module -type source]] + + set znam [format $fmtnam [${module}:name]] + set r3 [wokUtils:EASY:gnutar $LISTOFROOTS $lsource $znam] + if { [set ignored [lindex $r3 0]] == {} } { + set script [lindex $r3 1] + wokUtils:FILES:ListToFile $script [set command [wokUtils:FILES:tmpname ${module}]] + if ![catch { eval exec csh -f $command } status ] { + puts stderr $status + unlink $command + } else { + puts "Ex ERROR: $status" + } + foreach f [lindex $r3 2] { + OS:delete $f + } + } else { + puts "OSPKGS : Fatal ( $module ): Impossible de traiter :" + foreach f $ignored { + puts $f + } } -} + } -;# -;# Fabrication des tar.gz avec option --files de tar. + rapide , + sur, + simple, + elegant. -;# -;# -proc OSPKGS { {ll {} } } { - - set BOX [OS -box] - set lmodules [OS -lm] - if { $ll != {} } { set lmodules $ll } - set lesmodules {} - foreach mo $lmodules { - if { [lsearch [${mo}:Export] source] != -1 } { - lappend lesmodules $mo - } - } + return +} - ;# La ou on cree l'arborescence pour l'archive. - ;# et le nom de la racine contenue dans l'archive - ;# - set ROOT [OS:archive_root] - ;# La ou on met le tar.gz avec le nom desire. - ;# - set DISTRIB [OS -distrib] - ;#set fmtnam "$DISTRIB/source%s-[OS:dotted_version].tar" - set fmtnam "$DISTRIB/SOURCE%s-[OS:dotted_version].tar" +# Fabrique les archives RunTime +# OS:PKGRTL Linux Draw 1 1 +proc OSPKGR { {llplat {}} {ll {} } } { - set LISTOFROOTS [list /dn01/KAS/dev/ros/ /adv_11/KAS/C30/UpdateC31/ /dn01/KAS/dev/ros/drv/ /adv_11/KAS/C30/ros/ ] + set BOX [OS -box] - foreach module $lesmodules { - puts stderr "OS:PKGS($module)" - ;# Init de lsource par module. - set lsource {} - set lsource [concat $lsource [OS -LSOURCE $module]] - OS -u udlist $module -o $BOX/$module.UDLIST - set lsource [concat $lsource $BOX/$module.UDLIST] - ;# - ;# Pour embarquer les projets Visual. - ;# - foreach plats [concat [OS:plats_disponibles] WindowsNT] { - if [file exists $BOX/$plats/${module}.admfiles] { - puts " ADM = $BOX/$plats/${module}.admfiles " - foreach proc [wokUtils:FILES:FileToList $BOX/$plats/${module}.admfiles] { - ;#puts " proc = [lindex $proc 0]" - set lsource [concat $lsource [lindex $proc 0]] - } - ;#lappend LISTE $BOX/$plats/${module}.admfiles - } else { - puts stderr "Note : pas de fichier $BOX/$plats/${module}.admfiles" - } - } + set lesplats [OS:plats_disponibles] + if { $llplat != {} } { set lesplats $llplat } + set lmodules [OS -lm] + if { $ll != {} } { set lmodules $ll } - set lsource [concat $lsource [OS -LRESSOURCE $module -type source]] - set lsource [concat $lsource [OS -LFREEFILES $module -type source]] - - set znam [format $fmtnam [${module}:name]] - set r3 [wokUtils:EASY:gnutar $LISTOFROOTS $lsource $znam] - if { [set ignored [lindex $r3 0]] == {} } { - set script [lindex $r3 1] - wokUtils:FILES:ListToFile $script [set command [wokUtils:FILES:tmpname ${module}]] - if ![catch { eval exec csh -f $command } status ] { - puts stderr $status - unlink $command - } else { - puts "Ex ERROR: $status" - } - foreach f [lindex $r3 2] { - OS:delete $f - } - } else { - puts "OSPKGS : Fatal ( $module ): Impossible de traiter :" - foreach f $ignored { - puts $f - } - } + set lesmodules {} + foreach mo $lmodules { + if { [lsearch [${mo}:Export] runtime] != -1 } { + lappend lesmodules $mo } + } - return - -} -;# -;# Fabrique les archives RunTime -;# OS:PKGRTL Linux Draw 1 1 -;# -proc OSPKGR { {llplat {}} {ll {} } } { - - set BOX [OS -box] + set ROOT [OS:archive_root] + set DISTRIB [OS -distrib] + set fmtnam "$DISTRIB/NEW%s%s-[OS:dotted_version].tar" - set lesplats [OS:plats_disponibles] - if { $llplat != {} } { set lesplats $llplat } - set lmodules [OS -lm] - if { $ll != {} } { set lmodules $ll } - - set lesmodules {} - foreach mo $lmodules { - if { [lsearch [${mo}:Export] runtime] != -1 } { - lappend lesmodules $mo - } - } + set LISTOFROOTS [list /dn01/KAS/dev/ros/ /adv_11/KAS/C30/UpdateC31/ /adv_10/KAS/C30/UpdateC31/ /adv_11/KAS/C30/ros/ ] - set ROOT [OS:archive_root] - set DISTRIB [OS -distrib] - set fmtnam "$DISTRIB/NEW%s%s-[OS:dotted_version].tar" - - set LISTOFROOTS [list /dn01/KAS/dev/ros/ /adv_11/KAS/C30/UpdateC31/ /adv_10/KAS/C30/UpdateC31/ /adv_11/KAS/C30/ros/ ] - - foreach plat $lesplats { - puts stderr "OS:PKGR: $plat" - foreach module $lesmodules { - set lruntime {} - set lruntime [concat $lruntime [OS -os $plat -LSHARE $module]] - set lruntime [concat $lruntime [OS -os $plat -LRESSOURCE $module -type runtime]] - set lruntime [concat $lruntime [OS -LFREEFILES ${module} -type runtime ]] - puts "$module : " - foreach rtl [lsort $lruntime] { - puts $rtl - } - set znam [format $fmtnam $plat [${module}:name]] - set r3 [wokUtils:EASY:gnutar $LISTOFROOTS $lruntime $znam] - if { [set ignored [lindex $r3 0]] == {} } { - set script [lindex $r3 1] - wokUtils:FILES:ListToFile $script [set command [wokUtils:FILES:tmpname ${plat}${module}]] - if ![catch { eval exec csh -f $command } status ] { - puts stderr $status - unlink $command - } else { - puts "Ex ERROR: $status" - } - foreach f [lindex $r3 2] { - OS:delete $f - } - } else { - puts "OSPKGR : Fatal ( $module ): Impossible de traiter :" - foreach f $ignored { - puts $f - } - } - } + foreach plat $lesplats { + puts stderr "OS:PKGR: $plat" + foreach module $lesmodules { + set lruntime {} + set lruntime [concat $lruntime [OS -os $plat -LSHARE $module]] + set lruntime [concat $lruntime [OS -os $plat -LRESSOURCE $module -type runtime]] + set lruntime [concat $lruntime [OS -LFREEFILES ${module} -type runtime ]] + puts "$module : " + foreach rtl [lsort $lruntime] { + puts $rtl + } + set znam [format $fmtnam $plat [${module}:name]] + set r3 [wokUtils:EASY:gnutar $LISTOFROOTS $lruntime $znam] + if { [set ignored [lindex $r3 0]] == {} } { + set script [lindex $r3 1] + wokUtils:FILES:ListToFile $script [set command [wokUtils:FILES:tmpname ${plat}${module}]] + if ![catch { eval exec csh -f $command } status ] { + puts stderr $status + unlink $command + } else { + puts "Ex ERROR: $status" + } + foreach f [lindex $r3 2] { + OS:delete $f + } + } else { + puts "OSPKGR : Fatal ( $module ): Impossible de traiter :" + foreach f $ignored { + puts $f + } + } } + } } + ############## -;# just for test +# just for test proc OS:xml { lm } { - - set doc [::dom::DOMImplementation create] - set top [::dom::document createElement $doc OpenCascade] - foreach m $lm { - puts stderr " module $m ... " - set mnode [::dom::document createElement $top module] - dom::element setAttribute $mnode name $m - foreach tkloc [${m}:toolkits] { - set tknod [::dom::document createElement $mnode toolkit] - - set lcsf [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]] - if { $lcsf != {} } { - dom::element setAttribute $tknod externlibs [join $lcsf ,] - } - ;#set lclose [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] - ;#if { $lclose != {} } { - ;#dom::element setAttribute $tknod usedtk [join $lclose ,] - ;#} - set ids [woklocate -p [wokinfo -n [wokinfo -u $tkloc]]:source:EXTERNLIB [wokinfo -w [woklocate -u $tkloc]]] - set eated [osutils:tk:eatpk $ids] - if { $eated != {} } { - dom::element setAttribute $tknod usedtk [join $eated ,] - } - dom::element setAttribute $tknod name $tkloc - set lun [osutils:tk:units [woklocate -u $tkloc] 3] - foreach namu $lun { - set unode [::dom::document createElement $tknod devunit] - dom::element setAttribute $unode name [lindex $namu 1] - dom::element setAttribute $unode type [lindex $namu 0] - foreach fil [osutils:tk:files [lindex $namu 1] {} 1] { - set fnode [::dom::document createElement $unode source] - dom::element setAttribute $fnode name $fil - } - } - } + set doc [::dom::DOMImplementation create] + set top [::dom::document createElement $doc OpenCascade] + foreach m $lm { + puts stderr " module $m ... " + set mnode [::dom::document createElement $top module] + dom::element setAttribute $mnode name $m + foreach tkloc [${m}:toolkits] { + set tknod [::dom::document createElement $mnode toolkit] + + set lcsf [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]] + if { $lcsf != {} } { + dom::element setAttribute $tknod externlibs [join $lcsf ,] + } + ;#set lclose [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] + ;#if { $lclose != {} } { + ;#dom::element setAttribute $tknod usedtk [join $lclose ,] + ;#} + set ids [woklocate -p [wokinfo -n [wokinfo -u $tkloc]]:source:EXTERNLIB [wokinfo -w [woklocate -u $tkloc]]] + set eated [osutils:tk:eatpk $ids] + if { $eated != {} } { + dom::element setAttribute $tknod usedtk [join $eated ,] + } + dom::element setAttribute $tknod name $tkloc + set lun [osutils:tk:units [woklocate -u $tkloc] 3] + foreach namu $lun { + set unode [::dom::document createElement $tknod devunit] + dom::element setAttribute $unode name [lindex $namu 1] + dom::element setAttribute $unode type [lindex $namu 0] + foreach fil [osutils:tk:files [lindex $namu 1] {} 1] { + set fnode [::dom::document createElement $unode source] + dom::element setAttribute $fnode name $fil + } + } } - return [::dom::DOMImplementation serialize $doc -newline toolkit] + } + return [::dom::DOMImplementation serialize $doc -newline toolkit] } # ABV 30.07.2010: remains of eliminated OSDEF.tcl put below -;# -;# retourne l'adresse du fichier .comp pour l'ud -;# le fichier .comp contient les phrases de compils -;# pour tous les sources de l'UD. -;# Les procs Linux sont maintenant sur le serveur. -;# +# retourne l'adresse du fichier .comp pour l'ud +# le fichier .comp contient les phrases de compils +# pour tous les sources de l'UD. +# Les procs Linux sont maintenant sur le serveur. proc OS:getcomp { loc askplat } { - set f [woklocate -p ${loc}:stadmfile:${loc}.comp] - if { [file exists $f] } { - return $f - } - puts stderr "Error (OS:getcomp): Could not locate file ${loc}.comp" - return "" + set f [woklocate -p ${loc}:stadmfile:${loc}.comp] + if { [file exists $f] } { + return $f + } + puts stderr "Error (OS:getcomp): Could not locate file ${loc}.comp" + return "" +} + +# debug temporaire je n'ai pas le temps. +# ce machin n'est pas coherent avec la nomination WOK des UD exec +# Ud U => U_a.comp et a.lnk pour l'executable a de U +# je verrais ca plus tard. +proc OS:getcompx { loc askplat name } { + set f [woklocate -p ${loc}:stadmfile:${loc}_${name}.comp] + if { [file exists $f] } { + return $f + } + puts stderr "Error (OS:getcompx): Could not locate file ${loc}_${name}.comp" + return "" } -;# -;# debug temporaire je n'ai pas le temps. -;# ce machin n'est pas coherent avec la nomination WOK des UD exec -;# Ud U => U_a.comp et a.lnk pour l'executable a de U -;# je verrais ca plus tard. - -proc OS:getcompx { loc askplat name } { - set f [woklocate -p ${loc}:stadmfile:${loc}_${name}.comp] - if { [file exists $f] } { - return $f - } - puts stderr "Error (OS:getcompx): Could not locate file ${loc}_${name}.comp" - return "" -} - -;# toolkits mis dans une shareable. -;# retourne l'adresse du fichier .lnk pour l'ud -;# le fichier .lnk contient la phrase de link -;# +# toolkits mis dans une shareable. +# retourne l'adresse du fichier .lnk pour l'ud +# le fichier .lnk contient la phrase de link proc OS:getlinkso { tkloc askplat } { - set f [woklocate -p ${tkloc}:stadmfile:${tkloc}.lnk] - if { [file exists $f] } { - return $f - } - puts stderr "Error (OS:getlinkso): Could not locate file ${tkloc}.lnk" - return "" -} - -;# toolkits mis dans une shareable. -;# retourne l'adresse du fichier .lnk pour l'ud -;# le fichier .lnk contient la phrase de link -;# + set f [woklocate -p ${tkloc}:stadmfile:${tkloc}.lnk] + if { [file exists $f] } { + return $f + } + puts stderr "Error (OS:getlinkso): Could not locate file ${tkloc}.lnk" + return "" +} + +# toolkits mis dans une shareable. +# retourne l'adresse du fichier .lnk pour l'ud +# le fichier .lnk contient la phrase de link proc OS:getlinkx { loc askplat name} { - set f [woklocate -p ${loc}:stadmfile:${name}.lnk] - if { [file exists $f] } { - return $f - } - puts stderr "Error (OS:getlinkx): Could not locate file ${name}.lnk" - return "" + set f [woklocate -p ${loc}:stadmfile:${name}.lnk] + if { [file exists $f] } { + return $f + } + puts stderr "Error (OS:getlinkx): Could not locate file ${name}.lnk" + return "" } -;# -;# Peut maintenant retourner une liste d'items. -;# Pour les .exp de pop sur IBM -;# + +# Peut maintenant retourner une liste d'items. +# Pour les .exp de pop sur IBM proc OS:getshare { tkloc askplat } { - switch -- $askplat { + switch -- $askplat { - IRIX { - return [woklocate -p ${tkloc}:library:lib${tkloc}.so] - } + IRIX { + return [woklocate -p ${tkloc}:library:lib${tkloc}.so] + } - Linux { - return [woklocate -p ${tkloc}:library:lib${tkloc}.so] - } + Linux { + return [woklocate -p ${tkloc}:library:lib${tkloc}.so] + } - #HP-UX { - # return [woklocate -p ${tkloc}:library:lib${tkloc}.sl] - #} + #HP-UX { + # return [woklocate -p ${tkloc}:library:lib${tkloc}.sl] + #} - SunOS { - return [woklocate -p ${tkloc}:librarylib${tkloc}.so] - } + SunOS { + return [woklocate -p ${tkloc}:librarylib${tkloc}.so] + } - #AIX { - # return [list [woklocate -p ${tkloc}:library:lib${tkloc}.so] \ - # [woklocate -p ${tkloc}:library:lib${tkloc}.exp] - #} + #AIX { + # return [list [woklocate -p ${tkloc}:library:lib${tkloc}.so] \ + # [woklocate -p ${tkloc}:library:lib${tkloc}.exp] + #} - WindowsNT { - return [list [woklocate -p ${tkloc}:library:${tkloc}.dll] [woklocate -p ${tkloc}:library:${tkloc}.lib]] - } + WindowsNT { + return [list [woklocate -p ${tkloc}:library:${tkloc}.dll] [woklocate -p ${tkloc}:library:${tkloc}.lib]] + } - win32 { - return [list [woklocate -p ${tkloc}:library:${tkloc}.dll] [woklocate -p ${tkloc}:library:${tkloc}.lib]] - } + win32 { + return [list [woklocate -p ${tkloc}:library:${tkloc}.dll] [woklocate -p ${tkloc}:library:${tkloc}.lib]] + } - win64 { - return [list [woklocate -p ${tkloc}:library:${tkloc}.dll] [woklocate -p ${tkloc}:library:${tkloc}.lib]] - } + win64 { + return [list [woklocate -p ${tkloc}:library:${tkloc}.dll] [woklocate -p ${tkloc}:library:${tkloc}.lib]] + } - default { - puts "Completer getshare sur $askplat." - return {} - } + default { + puts "Completer getshare sur $askplat." + return {} } + } } -;# -;# -;# + +# proc OS:getx { tkloc askplat } { - set f [woklocate -p ${tkloc}:executable:${tkloc}] - if { [file exists $f] } { - return $f - } - puts stderr "Error (OS:getx): Could not locate file ${tkloc}" - return "" -} -;# -;# Retourne la liste des plateformes -;# Note: WindowsNT n'est pas mentionne car: -;# -;# 1. Les archives de sources sont plateforme independantes -;# 2. Les procs de refab (placees dans les archives de source) sont -;# fabriques specifiquement mais TOUT est fait sur Unix.(voir OS:MKPRC) -;# 3. Les run-time sont traites directement depuis une machine NT. -;# On specifie alors la plateforme desirees. -;# + set f [woklocate -p ${tkloc}:executable:${tkloc}] + if { [file exists $f] } { + return $f + } + puts stderr "Error (OS:getx): Could not locate file ${tkloc}" + return "" +} + +# Retourne la liste des plateformes +# Note: WindowsNT n'est pas mentionne car: +# +# 1. Les archives de sources sont plateforme independantes +# 2. Les procs de refab (placees dans les archives de source) sont +# fabriques specifiquement mais TOUT est fait sur Unix.(voir OS:MKPRC) +# 3. Les run-time sont traites directement depuis une machine NT. +# On specifie alors la plateforme desirees. proc OS:plats_disponibles { } { -# return [list Linux SunOS IRIX AIX HP-UX] - return [list SunOS Linux ] +# return [list Linux SunOS IRIX AIX HP-UX] + return [list SunOS Linux ] } -;# -;# Nom de la racine dans l'archive. -;# + +# Nom de la racine dans l'archive. proc OS:archive_root {} { - return CAS[OS:dotted_version] + return CAS[OS:dotted_version] } -;# -;# + +# proc OS:dotted_version {} { - return 6.4.0 + return 6.5.3 } -;# -;# + +# proc OS:simple_version {} { - return 640 + return 653 } -;# -;# +# proc OS:defbox {} { - return [OS:casroot]/adm + return [OS:casroot]/adm } # If "what" is OS or VAS, returns list of modules or projects, respectively; # if it is empty, returns list of both modules and products, # otherwise returns input value (assumed to be already a list of modules) proc OS:listmodules {what {platforms {}}} { - OS:init - if { "$what" == "" } { - if { "$platforms" != "" } { - return [OS -lm -plat $platforms] - } else { - return [OS -lm] - } - return [OS -lm] - } elseif { "$what" == "OS" } { - return [OS:Modules $platforms] - } elseif { "$what" == "VAS" } { - return [VAS:Products] - } - return "$what" + OS:init + if { "$what" == "" } { + if { "$platforms" != "" } { + return [OS -lm -plat $platforms] + } else { + return [OS -lm] + } + return [OS -lm] + } elseif { "$what" == "OS" } { + return [OS:Modules $platforms] + } elseif { "$what" == "VAS" } { + return [VAS:Products] + } + return "$what" } diff --git a/src/WOKTclLib/Wok_Init.tcl b/src/WOKTclLib/Wok_Init.tcl index 7fe43ca..9becf73 100755 --- a/src/WOKTclLib/Wok_Init.tcl +++ b/src/WOKTclLib/Wok_Init.tcl @@ -9,18 +9,25 @@ proc __restore_env__ {} { } array set env $__initenv__ } -proc UNC { path } { - if { [cindex $path 0] == "{" && [cindex $path [clength $path]-1] == "}" } { - set path [crange $path 1 [clength $path]-2] - } +proc UNC { thePath } { + set aPathLen [string length "$thePath"] + if { $aPathLen <= 2 } { + return "$thePath" + } - if { [cindex $path 0] == "\\" && [cindex $path 1] == "\\"} { - set path "//[crange $path 2 [clength $path]]" - } + set aPathLast [expr $aPathLen - 1] + if { [string range "$thePath" 0 0] == "{" + && [string range "$thePath" $aPathLast $aPathLast] == "}" } { + set thePath [string range $thePath 1 [expr $aPathLen - 2]] + } - return $path + if { [string range "$thePath" 0 0] == "\\" + && [string range "$thePath" 1 1] == "\\"} { + set thePath "//[string range $thePath 2 $aPathLen]" + } + return $thePath } @@ -53,5 +60,3 @@ set WOK_GLOBALS(source_proc,tcl) 1 update set WOK_GLOBALS(wokinterp,tclcommands) "Winfo|finfo|pinfo|screate|sinfo|srm|ucreate|uinfo|umake|urm|w_info|wcreate|wokcd|wokclose|wokinfo|wokparam|wokprofile|wokenv|wrm|wmove|msclear|wprepare|wstore|wintegre|upack|iwok|wsrc|wdrv|wls|wcd|cd" update - - diff --git a/src/WOKTclLib/osutils.tcl b/src/WOKTclLib/osutils.tcl index 267d73a..33228e7 100755 --- a/src/WOKTclLib/osutils.tcl +++ b/src/WOKTclLib/osutils.tcl @@ -7,1050 +7,1051 @@ ;# ;# Author: yolanda_forbes@hotmail.com ;# + +# intersect3 - perform the intersecting of two lists, returning a list containing three lists. +# The first list is everything in the first list that wasn't in the second, +# the second list contains the intersection of the two lists, the third list contains everything +# in the second list that wasn't in the first. +proc osutils:intersect3 {list1 list2} { + set la1(0) {} ; unset la1(0) + set lai(0) {} ; unset lai(0) + set la2(0) {} ; unset la2(0) + foreach v $list1 { + set la1($v) {} + } + foreach v $list2 { + set la2($v) {} + } + foreach elem [concat $list1 $list2] { + if {[info exists la1($elem)] && [info exists la2($elem)]} { + unset la1($elem) + unset la2($elem) + set lai($elem) {} + } + } + list [lsort [array names la1]] [lsort [array names lai]] [lsort [array names la2]] +} + +# Sort a list, returning the sorted version minus any duplicates +proc osutils:lrmdups list { + if { [llength $list] == 0 } { + return {} + } + set list [lsort $list] + set last [lvarpop list] + lappend result $last + foreach element $list { + if ![cequal $last $element] { + lappend result $element + set last $element + } + } + return $result +} + +# Return the logical union of two lists, removing any duplicates +proc osutils:union {theListA theListB} { + return [osutils:lrmdups [concat $theListA $theListB]] +} + proc osutils:readtemplate {ext what} { - set loc [woklocate -p WOKTclLib:source:template.$ext] - puts stderr "Info: Template for $what loaded from $loc" - return [wokUtils:FILES:FileToString $loc] + global env + set loc "$env(WOK_LIBRARY)/templates/template.$ext" + #puts stderr "Info: Template for $what loaded from $loc" + return [wokUtils:FILES:FileToString $loc] } # generate template name and load it for given version of Visual Studio and platform -proc osutils:vcproj:readtemplate {vc plat isexec} { - set ext $vc - set what "$vc $plat" - if { $isexec } { - set ext "${ext}x" - set what "$what executable" - } - if { "$plat" == "win64" } { - set ext "${ext}_64" - } - return [osutils:readtemplate $ext "MS VC++ project ($what)"] +proc osutils:vcproj:readtemplate {vc isexec} { + set ext $vc + set what "$vc" + if { $isexec } { + set ext "${ext}x" + set what "$what executable" + } + return [osutils:readtemplate $ext "MS VC++ project ($what)"] } -# Convert platform definition (win32 or win64) to appropriate configuration +# Generate RC file content for ToolKit from template +proc osutils:readtemplate:rc {theOutDir theToolKit} { + set aLoc "$::env(WOK_LIBRARY)/templates/template_dll.rc" + set aBody [wokUtils:FILES:FileToString $aLoc] + regsub -all -- {__TKNAM__} $aBody $theToolKit aBody + + set aFile [open "${theOutDir}/${theToolKit}.rc" "w"] + fconfigure $aFile -translation lf + puts $aFile $aBody + close $aFile + return "${theOutDir}/${theToolKit}.rc" +} + +# Convert platform definition (win32 or win64) to appropriate configuration # name in Visual C++ (Win32 and x64) proc osutils:vcsolution:confname { vcversion plat } { - if { "$plat" == "win32" } { - set conf "Win32" - } elseif { "$plat" == "win64" } { - set conf "x64" - } else { - puts stderr "Error: Unsupported platform \"$plat\"" - } - return $conf + if { "$plat" == "win32" } { + set conf "Win32" + } elseif { "$plat" == "win64" } { + set conf "x64" + } else { + puts stderr "Error: Unsupported platform \"$plat\"" + } + return $conf } # Generate header for VS solution file proc osutils:vcsolution:header { vcversion } { - if { "$vcversion" == "vc6" } { - append var \ - "Microsoft Developer Studio Workspace File, Format Version 6.00" "\n" \ - "# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!" "\n" \ - "\n" \ - "###############################################################################" "\n" \ - "\n" - } elseif { "$vcversion" == "vc7" } { - append var \ - "Microsoft Visual Studio Solution File, Format Version 8.00\n" - } elseif { "$vcversion" == "vc8" } { - append var \ - "Microsoft Visual Studio Solution File, Format Version 9.00\n" \ - "# Visual Studio 2005\n" - } elseif { "$vcversion" == "vc9" } { - append var \ - "Microsoft Visual Studio Solution File, Format Version 10.00\n" \ - "# Visual Studio 2008\n" - } elseif { "$vcversion" == "vc10" } { - append var \ - "Microsoft Visual Studio Solution File, Format Version 11.00\n" \ - "# Visual Studio 2010\n" - } else { - puts stderr "Error: Visual Studio version $vcversion is not supported by this function!" - } - return $var + if { "$vcversion" == "vc7" } { + append var \ + "Microsoft Visual Studio Solution File, Format Version 8.00\n" + } elseif { "$vcversion" == "vc8" } { + append var \ + "Microsoft Visual Studio Solution File, Format Version 9.00\n" \ + "# Visual Studio 2005\n" + } elseif { "$vcversion" == "vc9" } { + append var \ + "Microsoft Visual Studio Solution File, Format Version 10.00\n" \ + "# Visual Studio 2008\n" + } elseif { "$vcversion" == "vc10" } { + append var \ + "Microsoft Visual Studio Solution File, Format Version 11.00\n" \ + "# Visual Studio 2010\n" + } else { + puts stderr "Error: Visual Studio version $vcversion is not supported by this function!" + } + return $var } # Generate start of configuration section of VS solution file -proc osutils:vcsolution:config:begin { vcversion plat } { - if { "$vcversion" == "vc7" } { - append var \ - "Global\n" \ - "\tGlobalSection(SolutionConfiguration) = preSolution\n" \ - "\t\tDebug = Debug\n" \ - "\t\tRelease = Release\n" \ - "\tEndGlobalSection\n" \ - "\tGlobalSection(ProjectConfiguration) = postSolution\n" - } elseif { "$vcversion" == "vc8" || "$vcversion" == "vc9" || "$vcversion" == "vc10"} { - set conf [osutils:vcsolution:confname $vcversion $plat] - append var \ - "Global\n" \ - "\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n" \ - "\t\tDebug|$conf = Debug|$conf\n" \ - "\t\tRelease|$conf = Release|$conf\n" \ - "\tEndGlobalSection\n" \ - "\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n" - } else { - puts stderr "Error: Visual Studio version $vcversion is not supported by this function!" - } - return $var +proc osutils:vcsolution:config:begin { vcversion } { + if { "$vcversion" == "vc7" } { + append var \ + "Global\n" \ + "\tGlobalSection(SolutionConfiguration) = preSolution\n" \ + "\t\tDebug = Debug\n" \ + "\t\tRelease = Release\n" \ + "\tEndGlobalSection\n" \ + "\tGlobalSection(ProjectConfiguration) = postSolution\n" + } elseif { "$vcversion" == "vc8" || "$vcversion" == "vc9" || "$vcversion" == "vc10" } { + append var \ + "Global\n" \ + "\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n" \ + "\t\tDebug|Win32 = Debug|Win32\n" \ + "\t\tRelease|Win32 = Release|Win32\n" \ + "\t\tDebug|x64 = Debug|x64\n" \ + "\t\tRelease|x64 = Release|x64\n" \ + "\tEndGlobalSection\n" \ + "\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n" + } else { + puts stderr "Error: Visual Studio version $vcversion is not supported by this function!" + } + return $var } # Generate part of configuration section of VS solution file describing one project -proc osutils:vcsolution:config:project { vcversion plat guid } { - if { "$vcversion" == "vc7" } { - append var \ - "\t\t$guid.Debug.ActiveCfg = Debug|Win32\n" \ - "\t\t$guid.Debug.Build.0 = Debug|Win32\n" \ - "\t\t$guid.Release.ActiveCfg = Release|Win32\n" \ - "\t\t$guid.Release.Build.0 = Release|Win32\n" - } elseif { "$vcversion" == "vc8" || "$vcversion" == "vc9" || "$vcversion" == "vc10" } { - set conf [osutils:vcsolution:confname $vcversion $plat] - append var \ - "\t\t$guid.Debug|$conf.ActiveCfg = Debug|$conf\n" \ - "\t\t$guid.Debug|$conf.Build.0 = Debug|$conf\n" \ - "\t\t$guid.Release|$conf.ActiveCfg = Release|$conf\n" \ - "\t\t$guid.Release|$conf.Build.0 = Release|$conf\n" - } else { - puts stderr "Error: Visual Studio version $vcversion is not supported by this function!" - } - return $var +proc osutils:vcsolution:config:project { vcversion guid } { + if { "$vcversion" == "vc7" } { + append var \ + "\t\t$guid.Debug.ActiveCfg = Debug|Win32\n" \ + "\t\t$guid.Debug.Build.0 = Debug|Win32\n" \ + "\t\t$guid.Release.ActiveCfg = Release|Win32\n" \ + "\t\t$guid.Release.Build.0 = Release|Win32\n" + } elseif { "$vcversion" == "vc8" || "$vcversion" == "vc9" || "$vcversion" == "vc10" } { + append var \ + "\t\t$guid.Debug|Win32.ActiveCfg = Debug|Win32\n" \ + "\t\t$guid.Debug|Win32.Build.0 = Debug|Win32\n" \ + "\t\t$guid.Release|Win32.ActiveCfg = Release|Win32\n" \ + "\t\t$guid.Release|Win32.Build.0 = Release|Win32\n" \ + "\t\t$guid.Debug|x64.ActiveCfg = Debug|x64\n" \ + "\t\t$guid.Debug|x64.Build.0 = Debug|x64\n" \ + "\t\t$guid.Release|x64.ActiveCfg = Release|x64\n" \ + "\t\t$guid.Release|x64.Build.0 = Release|x64\n" + } else { + puts stderr "Error: Visual Studio version $vcversion is not supported by this function!" + } + return $var } # Generate start of configuration section of VS solution file -proc osutils:vcsolution:config:end { vcversion plat } { - if { "$vcversion" == "vc7" } { - append var \ - "\tEndGlobalSection\n" \ - "\tGlobalSection(ExtensibilityGlobals) = postSolution\n" \ - "\tEndGlobalSection\n" \ - "\tGlobalSection(ExtensibilityAddIns) = postSolution\n" \ - "\tEndGlobalSection\n" - } elseif { "$vcversion" == "vc8" || "$vcversion" == "vc9" || "$vcversion" == "vc10" } { - append var \ - "\tEndGlobalSection\n" \ - "\tGlobalSection(SolutionProperties) = preSolution\n" \ - "\t\tHideSolutionNode = FALSE\n" \ - "\tEndGlobalSection\n" - } else { - puts stderr "Error: Visual Studio version $vcversion is not supported by this function!" - } - return $var -} - -;# -;# the leaf of a workspace file -;# -proc osutils:vc6proj:projectleaf { TK } { +proc osutils:vcsolution:config:end { vcversion } { + if { "$vcversion" == "vc7" } { append var \ - "Project: \"$TK\"=.\\$TK.dsp - Package Owner=<4>" "\n" \ - "\n" \ - "Package=<5>" "\n" \ - "\{\{\{" "\n" \ - "\}\}\}" "\n" \ - "\n" \ - "Package=<4>" "\n" \ - "\{\{\{" "\n" \ - "\}\}\}" "\n" \ - "\n" \ - "###############################################################################" "\n" \ - "\n" - return $var -} -;# -;# an item of a workspace file -;# -proc osutils:vc6proj:projectby2 { TK Dep_Name } { - append var \ - "Project: \"$TK\"=.\\$TK.dsp - Package Owner=<4>" "\n" \ - "\n" \ - "Package=<5>" "\n" \ - "\{\{\{" "\n" \ - "\}\}\}" "\n" \ - "\n" \ - "Package=<4>" "\n" \ - "\{\{\{" "\n" - if {[wokinfo -x $TK] != "0"} { - if {[uinfo -t $TK] == "toolkit"} { - set deplist [LibToLink $TK] - } else { - set deplist [LibToLinkX $TK $TK] - ;#puts $deplist - } - foreach deplib $deplist { - if {$deplib != $TK} { - append var " Begin Project Dependency" "\n" \ - " Project_Dep_Name $deplib" "\n" \ - " End Project Dependency" "\n" - } - } - } - - append var "\}\}\}" "\n" \ - "\n" \ - "###############################################################################" "\n" \ - "\n" - return $var -} -;# -;# -;# -proc osutils:vc6proj:footer { } { + "\tEndGlobalSection\n" \ + "\tGlobalSection(ExtensibilityGlobals) = postSolution\n" \ + "\tEndGlobalSection\n" \ + "\tGlobalSection(ExtensibilityAddIns) = postSolution\n" \ + "\tEndGlobalSection\n" + } elseif { "$vcversion" == "vc8" || "$vcversion" == "vc9" || "$vcversion" == "vc10" } { append var \ - "Global:" "\n" \ - "\n" \ - "Package=<5>" "\n" \ - "{{{" "\n" \ - "}}}" "\n" \ - "\n" \ - "Package=<3>" "\n" \ - "{{{" "\n" \ - "}}}" "\n" \ - "\n" \ - "###############################################################################" "\n" - return $var -} -;# -;# An item for compiling a c++ class -;# -proc osutils:vc6:fmtcpp { } { - return {# ADD CPP /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"} + "\tEndGlobalSection\n" \ + "\tGlobalSection(SolutionProperties) = preSolution\n" \ + "\t\tHideSolutionNode = FALSE\n" \ + "\tEndGlobalSection\n" + } else { + puts stderr "Error: Visual Studio version $vcversion is not supported by this function!" + } + return $var } + proc osutils:mak:fmtcpp { } { - return {CPP_SWITCHES=$(CPP_PROJ) /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"} -} -;# -;# An item for compiling a c++ main -;# -proc osutils:vc6:fmtcppx { } { - return {# ADD CPP /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"} -} -proc osutils:vcproj:fmtcpp { } { - return {AdditionalIncludeDirectories="..\..\..\inc,..\..\..\drv\%s,..\..\..\src\%s" - PreprocessorDefinitions="__%s_DLL;"} -} -proc osutils:vcproj:fmtcppx { } { - return {AdditionalIncludeDirectories="..\..\..\inc,..\..\..\drv\%s,..\..\..\src\%s" - PreprocessorDefinitions="__%s_DLL;$(NoInherit)"} -} -proc osutils:mak:fmtcppx { } { - return {CPP_SWITCHES=$(CPP_PROJ) /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"} + return {CPP_SWITCHES=$(CPP_PROJ) /I ..\..\..\inc /I ..\..\..\drv\%s /I ..\..\..\src\%s /D "__%s_DLL"} } + ;# ;# List extensions of compilable files in OCCT ;# proc osutils:compilable { } { - return [list .c .cxx .cpp] + return [list .c .cxx .cpp] } proc osutils:optinal_libs { } { - return [list tbb.lib tbbmalloc.lib FreeImage.lib FreeImagePlus.lib gl2ps.lib] -} + return [list tbb.lib tbbmalloc.lib FreeImage.lib FreeImagePlus.lib gl2ps.lib] +} + ;# ;# remove from listloc OpenCascade units indesirables on NT ;# proc osutils:juststation {goaway listloc} { - set lret {} - foreach u $listloc { - if { - ( - [woklocate -u $u] != "" - && - [lsearch $goaway [wokinfo -n [woklocate -u $u]]] == -1 - ) - || - ( - [woklocate -u $u] == "" - && - [lsearch $goaway [wokinfo -n $u]] == -1 - ) - - } { - lappend lret $u - } - } - return $lret + set lret {} + foreach u $listloc { + if { + ( + [woklocate -u $u] != "" + && + [lsearch $goaway [wokinfo -n [woklocate -u $u]]] == -1 + ) + || + ( + [woklocate -u $u] == "" + && + [lsearch $goaway [wokinfo -n $u]] == -1 + ) + } { + lappend lret $u + } + } + return $lret } proc osutils:justwnt { listloc } { - set goaway [list Xdps Xw ImageUtility WOKUnix] - return [osutils:juststation $goaway $listloc] + set goaway [list Xdps Xw ImageUtility WOKUnix] + return [osutils:juststation $goaway $listloc] } + ;# ;# remove from listloc OpenCascade units indesirables on Unix ;# proc osutils:justunix { listloc } { - set goaway [list WNT WOKNT] - return [osutils:juststation $goaway $listloc] + set goaway [list WNT WOKNT] + return [osutils:juststation $goaway $listloc] } + +;# +;# Define libraries to link using WOK generated dependencies files +;# (available after Obj,Dep building steps) ;# -;# Define libraries to link -proc LibToLink {tkit} { - if {[uinfo -t $tkit] == "toolkit"} { +proc LibToLinkFair {tkit} { + if {[uinfo -t $tkit] == "toolkit"} { set l {} set LibList [woklocate -p [wokinfo -n $tkit]:stadmfile:[wokinfo -n $tkit]_lib_tks.Out] + + if ![ catch { set id [ open $LibList r ] } status ] { + while {[gets $id x] >= 0 } { + if [regexp -- {(-E[^ ]*)} $x] { + set endnameid [expr { [string wordend $x 4] -1 }] + set fx [string range $x 3 $endnameid] + if {[uinfo -t [woklocate -u [file rootname $fx]]] == "toolkit"} { + lappend l $fx + } + } + #if [regexp -- {(-VE[^ ]*)} $x] { + # set startid [string first CSF $x] + # set endid [ expr { [string wordend $x $startid] -1 } ] + # set fx [string range $x $startid $endid] + # lappend l $fx + #} + } + close $id + } else { + puts $status + } + return $l + } +} + +;# +;# Define libraries to link using WOK generated dependencies files +;# (available after Obj,Dep building steps) +;# +proc LibToLinkXFair {tkit name} { + if {[uinfo -t $tkit] == "executable"} { + set l {} + set LibList [woklocate -p [wokinfo -n $tkit]:stadmfile:[wokinfo -n $tkit]_exec_tks_${name}.Out] if ![ catch { set id [ open $LibList r ] } status ] { - while {[gets $id x] >= 0 } { - if [regexp -- {(-E[^ ]*)} $x] { - set endnameid [expr { [string wordend $x 4] -1 }] - set fx [string range $x 3 $endnameid] - if {[uinfo -t [woklocate -u [file rootname $fx]]] == "toolkit"} { - lappend l $fx - } - } - #if [regexp -- {(-VE[^ ]*)} $x] { - # set startid [string first CSF $x] - # set endid [ expr { [string wordend $x $startid] -1 } ] - # set fx [string range $x $startid $endid] - # lappend l $fx - #} - - } - close $id + while {[gets $id x] >= 0 } { + if [regexp -- {(-E[^ ]*)} $x] { + if {[regexp -- {library} $x]} { + set endnameid [expr { [string wordend $x 4] -1 }] + set fx [string range $x 3 $endnameid] + lappend l $fx + } + } + #if [regexp -- {(-VE[^ ]*)} $x] { + # set startid [string first CSF $x] + # set endid [ expr { [string wordend $x $startid] -1 } ] + # set CSF_fx [string range $x $startid $endid] + # if { $CSF_fx != "-"} { + # puts $CSF_fx + # set fx [file tail [lindex [wokparam -v \%$CSF_fx $tkit] 0]] + # lappend l $fx + # } + #} + } + close $id } else { - puts $status + puts $status } return $l + } +} + +# Search unit recursively +proc LocateRecur {theName} { + set aBranch [wokinfo -w] + set aFullPath "${aBranch}:${theName}" + if {[wokinfo -x $aFullPath]} { + return [wokinfo -u $aFullPath] + } + set aWkShop [wokinfo -s] + set aFParent [w_info -f $aBranch] + while { "$aFParent" != "" } { + set aBranch "${aWkShop}:${aFParent}" + set aFullPath "${aBranch}:${theName}" + if {[wokinfo -x $aFullPath]} { + return [wokinfo -u $aFullPath] + } + set aFParent [w_info -f $aBranch] + } + return "" +} + +;# +;# Define libraries to link using only EXTERNLIB file +;# +proc LibToLink {theTKit} { + if {[uinfo -t $theTKit] != "toolkit"} { + if {[uinfo -t $theTKit] != "executable"} { + return + } + } + + set aToolkits {} + set anExtLibList [osutils:tk:eatpk [woklocate -p [wokinfo -n [wokinfo -u $theTKit]]:source:EXTERNLIB [wokinfo -w $theTKit]]] + foreach anExtLib $anExtLibList { + set aFullPath [LocateRecur $anExtLib] + if { "$aFullPath" != "" && [uinfo -t $aFullPath] == "toolkit" } { + lappend aToolkits $anExtLib } + } + return $aToolkits +} + +;# +;# Define libraries to link using only EXTERNLIB file +;# +proc LibToLinkX {thePackage theDummyName} { + set aToolKits [LibToLink $thePackage] + return $aToolKits } -proc LibToLinkX {tkit name} { - if {[uinfo -t $tkit] == "executable"} { - set l {} - set LibList [woklocate -p [wokinfo -n $tkit]:stadmfile:[wokinfo -n $tkit]_exec_tks_${name}.Out] - if ![ catch { set id [ open $LibList r ] } status ] { - while {[gets $id x] >= 0 } { - if [regexp -- {(-E[^ ]*)} $x] { - if {[regexp -- {library} $x]} { - set endnameid [expr { [string wordend $x 4] -1 }] - set fx [string range $x 3 $endnameid] - lappend l $fx - } - } - #if [regexp -- {(-VE[^ ]*)} $x] { - # set startid [string first CSF $x] - # set endid [ expr { [string wordend $x $startid] -1 } ] - # set CSF_fx [string range $x $startid $endid] - # if { $CSF_fx != "-"} { - # puts $CSF_fx - # set fx [file tail [lindex [wokparam -v \%$CSF_fx $tkit] 0]] - # lappend l $fx - # } - #} - - } - close $id - } else { - puts $status - } - return $l +;# +;# This procedure checks EXTERNLIB file for missed dependences +;# using building information (at least wprocess -DGroups=Src,Xcpp,Obj,Dep) +;# +proc UpdateDepsTKit {theTKit} { + if {[uinfo -t $theTKit] != "toolkit"} { + if {[uinfo -t $theTKit] != "executable"} { + return + } + } + + set anExtFile [woklocate -p [wokinfo -n [wokinfo -u $theTKit]]:source:EXTERNLIB [wokinfo -w $theTKit]] + set anExtLibList [wokUtils:FILES:FileToList $anExtFile] + set anTKList {} + if {[uinfo -t $theTKit] == "toolkit"} { + set anTKList [LibToLinkFair $theTKit] + } else { + foreach aSrcFile [osutils:tk:files $theTKit osutils:compilable 0] { + set aTF [file rootname [file tail $aSrcFile]] + set anXDepList [LibToLinkXFair $theTKit $aTF] + foreach aDep $anXDepList { + lappend anTKList $aDep + } + } + } + set aNotFoundList {} + foreach aTKit $anTKList { + if {[lsearch -exact $anExtLibList $aTKit] == -1} { + lappend aNotFoundList $aTKit + } + } + + if { [llength $aNotFoundList] > 0 } { + puts "EXTERNAL file for ToolKit '$theTKit' is incomplete!" + if { [file exists "$anExtFile"] != 0 } { + file copy -force -- "$anExtFile" "${anExtFile}.bak" + } else { + set aSrcPath [woklocate -p [wokinfo -n [wokinfo -u $theTKit]]:source [wokinfo -w $theTKit]] + set anExtFile "${aSrcPath}EXTERNLIB" + set anFILESFile "${aSrcPath}FILES" + if { [file exists "$anFILESFile"] != 0 } { + set aWFile [open "$anFILESFile" "a"] + fconfigure $aWFile -translation lf + puts $aWFile "EXTERNLIB" + close $aWFile + } else { + set aWFile [open "$anFILESFile" "w"] + fconfigure $aWFile -translation lf + puts $aWFile "EXTERNLIB" + close $aWFile + } + } + set anOutFile [open "$anExtFile" "w"] + fconfigure $anOutFile -translation lf + foreach aTKit $aNotFoundList { + puts $anOutFile "$aTKit" + puts " missed ToolKit: $aTKit" } + foreach anExtLib $anExtLibList { + puts $anOutFile "$anExtLib" + } + close $anOutFile + } +} + +;# +;# This procedure checks EXTERNLIB file for all ToolKits for missed dependences +;# using building information (at least wprocess -DGroups=Src,Xcpp,Obj,Dep) +;# +proc UpdateDeps {} { + set aTKList [w_info -T toolkit] + foreach aTKit $aTKList { + UpdateDepsTKit $aTKit + } + set anEXEList [w_info -T executable] + foreach aPackageX $anEXEList { + UpdateDepsTKit $aPackageX + } } ;# ;# ((((((((WOK toolkits manipulations)))))))) ;# ;# close dependencies of ltk. (full wok pathes of toolkits) -;# The CURRENT WOK LOCATION MUST contains ALL TOOLKITS required. +;# The CURRENT WOK LOCATION MUST contains ALL TOOLKITS required. ;# (locate not performed.) proc osutils:tk:close { ltk } { - set result {} - set recurse {} - foreach dir $ltk { - #set ids [woklocate -p [wokinfo -n [wokinfo -u $dir]]:source:EXTERNLIB [wokinfo -w $dir]] - set ids [LibToLink $dir] - set eated [osutils:tk:eatpk $ids] - set result [concat $result $eated] - set ids [LibToLink $dir] - set result [concat $result $ids] - #puts "EXTERNLIB dir = $dir ids = $ids result = $result eated = $eated" - foreach file $eated { - set kds [woklocate -p [wokinfo -n [wokinfo -u $file]]:source:EXTERNLIB [wokinfo -w $file]] - if { [osutils:tk:eatpk $kds] != {} } { - lappend recurse $file - } - } - } - ;# if ![lempty $recurse] { - ;# set result [concat $result [osutils:tk:close $recurse]] - ;# } - if { $recurse != {} } { - set result [concat $result [osutils:tk:close $recurse]] - } - #puts $result - return $result + set result {} + set recurse {} + foreach dir $ltk { + #set ids [woklocate -p [wokinfo -n [wokinfo -u $dir]]:source:EXTERNLIB [wokinfo -w $dir]] + set ids [LibToLink $dir] + set eated [osutils:tk:eatpk $ids] + set result [concat $result $eated] + set ids [LibToLink $dir] + set result [concat $result $ids] + + #puts "EXTERNLIB dir = $dir ids = $ids result = $result eated = $eated" + foreach file $eated { + set kds [woklocate -p [wokinfo -n [wokinfo -u $file]]:source:EXTERNLIB [wokinfo -w $file]] + if { [osutils:tk:eatpk $kds] != {} } { + lappend recurse $file + } + } + } + ;#if { [llength $recurse] != 0 } { + ;# set result [concat $result [osutils:tk:close $recurse]] + ;#} + if { $recurse != {} } { + set result [concat $result [osutils:tk:close $recurse]] + } + #puts $result + return $result } + ;# ;# Topological sort of toolkits in tklm ;# proc osutils:tk:sort { tklm } { - set tkby2 {} - foreach tkloc $tklm { - set lprg [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] - foreach tkx $lprg { - if { [lsearch $tklm $tkx] != -1 } { - lappend tkby2 [list $tkx $tkloc] - } else { - lappend tkby2 [list $tkloc {}] - } - } - } - set lret {} - foreach e [wokUtils:EASY:tsort $tkby2] { - if { $e != {} } { - lappend lret $e - } - } - return $lret + set tkby2 {} + foreach tkloc $tklm { + set lprg [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] + foreach tkx $lprg { + if { [lsearch $tklm $tkx] != -1 } { + lappend tkby2 [list $tkx $tkloc] + } else { + lappend tkby2 [list $tkloc {}] + } + } + } + set lret {} + foreach e [wokUtils:EASY:tsort $tkby2] { + if { $e != {} } { + lappend lret $e + } + } + return $lret } ;# ;# Returns liste of UD in a toolkit. tkloc is a full path wok. -;# +;# proc osutils:tk:units { tkloc {typed 0} } { - set l {} - set PACKAGES [woklocate -p [wokinfo -n [wokinfo -u $tkloc]]:source:PACKAGES [wokinfo -w $tkloc]] - foreach u [wokUtils:FILES:FileToList $PACKAGES] { - set fu [woklocate -u $u] - if { [set fu [woklocate -u $u]] != {} } { - if { $typed == 0 } { - lappend l $fu - } - if { $typed == 1 } { - lappend l [list [uinfo -c $fu] [wokinfo -n $fu]] - } - if { $typed == 2 } { - lappend l [list [uinfo -c $fu] $fu] - } - if { $typed == 3 } { - lappend l [list [uinfo -t $fu] [wokinfo -n $fu]] - } - if { $typed == 4 } { - lappend l [list [uinfo -t $fu] $fu] - } - } else { - puts stderr "Unit inconnue $u" - } - } - if { $l == {} } { - ;#puts stderr "Warning. No devunit included in $tkloc" + set l {} + set PACKAGES [woklocate -p [wokinfo -n [wokinfo -u $tkloc]]:source:PACKAGES [wokinfo -w $tkloc]] + foreach u [wokUtils:FILES:FileToList $PACKAGES] { + set fu [woklocate -u $u] + if { [set fu [woklocate -u $u]] != {} } { + if { $typed == 0 } { + lappend l $fu + } + if { $typed == 1 } { + lappend l [list [uinfo -c $fu] [wokinfo -n $fu]] + } + if { $typed == 2 } { + lappend l [list [uinfo -c $fu] $fu] + } + if { $typed == 3 } { + lappend l [list [uinfo -t $fu] [wokinfo -n $fu]] + } + if { $typed == 4 } { + lappend l [list [uinfo -t $fu] $fu] + } + } else { + puts stderr "Unit inconnue $u" } - return $l + } + if { $l == {} } { + ;#puts stderr "Warning. No devunit included in $tkloc" + } + return $l } + ;# ;# for a unit returns a map containing all its file in the current ;# workbench ;# local = 1 only local files ;# proc osutils:tk:loadunit { loc map {local 0}} { - upvar $map TLOC - catch { unset TLOC } - if { $local == 1 } { - set lfiles [uinfo -Fpl $loc] + upvar $map TLOC + catch { unset TLOC } + if { $local == 1 } { + set lfiles [uinfo -Fpl $loc] + } else { + set lfiles [uinfo -Fp $loc] + } + foreach f $lfiles { + #puts $f + set t [lindex $f 0] + set p [lindex $f 2] + if [info exists TLOC($t)] { + set l $TLOC($t) + lappend l $p + set TLOC($t) $l } else { - set lfiles [uinfo -Fp $loc] - } - foreach f $lfiles { - #puts $f - set t [lindex $f 0] - set p [lindex $f 2] - if [info exists TLOC($t)] { - set l $TLOC($t) - lappend l $p - set TLOC($t) $l - } else { - set TLOC($t) $p - } - } - return + set TLOC($t) $p + } + } + return } + ;# ;# Returns the list of all compilable files name in a toolkit, or devunit of any type ;# Call unit filter on units name to accept or reject a unit ;# Tfiles lists for each unit the type of file that can be compiled. ;# proc osutils:tk:files { tkloc {l_compilable {} } {justail 1} {unitfilter {}} } { - set Tfiles(source,package) {source derivated privinclude pubinclude drvfile} - set Tfiles(source,nocdlpack) {source pubinclude drvfile} - set Tfiles(source,schema) {source derivated privinclude pubinclude drvfile} - set Tfiles(source,toolkit) {} - set Tfiles(source,executable) {source pubinclude drvfile} - set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]] - #puts " listloc = $listloc" - if { $l_compilable == {} } { - set l_comp [list .c .cxx .cpp] - } else { - set l_comp [$l_compilable] + set Tfiles(source,package) {source derivated privinclude pubinclude drvfile} + set Tfiles(source,nocdlpack) {source pubinclude drvfile} + set Tfiles(source,schema) {source derivated privinclude pubinclude drvfile} + set Tfiles(source,toolkit) {} + set Tfiles(source,executable) {source pubinclude drvfile} + set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]] + #puts " listloc = $listloc" + if { $l_compilable == {} } { + set l_comp [list .c .cxx .cpp] + } else { + set l_comp [$l_compilable] + } + if { $unitfilter == {} } { + set resultloc $listloc + } else { + set resultloc [$unitfilter $listloc] + } + set lret {} + foreach loc $resultloc { + set utyp [uinfo -t $loc] + if [array exists map] { unset map } + osutils:tk:loadunit $loc map + #puts " loc = $loc === > [array names map]" + set LType $Tfiles(source,${utyp}) + foreach typ [array names map] { + if { [lsearch $LType $typ] == -1 } { + unset map($typ) + } } - if { $unitfilter == {} } { - set resultloc $listloc - } else { - set resultloc [$unitfilter $listloc] - } - set lret {} - foreach loc $resultloc { - set utyp [uinfo -t $loc] - if [array exists map] { unset map } - osutils:tk:loadunit $loc map - #puts " loc = $loc === > [array names map]" - set LType $Tfiles(source,${utyp}) - foreach typ [array names map] { - if { [lsearch $LType $typ] == -1 } { - unset map($typ) - } - } - foreach type [array names map] { - #puts $type - foreach f $map($type) { - #puts $f - if { [lsearch $l_comp [file extension $f]] != -1 } { - if { $justail == 1 } { - if {$type == "source"} { - if {[lsearch $lret "@top_srcdir@/drv/[wokinfo -n $loc]/[file tail $f]"] == -1} { - lappend lret @top_srcdir@/src/[wokinfo -n $loc]/[file tail $f] - } - } elseif {$type == "derivated" || $type == "drvfile"} { - if {[lsearch $lret "@top_srcdir@/src/[wokinfo -n $loc]/[file tail $f]"] == -1} { - lappend lret @top_srcdir@/drv/[wokinfo -n $loc]/[file tail $f] - } - } - } else { - lappend lret $f - } - } - } - } - } - return $lret + foreach type [array names map] { + #puts $type + foreach f $map($type) { + #puts $f + if { [lsearch $l_comp [file extension $f]] != -1 } { + if { $justail == 1 } { + if {$type == "source"} { + if {[lsearch $lret "@top_srcdir@/drv/[wokinfo -n $loc]/[file tail $f]"] == -1} { + lappend lret @top_srcdir@/src/[wokinfo -n $loc]/[file tail $f] + } + } elseif {$type == "derivated" || $type == "drvfile"} { + if {[lsearch $lret "@top_srcdir@/src/[wokinfo -n $loc]/[file tail $f]"] == -1} { + lappend lret @top_srcdir@/drv/[wokinfo -n $loc]/[file tail $f] + } + } + } else { + lappend lret $f + } + } + } + } + } + return $lret } + +;# ;# -;# ;# proc osutils:tk:eatpk { EXTERNLIB } { - set l [wokUtils:FILES:FileToList $EXTERNLIB] - set lret {} - foreach str $l { - if ![regexp -- {(CSF_[^ ]*)} $str csf] { - lappend lret $str - } - } - return $lret + set l [wokUtils:FILES:FileToList $EXTERNLIB] + set lret {} + foreach str $l { + if ![regexp -- {(CSF_[^ ]*)} $str csf] { + lappend lret $str + } + } + return $lret } + ;# ;# Return the list of name *CSF_ in a EXTERNLIB description of a toolkit ;# proc osutils:tk:hascsf { EXTERNLIB } { - set l [wokUtils:FILES:FileToList $EXTERNLIB] - set lret {STLPort} - foreach str $l { - if [regexp -- {(CSF_[^ ]*)} $str csf] { - lappend lret $csf - } - } - return $lret -} -;# -;# Create file tkloc.dsp for a shareable library (dll). -;# in dir return the full path of the created file -;# -proc osutils:vc6 { dir tkloc {tmplat {} } {fmtcpp {} } } { - if { $tmplat == {} } {set tmplat [osutils:readtemplate vc6 "MS VC++ 6.0 project"]} - if { $fmtcpp == {} } {set fmtcpp [osutils:vc6:fmtcpp]} - set fp [open [set fdsp [file join $dir ${tkloc}.dsp]] w] - fconfigure $fp -translation crlf - set l_compilable [osutils:compilable] - regsub -all -- {__TKNAM__} $tmplat $tkloc tmplat - set tkused "" - foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] { - append tkused "${tkx}.lib " + set l [wokUtils:FILES:FileToList $EXTERNLIB] + set lret {STLPort} + foreach str $l { + if [regexp -- {(CSF_[^ ]*)} $str csf] { + lappend lret $csf } - wokparam -l CSF - foreach tk [lappend [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] $tkloc] { - foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] { - puts "$element" - if {[wokparam -t %$element] != 0} { - set felem [file tail [lindex [wokparam -v "%$element"] 0]] - puts "$felem" - if {[lsearch $tkused $felem] == "-1"} { - if {$felem != "\{\}"} { - set tkused [concat $tkused $felem] - } - } - } - } - } - - #puts "alternative [LibToLink $tkloc]" - puts "$tkloc requires $tkused" - regsub -all -- {__TKDEP__} $tmplat $tkused tmplat - set files "" - ;#set listloc [concat [osutils:tk:units [woklocate -u $tkloc]] [woklocate -u $tkloc]] - set listloc [osutils:tk:units [woklocate -u $tkloc]] - set resultloc [osutils:justwnt $listloc] - ;#puts "result = $resultloc" - ;#set lsrc [lsort [osutils:tk:files $tkloc osutils:compilable 1 osutils:justwnt]] - if [array exists written] { unset written } - set fxloparamfcxx [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] ] 2] - set fxloparamfc [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] ] 2] - set fxloparam "[union [split $fxloparamfcxx] [split $fxloparamfc]]" - foreach fxlo $resultloc { - set xlo [wokinfo -n $fxlo] - append files "# Begin Group \"${xlo}\"" "\n" - set lsrc [osutils:tk:files $xlo osutils:compilable 0] - set fxloparam "$fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]" - set fxloparam "$fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2]" - set needparam "" - foreach partopt $fxloparam { - if { "-I[lindex [wokparam -v %CSF_TCL_INCLUDE] 0]" != "$partopt "} { - if { "-I[lindex [wokparam -v %CSF_JAVA_INCLUDE] 0]" != "$partopt "} { - set needparam "$needparam $partopt" - } - } - } - foreach f $lsrc { - ;#puts " f = $f" - if { ![info exists written([file tail $f])] } { - set written([file tail $f]) 1 - append files "# Begin Source File" "\n" - append files "SOURCE=..\\..\\..\\" [wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]] "\n" - append files [format $fmtcpp $xlo $xlo $xlo] "$needparam" "\n" - append files "# End Source File" "\n" - } else { - puts "Warning : in dsp more than one occurences for [file tail $f]" - } - } - append files "# End Group" "\n" - } - - regsub -all -- {__FILES__} $tmplat $files tmplat - puts $fp $tmplat - close $fp - return $fdsp -} - -;# -;# Create file tkloc.dsp for a executable "console" application -;# in dir return the full path of the created file -;# -proc osutils:vc6x { dir tkloc {tmplat {} } {fmtcpp {} } } { - if { $tmplat == {} } {set tmplat [osutils:readtemplate vc6x "MS VC++ 6.0 project (executable)"]} - if { $fmtcpp == {} } {set fmtcpp [osutils:vc6:fmtcppx]} - foreach f [osutils:tk:files $tkloc osutils:compilable 0] { - set tf [file rootname [file tail $f]] - set fp [open [set fdsp [file join $dir ${tf}.dsp]] w] - puts $fdsp - fconfigure $fp -translation crlf - set l_compilable [osutils:compilable] - regsub -all -- {__XQTNAM__} $tmplat $tf tmplat - set tkused "" - puts [LibToLinkX [woklocate -u $tkloc] $tf] - foreach tkx [LibToLinkX [woklocate -u $tkloc] $tf] { - if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} { - append tkused "${tkx}.lib " - } -# if {[lsearch [w_info -l] [woklocate -u $tkx]] == "-1"} { -# append tkused "${tkx}.lib " -# } - if {[woklocate -u $tkx] == "" } { - append tkused "${tkx}.lib " - } - } - wokparam -l CSF - foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] { - foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokinfo -N [woklocate -u $tk]]]] { - if {[wokparam -t %$element] != 0} { - set elemlist [wokparam -v "%$element"] - set felem [file tail [lindex $elemlist 0]] - if {[lsearch $tkused $felem] == "-1"} { - if {$felem != "\{\}"} { - #puts "was found $element $felem" - set tkused [concat $tkused $felem] - } - } - } - } - } - set WOKSteps_exec_link [wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]] - if { [regexp {WOKStep_DLLink} $WOKSteps_exec_link] || [regexp {WOKStep_Libink} $WOKSteps_exec_link] } { - set tkused [concat $tkused "\/dll"] - } - regsub -all -- {__COMPOPT__} $tmplat "\/MD" tmplat - regsub -all -- {__COMPOPTD__} $tmplat "\/MDd" tmplat - puts "$tf requires $tkused" - regsub -all -- {__TKDEP__} $tmplat $tkused tmplat - set files "" - ;#set lsrc [osutils:tk:files $tkloc osutils:compilable 0] - ;#foreach f $lsrc { - if { ![info exists written([file tail $f])] } { - set written([file tail $f]) 1 - append files "# Begin Group \"" $tkloc "\" \n" - append files "# Begin Source File" "\n" - append files "SOURCE=..\\..\\..\\" [wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]] "\n" - append files [format $fmtcpp $tkloc $tkloc $tkloc] "\n" - append files "# End Source File" "\n" - append files "# End Group" "\n" - } else { - puts "Warning : in dsp more than one occurences for [file tail $f]" - } - ;#} - - regsub -all -- {__FILES__} $tmplat $files tmplat - puts $fp $tmplat - close $fp - set fout [lappend fout $fdsp] - } - return $fout + } + return $lret } # Generate entry for one source file in Visual Studio 7 - 9 project file -proc osutils:vcproj:file { vcversion plat file inc params } { - set conf [osutils:vcsolution:confname $vcversion $plat] +proc osutils:vcproj:file { theVcVer theFile theOptions } { + append aText "\t\t\t\t\n" + if { $theOptions == "" } { + append aText "\t\t\t\t\n" + return $aText + } - set files "" - append text "\t\t\t\t\n" - - append text "\t\t\t\t\t\n" - append text "\t\t\t\t\t\t\n" - append text "\t\t\t\t\t\n" - - append text "\t\t\t\t\t\n" - append text "\t\t\t\t\t\t\n" - append text "\t\t\t\t\t\n" - - append text "\t\t\t\t\n" - return $text + append aText "\t\t\t\t\t\n" + append aText "\t\t\t\t\t\t\n" + append aText "\t\t\t\t\t\n" + + append aText "\t\t\t\t\t\n" + append aText "\t\t\t\t\t\t\n" + append aText "\t\t\t\t\t\n" + if { "$theVcVer" == "vc7" } { + append aText "\t\t\t\t\n" + return $aText + } + + append aText "\t\t\t\t\t\n" + append aText "\t\t\t\t\t\t\n" + append aText "\t\t\t\t\t\n" + + append aText "\t\t\t\t\t\n" + append aText "\t\t\t\t\t\t\n" + append aText "\t\t\t\t\t\n" + + append aText "\t\t\t\t\n" + return $aText } # Generate entry for one source file in Visual Studio 10 project file -proc osutils:vcxproj:file { vcversion plat file unit params } { - set conf [osutils:vcsolution:confname $vcversion $plat] +proc osutils:vcxproj:file { vcversion file params } { + append text " \n" - set files "" - append text " \n" + if { $params != "" } { + append text " [string trim ${params}] %(AdditionalOptions)\n" + } - if { $params != "" } { - append text " [string trim ${params}] %(AdditionalOptions)\n" - } - append text " Disabled\n" - append text " ..\\..\\..\\inc;..\\..\\..\\drv\\${unit};..\\..\\..\\src\\${unit};%(AdditionalIncludeDirectories)\n" - append text " __${unit}_DLL;%(PreprocessorDefinitions)\n" - append text " Default\n" + if { $params != "" } { + append text " [string trim ${params}] %(AdditionalOptions)\n" + } - if { $params != "" } { - append text " [string trim ${params}] %(AdditionalOptions)\n" - } - append text " MaxSpeed\n" - append text " ..\\..\\..\\inc;..\\..\\..\\drv\\${unit};..\\..\\..\\src\\${unit};%(AdditionalIncludeDirectories)\n" - append text " __${unit}_DLL;%(PreprocessorDefinitions)\n" - append text " Default\n" + if { $params != "" } { + append text " [string trim ${params}] %(AdditionalOptions)\n" + } - append text " \n" + if { $params != "" } { + append text " [string trim ${params}] %(AdditionalOptions)\n" + } - return $text + append text " \n" + return $text } # Returns extension (without dot) for project files of given version of VC proc osutils:vcproj:ext { vcversion } { - if { "$vcversion" == "vc6" } { - return "dsp" - } elseif { "$vcversion" == "vc7" || "$vcversion" == "vc8" || "$vcversion" == "vc9" } { - return "vcproj" - } elseif { "$vcversion" == "vc10" } { - return "vcxproj" - } else { - puts stderr "Error: Visual Studio version $vc is not supported by this function!" - } + if { "$vcversion" == "vc7" || "$vcversion" == "vc8" || "$vcversion" == "vc9" } { + return "vcproj" + } elseif { "$vcversion" == "vc10" } { + return "vcxproj" + } else { + puts stderr "Error: Visual Studio version $vc is not supported by this function!" + } } # Generate Visual Studio 2010 project filters file -proc osutils:vcxproj:filters { dir proj _files } { - upvar $_files files - - # header - append text "\n" - append text "\n" - - # list of "filters" (units) - append text " \n" - append text " \n" +proc osutils:vcxproj:filters { dir proj theFilesMap } { + upvar $theFilesMap aFilesMap + + # header + append text "\n" + append text "\n" + + # list of "filters" (units) + append text " \n" + append text " \n" + append text " [OS:genGUID]\n" + append text " \n" + foreach unit $aFilesMap(units) { + append text " \n" append text " [OS:genGUID]\n" append text " \n" - foreach unit $files(units) { - append text " \n" - append text " [OS:genGUID]\n" - append text " \n" - } - append text " \n" + } + append text " \n" - # list of files - append text " \n" - foreach unit $files(units) { - foreach file $files($unit) { - append text " \n" - append text " Source files\\${unit}\n" - append text " \n" - } + # list of files + append text " \n" + foreach unit $aFilesMap(units) { + foreach file $aFilesMap($unit) { + append text " \n" + append text " Source files\\${unit}\n" + append text " \n" } - append text " \n" + } + append text " \n" - # end - append text "" + # end + append text "" - # write file - set fp [open [set fvcproj [file join $dir ${proj}.vcxproj.filters]] w] - fconfigure $fp -translation crlf - puts $fp $text - close $fp + # write file + set fp [open [set fvcproj [file join $dir ${proj}.vcxproj.filters]] w] + fconfigure $fp -translation crlf + puts $fp $text + close $fp - return ${proj}.vcxproj.filters + return ${proj}.vcxproj.filters } -# Generate Visual Studio project file for toolkit -proc osutils:vcproj { vc plat dir tkloc _guids {tmplat {} } {fmtcpp {} } } { - if { $tmplat == {} } {set tmplat [osutils:vcproj:readtemplate $vc $plat 0]} - if { $fmtcpp == {} } {set fmtcpp [osutils:vcproj:fmtcpp]} +# Generate Visual Studio project file for ToolKit +proc osutils:vcproj { theVcVer theOutDir theToolKit theGuidsMap {theProjTmpl {} } } { + if { $theProjTmpl == {} } {set theProjTmpl [osutils:vcproj:readtemplate $theVcVer 0]} + + set l_compilable [osutils:compilable] + regsub -all -- {__TKNAM__} $theProjTmpl $theToolKit theProjTmpl + + upvar $theGuidsMap aGuidsMap + if { ! [info exists aGuidsMap($theToolKit)] } { + set aGuidsMap($theToolKit) [OS:genGUID] + } + regsub -all -- {__PROJECT_GUID__} $theProjTmpl $aGuidsMap($theToolKit) theProjTmpl + + # collect list of referred libraries to link with + set aUsedToolKits "" + foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $theToolKit]]] { + append aUsedToolKits "${tkx}.lib " + } + + wokparam -l CSF + foreach tk [lappend [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $theToolKit]]] $theToolKit] { + foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] { + if {[wokparam -t %$element] == 0} { + continue + } + foreach fl [split [wokparam -v %$element] \{\ \}] { + if {[string first "-libpath" $fl] != "-1"} { + # this is library search path, not the library name + continue + } + set felem [file tail $fl] + if {[lsearch $aUsedToolKits $felem] == "-1"} { + if {$felem != "\{\}" & $felem != "lib"} { + if {[lsearch -nocase [osutils:optinal_libs] $felem] == -1} { + set aUsedToolKits [concat $aUsedToolKits $felem] + } + } + } + } + } + } + + # correct names of referred third-party libraries that are named with suffix + # depending on VC version + regsub -all -- {vc[0-9]+} $aUsedToolKits $theVcVer aUsedToolKits + + # and put this list to project file + puts "$theToolKit requires $aUsedToolKits" + if { "$theVcVer" == "vc10" } { set aUsedToolKits [join $aUsedToolKits {;}] } + regsub -all -- {__TKDEP__} $theProjTmpl $aUsedToolKits theProjTmpl + + set anIncPaths "..\\..\\..\\inc" + set aTKDefines "" + set aFilesSection "" + set aVcFilesX(units) "" + set listloc [osutils:tk:units [woklocate -u $theToolKit]] + set resultloc [osutils:justwnt $listloc] + if [array exists written] { unset written } + set fxloparamfcxx [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] ] 2] + set fxloparamfc [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] ] 2] + set fxloparam "[osutils:union [split $fxloparamfcxx] [split $fxloparamfc]]" + foreach fxlo $resultloc { + set xlo [wokinfo -n $fxlo] + set aSrcFiles [osutils:tk:files $xlo osutils:compilable 0] + set fxloparam "$fxloparam [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]" + set fxloparam "$fxloparam [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options ] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2]" + set needparam "" + foreach partopt $fxloparam { + if {[string first "-I" $partopt] == "0"} { + # this is an additional includes search path + continue + } + set needparam "$needparam $partopt" + #if { "-I[lindex [wokparam -v %CSF_TCL_INCLUDE] 0]" != "$partopt "} { + # if { "-I[lindex [wokparam -v %CSF_JAVA_INCLUDE] 0]" != "$partopt "} { + # set needparam "$needparam $partopt" + # } + #} + } + + # Format of projects in vc10 is different from vc7-9 + if { "$theVcVer" == "vc10" } { + foreach aSrcFile [lsort $aSrcFiles] { + if { ![info exists written([file tail $aSrcFile])] } { + set written([file tail $aSrcFile]) 1 + append aFilesSection [osutils:vcxproj:file $theVcVer $aSrcFile $needparam] + } else { + puts "Warning : in vcproj more than one occurences for [file tail $aSrcFile]" + } + if { ! [info exists aVcFilesX($xlo)] } { lappend aVcFilesX(units) $xlo } + lappend aVcFilesX($xlo) $aSrcFile + } + } else { + append aFilesSection "\t\t\t\n" + foreach aSrcFile [lsort $aSrcFiles] { + if { ![info exists written([file tail $aSrcFile])] } { + set written([file tail $aSrcFile]) 1 + append aFilesSection [osutils:vcproj:file $theVcVer $aSrcFile $needparam] + } else { + puts "Warning : in vcproj more than one occurences for [file tail $aSrcFile]" + } + } + append aFilesSection "\t\t\t\n" + } + + # macros + append aTKDefines ";__${xlo}_DLL" + # common includes + append anIncPaths ";..\\..\\..\\drv\\${xlo}" + append anIncPaths ";..\\..\\..\\src\\${xlo}" + } + + regsub -all -- {__TKINC__} $theProjTmpl $anIncPaths theProjTmpl + regsub -all -- {__TKDEFS__} $theProjTmpl $aTKDefines theProjTmpl + regsub -all -- {__FILES__} $theProjTmpl $aFilesSection theProjTmpl + + # write file + set aFile [open [set aVcFiles [file join $theOutDir ${theToolKit}.[osutils:vcproj:ext $theVcVer]]] w] + fconfigure $aFile -translation crlf + puts $aFile $theProjTmpl + close $aFile + + # write filters file for vc10 + if { "$theVcVer" == "vc10" } { + lappend aVcFiles [osutils:vcxproj:filters $theOutDir $theToolKit aVcFilesX] + } + + # write resource file + lappend aVcFiles [osutils:readtemplate:rc $theOutDir $theToolKit] + + return $aVcFiles +} +# Generate Visual Studio project file for executable +proc osutils:vcprojx { theVcVer theOutDir theToolKit theGuidsMap {theProjTmpl {} } } { + set aVcFiles {} + foreach f [osutils:tk:files $theToolKit osutils:compilable 0] { + if { $theProjTmpl == {} } { + set aProjTmpl [osutils:vcproj:readtemplate $theVcVer 1] + } else { + set aProjTmpl $theProjTmpl + } + set aProjName [file rootname [file tail $f]] set l_compilable [osutils:compilable] - regsub -all -- {__TKNAM__} $tmplat $tkloc tmplat + regsub -all -- {__XQTNAM__} $aProjTmpl $aProjName aProjTmpl - upvar $_guids guids - if { ! [info exists guids($tkloc)] } { - set guids($tkloc) [OS:genGUID] + upvar $theGuidsMap aGuidsMap + if { ! [info exists aGuidsMap($aProjName)] } { + set aGuidsMap($aProjName) [OS:genGUID] } - regsub -all -- {__PROJECT_GUID__} $tmplat $guids($tkloc) tmplat + regsub -all -- {__PROJECT_GUID__} $aProjTmpl $aGuidsMap($aProjName) aProjTmpl - # collect list of referred libraries to link with - set tkused "" - foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] { - append tkused "${tkx}.lib " + set aUsedToolKits "" + set aDepToolkits [LibToLinkX [woklocate -u $theToolKit] $aProjName] + foreach tkx $aDepToolkits { + if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} { + append aUsedToolKits "${tkx}.lib " + } + if {[lsearch [w_info -l] $tkx] == "-1"} { + append aUsedToolKits "${tkx}.lib " + } + } + + wokparam -l CSF + foreach tk $aDepToolkits { + foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] { + if {[wokparam -t %$element] == 0} { + continue + } + foreach fl [split [wokparam -v %$element] \{\ \}] { + if {[string first "-libpath" $fl] != "-1"} { + # this is library search path, not the library name + continue + } + set felem [file tail $fl] + if {[lsearch $aUsedToolKits $felem] == "-1"} { + if {$felem != "\{\}"} { + if {[lsearch -nocase [osutils:optinal_libs] $felem] == -1} { + set aUsedToolKits [concat $aUsedToolKits $felem] + } + } + } + } + } } - wokparam -l CSF - foreach tk [lappend [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] $tkloc] { - foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] { - if {[wokparam -t %$element] != 0} { - foreach fl [split [wokparam -v %$element] \{\ \}] { - set felem [file tail $fl] - if {[lsearch $tkused $felem] == "-1"} { - if {$felem != "\{\}" & $felem != "lib"} { - #puts "$fl $tkused $felem" - if {[lsearch -nocase [osutils:optinal_libs] $felem] == -1} { - set tkused [concat $tkused $felem] - } - } - } - } - } - } + + set WOKSteps_exec_link [wokparam -v %WOKSteps_exec_link [woklocate -u $theToolKit]] + if { [regexp {WOKStep_DLLink} $WOKSteps_exec_link] || [regexp {WOKStep_Libink} $WOKSteps_exec_link] } { + set aUsedToolKits [concat $aUsedToolKits "\/dll"] + set binext 2 + } else { + set binext 1 } # correct names of referred third-party libraries that are named with suffix # depending on VC version - - regsub -all -- {vc[0-9]+} $tkused $vc tkused - - # and put this list to project file - puts "$tkloc requires $tkused" - if { "$vc" == "vc10" } { set tkused [join $tkused {;}] } - regsub -all -- {__TKDEP__} $tmplat $tkused tmplat + regsub -all -- {vc[0-9]+} $aUsedToolKits $theVcVer aUsedToolKits + + puts "$aProjName requires $aUsedToolKits" + if { "$theVcVer" == "vc10" } { set aUsedToolKits [join $aUsedToolKits {;}] } + regsub -all -- {__TKDEP__} $aProjTmpl $aUsedToolKits aProjTmpl + + set aFilesSection "" + set aVcFilesX(units) "" + ;#set lsrc [osutils:tk:files $theToolKit osutils:compilable 0] + if { ![info exists written([file tail $f])] } { + set written([file tail $f]) 1 + + if { "$theVcVer" == "vc10" } { + append aFilesSection [osutils:vcxproj:file $theVcVer $f ""] + if { ! [info exists aVcFilesX($theToolKit)] } { lappend aVcFilesX(units) $theToolKit } + lappend aVcFilesX($theToolKit) $f + } else { + append aFilesSection "\t\t\t\n" + append aFilesSection [osutils:vcproj:file $theVcVer $f ""] + append aFilesSection "\t\t\t" + } + } else { + puts "Warning : in vcproj there are than one occurences for [file tail $f]" + } + #puts "$aProjTmpl $aFilesSection" + set aTKDefines ";__${theToolKit}_DLL" + set anIncPaths "..\\..\\..\\inc;..\\..\\..\\drv\\${theToolKit};..\\..\\..\\src\\${theToolKit}" + regsub -all -- {__TKINC__} $aProjTmpl $anIncPaths aProjTmpl + regsub -all -- {__TKDEFS__} $aProjTmpl $aTKDefines aProjTmpl + regsub -all -- {__FILES__} $aProjTmpl $aFilesSection aProjTmpl + regsub -all -- {__CONF__} $aProjTmpl $binext aProjTmpl + if { $binext == 2 } { + regsub -all -- {__XQTEXT__} $aProjTmpl "dll" aProjTmpl + } else { + regsub -all -- {__XQTEXT__} $aProjTmpl "exe" aProjTmpl + } - set files "" - set vcxproj_files(units) "" - set listloc [osutils:tk:units [woklocate -u $tkloc]] - set resultloc [osutils:justwnt $listloc] - if [array exists written] { unset written } - set fxloparamfcxx [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] ] 2] - set fxloparamfc [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] ] 2] - set fxloparam "[union [split $fxloparamfcxx] [split $fxloparamfc]]" - foreach fxlo $resultloc { - set xlo [wokinfo -n $fxlo] - set lsrc [osutils:tk:files $xlo osutils:compilable 0] - set fxloparam "$fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2]" - set fxloparam "$fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2]" - set needparam "" - foreach partopt $fxloparam { - if { "-I[lindex [wokparam -v %CSF_TCL_INCLUDE] 0]" != "$partopt "} { - if { "-I[lindex [wokparam -v %CSF_JAVA_INCLUDE] 0]" != "$partopt "} { - set needparam "$needparam $partopt" - } - } - } + set aFile [open [set aVcFilePath [file join $theOutDir ${aProjName}.[osutils:vcproj:ext $theVcVer]]] w] + fconfigure $aFile -translation crlf + puts $aFile $aProjTmpl + close $aFile - # Format of projects in vc10 is different from vc7-9 - if { "$vc" == "vc10" } { - foreach f [lsort $lsrc] { - #puts " f = $f" - if { ![info exists written([file tail $f])] } { - set written([file tail $f]) 1 - append files [osutils:vcxproj:file $vc $plat $f $xlo $needparam] - } else { - puts "Warning : in vcproj more than one occurences for [file tail $f]" - } - if { ! [info exists vcxproj_files($xlo)] } { lappend vcxproj_files(units) $xlo } - lappend vcxproj_files($xlo) $f - } - } else { - append files "\t\t\t\n" - foreach f [lsort $lsrc] { - #puts " f = $f" - if { ![info exists written([file tail $f])] } { - set written([file tail $f]) 1 - append files [osutils:vcproj:file $vc $plat $f [format $fmtcpp $xlo $xlo $xlo] $needparam] - } else { - puts "Warning : in vcproj more than one occurences for [file tail $f]" - } - } - append files "\t\t\t\n" - } - } - - regsub -all -- {__FILES__} $tmplat $files tmplat - - # write file - set fp [open [set fvcproj [file join $dir ${tkloc}.[osutils:vcproj:ext $vc]]] w] - fconfigure $fp -translation crlf - puts $fp $tmplat - close $fp + lappend aVcFiles $aVcFilePath # write filters file for vc10 - if { "$vc" == "vc10" } { - lappend fvcproj [osutils:vcxproj:filters $dir $tkloc vcxproj_files] + if { "$theVcVer" == "vc10" } { + lappend aVcFiles [osutils:vcxproj:filters $theOutDir $aProjName aVcFilesX] } - return $fvcproj -} - -# Generate Visual Studio project file for executable -proc osutils:vcprojx { vc plat dir tkloc _guids {tmplat0 {} } {fmtcpp {} } } { - if { $fmtcpp == {} } {set fmtcpp [osutils:vcproj:fmtcppx]} - set fout {} - foreach f [osutils:tk:files $tkloc osutils:compilable 0] { - if { $tmplat0 == {} } { - set tmplat [osutils:vcproj:readtemplate $vc $plat 1] - } else { - set tmplat $tmplat0 - } - set tf [file rootname [file tail $f]] - set l_compilable [osutils:compilable] - regsub -all -- {__XQTNAM__} $tmplat $tf tmplat - - upvar $_guids guids - if { ! [info exists guids($tf)] } { - set guids($tf) [OS:genGUID] - } - regsub -all -- {__PROJECT_GUID__} $tmplat $guids($tf) tmplat - - set tkused "" - foreach tkx [LibToLinkX [woklocate -u $tkloc] $tf] { - if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} { - append tkused "${tkx}.lib " - } - if {[lsearch [w_info -l] $tkx] == "-1"} { - append tkused "${tkx}.lib " - } - } - wokparam -l CSF - foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] { - foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] { - if {[wokparam -t %$element] != 0} { - set elemlist [wokparam -v "%$element"] - foreach fl [split [wokparam -v %$element] \{\ \}] { - set felem [file tail $fl] - if {[lsearch $tkused $felem] == "-1"} { - if {$felem != "\{\}"} { - if {[lsearch -nocase [osutils:optinal_libs] $felem] == -1} { - set tkused [concat $tkused $felem] - } - - } - } - } - } - } - } - set WOKSteps_exec_link [wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]] - if { [regexp {WOKStep_DLLink} $WOKSteps_exec_link] || [regexp {WOKStep_Libink} $WOKSteps_exec_link] } { - set tkused [concat $tkused "\/dll"] - set binext 2 - } else { - set binext 1 - } - - # correct names of referred third-party libraries that are named with suffix - # depending on VC version - regsub -all -- {vc[0-9]+} $tkused $vc tkused - - puts "$tf requires $tkused" - if { "$vc" == "vc10" } { set tkused [join $tkused {;}] } - regsub -all -- {__TKDEP__} $tmplat $tkused tmplat - - set files "" - set vcxproj_files(units) "" - ;#set lsrc [osutils:tk:files $tkloc osutils:compilable 0] - if { ![info exists written([file tail $f])] } { - set written([file tail $f]) 1 - - if { "$vc" == "vc10" } { - append files [osutils:vcxproj:file $vc $plat $f $tkloc ""] - if { ! [info exists vcxproj_files($tkloc)] } { lappend vcxproj_files(units) $tkloc } - lappend vcxproj_files($tkloc) $f - } else { - append files "\t\t\t\n" - append files [osutils:vcproj:file $vc $plat $f [format $fmtcpp $tkloc $tkloc $tkloc] ""] - append files "\t\t\t" - } - } else { - puts "Warning : in vcproj there are than one occurences for [file tail $f]" - } - #puts "$tmplat $files" - regsub -all -- {__FILES__} $tmplat $files tmplat - regsub -all -- {__CONF__} $tmplat $binext tmplat - if { $binext == 2 } { - regsub -all -- {__XQTEXT__} $tmplat "dll" tmplat - } else { - regsub -all -- {__XQTEXT__} $tmplat "exe" tmplat - } - - set fp [open [set fdsp [file join $dir ${tf}.[osutils:vcproj:ext $vc]]] w] - fconfigure $fp -translation crlf - puts $fp $tmplat - close $fp - - lappend fout $fdsp - - # write filters file for vc10 - if { "$vc" == "vc10" } { - lappend fout [osutils:vcxproj:filters $dir $tf vcxproj_files] - } - } - return $fout + if { "$theVcVer" == "vc9" } { + set aCommonSettingsFileTmpl "$::env(WOK_LIBRARY)/templates/vcproj.user.vc9x" + set aCommonSettingsFile "$aVcFilePath.user" + file copy -force -- "$aCommonSettingsFileTmpl" "$aCommonSettingsFile" + lappend aVcFiles "$aCommonSettingsFile" + } + } + return $aVcFiles } ;# @@ -1058,423 +1059,421 @@ proc osutils:vcprojx { vc plat dir tkloc _guids {tmplat0 {} } {fmtcpp {} } } { ;# in dir return the full path of the created file ;# proc osutils:mkmak { dir tkloc {tmplat {} } {fmtcpp {} } } { - puts $tkloc - if { $tmplat == {} } {set tmplat [osutils:readtemplate mak "MS VC++ makefile"]} - if { $fmtcpp == {} } {set fmtcpp [osutils:mak:fmtcpp]} - set fp [open [set fdsp [file join $dir ${tkloc}.mak]] w] - fconfigure $fp -translation crlf - set l_compilable [osutils:compilable] - set tkused [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] - set listloc [osutils:tk:units [woklocate -u $tkloc]] - set resultloc [osutils:justwnt $listloc] - regsub -all -- {__TKNAM__} $tmplat $tkloc tmplat - set area1 "" - append area1 "\!IF \"\$(RECURSE)\" == \"0\" \n" - append area1 "ALL : \"\$(OUTDIR)\\${tkloc}.dll\"\n" - append area1 "\!ELSE\n" - append area1 "ALL : " - if {$tkused != ""} { - foreach tkproj $tkused { - append area1 "\"$tkproj - Win32 Release\" " - } + puts $tkloc + if { $tmplat == {} } {set tmplat [osutils:readtemplate mak "MS VC++ makefile"]} + if { $fmtcpp == {} } {set fmtcpp [osutils:mak:fmtcpp]} + set fp [open [set fdsp [file join $dir ${tkloc}.mak]] w] + fconfigure $fp -translation crlf + set l_compilable [osutils:compilable] + set tkused [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] + set listloc [osutils:tk:units [woklocate -u $tkloc]] + set resultloc [osutils:justwnt $listloc] + regsub -all -- {__TKNAM__} $tmplat $tkloc tmplat + set area1 "" + append area1 "\!IF \"\$(RECURSE)\" == \"0\" \n" + append area1 "ALL : \"\$(OUTDIR)\\${tkloc}.dll\"\n" + append area1 "\!ELSE\n" + append area1 "ALL : " + if {$tkused != ""} { + foreach tkproj $tkused { + append area1 "\"$tkproj - Win32 Release\" " } - append area1 " \"\$(OUTDIR)\\$tkloc.dll\"\n" - append area1 "\!ENDIF \n" - append area1 "\!IF \"\$(RECURSE)\" == \"1\"\n" - append area1 "CLEAN :" - if {$tkused != ""} { - foreach tkproj $tkused { - append area1 "\"$tkproj - Win32 ReleaseCLEAN\" " - } + } + append area1 " \"\$(OUTDIR)\\$tkloc.dll\"\n" + append area1 "\!ENDIF \n" + append area1 "\!IF \"\$(RECURSE)\" == \"1\"\n" + append area1 "CLEAN :" + if {$tkused != ""} { + foreach tkproj $tkused { + append area1 "\"$tkproj - Win32 ReleaseCLEAN\" " } - append area1 "\n" - append area1 "\!ELSE\n" - append area1 "CLEAN :\n" - append area1 "\!ENDIF\n" - set tclused 0 - set javaused 0 - if [array exists written] { unset written } - foreach fxlo $resultloc { - set xlo [wokinfo -n $fxlo] - set lsrc [osutils:tk:files $xlo osutils:compilable 0] - set fxlocxxparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2] - set fxlocparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2] - if {[lsearch [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_TCL_INCLUDE] 0] 0 end]"] != -1} { - set tclused 1 - } - if {[lsearch [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_JavaHome]/include 0] 0 end]"] != -1} { - set javaused 1 - } - if {[lsearch [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_TCL_INCLUDE] 0] 0 end]"] != -1} { - set tclused 1 - } - if {[lsearch [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_JavaHome]/include 0] 0 end]"] != -1} { - set javaused 1 - } - - foreach srcfile $lsrc { - if { ![info exists written([file tail $srcfile])] } { - set written([file tail $srcfile]) 1 - append area1 "\t-@erase \"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\"\n" - } + } + append area1 "\n" + append area1 "\!ELSE\n" + append area1 "CLEAN :\n" + append area1 "\!ENDIF\n" + set tclused 0 + set javaused 0 + if [array exists written] { unset written } + foreach fxlo $resultloc { + set xlo [wokinfo -n $fxlo] + set lsrc [osutils:tk:files $xlo osutils:compilable 0] + set fxlocxxparam [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2] + set fxlocparam [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2] + if {[lsearch [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_TCL_INCLUDE] 0] 0 end]"] != -1} { + set tclused 1 + } + if {[lsearch [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_JavaHome]/include 0] 0 end]"] != -1} { + set javaused 1 + } + if {[lsearch [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_TCL_INCLUDE] 0] 0 end]"] != -1} { + set tclused 1 + } + if {[lsearch [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0] "-I[lrange [lindex [wokparam -v %CSF_JavaHome]/include 0] 0 end]"] != -1} { + set javaused 1 + } + + foreach srcfile $lsrc { + if { ![info exists written([file tail $srcfile])] } { + set written([file tail $srcfile]) 1 + append area1 "\t-@erase \"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\"\n" } - } - regsub -all -- {__FIELD1__} $tmplat $area1 tmplat - - set area2 "LINK32_FLAGS=-nologo -subsystem:windows -dll -incremental:no -machine:IX86 -libpath:\"\$(LIBDIR)\" -implib:\$(LIBDIR)\\$tkloc.lib -out:\$(OUTDIR)\\$tkloc.dll " - set libused "" - foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] { - append libused "${tkx}.lib " - } - set ltk [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] - set ltk [lappend ltk $tkloc] - foreach tk $ltk { - foreach element [osutils:tk:hascsf [woklocate -p $tk:source:EXTERNLIB [wokcd]]] { - if {[wokparam -t %$element] != 0} { - set felem [file tail [lindex [wokparam -v "%$element"] 0]] - if {[lsearch $libused $felem] == "-1"} { - if {$felem != "\{\}"} { - set libused [concat $libused $felem] - } - } - } - } } - if {$tclused == 1} { - append area2 "-libpath:\"\$(TCLHOME)\\lib\" " - } - - foreach tk $libused { - append area2 "$tk " - } - append area2 "\n" - append area2 "LINK32_OBJS= \\\n" - if [array exists written] { unset written } - foreach fxlo $resultloc { - set xlo [wokinfo -n $fxlo] - set lsrc [osutils:tk:files $xlo osutils:compilable 0] - foreach srcfile $lsrc { - if { ![info exists written([file tail $srcfile])] } { - set written([file tail $srcfile]) 1 - append area2 "\t\"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\" \\\n" + } + regsub -all -- {__FIELD1__} $tmplat $area1 tmplat + + set area2 "LINK32_FLAGS=-nologo -subsystem:windows -dll -incremental:no -machine:IX86 -libpath:\"\$(LIBDIR)\" -implib:\$(LIBDIR)\\$tkloc.lib -out:\$(OUTDIR)\\$tkloc.dll " + set libused "" + foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] { + append libused "${tkx}.lib " + } + set ltk [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] + set ltk [lappend ltk $tkloc] + foreach tk $ltk { + foreach element [osutils:tk:hascsf [woklocate -p $tk:source:EXTERNLIB [wokcd]]] { + if {[wokparam -t %$element] != 0} { + set felem [file tail [lindex [wokparam -v "%$element"] 0]] + if {[lsearch $libused $felem] == "-1"} { + if {$felem != "\{\}"} { + set libused [concat $libused $felem] } } - } - - regsub -all -- {__FIELD2__} $tmplat $area2 tmplat - - set area3 "" - append area3 "\!IF \"\$(RECURSE)\" == \"0\" \n" - append area3 "ALL : \"\$(OUTDIR)\\${tkloc}.dll\"\n" - append area3 "\!ELSE\n" - append area3 "ALL : " - if {$tkused != ""} { - foreach tkproj $tkused { - append area3 "\"$tkproj - Win32 Debug\" " } } - append area3 " \"\$(OUTDIR)\\$tkloc.dll\"\n" - append area3 "\!ENDIF \n" - append area3 "\!IF \"\$(RECURSE)\" == \"1\"\n" - append area3 "CLEAN :" - if {$tkused != ""} { - foreach tkproj $tkused { - append area3 "\"$tkproj - Win32 DebugCLEAN\"" + } + if {$tclused == 1} { + append area2 "-libpath:\"\$(TCLHOME)\\lib\" " + } + + foreach tk $libused { + append area2 "$tk " + } + append area2 "\n" + append area2 "LINK32_OBJS= \\\n" + if [array exists written] { unset written } + foreach fxlo $resultloc { + set xlo [wokinfo -n $fxlo] + set lsrc [osutils:tk:files $xlo osutils:compilable 0] + foreach srcfile $lsrc { + if { ![info exists written([file tail $srcfile])] } { + set written([file tail $srcfile]) 1 + append area2 "\t\"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\" \\\n" } } - append area3 "\n" - append area3 "\!ELSE\n" - append area3 "CLEAN :\n" - append area3 "\!ENDIF\n" - if [array exists written] { unset written } - - foreach fxlo $resultloc { - set xlo [wokinfo -n $fxlo] - set lsrc [osutils:tk:files $xlo osutils:compilable 0] - - foreach srcfile $lsrc { - if { ![info exists written([file tail $srcfile])] } { - set written([file tail $srcfile]) 1 - append area3 "\t-@erase \"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\"\n" - } + } + + regsub -all -- {__FIELD2__} $tmplat $area2 tmplat + + set area3 "" + append area3 "\!IF \"\$(RECURSE)\" == \"0\" \n" + append area3 "ALL : \"\$(OUTDIR)\\${tkloc}.dll\"\n" + append area3 "\!ELSE\n" + append area3 "ALL : " + if {$tkused != ""} { + foreach tkproj $tkused { + append area3 "\"$tkproj - Win32 Debug\" " + } + } + append area3 " \"\$(OUTDIR)\\$tkloc.dll\"\n" + append area3 "\!ENDIF \n" + append area3 "\!IF \"\$(RECURSE)\" == \"1\"\n" + append area3 "CLEAN :" + if {$tkused != ""} { + foreach tkproj $tkused { + append area3 "\"$tkproj - Win32 DebugCLEAN\"" + } + } + append area3 "\n" + append area3 "\!ELSE\n" + append area3 "CLEAN :\n" + append area3 "\!ENDIF\n" + if [array exists written] { unset written } + + foreach fxlo $resultloc { + set xlo [wokinfo -n $fxlo] + set lsrc [osutils:tk:files $xlo osutils:compilable 0] + + foreach srcfile $lsrc { + if { ![info exists written([file tail $srcfile])] } { + set written([file tail $srcfile]) 1 + append area3 "\t-@erase \"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\"\n" } - } - regsub -all -- {__FIELD3__} $tmplat $area3 tmplat + } + } + regsub -all -- {__FIELD3__} $tmplat $area3 tmplat + + set area4 "LINK32_FLAGS=-nologo -subsystem:windows -dll -incremental:no -machine:IX86 -debug -libpath:\"\$(LIBDIR)\" -implib:\$(LIBDIR)\\$tkloc.lib -out:\$(OUTDIR)\\$tkloc.dll -pdb:\$(OUTDIR)\\$tkloc.pdb " + foreach tk $libused { + append area4 "$tk " + } + if {$tclused == 1} { + append area4 "-libpath:\"\$(TCLHOME)\\lib\" " + } - set area4 "LINK32_FLAGS=-nologo -subsystem:windows -dll -incremental:no -machine:IX86 -debug -libpath:\"\$(LIBDIR)\" -implib:\$(LIBDIR)\\$tkloc.lib -out:\$(OUTDIR)\\$tkloc.dll -pdb:\$(OUTDIR)\\$tkloc.pdb " - foreach tk $libused { - append area4 "$tk " + append area4 "\n" + append area4 "LINK32_OBJS= \\\n" + if [array exists written] { unset written } + foreach fxlo $resultloc { + set xlo [wokinfo -n $fxlo] + set lsrc [osutils:tk:files $xlo osutils:compilable 0] + foreach srcfile $lsrc { + if { ![info exists written([file tail $srcfile])] } { + set written([file tail $srcfile]) 1 + append area4 "\t\"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\" \\\n" + } } + } + + regsub -all -- {__FIELD4__} $tmplat $area4 tmplat + + set area5 "" + if [array exists written] { unset written } + foreach fxlo $resultloc { + set xlo [wokinfo -n $fxlo] + set lsrc [osutils:tk:files $xlo osutils:compilable 0] + set fxlocxxparam [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2] + set fxlocparam [lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2] if {$tclused == 1} { - append area4 "-libpath:\"\$(TCLHOME)\\lib\" " - } - - append area4 "\n" - append area4 "LINK32_OBJS= \\\n" - if [array exists written] { unset written } - foreach fxlo $resultloc { - set xlo [wokinfo -n $fxlo] - set lsrc [osutils:tk:files $xlo osutils:compilable 0] - foreach srcfile $lsrc { - if { ![info exists written([file tail $srcfile])] } { - set written([file tail $srcfile]) 1 - append area4 "\t\"\$(INTDIR)\\[wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]].obj\" \\\n" - } - } - } - - regsub -all -- {__FIELD4__} $tmplat $area4 tmplat - - set area5 "" - if [array exists written] { unset written } - foreach fxlo $resultloc { - set xlo [wokinfo -n $fxlo] - set lsrc [osutils:tk:files $xlo osutils:compilable 0] - set fxlocxxparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options $fxlo] 0]] ] 2] - set fxlocparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options $fxlo] 0]] ] 2] - if {$tclused == 1} { - set fxlocxxparam "-I\$(TCLHOME)\\include" + set fxlocxxparam "-I\$(TCLHOME)\\include" + } + if {$javaused == 1} { + set fxlocxxparam "-I\$(JAVAHOME)\\include -I\$(JAVAHOME)\\include\\win32" + } + set fxloparam "$fxlocparam $fxlocxxparam" + #puts $fxloparam + foreach srcfile $lsrc { + if { ![info exists written([file tail $srcfile])] } { + set written([file tail $srcfile]) 1 + set pkname [wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]] + + append area5 "SOURCE=..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $srcfile 3]]\n" + append area5 "\!IF \"\$(CFG)\" == \"$tkloc - Win32 Release\"\n" + append area5 "CPP_SWITCHES=\/nologo \/MD \/W3 \/GX \/O2 $fxloparam \/I \"..\\..\\..\\inc\" \/I \"..\\..\\..\\drv\\$xlo\" \/I \"..\\..\\..\\src\\$xlo\" \/D \"WIN32\" \/D \"NDEBUG\" \/D \"_WINDOWS\" \/D \"WNT\" \/D \"No_Exception\" \/D \"__${xlo}_DLL\" \/Fo\"\$(INTDIR)\\\\\\\" \/Fd\"\$(INTDIR)\\\\\\\" \/FD \/D \"CSFDB\" \/c\n" + append area5 "\"\$(INTDIR)\\$pkname.obj\" : \$(SOURCE) \"\$(INTDIR)\"\n" + append area5 "\t\t\$(CPP) \$(CPP_SWITCHES) \$(SOURCE)\n" + append area5 "\n" + append area5 "\!ELSEIF \"\$(CFG)\" == \"$tkloc - Win32 Debug\"\n" + append area5 "CPP_SWITCHES=\/nologo \/MDd \/W3 \/GX \/Zi \/Od $fxloparam \/I \"..\\..\\..\\inc\" \/I \"..\\..\\..\\drv\\$xlo\" \/I \"..\\..\\..\\src\\$xlo\" \/D \"WIN32\" \/D \"DEB\" \/D \"_DEBUG\" \/D \"_WINDOWS\" \/D \"WNT\" \/D \"CSFDB\" \/D \"__${xlo}_DLL\" \/Fo\"\$(INTDIR)\\\\\\\" \/Fd\"\$(INTDIR)\\\\\\\" \/FD \/c \n" + append area5 "\"\$(INTDIR)\\$pkname.obj\" : \$(SOURCE) \"\$(INTDIR)\"\n" + append area5 "\t\t\$(CPP) \$(CPP_SWITCHES) \$(SOURCE)\n" + append area5 "\n" + append area5 "\!ENDIF \n" + } + } + } + regsub -all -- {__FIELD5__} $tmplat $area5 tmplat + + set area6 "" + foreach tk $tkused { + append area6 "\!IF \"\$(CFG)\" == \"$tkloc - Win32 Release\"\n" + append area6 "\"$tk - Win32 Release\" \: \n" + append area6 " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" \n" + append area6 "\"$tk - Win32 ReleaseCLEAN\" \: \n" + append area6 " \$(MAKE)\/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" RECURSE=1 CLEAN\n" + append area6 "\!ELSEIF \"\$(CFG)\" == \"$tkloc - Win32 Debug\"\n" + append area6 "\"$tk - Win32 Debug\" \: \n" + append area6 " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" \n" + append area6 "\"$tk - Win32 DebugCLEAN\" \: \n" + append area6 " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" RECURSE=1 CLEAN\n" + append area6 "\!ENDIF\n" + } + regsub -all -- {__FIELD6__} $tmplat $area6 tmplat + + if {$tclused == 1} { + set tclwarning "\!IFNDEF TCLHOME \n\!MESSAGE Compilation of this toolkit requires tcl. Set TCLHOME environment variable for proper compilation\n\!ENDIF" + } else { + set tclwarning "" + } + regsub -all -- {__TCLUSED__} $tmplat $tclwarning tmplat + + if {$javaused == 1} { + set javawarning "\!IFNDEF JAVAHOME \n\!MESSAGE Compilation of this toolkit requires java. Set JAVAHOME environment variable for proper compilation\n\!ENDIF" + } else { + set javawarning "" + } + regsub -all -- {__JAVAUSED__} $tmplat $javawarning tmplat + puts $fp $tmplat + close $fp + return $fdsp +} + +proc osutils:mkmakx { dir tkloc {tmplat {} } {fmtcpp {} } } { + if { $tmplat == {} } {set tmplat [osutils:readtemplate makx "MS VC++ makefile (executable)"]} + if { $fmtcpp == {} } {set fmtcpp [osutils:mak:fmtcpp]} + foreach f [osutils:tk:files $tkloc osutils:compilable 0] { + set tf [file rootname [file tail $f]] + set fp [open [set fdsp [file join $dir ${tf}.mak]] w] + puts $fdsp + set tclused 0 + fconfigure $fp -translation crlf + set l_compilable [osutils:compilable] + regsub -all -- {__XQTNAM__} $tmplat $tf tmplat + set tkused "" + puts [LibToLinkX [woklocate -u $tkloc] $tf] + foreach tkx [LibToLinkX [woklocate -u $tkloc] $tf] { + if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} { + append tkused "${tkx}.lib " } - if {$javaused == 1} { - set fxlocxxparam "-I\$(JAVAHOME)\\include -I\$(JAVAHOME)\\include\\win32" + if {[woklocate -u $tkx] == "" } { + append tkused "${tkx}.lib " } - set fxloparam "$fxlocparam $fxlocxxparam" - #puts $fxloparam - foreach srcfile $lsrc { - if { ![info exists written([file tail $srcfile])] } { - set written([file tail $srcfile]) 1 - set pkname [wokUtils:EASY:bs1 [file root [wokUtils:FILES:wtail $srcfile 1]]] - - append area5 "SOURCE=..\\..\\..\\[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $srcfile 3]]\n" - append area5 "\!IF \"\$(CFG)\" == \"$tkloc - Win32 Release\"\n" - append area5 "CPP_SWITCHES=\/nologo \/MD \/W3 \/GX \/O2 $fxloparam \/I \"..\\..\\..\\inc\" \/I \"..\\..\\..\\drv\\$xlo\" \/I \"..\\..\\..\\src\\$xlo\" \/D \"WIN32\" \/D \"NDEBUG\" \/D \"_WINDOWS\" \/D \"WNT\" \/D \"No_Exception\" \/D \"__${xlo}_DLL\" \/Fo\"\$(INTDIR)\\\\\\\" \/Fd\"\$(INTDIR)\\\\\\\" \/FD \/D \"CSFDB\" \/c\n" - append area5 "\"\$(INTDIR)\\$pkname.obj\" : \$(SOURCE) \"\$(INTDIR)\"\n" - append area5 "\t\t\$(CPP) \$(CPP_SWITCHES) \$(SOURCE)\n" - append area5 "\n" - append area5 "\!ELSEIF \"\$(CFG)\" == \"$tkloc - Win32 Debug\"\n" - append area5 "CPP_SWITCHES=\/nologo \/MDd \/W3 \/GX \/Zi \/Od $fxloparam \/I \"..\\..\\..\\inc\" \/I \"..\\..\\..\\drv\\$xlo\" \/I \"..\\..\\..\\src\\$xlo\" \/D \"WIN32\" \/D \"DEB\" \/D \"_DEBUG\" \/D \"_WINDOWS\" \/D \"WNT\" \/D \"CSFDB\" \/D \"__${xlo}_DLL\" \/Fo\"\$(INTDIR)\\\\\\\" \/Fd\"\$(INTDIR)\\\\\\\" \/FD \/c \n" - append area5 "\"\$(INTDIR)\\$pkname.obj\" : \$(SOURCE) \"\$(INTDIR)\"\n" - append area5 "\t\t\$(CPP) \$(CPP_SWITCHES) \$(SOURCE)\n" - append area5 "\n" - append area5 "\!ENDIF \n" + } + foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] { + foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] { + if {[wokparam -t %$element] != 0} { + set elemlist [wokparam -v "%$element"] + set felem [file tail [lindex $elemlist 0]] + if {[lsearch $tkused $felem] == "-1"} { + if {$felem != "\{\}"} { + #puts "was found $element $felem" + if {$element == "CSF_TclLibs"} { set tclused 1} + set tkused [concat $tkused $felem] + } + } } } - } - regsub -all -- {__FIELD5__} $tmplat $area5 tmplat - - set area6 "" - foreach tk $tkused { - append area6 "\!IF \"\$(CFG)\" == \"$tkloc - Win32 Release\"\n" - append area6 "\"$tk - Win32 Release\" \: \n" - append area6 " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" \n" - append area6 "\"$tk - Win32 ReleaseCLEAN\" \: \n" - append area6 " \$(MAKE)\/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" RECURSE=1 CLEAN\n" - append area6 "\!ELSEIF \"\$(CFG)\" == \"$tkloc - Win32 Debug\"\n" - append area6 "\"$tk - Win32 Debug\" \: \n" - append area6 " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" \n" - append area6 "\"$tk - Win32 DebugCLEAN\" \: \n" - append area6 " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" RECURSE=1 CLEAN\n" - append area6 "\!ENDIF\n" - } - regsub -all -- {__FIELD6__} $tmplat $area6 tmplat - - if {$tclused == 1} { - set tclwarning "\!IFNDEF TCLHOME \n\!MESSAGE Compilation of this toolkit requires tcl. Set TCLHOME environment variable for proper compilation\n\!ENDIF" - } else { - set tclwarning "" } - regsub -all -- {__TCLUSED__} $tmplat $tclwarning tmplat - if {$javaused == 1} { - set javawarning "\!IFNDEF JAVAHOME \n\!MESSAGE Compilation of this toolkit requires java. Set JAVAHOME environment variable for proper compilation\n\!ENDIF" + set WOKSteps_exec_link [wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]] + if { [regexp {WOKStep_DLLink} $WOKSteps_exec_link] || [regexp {WOKStep_Libink} $WOKSteps_exec_link] } { + set tkused [concat $tkused "\/dll"] + if {$tclused != 1} { + regsub -all -- {__COMPOPT__} $tmplat "\/MD" tmplat + regsub -all -- {__COMPOPTD__} $tmplat "\/MDd" tmplat + } else { + regsub -all -- {__COMPOPT__} $tmplat "\/MD \/I \"\$(TCLHOME)\\include\"" tmplat + regsub -all -- {__COMPOPTD__} $tmplat "\/MDd \/I \"\$(TCLHOME)\\include\"" tmplat + } + regsub -all -- {__XQTNAMEX__} $tmplat "$tf.dll" tmplat } else { - set javawarning "" + if {$tclused != 1} { + regsub -all -- {__COMPOPT__} $tmplat "\/MD" tmplat + regsub -all -- {__COMPOPTD__} $tmplat "\/MDd" tmplat + } else { + regsub -all -- {__COMPOPT__} $tmplat "\/MD \/I \"\$(TCLHOME)\\include\"" tmplat + regsub -all -- {__COMPOPTD__} $tmplat "\/MDd \/I \"\$(TCLHOME)\\include\"" tmplat + } + regsub -all -- {__XQTNAMEX__} $tmplat "$tf.exe" tmplat + } + #puts "$tf requires $tkused" + if {$tclused == 1} { + append tkused " -libpath:\"\$(TCLHOME)\\lib\" " } - regsub -all -- {__JAVAUSED__} $tmplat $javawarning tmplat + regsub -all -- {__TKDEP__} $tmplat $tkused tmplat + set files "" + set field1 "" + set field2 "" + set field3 "" + set field4 "" + foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] { + append files "\!IF \"\$(CFG)\" == \"$tf - Win32 Release\"\n" + append files "\"$tk - Win32 Release\" \: \n" + append files " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" \n" + append files "\"$tk - Win32 ReleaseCLEAN\" \: \n" + append files " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" RECURSE=1 CLEAN\n" + append files "\!ELSEIF \"\$(CFG)\" == \"$tf - Win32 Debug\"\n" + append files "\"$tk - Win32 Debug\" \: \n" + append files " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" \n" + append files "\"$tk - Win32 DebugCLEAN\" \: \n" + append files " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" RECURSE=1 CLEAN\n" + append files "\!ENDIF\n" + + append field1 "\"$tk - Win32 Release\" " + append field2 "\"$tk - Win32 ReleaseCLEAN\" " + append field3 "\"$tk - Debug\" " + append field4 "\"$tk - Win32 DebugCLEAN\" " + } + regsub -all -- {__FILES__} $tmplat $files tmplat + regsub -all -- {__FIELD1__} $tmplat $field1 tmplat + regsub -all -- {__FIELD2__} $tmplat $field2 tmplat + regsub -all -- {__FIELD3__} $tmplat $field3 tmplat + regsub -all -- {__FIELD4__} $tmplat $field4 tmplat + regsub -all -- {__XNAM__} $tmplat $tkloc tmplat puts $fp $tmplat close $fp - return $fdsp -} - -proc osutils:mkmakx { dir tkloc {tmplat {} } {fmtcpp {} } } { - if { $tmplat == {} } {set tmplat [osutils:readtemplate makx "MS VC++ makefile (executable)"]} - if { $fmtcpp == {} } {set fmtcpp [osutils:mak:fmtcppx]} - foreach f [osutils:tk:files $tkloc osutils:compilable 0] { - set tf [file rootname [file tail $f]] - set fp [open [set fdsp [file join $dir ${tf}.mak]] w] - puts $fdsp - set tclused 0 - fconfigure $fp -translation crlf - set l_compilable [osutils:compilable] - regsub -all -- {__XQTNAM__} $tmplat $tf tmplat - set tkused "" - puts [LibToLinkX [woklocate -u $tkloc] $tf] - foreach tkx [LibToLinkX [woklocate -u $tkloc] $tf] { - if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} { - append tkused "${tkx}.lib " - } - if {[woklocate -u $tkx] == "" } { - append tkused "${tkx}.lib " - } - } - foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] { - foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] { - if {[wokparam -t %$element] != 0} { - set elemlist [wokparam -v "%$element"] - set felem [file tail [lindex $elemlist 0]] - if {[lsearch $tkused $felem] == "-1"} { - if {$felem != "\{\}"} { - #puts "was found $element $felem" - if {$element == "CSF_TclLibs"} { set tclused 1} - set tkused [concat $tkused $felem] - } - } - } - } - } - - set WOKSteps_exec_link [wokparam -v %WOKSteps_exec_link [woklocate -u $tkloc]] - if { [regexp {WOKStep_DLLink} $WOKSteps_exec_link] || [regexp {WOKStep_Libink} $WOKSteps_exec_link] } { - set tkused [concat $tkused "\/dll"] - if {$tclused != 1} { - regsub -all -- {__COMPOPT__} $tmplat "\/MD" tmplat - regsub -all -- {__COMPOPTD__} $tmplat "\/MDd" tmplat - } else { - regsub -all -- {__COMPOPT__} $tmplat "\/MD \/I \"\$(TCLHOME)\\include\"" tmplat - regsub -all -- {__COMPOPTD__} $tmplat "\/MDd \/I \"\$(TCLHOME)\\include\"" tmplat - } - regsub -all -- {__XQTNAMEX__} $tmplat "$tf.dll" tmplat - } else { - if {$tclused != 1} { - regsub -all -- {__COMPOPT__} $tmplat "\/MD" tmplat - regsub -all -- {__COMPOPTD__} $tmplat "\/MDd" tmplat - } else { - regsub -all -- {__COMPOPT__} $tmplat "\/MD \/I \"\$(TCLHOME)\\include\"" tmplat - regsub -all -- {__COMPOPTD__} $tmplat "\/MDd \/I \"\$(TCLHOME)\\include\"" tmplat - } - regsub -all -- {__XQTNAMEX__} $tmplat "$tf.exe" tmplat - } - #puts "$tf requires $tkused" - if {$tclused == 1} { - append tkused " -libpath:\"\$(TCLHOME)\\lib\" " - } - regsub -all -- {__TKDEP__} $tmplat $tkused tmplat - set files "" - set field1 "" - set field2 "" - set field3 "" - set field4 "" - foreach tk [LibToLinkX [woklocate -u $tkloc] $tf] { - - append files "\!IF \"\$(CFG)\" == \"$tf - Win32 Release\"\n" - append files "\"$tk - Win32 Release\" \: \n" - append files " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" \n" - append files "\"$tk - Win32 ReleaseCLEAN\" \: \n" - append files " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Release\" RECURSE=1 CLEAN\n" - append files "\!ELSEIF \"\$(CFG)\" == \"$tf - Win32 Debug\"\n" - append files "\"$tk - Win32 Debug\" \: \n" - append files " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" \n" - append files "\"$tk - Win32 DebugCLEAN\" \: \n" - append files " \$(MAKE) \/NOLOGO \/\$(MAKEFLAGS) \/F .\\$tk.mak CFG=\"$tk - Win32 Debug\" RECURSE=1 CLEAN\n" - append files "\!ENDIF\n" - - append field1 "\"$tk - Win32 Release\" " - append field2 "\"$tk - Win32 ReleaseCLEAN\" " - append field3 "\"$tk - Debug\" " - append field4 "\"$tk - Win32 DebugCLEAN\" " - - } - regsub -all -- {__FILES__} $tmplat $files tmplat - regsub -all -- {__FIELD1__} $tmplat $field1 tmplat - regsub -all -- {__FIELD2__} $tmplat $field2 tmplat - regsub -all -- {__FIELD3__} $tmplat $field3 tmplat - regsub -all -- {__FIELD4__} $tmplat $field4 tmplat - regsub -all -- {__XNAM__} $tmplat $tkloc tmplat - puts $fp $tmplat - close $fp - set fout [lappend fout $fdsp] - } - return $fout + set fout [lappend fout $fdsp] + } + return $fout } - -;# +;# ;# (((((((((((((((((((((((( AUTOMAKE/ PROJECTs ))))))))))))))))))))))) ;# ;# Create in dir the Makefile.am associated with toolkit tkloc. ;# Returns the full path of the created file. ;# proc osutils:tk:mkam { dir tkloc } { - set pkgs [woklocate -p ${tkloc}:PACKAGES] - if { $pkgs == {} } { - puts stderr "osutils:tk:mkam : Error. File PACKAGES not found for toolkit $tkloc." - return {} - } - - set tmplat [osutils:readtemplate mam "Makefile.am"] - set lpkgs [osutils:justunix [wokUtils:FILES:FileToList $pkgs]] - set close [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] - set lsrc [lsort [osutils:tk:files $tkloc osutils:compilable 1 osutils:justunix]] - set lobj [wokUtils:LIST:sanspoint $lsrc] - - set lcsf [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]] + set pkgs [woklocate -p ${tkloc}:PACKAGES] + if { $pkgs == {} } { + puts stderr "osutils:tk:mkam : Error. File PACKAGES not found for toolkit $tkloc." + return {} + } - set final 0 - set externinc "" - set externlib "" - if { $lcsf != {} } { - set final 1 - set fmtinc "\$(%s_INCLUDES) " - set fmtlib "\$(%s_LIB) " - set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0] - set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0] - } + set tmplat [osutils:readtemplate mam "Makefile.am"] + set lpkgs [osutils:justunix [wokUtils:FILES:FileToList $pkgs]] + set close [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] + set lsrc [lsort [osutils:tk:files $tkloc osutils:compilable 1 osutils:justunix]] + set lobj [wokUtils:LIST:sanspoint $lsrc] + + set lcsf [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]] + + set final 0 + set externinc "" + set externlib "" + if { $lcsf != {} } { + set final 1 + set fmtinc "\$(%s_INCLUDES) " + set fmtlib "\$(%s_LIB) " + set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0] + set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0] + } - regsub -all -- {__TKNAM__} $tmplat $tkloc tmplat - set vpath [osutils:am:__VPATH__ $lpkgs] - regsub -all -- {__VPATH__} $tmplat $vpath tmplat - set inclu [osutils:am:__INCLUDES__ $lpkgs] - regsub -all -- {__INCLUDES__} $tmplat $inclu tmplat - if { $close != {} } { - set libadd [osutils:am:__LIBADD__ $close $final] - } else { - set libadd "" - } - regsub -all -- {__LIBADD__} $tmplat $libadd tmplat - set source [osutils:am:__SOURCES__ $lsrc] - regsub -all -- {__SOURCES__} $tmplat $source tmplat - regsub -all -- {__EXTERNINC__} $tmplat $externinc tmplat - set CXXFl [osutils:am:__CXXFLAG__ $lpkgs] - regsub -all -- {__CXXFLAG__} $tmplat $CXXFl tmplat - set CFl [osutils:am:__CFLAG__ $lpkgs] - regsub -all -- {__CFLAG__} $tmplat $CFl tmplat + regsub -all -- {__TKNAM__} $tmplat $tkloc tmplat + set vpath [osutils:am:__VPATH__ $lpkgs] + regsub -all -- {__VPATH__} $tmplat $vpath tmplat + set inclu [osutils:am:__INCLUDES__ $lpkgs] + regsub -all -- {__INCLUDES__} $tmplat $inclu tmplat + if { $close != {} } { + set libadd [osutils:am:__LIBADD__ $close $final] + } else { + set libadd "" + } + regsub -all -- {__LIBADD__} $tmplat $libadd tmplat + set source [osutils:am:__SOURCES__ $lsrc] + regsub -all -- {__SOURCES__} $tmplat $source tmplat + regsub -all -- {__EXTERNINC__} $tmplat $externinc tmplat + set CXXFl [osutils:am:__CXXFLAG__ $lpkgs] + regsub -all -- {__CXXFLAG__} $tmplat $CXXFl tmplat + set CFl [osutils:am:__CFLAG__ $lpkgs] + regsub -all -- {__CFLAG__} $tmplat $CFl tmplat - regsub -all -- {__EXTERNLIB__} $tmplat $externlib tmplat + regsub -all -- {__EXTERNLIB__} $tmplat $externlib tmplat - wokUtils:FILES:StringToFile $tmplat [set fmam [file join $dir Makefile.am]] + wokUtils:FILES:StringToFile $tmplat [set fmam [file join $dir Makefile.am]] - return [list $fmam] + return [list $fmam] } + ;# ;# Create in dir the Makefile.am associated with toolkit tkloc. ;# Returns the full path of the created file. ;# proc osutils:tk:mkamx { dir tkloc } { - if { [lsearch [uinfo -f -T source [woklocate -u $tkloc]] ${tkloc}_WOKSteps.edl] != "-1"} { - set pkgs [woklocate -p ${tkloc}:EXTERNLIB] - if { $pkgs == {} } { - puts stderr "osutils:tk:mkamx : Error. File EXTERNLIB not found for executable $tkloc." - #return {} + if { [lsearch [uinfo -f -T source [woklocate -u $tkloc]] ${tkloc}_WOKSteps.edl] != "-1"} { + set pkgs [woklocate -p ${tkloc}:EXTERNLIB] + if { $pkgs == {} } { + puts stderr "osutils:tk:mkamx : Error. File EXTERNLIB not found for executable $tkloc." + #return {} } set tmplat [osutils:readtemplate mamx "Makefile.am (executable)"] set close [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] set lsrc [lsort [osutils:tk:files $tkloc osutils:compilable 1 osutils:justunix]] set lobj [wokUtils:LIST:sanspoint $lsrc] set CXXList {} - foreach SourceFile [uinfo -f -T source [woklocate -u $tkloc]] { - if {[file extension $SourceFile] == ".cxx"} { - lappend CXXList [file rootname $SourceFile] - } + foreach SourceFile [uinfo -f -T source [woklocate -u $tkloc]] { + if {[file extension $SourceFile] == ".cxx"} { + lappend CXXList [file rootname $SourceFile] + } } set pkgs [LibToLinkX [woklocate -u $tkloc] [lindex $CXXList 0]] set lpkgs [osutils:justunix [wokUtils:FILES:FileToList $pkgs]] @@ -1483,44 +1482,44 @@ proc osutils:tk:mkamx { dir tkloc } { set lcsf {} foreach tk $pkgs { - foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] { - if {[lsearch $lcsf $element] == "-1"} { - set lcsf [concat $lcsf $element] - } - } + foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] { + if {[lsearch $lcsf $element] == "-1"} { + set lcsf [concat $lcsf $element] + } + } } set final 0 set externinc "" set externlib "" if { $lcsf != {} } { - set final 1 - set fmtinc "\$(%s_INCLUDES) " - set fmtlib "\$(%s_LIB) " - set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0] - set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0] + set final 1 + set fmtinc "\$(%s_INCLUDES) " + set fmtlib "\$(%s_LIB) " + set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0] + set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0] } regsub -all -- {__XQTNAM__} $tmplat $tkloc tmplat set tmplat "$tmplat \nlib_LTLIBRARIES=" foreach entity $CXXList { - set tmplat "$tmplat lib${entity}.la" + set tmplat "$tmplat lib${entity}.la" } set tmplat "$tmplat\n" set inclu [osutils:am:__INCLUDES__ $lpkgs] regsub -all -- {__INCLUDES__} $tmplat $inclu tmplat if { $pkgs != {} } { - set libadd [osutils:am:__LIBADD__ $pkgs $final] + set libadd [osutils:am:__LIBADD__ $pkgs $final] } else { - set libadd "" + set libadd "" } regsub -all -- {__LIBADD__} $tmplat $libadd tmplat set source [osutils:am:__SOURCES__ $CXXList] regsub -all -- {__SOURCES__} $tmplat $source tmplat regsub -all -- {__EXTERNINC__} $tmplat $externinc tmplat foreach entity $CXXList { - set tmplat "$tmplat lib${entity}_la_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n" + set tmplat "$tmplat lib${entity}_la_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n" } foreach entity $CXXList { - set tmplat "$tmplat lib${entity}_la_LIBADD = $libadd $externlib \n" + set tmplat "$tmplat lib${entity}_la_LIBADD = $libadd $externlib \n" } wokUtils:FILES:StringToFile $tmplat [set fmam [file join $dir Makefile.am]] @@ -1531,18 +1530,18 @@ proc osutils:tk:mkamx { dir tkloc } { } else { set pkgs [woklocate -p ${tkloc}:EXTERNLIB] if { $pkgs == {} } { - puts stderr "osutils:tk:mkamx : Error. File EXTERNLIB not found for executable $tkloc." - #return {} + puts stderr "osutils:tk:mkamx : Error. File EXTERNLIB not found for executable $tkloc." + #return {} } set tmplat [osutils:readtemplate mamx "Makefile.am (executable)"] set close [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] set lsrc [lsort [osutils:tk:files $tkloc osutils:compilable 1 osutils:justunix]] set lobj [wokUtils:LIST:sanspoint $lsrc] set CXXList {} - foreach SourceFile [uinfo -f -T source [woklocate -u $tkloc]] { - if {[file extension $SourceFile] == ".cxx"} { - lappend CXXList [file rootname $SourceFile] - } + foreach SourceFile [uinfo -f -T source [woklocate -u $tkloc]] { + if {[file extension $SourceFile] == ".cxx"} { + lappend CXXList [file rootname $SourceFile] + } } set pkgs [LibToLinkX [woklocate -u $tkloc] [lindex $CXXList 0]] set lpkgs [osutils:justunix [wokUtils:FILES:FileToList $pkgs]] @@ -1550,44 +1549,44 @@ proc osutils:tk:mkamx { dir tkloc } { set lcsf {} foreach tk $pkgs { - foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] { - if {[lsearch $lcsf $element] == "-1"} { - set lcsf [concat $lcsf $element] - } - } + foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] { + if {[lsearch $lcsf $element] == "-1"} { + set lcsf [concat $lcsf $element] + } + } } set final 0 set externinc "" set externlib "" if { $lcsf != {} } { - set final 1 - set fmtinc "\$(%s_INCLUDES) " - set fmtlib "\$(%s_LIB) " - set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0] - set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0] + set final 1 + set fmtinc "\$(%s_INCLUDES) " + set fmtlib "\$(%s_LIB) " + set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0] + set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0] } regsub -all -- {__XQTNAM__} $tmplat $tkloc tmplat set tmplat "$tmplat \nbin_PROGRAMS=" foreach entity $CXXList { - set tmplat "${tmplat} ${entity}" + set tmplat "${tmplat} ${entity}" } - + set tmplat "${tmplat}\n" set inclu [osutils:am:__INCLUDES__ $lpkgs] regsub -all -- {__INCLUDES__} $tmplat $inclu tmplat if { $pkgs != {} } { - set libadd [osutils:am:__LIBADD__ $pkgs $final] + set libadd [osutils:am:__LIBADD__ $pkgs $final] } else { - set libadd "" + set libadd "" } set source [osutils:am:__SOURCES__ $CXXList] regsub -all -- {__SOURCES__} $tmplat $source tmplat regsub -all -- {__EXTERNINC__} $tmplat $externinc tmplat foreach entity $CXXList { - set tmplat "$tmplat ${entity}_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n" + set tmplat "$tmplat ${entity}_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n" } foreach entity $CXXList { - set tmplat "$tmplat ${entity}_LDADD = $libadd $externlib \n" + set tmplat "$tmplat ${entity}_LDADD = $libadd $externlib \n" } wokUtils:FILES:StringToFile $tmplat [set fmam [file join $dir Makefile.am]] @@ -1602,87 +1601,90 @@ proc osutils:tk:mkamx { dir tkloc } { ;# l is the list of the units in a toolkit. ;# proc osutils:am:__VPATH__ { l } { - set fmt "@top_srcdir@/drv/%s : @top_srcdir@/src/%s:" - return [wokUtils:EASY:FmtString2 $fmt $l 0 osutils:am:__VPATH__lastoccur] + set fmt "@top_srcdir@/drv/%s : @top_srcdir@/src/%s:" + return [wokUtils:EASY:FmtString2 $fmt $l 0 osutils:am:__VPATH__lastoccur] } + ;# ;# remove ":" from last item of dependencies list in target VPATH of Makefile.am ;# proc osutils:am:__VPATH__lastoccur { str } { - if { [regsub {:$} $str "" u] != 0 } { - return $u - } + if { [regsub {:$} $str "" u] != 0 } { + return $u + } } + proc osutils:am:PkCXXOption ppk { - set CXXCOMMON [lindex [wokparam -e %CMPLRS_CXX_Options [wokcd]] 0] - set FoundFlag "[lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] ] 2]" - foreach pk $ppk { - if {[lsearch [uinfo -f -T source [woklocate -u $pk]] ${pk}_CMPLRS.edl] != "-1"} { - set CXXStr [lindex [wokparam -e %CMPLRS_CXX_Options [woklocate -u $pk]] 0] - set LastIndex [expr {[string length $CXXCOMMON ] - 1}] - if {[string equal $CXXCOMMON [string range $CXXStr 0 $LastIndex]]} { - set CXXOption " " - } else { - set CXXOption [string range $CXXStr 0 [expr {[string last $CXXCOMMON $CXXStr] - 1}]] - } - if {$CXXOption != " " && $CXXOption != "" && $CXXOption != " " && $CXXOption != " "} { - set FoundList [split $CXXOption " "] - foreach elem $FoundList { - if {$elem != ""} { - if {[string first "-I" $elem] == "-1" } { - if {[string first $elem $FoundFlag] == "-1"} { - set FoundFlag "$FoundFlag $elem" - } - } - } - } - } - } - } - return $FoundFlag + set CXXCOMMON [lindex [wokparam -e %CMPLRS_CXX_Options [wokcd]] 0] + set FoundFlag "[lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] ] 2]" + foreach pk $ppk { + if {[lsearch [uinfo -f -T source [woklocate -u $pk]] ${pk}_CMPLRS.edl] != "-1"} { + set CXXStr [lindex [wokparam -e %CMPLRS_CXX_Options [woklocate -u $pk]] 0] + set LastIndex [expr {[string length $CXXCOMMON ] - 1}] + if {[string equal $CXXCOMMON [string range $CXXStr 0 $LastIndex]]} { + set CXXOption " " + } else { + set CXXOption [string range $CXXStr 0 [expr {[string last $CXXCOMMON $CXXStr] - 1}]] + } + if {$CXXOption != " " && $CXXOption != "" && $CXXOption != " " && $CXXOption != " "} { + set FoundList [split $CXXOption " "] + foreach elem $FoundList { + if {$elem != ""} { + if {[string first "-I" $elem] == "-1" } { + if {[string first $elem $FoundFlag] == "-1"} { + set FoundFlag "$FoundFlag $elem" + } + } + } + } + } + } + } + return $FoundFlag } proc osutils:am:PkCOption ppk { - set CCOMMON [lindex [wokparam -e %CMPLRS_C_Options [wokcd]] 0] - set FoundFlag "[lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] ] 2]" - foreach pk $ppk { - if {[lsearch [uinfo -f -T source [woklocate -u $pk]] ${pk}_CMPLRS.edl] != "-1"} { - set CStr [lindex [wokparam -e %CMPLRS_C_Options [woklocate -u $pk]] 0] - set LastIndex [expr {[string length $CCOMMON ] - 1}] - if {[string equal $CCOMMON [string range $CStr 0 $LastIndex]]} { - set COption [string range $CStr $LastIndex end ] - } else { - set COption [string range $CStr 0 [expr {[string last $CCOMMON $CStr] - 1}]] - } - if {$COption != " " && $COption != "" && $COption != " " && $COption != " "} { - set FoundList [split $COption " "] - foreach elem $FoundList { - if {$elem != ""} { - if {[string first "-I" $elem] == "-1" } { - if {[string first $elem $FoundFlag] == "-1"} { - set FoundFlag "$FoundFlag $elem" - } - } - } - } - } - } - } -return $FoundFlag + set CCOMMON [lindex [wokparam -e %CMPLRS_C_Options [wokcd]] 0] + set FoundFlag "[lindex [osutils:intersect3 [split [lindex [wokparam -v %CMPLRS_C_Options [w_info -f]] 0]] [split [lindex [wokparam -v %CMPLRS_C_Options] 0]] ] 2]" + foreach pk $ppk { + if {[lsearch [uinfo -f -T source [woklocate -u $pk]] ${pk}_CMPLRS.edl] != "-1"} { + set CStr [lindex [wokparam -e %CMPLRS_C_Options [woklocate -u $pk]] 0] + set LastIndex [expr {[string length $CCOMMON ] - 1}] + if {[string equal $CCOMMON [string range $CStr 0 $LastIndex]]} { + set COption [string range $CStr $LastIndex end ] + } else { + set COption [string range $CStr 0 [expr {[string last $CCOMMON $CStr] - 1}]] + } + if {$COption != " " && $COption != "" && $COption != " " && $COption != " "} { + set FoundList [split $COption " "] + foreach elem $FoundList { + if {$elem != ""} { + if {[string first "-I" $elem] == "-1" } { + if {[string first $elem $FoundFlag] == "-1"} { + set FoundFlag "$FoundFlag $elem" + } + } + } + } + } + } + } + return $FoundFlag } proc osutils:am:__CXXFLAG__ { l } { - set fmt "%s" - #puts "l is: $l" - return [wokUtils:EASY:FmtString1 $fmt [osutils:am:PkCXXOption $l]] + set fmt "%s" + #puts "l is: $l" + return [wokUtils:EASY:FmtString1 $fmt [osutils:am:PkCXXOption $l]] } + ;# ;# Used to replace the string __CFLAG__ in Makefile.am ;# l is the list of all compilable files in a toolkit. ;# proc osutils:am:__CFLAG__ { l } { - set fmt "%s" - return [wokUtils:EASY:FmtString1 $fmt [osutils:am:PkCOption $l]] + set fmt "%s" + return [wokUtils:EASY:FmtString1 $fmt [osutils:am:PkCOption $l]] } ;# @@ -1690,85 +1692,410 @@ proc osutils:am:__CFLAG__ { l } { ;# l is the list of packages in a toolkit. ;# proc osutils:am:__INCLUDES__ { l } { - set fmt "-I@top_srcdir@/drv/%s -I@top_srcdir@/src/%s" - return [wokUtils:EASY:FmtString2 $fmt $l] + set fmt "-I@top_srcdir@/drv/%s -I@top_srcdir@/src/%s" + return [wokUtils:EASY:FmtString2 $fmt $l] } + ;# ;# Used to replace the string __LIBADD__ in Makefile.am ;# l is the toolkit closure list of a toolkit. ;# proc osutils:am:__LIBADD__ { l {final 0} } { - set fmt "../%s/lib%s.la" - return [wokUtils:EASY:FmtString2 $fmt $l $final] + set fmt "../%s/lib%s.la" + return [wokUtils:EASY:FmtString2 $fmt $l $final] } + ;# ;# Used to replace the string __SOURCES__ in Makefile.am ;# l is the list of all compilable files in a toolkit. ;# proc osutils:am:__SOURCES__ { l } { - set fmt "%s" - return [wokUtils:EASY:FmtString1 $fmt $l] + set fmt "%s" + return [wokUtils:EASY:FmtString1 $fmt $l] } + ;# ;# ((((((((((((( Formats in Makefile.in ))))))))))))) ;# ;# ;# Used to replace the string __DEPENDENCIES__ in Makefile.in ;# l is the toolkit closure list of a toolkit. -;# +;# proc osutils:in:__DEPENDENCIES__ { l } { - set fmt1 "../%s/lib%s.la" - set fmt2 "\t../%s/lib%s.la" - return [wokUtils:EASY:FmtFmtString2 $fmt1 $fmt2 $l] + set fmt1 "../%s/lib%s.la" + set fmt2 "\t../%s/lib%s.la" + return [wokUtils:EASY:FmtFmtString2 $fmt1 $fmt2 $l] } + ;# ;# Used to replace the string __OBJECTS__ in Makefile.in ;# l is the list of objects files in toolkit. ;# proc osutils:in:__OBJECTS__ { l } { - set fmt1 "%s.lo" - set fmt2 "\t%s.lo" - return [wokUtils:EASY:FmtFmtString1 $fmt1 $fmt2 $l] + set fmt1 "%s.lo" + set fmt2 "\t%s.lo" + return [wokUtils:EASY:FmtFmtString1 $fmt1 $fmt2 $l] } + ;# ;# Used to replace the string __AMDEP__ in Makefile.in ;# l is the list of objects files in toolkit. ;# proc osutils:in:__AMPDEP__ { l } { - set fmt1 "\$(DEPDIR)/%s.Plo" - set fmt2 "@AMDEP_TRUE@\t\$(DEPDIR)/%s.Plo" - return [wokUtils:EASY:FmtFmtString1 $fmt1 $fmt2 $l] + set fmt1 "\$(DEPDIR)/%s.Plo" + set fmt2 "@AMDEP_TRUE@\t\$(DEPDIR)/%s.Plo" + return [wokUtils:EASY:FmtFmtString1 $fmt1 $fmt2 $l] } + ;# ;# Used to replace the string __AMDEPTRUE__ in Makefile.in ;# l is the list of objects files in toolkit. ;# proc osutils:in:__AMDEPTRUE__ { l } { - set fmt "@AMDEP_TRUE@@_am_include@ @_am_quote@\$(DEPDIR)/%s.Plo@_am_quote@" - return [wokUtils:EASY:FmtSimple1 $fmt $l] + set fmt "@AMDEP_TRUE@@_am_include@ @_am_quote@\$(DEPDIR)/%s.Plo@_am_quote@" + return [wokUtils:EASY:FmtSimple1 $fmt $l] } - ;############################################################# ;# proc TESTAM { {root} {modules {}} {ll {}} } { # source [woklocate -p OS:source:OS.tcl] # source [woklocate -p WOKTclLib:source:osutils.tcl] - set lesmodules [OS:listmodules $modules] - - if { $ll != {} } { set lesmodules $ll } - foreach theModule $lesmodules { - foreach unit [$theModule:toolkits] { - puts " toolkit: $unit ==> [woklocate -p ${unit}:source:EXTERNLIB]" - wokUtils:FILES:rmdir $root/$unit - wokUtils:FILES:mkdir $root/$unit - osutils:tk:mkam $root/$unit $unit - } - foreach unit [OS:executable $theModule] { - wokUtils:FILES:rmdir $root/$unit - wokUtils:FILES:mkdir $root/$unit - osutils:tk:mkamx $root/$unit $unit - } + set lesmodules [OS:listmodules $modules] + + if { $ll != {} } { set lesmodules $ll } + foreach theModule $lesmodules { + foreach unit [$theModule:toolkits] { + puts " toolkit: $unit ==> [woklocate -p ${unit}:source:EXTERNLIB]" + wokUtils:FILES:rmdir $root/$unit + wokUtils:FILES:mkdir $root/$unit + osutils:tk:mkam $root/$unit $unit + } + foreach unit [OS:executable $theModule] { + wokUtils:FILES:rmdir $root/$unit + wokUtils:FILES:mkdir $root/$unit + osutils:tk:mkamx $root/$unit $unit + } + } +} + +# Generate Code::Blocks project file for ToolKit +proc osutils:cbptk { theOutDir theToolKit } { + set aWokStation "$::env(WOKSTATION)" + set aWokArch "$::env(ARCH)" + + # collect list of referred libraries to link with + set aUsedToolKits [list] + set anIncPaths [list] + set aTKDefines [list] + set aTKSrcFiles [list] + foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $theToolKit]]] { + lappend aUsedToolKits "${tkx}" + } + wokparam -l CSF + foreach tk [lappend [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $theToolKit]]] $theToolKit] { + foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] { + if {[wokparam -t %$element] == 0} { + continue + } + foreach fl [split [wokparam -v %$element] \{\ \}] { + if {[string first "-libpath" $fl] != "-1"} { + # this is library search path, not the library name + continue + } + set felem [file tail $fl] + if {[lsearch $aUsedToolKits $felem] == "-1"} { + if {$felem != "\{\}" & $felem != "lib"} { + if {[lsearch -nocase [osutils:optinal_libs] $felem] == -1} { + lappend aUsedToolKits [string trimleft "${felem}" "-l"] + } + } + } + } + } + } + + lappend anIncPaths "../../../inc" + set listloc [osutils:tk:units [woklocate -u $theToolKit]] + if { "$aWokStation" == "wnt" } { + set resultloc [osutils:justwnt $listloc] + } else { + set resultloc [osutils:justunix $listloc] + } + if [array exists written] { unset written } + foreach fxlo $resultloc { + set xlo [wokinfo -n $fxlo] + set aSrcFiles [osutils:tk:files $xlo osutils:compilable 0] + foreach aSrcFile [lsort $aSrcFiles] { + if { ![info exists written([file tail $aSrcFile])] } { + set written([file tail $aSrcFile]) 1 + lappend aTKSrcFiles "../../../[wokUtils:EASY:bs1 [wokUtils:FILES:wtail $aSrcFile 3]]" + } else { + puts "Warning : more than one occurences for [file tail $aSrcFile]" + } + } + + # macros for correct DLL exports + if { "$aWokStation" == "wnt" } { + lappend aTKDefines "__${xlo}_DLL" + } + + # common include paths + lappend anIncPaths "../../../drv/${xlo}" + lappend anIncPaths "../../../src/${xlo}" + } + + # macros for UNIX to use config.h file + lappend aTKDefines "CSFDB" + if { "$aWokStation" == "wnt" } { + lappend aTKDefines "WNT" + lappend aTKDefines "_CRT_SECURE_NO_DEPRECATE" + } else { + lappend aTKDefines "HAVE_WOK_CONFIG_H" + lappend aTKDefines "HAVE_CONFIG_H" + if { "$aWokStation" == "lin" } { + lappend aTKDefines "LIN" + } + lappend aTKDefines "OCC_CONVERT_SIGNALS" + #lappend aTKDefines "_GNU_SOURCE=1" + } + + return [osutils:cbp $theOutDir $theToolKit $aTKSrcFiles $aUsedToolKits $anIncPaths $aTKDefines] +} + +# Generate Code::Blocks project file for Executable +proc osutils:cbpx { theOutDir theToolKit } { + set aWokStation "$::env(WOKSTATION)" + set aWokArch "$::env(ARCH)" + + set aCbpFiles {} + foreach aSrcFile [osutils:tk:files $theToolKit osutils:compilable 0] { + # collect list of referred libraries to link with + set aUsedToolKits [list] + set anIncPaths [list] + set aTKDefines [list] + set aTKSrcFiles [list] + set aProjName [file rootname [file tail $aSrcFile]] + + set aDepToolkits [LibToLinkX [woklocate -u $theToolKit] $aProjName] + foreach tkx $aDepToolkits { + if {[uinfo -t [woklocate -u $tkx]] == "toolkit"} { + lappend aUsedToolKits "${tkx}" + } + if {[lsearch [w_info -l] $tkx] == "-1"} { + lappend aUsedToolKits "${tkx}" + } + } + + wokparam -l CSF + foreach tk $aDepToolkits { + foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] { + if {[wokparam -t %$element] == 0} { + continue + } + foreach fl [split [wokparam -v %$element] \{\ \}] { + if {[string first "-libpath" $fl] != "-1"} { + # this is library search path, not the library name + continue + } + set felem [file tail $fl] + if {[lsearch $aUsedToolKits $felem] == "-1"} { + if {$felem != "\{\}" & $felem != "lib"} { + if {[lsearch -nocase [osutils:optinal_libs] $felem] == -1} { + lappend aUsedToolKits [string trimleft "${felem}" "-l"] + } + } + } + } + } + } + + set WOKSteps_exec_link [wokparam -v %WOKSteps_exec_link [woklocate -u $theToolKit]] + if { [regexp {WOKStep_DLLink} $WOKSteps_exec_link] || [regexp {WOKStep_Libink} $WOKSteps_exec_link] } { + set isExecutable "false" + } else { + set isExecutable "true" + } + + if { ![info exists written([file tail $aSrcFile])] } { + set written([file tail $aSrcFile]) 1 + lappend aTKSrcFiles $aSrcFile + } else { + puts "Warning : in cbp there are more than one occurences for [file tail $aSrcFile]" + } + + # macros for correct DLL exports + if { "$aWokStation" == "wnt" } { + lappend aTKDefines "__${theToolKit}_DLL" + } + + # common include paths + lappend anIncPaths "../../../inc" + lappend anIncPaths "../../../drv/${theToolKit}" + lappend anIncPaths "../../../src/${theToolKit}" + + # macros for UNIX to use config.h file + lappend aTKDefines "CSFDB" + if { "$aWokStation" == "wnt" } { + lappend aTKDefines "WNT" + lappend aTKDefines "_CRT_SECURE_NO_DEPRECATE" + } else { + lappend aTKDefines "HAVE_WOK_CONFIG_H" + lappend aTKDefines "HAVE_CONFIG_H" + if { "$aWokStation" == "lin" } { + lappend aTKDefines "LIN" + } + lappend aTKDefines "OCC_CONVERT_SIGNALS" + #lappend aTKDefines "_GNU_SOURCE=1" + } + + lappend aCbpFiles [osutils:cbp $theOutDir $aProjName $aTKSrcFiles $aUsedToolKits $anIncPaths $aTKDefines $isExecutable] + } + + return $aCbpFiles +} + +proc osutils:cbp { theOutDir theProjName theSrcFiles theLibsList theIncPaths theDefines {theIsExe "false"} } { + set aWokStation "$::env(WOKSTATION)" + set aWokArch "$::env(ARCH)" + + set aCbpFilePath "${theOutDir}/${theProjName}.cbp" + set aFile [open $aCbpFilePath "w"] + puts $aFile "" + puts $aFile "" + puts $aFile "\t" + puts $aFile "\t" + puts $aFile "\t\t" + puts $aFile "" + close $aFile + + return $aCbpFilePath } diff --git a/src/WOKTclLib/templates/draw.bat b/src/WOKTclLib/templates/draw.bat new file mode 100644 index 0000000..b5c66c9 --- /dev/null +++ b/src/WOKTclLib/templates/draw.bat @@ -0,0 +1,7 @@ +@echo off + +rem Setup environment and launch DRAWEXE +call "%~dp0env.bat" %1 %2 %3 + +echo Hint: use "pload ALL" command to load standard commands +DRAWEXE.exe diff --git a/src/WOKTclLib/templates/env.bat b/src/WOKTclLib/templates/env.bat new file mode 100644 index 0000000..ad79990 --- /dev/null +++ b/src/WOKTclLib/templates/env.bat @@ -0,0 +1,147 @@ +@echo off + +rem Use: +rem - first argument specifies version of Visual Studio (vc8, vc9, or vc10), +rem - second argument specifies architecture (win32 or win64), +rem - third argument specifies build mode (Debug or Release) +rem Default options are: +rem vc8 win32 Release + +set "SCRIPTROOT=%~dp0" +set "SCRIPTROOT=%SCRIPTROOT:~0,-1%" +set "CASROOT=__CASROOT__" +if not ["%CASROOT%"] == [""] if exist "%SCRIPTROOT%\%CASROOT%" set "CASROOT=%SCRIPTROOT%\%CASROOT%" +if ["%CASROOT%"] == [""] set "CASROOT=%SCRIPTROOT%" + +rem ----- Reset values to defaults ----- +set "CASDEB=" +set "VCVER=vc8" +set "ARCH=32" +set "VCVARS=" +set "HAVE_TBB=false" +set "HAVE_FREEIMAGE=false" +set "HAVE_GL2PS=false" +set "CSF_OPT_INC=" +set "CSF_OPT_LIB32=" +set "CSF_OPT_LIB64=" +set "CSF_OPT_BIN32=" +set "CSF_OPT_BIN64=" + +rem ----- Load local settings ----- +if exist %~dp0custom.bat ( + call %~dp0custom.bat %1 %2 %3 %4 %5 +) + +rem ----- Read script arguments (override local settings) ----- +if not ["%1"] == [""] set "VCVER=%1" +if not ["%2"] == [""] set "ARCH=%2" +if /I ["%ARCH%"] == ["win32"] set "ARCH=32" +if /I ["%ARCH%"] == ["win64"] set "ARCH=64" +if /I ["%3"] == ["debug"] set "CASDEB=d" +if /I ["%3"] == ["d"] set "CASDEB=d" + +set "CSF_OPT_INC=%CSF_OPT_INC%;%CASROOT%\inc" +set "CSF_OPT_LIB32D=%CSF_OPT_LIB32%;%CASROOT%\win32\%VCVER%\libd" +set "CSF_OPT_LIB64D=%CSF_OPT_LIB64%;%CASROOT%\win64\%VCVER%\libd" +set "CSF_OPT_BIN32D=%CSF_OPT_BIN32%;%CASROOT%\win32\%VCVER%\bind" +set "CSF_OPT_BIN64D=%CSF_OPT_BIN64%;%CASROOT%\win64\%VCVER%\bind" +set "CSF_OPT_LIB32=%CSF_OPT_LIB32%;%CASROOT%\win32\%VCVER%\lib" +set "CSF_OPT_LIB64=%CSF_OPT_LIB64%;%CASROOT%\win64\%VCVER%\lib" +set "CSF_OPT_BIN32=%CSF_OPT_BIN32%;%CASROOT%\win32\%VCVER%\bin" +set "CSF_OPT_BIN64=%CSF_OPT_BIN64%;%CASROOT%\win64\%VCVER%\bin" + +rem ----- Optional 3rd-parties should be enabled by HAVE macros ----- +set "CSF_OPT_CMPL=" +set "PRODUCTS_DEFINES=" +set "CSF_DEFINES=" +if ["%HAVE_TBB%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_TBB" +if ["%HAVE_GL2PS%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_GL2PS" +if ["%HAVE_FREEIMAGE%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_FREEIMAGE" +if ["%HAVE_TBB%"] == ["true"] set "CSF_DEFINES=HAVE_TBB;%CSF_DEFINES%" +if ["%HAVE_GL2PS%"] == ["true"] set "CSF_DEFINES=HAVE_GL2PS;%CSF_DEFINES%" +if ["%HAVE_FREEIMAGE%"] == ["true"] set "CSF_DEFINES=HAVE_FREEIMAGE;%CSF_DEFINES%" + +rem Eliminate VS warning +if ["%CSF_DEFINES%"] == [""] set "CSF_DEFINES=;" + +rem ----- Optional 3rd-parties should be enabled by HAVE macros ----- +if not ["%PRODUCTS_DEFINES%"] == [""] set "CSF_OPT_CMPL=%CSF_OPT_CMPL% %PRODUCTS_DEFINES%" + +rem ----- Colect 3rd-parties additional include paths into compiler options ----- +for %%a in ("%CSF_OPT_INC:;=";"%") do ( + set "anItem=%%~a" + if not ["%%~a"] == [""] call :concatCmplInc %%~a +) + +rem ----- Colect 3rd-parties additional library paths (32-bit) into linker options ----- +set "OPT_LIB32=" +for %%a in ("%CSF_OPT_LIB32:;=";"%") do ( + set "anItem=%%~a" + if not ["%%~a"] == [""] call :concatLib32 %%~a +) + +rem ----- Colect 3rd-parties additional library paths (64-bit) into linker options ----- +set "OPT_LIB64=" +for %%a in ("%CSF_OPT_LIB64:;=";"%") do ( + set "anItem=%%~a" + if not ["%%~a"] == [""] call :concatLib64 %%~a +) + +set "CSF_OPT_LNK32=" +set "CSF_OPT_LNK64=" +set "CSF_OPT_LNK32D=" +set "CSF_OPT_LNK64D=" +set "CSF_OPT_LNK32=%CSF_OPT_LNK32% %OPT_LIB32%" +set "CSF_OPT_LNK32D=%CSF_OPT_LNK32D% %OPT_LIB32%" +set "CSF_OPT_LNK64=%CSF_OPT_LNK64% %OPT_LIB64%" +set "CSF_OPT_LNK64D=%CSF_OPT_LNK64D% %OPT_LIB64%" + +set "CASBIN=win%ARCH%\%VCVER%" + +rem ----- Set path to 3rd party and OCCT libraries ----- +set "PATH=%SCRIPTROOT%\%CASBIN%\bin%CASDEB%;%PATH%" +if ["%CASDEB%"] == [""] if ["%ARCH%"] == ["32"] set "PATH=%CSF_OPT_BIN32%;%PATH%" +if ["%CASDEB%"] == [""] if ["%ARCH%"] == ["64"] set "PATH=%CSF_OPT_BIN64%;%PATH%" +if not ["%CASDEB%"] == [""] if ["%ARCH%"] == ["32"] set "PATH=%CSF_OPT_BIN32D%;%PATH%" +if not ["%CASDEB%"] == [""] if ["%ARCH%"] == ["64"] set "PATH=%CSF_OPT_BIN64D%;%PATH%" + +rem ----- Set envoronment variables used by OCCT ----- +set "CSF_MDTVFontDirectory=%CASROOT%\src\FontMFT" +set CSF_LANGUAGE=us +set MMGT_CLEAR=1 +set CSF_EXCEPTION_PROMPT=1 +set "CSF_SHMessage=%CASROOT%\src\SHMessage" +set "CSF_MDTVTexturesDirectory=%CASROOT%\src\Textures" +set "CSF_XSMessage=%CASROOT%\src\XSMessage" +set "CSF_TObjMessage=%CASROOT%\src\TObj" +set "CSF_StandardDefaults=%CASROOT%\src\StdResource" +set "CSF_PluginDefaults=%CASROOT%\src\StdResource" +set "CSF_XCAFDefaults=%CASROOT%\src\StdResource" +set "CSF_TObjDefaults=%CASROOT%\src\StdResource" +set "CSF_StandardLiteDefaults=%CASROOT%\src\StdResource" +set "CSF_GraphicShr=TKOpenGl.dll" +set "CSF_UnitsLexicon=%CASROOT%\src\UnitsAPI\Lexi_Expr.dat" +set "CSF_UnitsDefinition=%CASROOT%\src\UnitsAPI\Units.dat" +set "CSF_IGESDefaults=%CASROOT%\src\XSTEPResource" +set "CSF_STEPDefaults=%CASROOT%\src\XSTEPResource" +set "CSF_XmlOcafResource=%CASROOT%\src\XmlOcafResource" +set "CSF_MIGRATION_TYPES=%CASROOT%\src\StdResource\MigrationSheet.txt" +if exist "%CASROOT%\src\QAResources" ( + set "CSF_DrawPluginQADefaults=%CASROOT%\src\QAResources" +) +if exist "%SCRIPTROOT%\src\DrawResourcesProducts" ( + set "CSF_DrawPluginProductsDefaults=%SCRIPTROOT%\src\DrawResourcesProducts" +) +goto :eof + +:concatCmplInc +set "CSF_OPT_CMPL=%CSF_OPT_CMPL% -I%1" +goto :eof + +:concatLib32 +set "OPT_LIB32=%OPT_LIB32% /LIBPATH:%1" +goto :eof + +:concatLib64 +set "OPT_LIB64=%OPT_LIB64% /LIBPATH:%1" +goto :eof diff --git a/src/WOKTclLib/templates/env.sh b/src/WOKTclLib/templates/env.sh new file mode 100644 index 0000000..3c8c992 --- /dev/null +++ b/src/WOKTclLib/templates/env.sh @@ -0,0 +1,129 @@ +#!/bin/bash + +# go to the script directory +aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD"; + +export CASROOT="$aScriptPath" + +# Reset values +export HAVE_TBB="false"; +export HAVE_FREEIMAGE="false"; +export HAVE_GL2PS="false"; +export CSF_OPT_INC="" +export CSF_OPT_LIB32="" +export CSF_OPT_LIB64="" +export CSF_OPT_BIN32="" +export CSF_OPT_BIN64="" + +# ----- Set local settings ----- +if [ -e "${aScriptPath}/custom.sh" ]; then source "${aScriptPath}/custom.sh"; fi + +export CSF_OPT_INC="${CSF_OPT_INC}:__CSF_OPT_INC__" +export CSF_OPT_LIB32="${CSF_OPT_LIB32}:__CSF_OPT_LIB32__" +export CSF_OPT_LIB64="${CSF_OPT_LIB64}:__CSF_OPT_LIB64__" +export CSF_OPT_LIB32D="__CSF_OPT_LIB32D__" +export CSF_OPT_LIB64D="__CSF_OPT_LIB64D__" + +# ----- Setup Environment Variables ----- +anArch=`uname -m` +if [ "$anArch" != "x86_64" ] && [ "$anArch" != "ia64" ]; then + export ARCH="32"; +else + export ARCH="64"; +fi + +aSystem=`uname -s` +if [ "$aSystem" == "Darwin" ]; then + export WOKSTATION="mac"; + export ARCH="64"; +else + export WOKSTATION="lin"; +fi + +if [ "${CASDEB}" == "" ]; then export CASDEB=""; fi +export CASBIN="${WOKSTATION}/cbp" + +export CSF_OPT_CMPL="" + +# Optiona 3rd-parties should be enabled by HAVE macros +if [ "$HAVE_TBB" == "true" ]; then + export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_TBB" +fi +if [ "$HAVE_FREEIMAGE" == "true" ]; then + export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_FREEIMAGE" +fi +if [ "$HAVE_GL2PS" == "true" ]; then + export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_GL2PS" +fi + +# To split string into array +aDelimBack=$IFS +IFS=":" + +# 3rd-parties additional include paths +set -- "$CSF_OPT_INC" +declare -a aPartiesIncs=($*) +for anItem in ${aPartiesIncs[*]} +do + export CSF_OPT_CMPL="${CSF_OPT_CMPL} -I${anItem}"; +done + +# Append 3rd-parties to LD_LIBRARY_PATH +if [ "$ARCH" == "32" ]; then + set -- "$CSF_OPT_LIB32" + declare -a aPartiesLibs=($*) +else + set -- "$CSF_OPT_LIB64" + declare -a aPartiesLibs=($*) +fi + +# Turn back value +IFS=$aDelimBack + +OPT_LINKER_OPTIONS="" +for anItem in ${aPartiesLibs[*]} +do + if [ "${LD_LIBRARY_PATH}" == "" ]; then + export LD_LIBRARY_PATH="${anItem}" + else + export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${anItem}" + fi + OPT_LINKER_OPTIONS="${OPT_LINKER_OPTIONS} -L${anItem}" +done + +if [ "$ARCH" == "64" ]; then + export CSF_OPT_LNK64="$OPT_LINKER_OPTIONS" + export CSF_OPT_LNK64D="$OPT_LINKER_OPTIONS" +else + export CSF_OPT_LNK32="$OPT_LINKER_OPTIONS" + export CSF_OPT_LNK32D="$OPT_LINKER_OPTIONS" +fi + +export PATH="${CASROOT}/${CASBIN}/bin${CASDEB}:${PATH}" +export LD_LIBRARY_PATH="${CASROOT}/${CASBIN}/lib${CASDEB}:${LD_LIBRARY_PATH}" + +# Set envoronment variables used by OCCT +export CSF_MDTVFontDirectory="${CASROOT}/src/FontMFT" +export CSF_LANGUAGE="us" +export MMGT_CLEAR="1" +export CSF_EXCEPTION_PROMPT="1" +export CSF_SHMessage="${CASROOT}/src/SHMessage" +export CSF_MDTVTexturesDirectory="${CASROOT}/src/Textures" +export CSF_XSMessage="${CASROOT}/src/XSMessage" +export CSF_TObjMessage="${CASROOT}/src/TObj" +export CSF_StandardDefaults="${CASROOT}/src/StdResource" +export CSF_PluginDefaults="${CASROOT}/src/StdResource" +export CSF_XCAFDefaults="${CASROOT}/src/StdResource" +export CSF_TObjDefaults="${CASROOT}/src/StdResource" +export CSF_StandardLiteDefaults="${CASROOT}/src/StdResource" +if [ "$WOKSTATION" == "mac" ]; then + export CSF_GraphicShr="libTKOpenGl.so" +else + export CSF_GraphicShr="libTKOpenGl.dylib" +fi +export CSF_UnitsLexicon="${CASROOT}/src/UnitsAPI/Lexi_Expr.dat" +export CSF_UnitsDefinition="${CASROOT}/src/UnitsAPI/Units.dat" +export CSF_IGESDefaults="${CASROOT}/src/XSTEPResource" +export CSF_STEPDefaults="${CASROOT}/src/XSTEPResource" +export CSF_XmlOcafResource="${CASROOT}/src/XmlOcafResource" +export CSF_MIGRATION_TYPES="${CASROOT}/src/StdResource/MigrationSheet.txt" diff --git a/src/WOKTclLib/templates/msvc.bat b/src/WOKTclLib/templates/msvc.bat new file mode 100644 index 0000000..58bc6ab --- /dev/null +++ b/src/WOKTclLib/templates/msvc.bat @@ -0,0 +1,32 @@ +@echo off + +rem Setup environment +call "%~dp0env.bat" %1 %2 %3 + +rem Define path to project file +set "PRJFILE=%~dp0\adm\msvc\%VCVER%\OCCT.sln" +if not exist "%PRJFILE%" set "PRJFILE=%~dp0\adm\msvc\%VCVER%\Products.sln" +if not "%4" == "" ( + set "PRJFILE=%4" +) + +if "%VCVER%" == "vc8" ( + set "DevEnvDir=%VS80COMNTOOLS%..\IDE" +) else if "%VCVER%" == "vc9" ( + set "DevEnvDir=%VS90COMNTOOLS%..\IDE" +) else if "%VCVER%" == "vc10" ( + set "DevEnvDir=%VS100COMNTOOLS%..\IDE" +) else ( + echo Error: wrong VS identifier + exit /B +) + +rem Launch Visual Studio - either professional (devenv) or Express, as available +if exist "%DevEnvDir%\devenv.exe" ( + start "%DevEnvDir%\devenv.exe" "%PRJFILE%" +) else if exist "%DevEnvDir%\VCExpress.exe" ( + start "%DevEnvDir%\VCExpress.exe" "%PRJFILE%" +) else ( + echo Error: Could not find MS Visual Studio ^(%VCVER%^) + echo Check relevant environment variable ^(e.g. VS80COMNTOOLS for vc8^) +) diff --git a/src/WOKTclLib/templates/template.vc10 b/src/WOKTclLib/templates/template.vc10 new file mode 100644 index 0000000..1ed696a --- /dev/null +++ b/src/WOKTclLib/templates/template.vc10 @@ -0,0 +1,243 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + __PROJECT_GUID__ + + + + DynamicLibrary + + + DynamicLibrary + + + DynamicLibrary + + + DynamicLibrary + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + .\..\..\..\win32\vc10\bin\ + .\..\..\..\win32\vc10\obj\__TKNAM__\ + false + .\..\..\..\win32\vc10\bind\ + .\..\..\..\win32\vc10\objd\__TKNAM__\ + false + .\..\..\..\win64\vc10\bin\ + .\..\..\..\win64\vc10\obj\__TKNAM__\ + false + .\..\..\..\win64\vc10\bind\ + .\..\..\..\win64\vc10\objd\__TKNAM__\ + false + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\..\..\..\win32\vc10\bin\__TKNAM__.tlb + + + + + %(AdditionalOptions) + __TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + MaxSpeed + OnlyExplicitInline + NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions) + true + Async + MultiThreadedDLL + true + .\..\..\..\win32\vc10\obj\__TKNAM__/ + .\..\..\..\win32\vc10\obj\__TKNAM__/ + .\..\..\..\win32\vc10\obj\__TKNAM__/ + Level3 + true + 4996;%(DisableSpecificWarnings) + + + ..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions) + + + __TKDEP__;ws2_32.lib;vfw32.lib;%(AdditionalDependencies) + .\..\..\..\win32\vc10\bin\__TKNAM__.dll + true + ..\..\..\win32\vc10\lib;$(CSF_OPT_LIB32);%(AdditionalLibraryDirectories) + .\..\..\..\win32\vc10\bin\__TKNAM__.pdb + Console + ..\..\..\win32\vc10\lib\__TKNAM__.lib + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\..\..\..\win32\vc10\bind\__TKNAM__.tlb + + + + + %(AdditionalOptions) + __TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + Disabled + OnlyExplicitInline + DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions) + Async + MultiThreadedDebugDLL + .\..\..\..\win32\vc10\objd\__TKNAM__/ + .\..\..\..\win32\vc10\objd\__TKNAM__/ + .\..\..\..\win32\vc10\objd\__TKNAM__/ + Level3 + true + ProgramDatabase + Default + 4996;%(DisableSpecificWarnings) + + + ..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions) + + + __TKDEP__;ws2_32.lib;vfw32.lib;%(AdditionalDependencies) + .\..\..\..\win32\vc10\bind\__TKNAM__.dll + true + ..\..\..\win32\vc10\libd;$(CSF_OPT_LIB32D);%(AdditionalLibraryDirectories) + true + ..\..\..\win32\vc10\bind\__TKNAM__.pdb + Console + ..\..\..\win32\vc10\libd\__TKNAM__.lib + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + x64 + .\..\..\..\win64\vc10\bin\__TKNAM__.tlb + + + + + %(AdditionalOptions) + __TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + MaxSpeed + OnlyExplicitInline + NDEBUG;WIN64;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions) + true + Async + MultiThreadedDLL + true + .\..\..\..\win64\vc10\obj\__TKNAM__/ + .\..\..\..\win64\vc10\obj\__TKNAM__/ + .\..\..\..\win64\vc10\obj\__TKNAM__/ + Level3 + true + 4996;%(DisableSpecificWarnings) + + + ..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + NDEBUG;WIN64;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions) + + + __TKDEP__;ws2_32.lib;vfw32.lib;%(AdditionalDependencies) + .\..\..\..\win64\vc10\bin\__TKNAM__.dll + true + ..\..\..\win64\vc10\lib;$(CSF_OPT_LIB64);%(AdditionalLibraryDirectories) + .\..\..\..\win64\vc10\bin\__TKNAM__.pdb + Console + ..\..\..\win64\vc10\lib\__TKNAM__.lib + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + x64 + .\..\..\..\win64\vc10\bind\__TKNAM__.tlb + + + + + %(AdditionalOptions) + __TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + Disabled + OnlyExplicitInline + DEB;_DEBUG;WIN64;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions) + Async + MultiThreadedDebugDLL + .\..\..\..\win64\vc10\objd\__TKNAM__/ + .\..\..\..\win64\vc10\objd\__TKNAM__/ + .\..\..\..\win64\vc10\objd\__TKNAM__/ + Level3 + true + ProgramDatabase + Default + 4996;%(DisableSpecificWarnings) + + + ..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + DEB;_DEBUG;WIN64;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions) + + + __TKDEP__;ws2_32.lib;vfw32.lib;%(AdditionalDependencies) + .\..\..\..\win64\vc10\bind\__TKNAM__.dll + true + ..\..\..\win64\vc10\libd;$(CSF_OPT_LIB64D);%(AdditionalLibraryDirectories) + true + ..\..\..\win64\vc10\bind\__TKNAM__.pdb + Console + ..\..\..\win64\vc10\libd\__TKNAM__.lib + + + +__FILES__ + + + + + + + + diff --git a/src/WOKTclLib/templates/template.vc10x b/src/WOKTclLib/templates/template.vc10x new file mode 100644 index 0000000..d072539 --- /dev/null +++ b/src/WOKTclLib/templates/template.vc10x @@ -0,0 +1,235 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + __PROJECT_GUID__ + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + .\..\..\..\win32\vc10\bin\ + .\..\..\..\win32\vc10\obj\__XQTNAM__\ + false + .\..\..\..\win32\vc10\bind\ + .\..\..\..\win32\vc10\objd\__XQTNAM__\ + false + .\..\..\..\win64\vc10\bin\ + .\..\..\..\win64\vc10\obj\__XQTNAM__\ + false + .\..\..\..\win64\vc10\bind\ + .\..\..\..\win64\vc10\objd\__XQTNAM__\ + false + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\..\..\..\win32\vc10\bin\__XQTNAM__.tlb + + + + + %(AdditionalOptions) + __TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + MaxSpeed + OnlyExplicitInline + NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions) + true + Async + MultiThreadedDLL + true + .\..\..\..\win32\vc10\obj\__XQTNAM__/ + .\..\..\..\win32\vc10\obj\__XQTNAM__/ + .\..\..\..\win32\vc10\obj\__XQTNAM__/ + Level3 + true + 4996;%(DisableSpecificWarnings) + + + ..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions) + + + __TKDEP__;%(AdditionalDependencies) + true + ..\..\..\win32\vc10\lib;$(CSF_OPT_LIB32);%(AdditionalLibraryDirectories) + .\..\..\..\win32\vc10\bin\__XQTNAM__.pdb + Console + ..\..\..\win32\vc10\lib\__XQTNAM__.lib + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\..\..\..\win32\vc10\bind\__XQTNAM__.tlb + + + + + %(AdditionalOptions) + __TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + Disabled + OnlyExplicitInline + DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions) + Async + MultiThreadedDebugDLL + .\..\..\..\win32\vc10\objd\__XQTNAM__/ + .\..\..\..\win32\vc10\objd\__XQTNAM__/ + .\..\..\..\win32\vc10\objd\__XQTNAM__/ + Level3 + true + ProgramDatabase + Default + 4996;%(DisableSpecificWarnings) + + + ..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + DEB;_DEBUG;WIN32;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions) + + + __TKDEP__;%(AdditionalDependencies) + true + ..\..\..\win32\vc10\libd;$(CSF_OPT_LIB32D);%(AdditionalLibraryDirectories) + true + ..\..\..\win32\vc10\bind\__XQTNAM__.pdb + Console + ..\..\..\win32\vc10\libd\__XQTNAM__.lib + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + x64 + .\..\..\..\win64\vc10\bin\__XQTNAM__.tlb + + + + + %(AdditionalOptions) + __TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + MaxSpeed + OnlyExplicitInline + NDEBUG;WIN64;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions) + true + Async + MultiThreadedDLL + true + .\..\..\..\win64\vc10\obj\__XQTNAM__/ + .\..\..\..\win64\vc10\obj\__XQTNAM__/ + .\..\..\..\win64\vc10\obj\__XQTNAM__/ + Level3 + true + 4996;%(DisableSpecificWarnings) + + + ..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + NDEBUG;WIN64;_WINDOWS;WNT;No_Exception;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions) + + + __TKDEP__;%(AdditionalDependencies) + true + ..\..\..\win64\vc10\lib;$(CSF_OPT_LIB64);%(AdditionalLibraryDirectories) + .\..\..\..\win64\vc10\bin\__XQTNAM__.pdb + Console + ..\..\..\win64\vc10\lib\__XQTNAM__.lib + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + x64 + .\..\..\..\win64\vc10\bind\__XQTNAM__.tlb + + + + + %(AdditionalOptions) + __TKINC__;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + Disabled + OnlyExplicitInline + DEB;_DEBUG;WIN64;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions) + Async + MultiThreadedDebugDLL + .\..\..\..\win64\vc10\objd\__XQTNAM__/ + .\..\..\..\win64\vc10\objd\__XQTNAM__/ + .\..\..\..\win64\vc10\objd\__XQTNAM__/ + Level3 + true + ProgramDatabase + Default + 4996;%(DisableSpecificWarnings) + + + ..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories) + DEB;_DEBUG;WIN64;_WINDOWS;WNT;CSFDB;$(CSF_DEFINES)__TKDEFS__;_OCC64;%(PreprocessorDefinitions) + + + __TKDEP__;%(AdditionalDependencies) + true + ..\..\..\win64\vc10\libd;$(CSF_OPT_LIB64D);%(AdditionalLibraryDirectories) + true + ..\..\..\win64\vc10\bind\__XQTNAM__.pdb + Console + ..\..\..\win64\vc10\libd\__XQTNAM__.lib + + + +__FILES__ + + + + diff --git a/src/WOKTclLib/templates/template.vc7 b/src/WOKTclLib/templates/template.vc7 new file mode 100644 index 0000000..0a22b5e --- /dev/null +++ b/src/WOKTclLib/templates/template.vc7 @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +__FILES__ + + + + + + diff --git a/src/WOKTclLib/templates/template.vc7x b/src/WOKTclLib/templates/template.vc7x new file mode 100644 index 0000000..5df31d7 --- /dev/null +++ b/src/WOKTclLib/templates/template.vc7x @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +__FILES__ + + + + + diff --git a/src/WOKTclLib/templates/template.vc8 b/src/WOKTclLib/templates/template.vc8 new file mode 100644 index 0000000..edf4c85 --- /dev/null +++ b/src/WOKTclLib/templates/template.vc8 @@ -0,0 +1,423 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +__FILES__ + + + + + + diff --git a/src/WOKTclLib/templates/template.vc8x b/src/WOKTclLib/templates/template.vc8x new file mode 100644 index 0000000..32f0807 --- /dev/null +++ b/src/WOKTclLib/templates/template.vc8x @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +__FILES__ + + + + + diff --git a/src/WOKTclLib/templates/template.vc9 b/src/WOKTclLib/templates/template.vc9 new file mode 100644 index 0000000..2d862c2 --- /dev/null +++ b/src/WOKTclLib/templates/template.vc9 @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +__FILES__ + + + + + + diff --git a/src/WOKTclLib/templates/template.vc9x b/src/WOKTclLib/templates/template.vc9x new file mode 100644 index 0000000..84030d6 --- /dev/null +++ b/src/WOKTclLib/templates/template.vc9x @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +__FILES__ + + + + + diff --git a/src/WOKTclLib/templates/template_dll.rc b/src/WOKTclLib/templates/template_dll.rc new file mode 100644 index 0000000..84004d0 --- /dev/null +++ b/src/WOKTclLib/templates/template_dll.rc @@ -0,0 +1,30 @@ +#include +#include + +VS_VERSION_INFO VERSIONINFO +FILEVERSION OCC_VERSION_MAJOR, OCC_VERSION_MINOR, OCC_VERSION_MAINTENANCE, 0 +PRODUCTVERSION OCC_VERSION_MAJOR, OCC_VERSION_MINOR, OCC_VERSION_MAINTENANCE, 0 +FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG +FILEFLAGS VS_FF_DEBUG +#endif +FILEOS VOS_NT +FILETYPE VFT_DLL +FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN BLOCK "040904E4" // Language type = U.S English(0x0409) and Character Set = Windows, Multilingual(0x04E4) + BEGIN + VALUE "FileDescription", "__TKNAM__ Toolkit\000" + VALUE "FileVersion", OCC_VERSION_STRING_EXT "\000" + VALUE "LegalCopyright", "\251 OPEN CASCADE SAS\000" + VALUE "ProductName", "__TKNAM__\000" + VALUE "ProductVersion", OCC_VERSION_STRING_EXT "\000" + VALUE "OfficialSite", "www.opencascade.org\000" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 0x04E4 + END +END diff --git a/src/WOKTclLib/templates/vcproj.user.vc9x b/src/WOKTclLib/templates/vcproj.user.vc9x new file mode 100644 index 0000000..d3485ae --- /dev/null +++ b/src/WOKTclLib/templates/vcproj.user.vc9x @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + diff --git a/src/WOKTclLib/wok-comm.el b/src/WOKTclLib/wok-comm.el index 8015fd9..0c3161d 100755 --- a/src/WOKTclLib/wok-comm.el +++ b/src/WOKTclLib/wok-comm.el @@ -2,11 +2,11 @@ (require 'cl) (provide 'wok-comm) - + ;;; Variables (defconst wok-comm-AtFS-Header - "$Header: /disk4/QA/cvsroot/test/ros/src/WOKTclLib/wok-comm.el,v 1.4 2009-12-16 08:40:00 mnt Exp $") + "$Header: /home/bojolex/newrepos/src/WOKTclLib/wok-comm.el,v 1.1.1.1 1999/12/08 09:18:21 anonymous Exp $") (defvar wok-comm-initialized nil "If non-nil, the Wok communication module has already been initialized.") diff --git a/src/WOKTclLib/woksh.el b/src/WOKTclLib/woksh.el index 19424c6..ab12c5a 100755 --- a/src/WOKTclLib/woksh.el +++ b/src/WOKTclLib/woksh.el @@ -6,13 +6,16 @@ (require 'shell) (require 'wok-comm) -(defvar woksh-program "wish84" +(defvar woksh-program "tclsh" "*Name of program to invoke woksh") +(if (equal (getenv "WOKSTATION") "wnt") + (progn + (setq woksh-program "tclsh85.exe"))) -(defvar woksh-explicit-args "P:/cmd-input.tcl" +(defvar woksh-explicit-args nil "*List of arguments to pass to woksh on the command line.") -(defvar woksh-mode-hook nil +(defvar woksh-mode-hook nil "*Hooks to run after setting current buffer to woksh-mode.") (defvar woksh-process-connection-type t @@ -61,21 +64,6 @@ re-synching of directories.") (defvar woksh-history nil) -(defvar woksh-set-emacs-env nil -"Defines whether modifications in WOK environment variables made, -for instance, by 'wokenv -s' command, should be reflected in Emacs -process environment. - -Default value is nil, i.e. WOK environment changes will not affect -Emacs variables" -) - -(defun woksh-setenv (variable &optional value unset) -"If variable woksh-set-emacs-env is t, calls (setenv) with the -same arguments, otherwise does nothing." - (if woksh-set-emacs-env (setenv variable value unset)) -) - ;;;###autoload (defun woksh (input-args &optional buffer) "Open a woksh" @@ -120,13 +108,6 @@ same arguments, otherwise does nothing." (cd-absolute (concat comint-file-name-prefix "~/")))) - ;; workaround concerning unproper work of tclsh under Emacs on Windows - (if (equal (getenv "WOKSTATION") "wnt") - (progn - (insert - (concat "source " (getenv "WOKHOME") "/site/interp.tcl")) - (comint-send-input))) - (if (not (eq iport 0)) (if (not (wok-connectedp)) (progn diff --git a/src/WOKTclLib/wutils.tcl b/src/WOKTclLib/wutils.tcl index 08fc72e..6bb6eb3 100755 --- a/src/WOKTclLib/wutils.tcl +++ b/src/WOKTclLib/wutils.tcl @@ -68,7 +68,7 @@ proc wokUtils:FILES:Since { dirlist gblist lim } { } } } - if ![lempty $recurse] { + if { [llength $recurse] != 0 } { set result [concat $result [wokUtils:FILES:Since $recurse $gblist $lim]] } return $result @@ -229,7 +229,7 @@ proc wokUtils:FILES:find { dirlist gblist } { } } } - if ![lempty $recurse] { + if { [llength $recurse] != 0 } { set result [concat $result [wokUtils:FILES:find $recurse $gblist]] } return $result diff --git a/src/WOKsite/.tclshrc b/src/WOKsite/.tclshrc index e339dbb..19c1639 100755 --- a/src/WOKsite/.tclshrc +++ b/src/WOKsite/.tclshrc @@ -1,2 +1,5 @@ -global env -source $env(HOME)/tclshrc_Wok +# TCL RC File that automatically sourced when the shell is started interactively. +# This is version for Linux (.tclshrc) +# Imports WOK procedures. + +source $::env(WOKHOME)/site/wok_tclshrc.tcl diff --git a/src/WOKsite/CreateFactory.tcl b/src/WOKsite/CreateFactory.tcl index f88cbfd..3520332 100755 --- a/src/WOKsite/CreateFactory.tcl +++ b/src/WOKsite/CreateFactory.tcl @@ -12,144 +12,112 @@ ;# and WBNAM is created as empty workbench. To populate it with development units ;# please refer to the Wok documentation. ;# -source $env(WOKHOME)/site/tclshrc_Wok + proc FileToList { path {sort 0} {trim 0} {purge 0} {emptl 1} } { - if ![ catch { set id [ open $path r ] } ] { - set l {} - while {[gets $id line] >= 0 } { - if { $trim } { - regsub -all {[ ]+} $line " " line - } - if { $emptl } { - if { [string length ${line}] != 0 } { - lappend l $line - } - } else { - lappend l $line - } - } - close $id - if { $sort } { - return [lsort $l] - } else { - return $l - } + if ![ catch { set id [ open $path r ] } ] { + set l {} + while {[gets $id line] >= 0 } { + if { $trim } { + regsub -all {[ ]+} $line " " line + } + if { $emptl } { + if { [string length ${line}] != 0 } { + lappend l $line + } + } else { + lappend l $line + } + } + close $id + if { $sort } { + return [lsort $l] } else { - return {} + return $l } + } else { + return {} + } } + ;# ;# ;# proc lreplace { fin fout ls1s2 } { - if { [catch { set in [ open $fin r ] } errin] == 0 } { - if { [catch { set out [ open $fout w ] } errout] == 0 } { - set strin [read $in [file size $fin]] - close $in - foreach [list s1 s2] $ls1s2 { - set done 0 - if { [set nbsub [regsub -all -- $s1 $strin $s2 strout]] != 0 } { - set done 1 - } - set strin $strout - } - puts $out $strout - close $out - return $done - } else { - puts stderr "Error: $errout" - return 0 - } + if { [catch { set in [ open $fin r ] } errin] == 0 } { + if { [catch { set out [ open $fout w ] } errout] == 0 } { + set strin [read $in [file size $fin]] + close $in + foreach [list s1 s2] $ls1s2 { + set done 0 + if { [set nbsub [regsub -all -- $s1 $strin $s2 strout]] != 0 } { + set done 1 + } + set strin $strout + } + puts $out $strout + close $out + return $done } else { - puts stderr "Error: $errin" - return 0 + puts stderr "Error: $errout" + return 0 } + } else { + puts stderr "Error: $errin" + return 0 + } } + ;# ;# -proc CreateFactory { HOME_ENTITIES FNAM WSNAM WBNAM IMPORT_DIR } { +proc CreateFactory { HOME_ENTITIES FNAM WSNAM } { + package require Wok + package require Ms + global env - package require Wok - package require Ms - global env - - if [catch { package require Tclx } TclXHere] { - puts stderr "Warning : You'll need package TclX to correctly use WOK." - puts stderr " Check for variable TCLLIBPATH" - } - if [catch { package require Expect } ExpectHere] { - puts stderr "Warning : You'll need package Expect to use WOK integration package.." - puts stderr " Check for variable TCLLIBPATH" - } - - ;# - set savpwd [pwd] - - ;# - ;# Create factory FNAM and warehouse attached to it - ;# - if { ![wokinfo -x ${FNAM}] } { - puts "Creating the factory : ${FNAM}" - if ![catch {fcreate -DHome=$HOME_ENTITIES/${FNAM} -d ${FNAM} } astatus ] { - wokcd ${FNAM} - if { ![wokinfo -x ${FNAM}:BAG] } { - puts "Creating the WareHouse in $HOME_ENTITIES/${FNAM}/BAG" - if [ catch {Wcreate -DHome=$HOME_ENTITIES/${FNAM}/BAG -d -DAdm=$HOME_ENTITIES/${FNAM}/BAG/adm BAG } astatus ] { - puts $astatus - cd $savpwd - } - } - } else { - puts $astatus - cd $savpwd - } - } - - ;# - ;# Create workshop WSNAM - ;# - if { ![wokinfo -x ${FNAM}:${WSNAM}] } { - puts "Creating the workshop : ${FNAM}:${WSNAM}" - if ![ catch {screate -DHome=$HOME_ENTITIES/${FNAM}/${WSNAM} -d ${WSNAM} } astatus] { - wokcd -PAdm ${FNAM}:${WSNAM} - } else { - puts $astatus - cd $savpwd - } - } - ;# - ;# Create workbench WBNAM - ;# - if { ![wokinfo -x ${FNAM}:${WSNAM}:${WBNAM}] } { - puts "Creating the workbench : ${FNAM}:${WSNAM}:${WBNAM}" - wokcd ${FNAM}:${WSNAM} - set WBROOT $HOME_ENTITIES/${FNAM}/${WSNAM}/${WBNAM} - if [ catch {wcreate -DHome=$IMPORT_DIR -d ${WBNAM} } astatus] { - puts $astatus - cd $savpwd - exit - } + if [catch { package require Expect } ExpectHere] { + puts stderr "Warning : You'll need package Expect to use WOK integration package.." + puts stderr " Check for variable TCLLIBPATH" + } + + ;# + set savpwd [pwd] + + ;# + ;# Create factory FNAM and warehouse attached to it + ;# + if { ![wokinfo -x ${FNAM}] } { + puts "Creating the factory : ${FNAM}" + if ![catch {fcreate -DHome=$HOME_ENTITIES/${FNAM} -d ${FNAM} } astatus ] { + wokcd ${FNAM} + if { ![wokinfo -x ${FNAM}:BAG] } { + puts "Creating the WareHouse in $HOME_ENTITIES/${FNAM}/BAG" + if [ catch {Wcreate -DHome=$HOME_ENTITIES/${FNAM}/BAG -d -DAdm=$HOME_ENTITIES/${FNAM}/BAG/adm BAG } astatus ] { + puts $astatus + cd $savpwd + } + } + } else { + puts $astatus + cd $savpwd } - - if { "$IMPORT_DIR" != {} } { - wokcd -PAdm ${FNAM}:${WSNAM}:${WBNAM} - foreach udl [glob -nocomplain *.UDLIST] { - puts "Importing units from module $udl" - foreach unit [FileToList $udl] { - if [ catch { ucreate -[lindex $unit 0] [lindex $unit 1] } astatus] { - puts $astatus - } - } - } + } + + ;# + ;# Create workshop WSNAM + ;# + if { ![wokinfo -x ${FNAM}:${WSNAM}] } { + puts "Creating the workshop : ${FNAM}:${WSNAM}" + if ![ catch {screate -DHome=$HOME_ENTITIES/${FNAM}/${WSNAM} -d ${WSNAM} } astatus] { + wokcd -PAdm ${FNAM}:${WSNAM} + } else { + puts $astatus + cd $savpwd } - cd $savpwd + } + cd $savpwd } -set CASHOME [file dirname $env(CASROOT)/.] +CreateFactory [file normalize $env(WOK_ROOTADMDIR)] LOC dev -CreateFactory [file normalize $env(WOK_ROOTADMDIR)] OS OCC51 ros [file normalize $CASHOME] puts "WOK initialization was done" exit - - - diff --git a/src/WOKsite/DEFAULT.edl b/src/WOKsite/DEFAULT.edl index c265a20..f2960c7 100755 --- a/src/WOKsite/DEFAULT.edl +++ b/src/WOKsite/DEFAULT.edl @@ -1,81 +1,68 @@ --- DEFAULT.edl -- +-- DEFAULT.edl +-- Predefined defaults for newly created factories/branches -- -@ifnotdefined ( %DEFAULT_EDL) then -@set %DEFAULT_EDL = ""; - -@template DEFAULT_Home ( %Entity ) is -$/dp_xx/%Entity\^ -@end; - -@template DEFAULT_Adm ( %Entity_Home ) is -$%Entity_Home/adm\^ -@end; - -@template DEFAULT_Warehouse ( %Entity ) is -$BAG\^ -@end; - -@template DEFAULT_Stations ( %Entity ) is -$sun sil lin hp aix wnt mac bsd\^ -@end; - -@template DEFAULT_DBMSystems ( %Entity ) is -$ DFLT \^ -@end; +@ifnotdefined (%DEFAULT_EDL) then + @set %DEFAULT_EDL = ""; -@template DEFAULT_ParcelConfig ( %Entity ) is -$ \^ -@end; + @template DEFAULT_Home (%Entity) is + $__DEFHOME__/LOC/dev/%Entity\^ + @end; -@template DEFAULT_Src ( %Entity_Home ) is -$%Entity_Home\^ -@end; + @template DEFAULT_Adm (%Entity_Home) is + $%Entity_Home/adm\^ + @end; -@template DEFAULT_Drv ( %Entity_Home ) is -$%Entity_Home\^ -@end; + @template DEFAULT_Warehouse (%Entity) is + $BAG\^ + @end; -@template DEFAULT_DFLT ( %Entity_Home ) is -$%Entity_Home\^ -@end; + @template DEFAULT_Stations (%Entity) is + $__DEFSTATION__\^ + @end; -@template DEFAULT_DFLT_sun ( %Entity_Home ) is -$%Entity_Home\^ -@end; + @template DEFAULT_DBMSystems (%Entity) is + $ DFLT \^ + @end; -@template DEFAULT_DFLT_sil ( %Entity_Home ) is -$%Entity_Home\^ -@end; + @template DEFAULT_ParcelConfig (%Entity) is + $ \^ + @end; -@template DEFAULT_DFLT_lin ( %Entity_Home ) is -$%Entity_Home\^ -@end; + @template DEFAULT_Src (%Entity_Home) is + $%Entity_Home\^ + @end; -@template DEFAULT_DFLT_hp ( %Entity_Home ) is -$%Entity_Home\^ -@end; + @template DEFAULT_Drv (%Entity_Home) is + $%Entity_Home\^ + @end; -@template DEFAULT_DFLT_aix ( %Entity_Home ) is -$%Entity_Home\^ -@end; + @template DEFAULT_DFLT (%Entity_Home) is + $%Entity_Home\^ + @end; -@template DEFAULT_DFLT_wnt ( %Entity_Home ) is -$%Entity_Home\^ -@end; + @template DEFAULT_DFLT_wnt (%Entity_Home) is + $%Entity_Home\^ + @end; -@template DEFAULT_DFLT_mac ( %Entity_Home ) is -$%Entity_Home\^ -@end; + @template DEFAULT_DFLT_lin (%Entity_Home) is + $%Entity_Home\^ + @end; -@template DEFAULT_DFLT_bsd ( %Entity_Home ) is -$%Entity_Home\^ -@end; + @template DEFAULT_DFLT_mac (%Entity_Home) is + $%Entity_Home\^ + @end; -@template DEFAULT_WOKVersion ( %WOK_VERSION ) is -$%WOK_VERSION\^ -@end; + @template DEFAULT_DFLT_sun (%Entity_Home) is + $%Entity_Home\^ + @end; + @template DEFAULT_DFLT_bsd (%Entity_Home) is + $%Entity_Home\^ + @end; + @template DEFAULT_WOKVersion (%WOK_VERSION) is + $%WOK_VERSION\^ + @end; @endif; diff --git a/src/WOKsite/FILES b/src/WOKsite/FILES index 512252d..3ecdc7f 100755 --- a/src/WOKsite/FILES +++ b/src/WOKsite/FILES @@ -2,12 +2,18 @@ srcinc:::CreateFactory.tcl srcinc:::WOKSESSION.edl srcinc:::DEFAULT.edl srcinc:::FILES -srcinc:::tclshrc_Wok srcinc:::INSTALL -srcinc:::wok.csh -srcinc:::wok.bat -srcinc:::wokinit.bat srcinc:::interp.tcl -srcinc:::wokinit.csh srcinc:::.tclshrc srcinc:::tclshrc.tcl +srcinc:::wok_confgui.bat +srcinc:::wok_env.bat +srcinc:::wok_init.bat +srcinc:::wok_tclsh.bat +srcinc:::wok_confgui.sh +srcinc:::wok_env.sh +srcinc:::wok_init.sh +srcinc:::wok_tclsh.sh +srcinc:::wok_deps.tcl +srcinc:::wok_depsgui.tcl +srcinc:::wok_tclshrc.tcl diff --git a/src/WOKsite/tclshrc.tcl b/src/WOKsite/tclshrc.tcl index e339dbb..a736064 100755 --- a/src/WOKsite/tclshrc.tcl +++ b/src/WOKsite/tclshrc.tcl @@ -1,2 +1,5 @@ -global env -source $env(HOME)/tclshrc_Wok +# TCL RC File that automatically sourced when the shell is started interactively. +# This is version for Windows (tclshrc.tcl) +# Imports WOK procedures. + +source $::env(WOKHOME)/site/wok_tclshrc.tcl diff --git a/src/WOKsite/wok_confgui.bat b/src/WOKsite/wok_confgui.bat new file mode 100644 index 0000000..efee2cd --- /dev/null +++ b/src/WOKsite/wok_confgui.bat @@ -0,0 +1,8 @@ +@echo off + +rem This file setup WOK environment (calls 'wok_env.bat' script) +rem and launches the TCL shell bound to WOK. + +call %~dp0wok_env.bat + +%TCLBIN%/tclsh85.exe %~dp0wok_depsgui.tcl diff --git a/src/WOKsite/wok_confgui.sh b/src/WOKsite/wok_confgui.sh new file mode 100644 index 0000000..1ae6292 --- /dev/null +++ b/src/WOKsite/wok_confgui.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# This file setup WOK environment (calls 'wok_env.sh' script) +# and launches the TCL shell bound to WOK. + +# go to the script directory +aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD"; + +source "${aScriptPath}/wok_env.sh" + +cd "$WOK_ROOTADMDIR" +$TCLSH_EXE "${aScriptPath}/wok_depsgui.tcl" diff --git a/src/WOKsite/wok_deps.tcl b/src/WOKsite/wok_deps.tcl new file mode 100644 index 0000000..c84186e --- /dev/null +++ b/src/WOKsite/wok_deps.tcl @@ -0,0 +1,796 @@ +#!/usr/bin/tclsh + +# Created on: 2012-01-26 +# Created by: Kirill GAVRILOV +# Copyright (c) 2012 OPEN CASCADE SAS + +set ARCH "32" + +if { "$tcl_platform(platform)" == "unix" } { + set SYS_PATH_SPLITTER ":" + set SYS_LIB_PREFIX "lib" + set SYS_EXE_SUFFIX "" + if { "$tcl_platform(os)" == "Darwin" } { + set SYS_LIB_SUFFIX "dylib" + } else { + set SYS_LIB_SUFFIX "so" + } + set VCVER "gcc" + set VCVARS "" +} elseif { "$tcl_platform(platform)" == "windows" } { + set SYS_PATH_SPLITTER ";" + set SYS_LIB_PREFIX "" + set SYS_LIB_SUFFIX "lib" + set SYS_EXE_SUFFIX ".exe" + set VCVER "vc8" + set VCVARS "" + #set VCVARS "%VS80COMNTOOLS%..\\..\\VC\\vcvarsall.bat" +} + +set HAVE_FREEIMAGE "false" +set HAVE_GL2PS "false" +set HAVE_TBB "false" +set CHECK_QT4 "true" +set CHECK_JDK "true" +set PRODUCTS_PATH "" +set CSF_OPT_INC [list] +set CSF_OPT_LIB32 [list] +set CSF_OPT_LIB64 [list] +set CSF_OPT_BIN32 [list] +set CSF_OPT_BIN64 [list] + +if { [info exists ::env(ARCH)] } { + set ARCH "$::env(ARCH)" +} +if { [info exists ::env(VCVER)] } { + set VCVER "$::env(VCVER)" +} +if { [info exists ::env(VCVARS)] } { + set VCVARS "$::env(VCVARS)" +} +if { [info exists ::env(HAVE_FREEIMAGE)] } { + set HAVE_FREEIMAGE "$::env(HAVE_FREEIMAGE)" +} +if { [info exists ::env(HAVE_GL2PS)] } { + set HAVE_GL2PS "$::env(HAVE_GL2PS)" +} +if { [info exists ::env(HAVE_TBB)] } { + set HAVE_TBB "$::env(HAVE_TBB)" +} +if { [info exists ::env(CHECK_QT4)] } { + set CHECK_QT4 "$::env(CHECK_QT4)" +} +if { [info exists ::env(CHECK_JDK)] } { + set CHECK_JDK "$::env(CHECK_JDK)" +} +if { [info exists ::env(PRODUCTS_PATH)] } { + set PRODUCTS_PATH "$::env(PRODUCTS_PATH)" +} +if { [info exists ::env(CSF_OPT_INC)] } { + set CSF_OPT_INC [split "$::env(CSF_OPT_INC)" $::SYS_PATH_SPLITTER] +} +if { [info exists ::env(CSF_OPT_LIB32)] } { + set CSF_OPT_LIB32 [split "$::env(CSF_OPT_LIB32)" $::SYS_PATH_SPLITTER] +} +if { [info exists ::env(CSF_OPT_LIB64)] } { + set CSF_OPT_LIB64 [split "$::env(CSF_OPT_LIB64)" $::SYS_PATH_SPLITTER] +} +if { [info exists ::env(CSF_OPT_BIN32)] } { + set CSF_OPT_BIN32 [split "$::env(CSF_OPT_BIN32)" $::SYS_PATH_SPLITTER] +} +if { [info exists ::env(CSF_OPT_BIN64)] } { + set CSF_OPT_BIN64 [split "$::env(CSF_OPT_BIN64)" $::SYS_PATH_SPLITTER] +} + +# Search header file in $::CSF_OPT_INC and standard paths +proc wokdep:SearchHeader {theHeader} { + # search in custom paths + foreach anIncPath $::CSF_OPT_INC { + set aPath "${anIncPath}/${theHeader}" + if { [file exists "$aPath"] } { + return "$aPath" + } + } + + # search in system + set aPath "/usr/include/${theHeader}" + if { [file exists "$aPath"] } { + return "$aPath" + } + return "" +} + +# Search library file in $::CSF_OPT_LIB* and standard paths +proc wokdep:SearchLib {theLib theBitness {theSearchPath ""}} { + if { "$theSearchPath" != "" } { + set aPath "${theSearchPath}/${::SYS_LIB_PREFIX}${theLib}.${::SYS_LIB_SUFFIX}" + if { [file exists "$aPath"] } { + return "$aPath" + } else { + return "" + } + } + + # search in custom paths + foreach aLibPath [set ::CSF_OPT_LIB$theBitness] { + set aPath "${aLibPath}/${::SYS_LIB_PREFIX}${theLib}.${::SYS_LIB_SUFFIX}" + if { [file exists "$aPath"] } { + return "$aPath" + } + } + + # search in system + if { "$::ARCH" == "$theBitness"} { + set aPath "/usr/lib/${::SYS_LIB_PREFIX}${theLib}.${::SYS_LIB_SUFFIX}" + if { [file exists "$aPath"] } { + return "$aPath" + } + } + + return "" +} + +# Search file in $::CSF_OPT_BIN* and standard paths +proc wokdep:SearchBin {theBin theBitness {theSearchPath ""}} { + if { "$theSearchPath" != "" } { + set aPath "${theSearchPath}/${theBin}" + if { [file exists "$aPath"] } { + return "$aPath" + } else { + return "" + } + } + + # search in custom paths + foreach aBinPath [set ::CSF_OPT_BIN$theBitness] { + set aPath "${aBinPath}/${theBin}" + if { [file exists "$aPath"] } { + return "$aPath" + } + } + + # search in system + if { "$::ARCH" == "$theBitness"} { + set aPath "/usr/bin/${theBin}" + if { [file exists "$aPath"] } { + return "$aPath" + } + } + + return "" +} + +# Detect compiler C-runtime version 'vc*' and architecture '32'/'64' +# to determine preferred path. +proc wokdep:Preferred {theList theCmpl theArch} { + if { [llength $theList] == 0 } { + return "" + } + + set aShortList {} + foreach aPath $theList { + if { [string first "$theCmpl" "$aPath"] != "-1" } { + lappend aShortList "$aPath" + } + } + + if { [llength $aShortList] == 0 } { + #return [lindex $theList 0] + set aShortList $theList + } + + set aVeryShortList {} + foreach aPath $aShortList { + if { [string first "$theArch" "$aPath"] != "-1" } { + lappend aVeryShortList "$aPath" + } + } + if { [llength $aVeryShortList] == 0 } { + return [lindex [lsort -decreasing $aShortList] 0] + } + + return [lindex [lsort -decreasing $aVeryShortList] 0] +} + +# Search Tcl/Tk libraries placement +proc wokdep:SearchTclTk {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} { + upvar $theErrInc anErrInc + upvar $theErrLib32 anErrLib32 + upvar $theErrLib64 anErrLib64 + upvar $theErrBin32 anErrBin32 + upvar $theErrBin64 anErrBin64 + + set isFound "true" + set aTclHPath [wokdep:SearchHeader "tcl.h"] + set aTkHPath [wokdep:SearchHeader "tcl.h"] + if { "$aTclHPath" == "" || "$aTkHPath" == "" } { + if { [file exists "/usr/include/tcl8.5/tcl.h"] + && [file exists "/usr/include/tcl8.5/tk.h" ] } { + lappend ::CSF_OPT_INC "/usr/include/tcl8.5" + } else { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{tcl}*] "$::VCVER" "$::ARCH" ] + if { "$aPath" != "" && [file exists "$aPath/include/tcl.h"] && [file exists "$aPath/include/tk.h"] } { + lappend ::CSF_OPT_INC "$aPath/include" + } else { + lappend anErrInc "Error: 'tcl.h' or 'tk.h' not found (Tcl/Tk)" + set isFound "false" + } + } + } + + if { "$::tcl_platform(platform)" == "windows" } { + set aTclLibName "tcl85" + set aTkLibName "tk85" + } else { + set aTclLibName "tcl8.5" + set aTkLibName "tk8.5" + } + + foreach anArchIter {64 32} { + set aTclLibPath [wokdep:SearchLib "$aTclLibName" "$anArchIter"] + set aTkLibPath [wokdep:SearchLib "$aTkLibName" "$anArchIter"] + if { "$aTclLibPath" == "" || "$aTkLibPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{tcl}*] "$::VCVER" "$anArchIter" ] + set aTclLibPath [wokdep:SearchLib "$aTclLibName" "$anArchIter" "$aPath/lib"] + set aTkLibPath [wokdep:SearchLib "$aTkLibName" "$anArchIter" "$aPath/lib"] + if { "$aTclLibPath" != "" && "$aTkLibPath" != "" } { + lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib" + } else { + lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}${aTclLibName}.${::SYS_LIB_SUFFIX}' or '${::SYS_LIB_PREFIX}${aTkLibName}.${::SYS_LIB_SUFFIX}' not found (Tcl/Tk)" + if { "$::ARCH" == "$anArchIter"} { set isFound "false" } + } + } + + if { "$::tcl_platform(platform)" == "windows" } { + set aTclDllPath [wokdep:SearchBin "${aTclLibName}.dll" "$anArchIter"] + set aTkDllPath [wokdep:SearchBin "${aTkLibName}.dll" "$anArchIter"] + if { "$aTclDllPath" == "" || "$aTkDllPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{tcl}*] "$::VCVER" "$anArchIter" ] + set aTclDllPath [wokdep:SearchBin "${aTclLibName}.dll" "$anArchIter" "$aPath/bin"] + set aTkDllPath [wokdep:SearchBin "${aTkLibName}.dll" "$anArchIter" "$aPath/bin"] + if { "$aTclDllPath" != "" && "$aTkDllPath" != "" } { + lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin" + } else { + lappend anErrBin$anArchIter "Error: '${aTclLibName}.dll' or '${aTkLibName}.dll' not found (Tcl/Tk)" + if { "$::ARCH" == "$anArchIter"} { set isFound "false" } + } + } + } + } + + return "$isFound" +} + +# Search FreeType library placement +proc wokdep:SearchFreeType {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} { + upvar $theErrInc anErrInc + upvar $theErrLib32 anErrLib32 + upvar $theErrLib64 anErrLib64 + upvar $theErrBin32 anErrBin32 + upvar $theErrBin64 anErrBin64 + + set isFound "true" + set aFtPath [wokdep:SearchHeader "freetype/freetype.h"] + set aFtBuildPath [wokdep:SearchHeader "ft2build.h"] + if { "$aFtPath" == "" || "$aFtBuildPath" == "" } { + # TODO - use `freetype-config --cflags` instead + set aSysFreeType "/usr/include/freetype2" + if { [file exists "$aSysFreeType/freetype/freetype.h"] } { + lappend ::CSF_OPT_INC "$aSysFreeType" + } else { + set aSysFreeType "/usr/X11/include/freetype2" + if { [file exists "$aSysFreeType/freetype/freetype.h"] } { + lappend ::CSF_OPT_INC "/usr/X11/include" + lappend ::CSF_OPT_INC "$aSysFreeType" + } else { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{freetype}*] "$::VCVER" "$::ARCH" ] + if { "$aPath" != "" && [file exists "$aPath/include/freetype/freetype.h"] && [file exists "$aPath/include/ft2build.h"] } { + lappend ::CSF_OPT_INC "$aPath/include" + } else { + lappend anErrInc "Error: 'freetype.h' not found (FreeType2)" + set isFound "false" + } + } + } + } + return "$isFound" +} + +# Search FTGL library placement +proc wokdep:SearchFTGL {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} { + upvar $theErrInc anErrInc + upvar $theErrLib32 anErrLib32 + upvar $theErrLib64 anErrLib64 + upvar $theErrBin32 anErrBin32 + upvar $theErrBin64 anErrBin64 + + # The path in the case of building VS project on windows + set aWinBuildPath "win32_vcpp/build" + + set isFound "true" + set aFtglFontPath [wokdep:SearchHeader "FTGLTextureFont.h"] + set aFtglFtLibPath [wokdep:SearchHeader "FTLibrary.h"] + if { "$aFtglFontPath" == "" || "$aFtglFtLibPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{ftgl,FTGL}*] "$::VCVER" "$::ARCH" ] + if { "$aPath" != "" && [expr {[file exists "$aPath/include/FTGL/FTLibrary.h"] || [file exists "$aPath/include/FTLibrary.h"]}] } { + lappend ::CSF_OPT_INC "$aPath/include" + if { [file exists "$aPath/include/FTGL"] } { + lappend ::CSF_OPT_INC "$aPath/include/FTGL" + } + } else { + lappend anErrInc "Error: 'FTLibrary.h' or 'FTGLTextureFont.h' not found (FTGL)" + set isFound "false" + } + } + + foreach anArchIter {64 32} { + set aFtglLibPath [wokdep:SearchLib "ftgl" "$anArchIter"] + set aFtglWinLibPath [wokdep:SearchLib "ftgl_dynamic_MTD" "$anArchIter"] + if { "$aFtglLibPath" == "" && "$aFtglWinLibPath" == ""} { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{ftgl,FTGL}*] "$::VCVER" "$anArchIter" ] + set aFtglLibPath [wokdep:SearchLib "ftgl" "$anArchIter" "$aPath/lib"] + set aFtglWinLibPath [wokdep:SearchLib "ftgl_dynamic_MTD" "$anArchIter" "$aPath/lib"] + if { "$aFtglLibPath" != "" || "$aFtglWinLibPath" != "" } { + lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib" + } else { + set aFtglWinLibPath [wokdep:SearchLib "ftgl_dynamic_MTD" "$anArchIter" "$aPath/$aWinBuildPath"] + if { "$::tcl_platform(platform)" == "windows" && "$aFtglWinLibPath" != "" } { + lappend ::CSF_OPT_LIB$anArchIter "$aPath/$aWinBuildPath" + } else { + lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}ftgl.${::SYS_LIB_SUFFIX}' not found (FTGL)" + if { "$::ARCH" == "$anArchIter"} { set isFound "false" } + } + } + } + if { "$::tcl_platform(platform)" == "windows" } { + set aFtglDllPath [wokdep:SearchBin "ftgl.dll" "$anArchIter"] + set aFtglWinDllPath [wokdep:SearchBin "ftgl_dynamic_MTD.dll" "$anArchIter"] + if { "$aFtglDllPath" == "" && "$aFtglWinDllPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{ftgl}*] "$::VCVER" "$anArchIter" ] + set aFtglDllPath [wokdep:SearchBin "ftgl.dll" "$anArchIter" "$aPath/bin"] + set aFtglWinDllPath [wokdep:SearchBin "ftgl_dynamic_MTD.dll" "$anArchIter" "$aPath/bin"] + set aFtglWinDllPath2 [wokdep:SearchBin "ftgl_dynamic_MTD.dll" "$anArchIter" "$aPath/$aWinBuildPath"] + if { "$aFtglDllPath" != "" || "$aFtglWinDllPath" != "" } { + lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin" + } elseif { "$aFtglWinDllPath2" != "" } { + lappend ::CSF_OPT_BIN$anArchIter "$aPath/$aWinBuildPath" + } else { + lappend anErrBin$anArchIter "Error: 'ftgl_dynamic_MTD.dll' not found (FTGL)" + if { "$::ARCH" == "$anArchIter"} { set isFound "false" } + } + } + } + } + + return "$isFound" +} + +# Search FreeImage library placement +proc wokdep:SearchFreeImage {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} { + upvar $theErrInc anErrInc + upvar $theErrLib32 anErrLib32 + upvar $theErrLib64 anErrLib64 + upvar $theErrBin32 anErrBin32 + upvar $theErrBin64 anErrBin64 + + # binary distribution has another layout + set aFImageDist "Dist" + set aFImagePlusDist "Wrapper/FreeImagePlus/dist" + + set isFound "true" + set aFImageHPath [wokdep:SearchHeader "FreeImage.h"] + set aFImagePlusHPath [wokdep:SearchHeader "FreeImagePlus.h"] + if { "$aFImageHPath" == "" || "$aFImagePlusHPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{freeimage}*] "$::VCVER" "$::ARCH" ] + if { "$aPath" != "" && [file exists "$aPath/include/FreeImage.h"] && [file exists "$aPath/include/FreeImagePlus.h"] } { + lappend ::CSF_OPT_INC "$aPath/include" + } elseif { "$aPath" != "" && [file exists "$aPath/$aFImageDist/FreeImage.h"] && [file exists "$aPath/$aFImagePlusDist/FreeImagePlus.h"] } { + lappend ::CSF_OPT_INC "$aPath/$aFImageDist" + lappend ::CSF_OPT_INC "$aPath/$aFImagePlusDist" + } else { + lappend anErrInc "Error: 'FreeImage.h' or 'FreeImagePlus.h' not found (FreeImage)" + set isFound "false" + } + } + + foreach anArchIter {64 32} { + set aFImageLibPath [wokdep:SearchLib "freeimage" "$anArchIter"] + set aFImagePlusLibPath [wokdep:SearchLib "freeimageplus" "$anArchIter"] + if { "$aFImageLibPath" == "" || "$aFImagePlusLibPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{freeimage}*] "$::VCVER" "$anArchIter" ] + set aFImageLibPath [wokdep:SearchLib "freeimage" "$anArchIter" "$aPath/lib"] + set aFImagePlusLibPath [wokdep:SearchLib "freeimageplus" "$anArchIter" "$aPath/lib"] + if { "$aFImageLibPath" != "" && "$aFImagePlusLibPath" != "" } { + lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib" + } else { + set aFImageLibPath [wokdep:SearchLib "freeimage" "$anArchIter" "$aPath/$aFImageDist"] + set aFImagePlusLibPath [wokdep:SearchLib "freeimageplus" "$anArchIter" "$aPath/$aFImagePlusDist"] + if { "$aFImageLibPath" != "" && "$aFImagePlusLibPath" != "" } { + lappend ::CSF_OPT_LIB$anArchIter "$aPath/$aFImageDist" + lappend ::CSF_OPT_LIB$anArchIter "$aPath/$aFImagePlusDist" + } else { + lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}freeimage.${::SYS_LIB_SUFFIX}' or '${::SYS_LIB_PREFIX}freeimageplus.${::SYS_LIB_SUFFIX}' not found (FreeImage)" + if { "$::ARCH" == "$anArchIter"} { set isFound "false" } + } + } + } + if { "$::tcl_platform(platform)" == "windows" } { + set aFImageDllPath [wokdep:SearchBin "freeimage.dll" "$anArchIter"] + set aFImagePlusDllPath [wokdep:SearchBin "freeimageplus.dll" "$anArchIter"] + if { "$aFImageDllPath" == "" || "$aFImagePlusDllPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{freeimage}*] "$::VCVER" "$anArchIter" ] + set aFImageDllPath [wokdep:SearchBin "freeimage.dll" "$anArchIter" "$aPath/bin"] + set aFImagePlusDllPath [wokdep:SearchBin "freeimageplus.dll" "$anArchIter" "$aPath/bin"] + if { "$aFImageDllPath" != "" && "$aFImagePlusDllPath" != "" } { + lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin" + } else { + set aFImageDllPath [wokdep:SearchBin "freeimage.dll" "$anArchIter" "$aPath/$aFImageDist"] + set aFImagePlusDllPath [wokdep:SearchBin "freeimageplus.dll" "$anArchIter" "$aPath/$aFImagePlusDist"] + if { "$aFImageDllPath" != "" && "$aFImagePlusDllPath" != "" } { + lappend ::CSF_OPT_BIN$anArchIter "$aPath/$aFImageDist" + lappend ::CSF_OPT_BIN$anArchIter "$aPath/$aFImagePlusDist" + } else { + lappend anErrBin$anArchIter "Error: 'freeimage.dll' or 'freeimageplus.dll' not found (FreeImage)" + if { "$::ARCH" == "$anArchIter"} { set isFound "false" } + } + } + } + } + } + + return "$isFound" +} + +# Search GL2PS library placement +proc wokdep:SearchGL2PS {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} { + upvar $theErrInc anErrInc + upvar $theErrLib32 anErrLib32 + upvar $theErrLib64 anErrLib64 + upvar $theErrBin32 anErrBin32 + upvar $theErrBin64 anErrBin64 + + set isFound "true" + set aGl2psHPath [wokdep:SearchHeader "gl2ps.h"] + if { "$aGl2psHPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{gl2ps}*] "$::VCVER" "$::ARCH" ] + if { "$aPath" != "" && [file exists "$aPath/include/gl2ps.h"] } { + lappend ::CSF_OPT_INC "$aPath/include" + } else { + lappend anErrInc "Error: 'gl2ps.h' not found (GL2PS)" + set isFound "false" + } + } + + foreach anArchIter {64 32} { + set aGl2psLibPath [wokdep:SearchLib "gl2ps" "$anArchIter"] + if { "$aGl2psLibPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{gl2ps}*] "$::VCVER" "$anArchIter" ] + set aGl2psLibPath [wokdep:SearchLib "gl2ps" "$anArchIter" "$aPath/lib"] + if { "$aGl2psLibPath" != "" } { + lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib" + } else { + lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}gl2ps.${::SYS_LIB_SUFFIX}' not found (GL2PS)" + if { "$::ARCH" == "$anArchIter"} { set isFound "false" } + } + } + if { "$::tcl_platform(platform)" == "windows" } { + set aGl2psDllPath [wokdep:SearchBin "gl2ps.dll" "$anArchIter"] + if { "$aGl2psDllPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{gl2ps}*] "$::VCVER" "$anArchIter" ] + set aGl2psDllPath [wokdep:SearchBin "gl2ps.dll" "$anArchIter" "$aPath/bin"] + if { "$aGl2psDllPath" != "" } { + lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin" + } else { + set aGl2psDllPath [wokdep:SearchBin "gl2ps.dll" "$anArchIter" "$aPath/lib"] + if { "$aGl2psDllPath" != "" } { + lappend ::CSF_OPT_BIN$anArchIter "$aPath/lib" + } else { + lappend anErrBin$anArchIter "Error: 'gl2ps.dll' not found (GL2PS)" + if { "$::ARCH" == "$anArchIter"} { set isFound "false" } + } + } + } + } + } + + return "$isFound" +} + +# Search TBB library placement +proc wokdep:SearchTBB {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} { + upvar $theErrInc anErrInc + upvar $theErrLib32 anErrLib32 + upvar $theErrLib64 anErrLib64 + upvar $theErrBin32 anErrBin32 + upvar $theErrBin64 anErrBin64 + + set isFound "true" + set aTbbHPath [wokdep:SearchHeader "tbb/scalable_allocator.h"] + if { "$aTbbHPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{tbb}*] "$::VCVER" "$::ARCH" ] + if { "$aPath" != "" && [file exists "$aPath/include/tbb/scalable_allocator.h"] } { + lappend ::CSF_OPT_INC "$aPath/include" + } else { + lappend anErrInc "Error: 'tbb/scalable_allocator.h' not found (Intel TBB)" + set isFound "false" + } + } + + foreach anArchIter {64 32} { + set aSubDir "ia32" + if { "$anArchIter" == "64"} { + set aSubDir "intel64" + } + + set aTbbLibPath [wokdep:SearchLib "tbb" "$anArchIter"] + if { "$aTbbLibPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{tbb}*] "$::VCVER" "$anArchIter" ] + set aTbbLibPath [wokdep:SearchLib "tbb" "$anArchIter" "$aPath/lib/$aSubDir/${::VCVER}"] + if { "$aTbbLibPath" == "" } { + # Set the path to the TBB library for Linux + if { "$::tcl_platform(platform)" != "windows" } { + set aSubDir "$aSubDir/cc4.1.0_libc2.4_kernel2.6.16.21" + } + set aTbbLibPath [wokdep:SearchLib "tbb" "$anArchIter" "$aPath/lib/$aSubDir"] + if { "$aTbbLibPath" != "" } { + lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib/$aSubDir" + } + } else { + lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib/$aSubDir/${::VCVER}" + } + if { "$aTbbLibPath" == "" } { + lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}tbb.${::SYS_LIB_SUFFIX}' not found (Intel TBB)" + if { "$::ARCH" == "$anArchIter"} { set isFound "false" } + } + } + if { "$::tcl_platform(platform)" == "windows" } { + set aTbbDllPath [wokdep:SearchBin "tbb.dll" "$anArchIter"] + if { "$aTbbDllPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{tbb}*] "$::VCVER" "$anArchIter" ] + set aTbbDllPath [wokdep:SearchBin "tbb.dll" "$anArchIter" "$aPath/bin/$aSubDir/${::VCVER}"] + if { "$aTbbDllPath" != "" } { + lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin/$aSubDir/${::VCVER}" + } else { + lappend anErrBin$anArchIter "Error: 'tbb.dll' not found (Intel TBB)" + if { "$::ARCH" == "$anArchIter"} { set isFound "false" } + } + } + } + } + + return "$isFound" +} + +# Search Qt4 libraries placement +proc wokdep:SearchQt4 {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} { + upvar $theErrInc anErrInc + upvar $theErrLib32 anErrLib32 + upvar $theErrLib64 anErrLib64 + upvar $theErrBin32 anErrBin32 + upvar $theErrBin64 anErrBin64 + + set isFound "true" + set aQMsgBoxHPath [wokdep:SearchHeader "QtGui/qmessagebox.h"] + if { "$aQMsgBoxHPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{qt4}*] "$::VCVER" "$::ARCH" ] + if { "$aPath" != "" && [file exists "$aPath/include/QtGui/qmessagebox.h"] } { + lappend ::CSF_OPT_INC "$aPath/include" + lappend ::CSF_OPT_INC "$aPath/include/Qt" + lappend ::CSF_OPT_INC "$aPath/include/QtGui" + lappend ::CSF_OPT_INC "$aPath/include/QtCore" + } else { + if { [file exists "/usr/include/qt4/QtGui/qmessagebox.h"] } { + lappend ::CSF_OPT_INC "/usr/include/qt4" + lappend ::CSF_OPT_INC "/usr/include/qt4/Qt" + lappend ::CSF_OPT_INC "/usr/include/qt4/QtGui" + lappend ::CSF_OPT_INC "/usr/include/qt4/QtCore" + } else { + lappend anErrInc "Error: 'QtGui/qmessagebox.h' not found (Qt4)" + set isFound "false" + } + } + } + + set aQtGuiLibName "QtGui" + if { "$::tcl_platform(platform)" == "windows" } { + set aQtGuiLibName "QtGui4" + } + + foreach anArchIter {64 32} { + set aQMsgBoxLibPath [wokdep:SearchLib "${aQtGuiLibName}" "$anArchIter"] + if { "$aQMsgBoxLibPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{qt4}*] "$::VCVER" "$anArchIter" ] + set aQMsgBoxLibPath [wokdep:SearchLib "${aQtGuiLibName}" "$anArchIter" "$aPath/lib"] + if { "$aQMsgBoxLibPath" != "" } { + lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib" + } else { + lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}${aQtGuiLibName}.${::SYS_LIB_SUFFIX}' not found (Qt4)" + if { "$::ARCH" == "$anArchIter"} { set isFound "false" } + } + } + if { "$::tcl_platform(platform)" == "windows" } { + set aQMsgBoxDllPath [wokdep:SearchBin "QtGui4.dll" "$anArchIter"] + if { "$aQMsgBoxDllPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{qt4}*] "$::VCVER" "$anArchIter" ] + set aQMsgBoxDllPath [wokdep:SearchBin "QtGui4.dll" "$anArchIter" "$aPath/bin"] + if { "$aQMsgBoxDllPath" != "" } { + lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin" + } else { + lappend anErrBin$anArchIter "Error: 'QtGui4.dll' not found (Qt4)" + if { "$::ARCH" == "$anArchIter"} { set isFound "false" } + } + } + } + } + + return "$isFound" +} + +# Search JDK placement +proc wokdep:SearchJDK {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} { + upvar $theErrInc anErrInc + upvar $theErrLib32 anErrLib32 + upvar $theErrLib64 anErrLib64 + upvar $theErrBin32 anErrBin32 + upvar $theErrBin64 anErrBin64 + + set isFound "true" + set aJniHPath [wokdep:SearchHeader "jni.h"] + set aJniMdHPath [wokdep:SearchHeader "jni_md.h"] + if { "$aJniHPath" == "" || "$aJniMdHPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{jdk,java}*] "$::VCVER" "$::ARCH" ] + if { "$aPath" != "" && [file exists "$aPath/include/jni.h"] } { + lappend ::CSF_OPT_INC "$aPath/include" + if { "$::tcl_platform(platform)" == "windows" } { + lappend ::CSF_OPT_INC "$aPath/include/win32" + } elseif { [file exists "$aPath/include/linux"] } { + lappend ::CSF_OPT_INC "$aPath/include/linux" + } + } else { + if { [file exists "/System/Library/Frameworks/JavaVM.framework/Home/include/jni.h"] } { + lappend ::CSF_OPT_INC "/System/Library/Frameworks/JavaVM.framework/Home/include" + } else { + lappend anErrInc "Error: 'jni.h' or 'jni_md.h' not found (JDK)" + set isFound "false" + } + } + } + + foreach anArchIter {64 32} { + set aJavacPath [wokdep:SearchBin "javac${::SYS_EXE_SUFFIX}" "$anArchIter"] + if { "$aJavacPath" == "" } { + set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{jdk,java}*] "$::VCVER" "$anArchIter" ] + set aJavacPath [wokdep:SearchBin "javac${::SYS_EXE_SUFFIX}" "$anArchIter" "$aPath/bin"] + if { "$aJavacPath" != "" } { + lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin" + } else { + if { "$::ARCH" == "$anArchIter" && [file exists "/System/Library/Frameworks/JavaVM.framework/Home/bin/javac${::SYS_EXE_SUFFIX}"] } { + lappend ::CSF_OPT_BIN$anArchIter "/System/Library/Frameworks/JavaVM.framework/Home/bin" + } else { + lappend anErrBin$anArchIter "Error: 'javac${::SYS_EXE_SUFFIX}' not found (JDK)" + if { "$::ARCH" == "$anArchIter"} { set isFound "false" } + } + } + } + } + + return "$isFound" +} + +# Search X11 libraries placement +proc wokdep:SearchX11 {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} { + upvar $theErrInc anErrInc + upvar $theErrLib32 anErrLib32 + upvar $theErrLib64 anErrLib64 + upvar $theErrBin32 anErrBin32 + upvar $theErrBin64 anErrBin64 + + set isFound "true" + if { "$::tcl_platform(platform)" == "windows" } { + return "$isFound" + } + + set aXmuLibPath [wokdep:SearchLib "Xmu" "$::ARCH"] + if { "$aXmuLibPath" == "" } { + set aXmuLibPath [wokdep:SearchLib "Xmu" "$::ARCH" "/usr/X11/lib"] + if { "$aXmuLibPath" != "" } { + lappend ::CSF_OPT_LIB$::ARCH "/usr/X11/lib" + } else { + lappend anErrLib$::ARCH "Error: '${::SYS_LIB_PREFIX}Xmu.${::SYS_LIB_SUFFIX}' not found (X11)" + set isFound "false" + } + } + + return "$isFound" +} + +# Generate (override) custom environment file +proc wokdep:SaveCustom {} { + if { "$::tcl_platform(platform)" == "windows" } { + set aCustomFilePath "$::env(WOKHOME)/site/custom.bat" + set aFile [open $aCustomFilePath "w"] + puts $aFile "@echo off" + puts $aFile "rem This environment file was generated by wok_depsgui.tcl script at [clock format [clock seconds] -format "%Y.%m.%d %H:%M"]" + + puts $aFile "" + puts $aFile "set VCVER=$::VCVER" + puts $aFile "set ARCH=$::ARCH" + puts $aFile "set VCVARS=$::VCVARS" + + puts $aFile "" + puts $aFile "set \"PRODUCTS_PATH=$::PRODUCTS_PATH\"" + + puts $aFile "" + puts $aFile "rem Optional 3rd-parties switches" + puts $aFile "set HAVE_FREEIMAGE=$::HAVE_FREEIMAGE" + puts $aFile "set HAVE_GL2PS=$::HAVE_GL2PS" + puts $aFile "set HAVE_TBB=$::HAVE_TBB" + puts $aFile "set CHECK_QT4=$::CHECK_QT4" + puts $aFile "set CHECK_JDK=$::CHECK_JDK" + + set aStringInc [join $::CSF_OPT_INC $::SYS_PATH_SPLITTER] + puts $aFile "" + puts $aFile "rem Additional headers search paths" + puts $aFile "set \"CSF_OPT_INC=$aStringInc\"" + + set aStringLib32 [join $::CSF_OPT_LIB32 $::SYS_PATH_SPLITTER] + puts $aFile "" + puts $aFile "rem Additional libraries (32-bit) search paths" + puts $aFile "set \"CSF_OPT_LIB32=$aStringLib32\"" + + set aStringLib64 [join $::CSF_OPT_LIB64 $::SYS_PATH_SPLITTER] + puts $aFile "" + puts $aFile "rem Additional libraries (64-bit) search paths" + puts $aFile "set \"CSF_OPT_LIB64=$aStringLib64\"" + + set aStringBin32 [join $::CSF_OPT_BIN32 $::SYS_PATH_SPLITTER] + puts $aFile "" + puts $aFile "rem Additional (32-bit) search paths" + puts $aFile "set \"CSF_OPT_BIN32=$aStringBin32\"" + + set aStringBin64 [join $::CSF_OPT_BIN64 $::SYS_PATH_SPLITTER] + puts $aFile "" + puts $aFile "rem Additional (64-bit) search paths" + puts $aFile "set \"CSF_OPT_BIN64=$aStringBin64\"" + + close $aFile + } else { + set aCustomFilePath "$::env(WOKHOME)/site/custom.sh" + set aFile [open $aCustomFilePath "w"] + puts $aFile "#!/bin/bash" + puts $aFile "# This environment file was generated by wok_depsgui.tcl script at [clock format [clock seconds] -format "%Y.%m.%d %H:%M"]" + + #puts $aFile "" + #puts $aFile "export ARCH=$::ARCH" + + puts $aFile "" + puts $aFile "export PRODUCTS_PATH=\"$::PRODUCTS_PATH\"" + + puts $aFile "" + puts $aFile "# Optional 3rd-parties switches" + puts $aFile "export HAVE_FREEIMAGE=$::HAVE_FREEIMAGE" + puts $aFile "export HAVE_GL2PS=$::HAVE_GL2PS" + puts $aFile "export HAVE_TBB=$::HAVE_TBB" + puts $aFile "export CHECK_QT4=$::CHECK_QT4" + puts $aFile "export CHECK_JDK=$::CHECK_JDK" + + set aStringInc [join $::CSF_OPT_INC $::SYS_PATH_SPLITTER] + puts $aFile "" + puts $aFile "# Additional headers search paths" + puts $aFile "export CSF_OPT_INC=\"$aStringInc\"" + + set aStringLib$::ARCH [join [set ::CSF_OPT_LIB$::ARCH] $::SYS_PATH_SPLITTER] + puts $aFile "" + puts $aFile "# Additional libraries ($::ARCH-bit) search paths" + puts $aFile "export CSF_OPT_LIB$::ARCH=\"[set aStringLib$::ARCH]\"" + + set aStringBin$::ARCH [join [set ::CSF_OPT_BIN$::ARCH] $::SYS_PATH_SPLITTER] + puts $aFile "" + puts $aFile "# Additional ($::ARCH-bit) search paths" + puts $aFile "export CSF_OPT_BIN$::ARCH=\"[set aStringBin$::ARCH]\"" + + close $aFile + } + + puts "Configuration saved to file '$aCustomFilePath'" +} diff --git a/src/WOKsite/wok_depsgui.tcl b/src/WOKsite/wok_depsgui.tcl new file mode 100644 index 0000000..0b74969 --- /dev/null +++ b/src/WOKsite/wok_depsgui.tcl @@ -0,0 +1,471 @@ +#!/usr/bin/wish + +# Created on: 2012-01-26 +# Created by: Kirill GAVRILOV +# Copyright (c) 2012 OPEN CASCADE SAS + +package require Tk + +source "$::env(WOKHOME)/site/wok_deps.tcl" + +set aRowIter 0 +frame .myFrame -padx 5 -pady 5 +pack .myFrame -fill both -expand 1 + +set SYS_VS_LIST {} +set SYS_VC_LIST {} +set SYS_VCVARS_LIST {} + +# detect installed Visual Studio instances from global environment +if { [info exists ::env(VS110COMNTOOLS)] } { + lappend ::SYS_VS_LIST "Visual Studio 201x (vc11)" + lappend ::SYS_VC_LIST "vc11" + lappend ::SYS_VCVARS_LIST "%VS110COMNTOOLS%..\\..\\VC\\vcvarsall.bat" +} +if { [info exists ::env(VS100COMNTOOLS)] } { + lappend ::SYS_VS_LIST "Visual Studio 2010 (vc10)" + lappend ::SYS_VC_LIST "vc10" + lappend ::SYS_VCVARS_LIST "%VS100COMNTOOLS%..\\..\\VC\\vcvarsall.bat" +} +if { [info exists ::env(VS90COMNTOOLS)] } { + lappend ::SYS_VS_LIST "Visual Studio 2008 (vc9)" + lappend ::SYS_VC_LIST "vc9" + lappend ::SYS_VCVARS_LIST "%VS90COMNTOOLS%..\\..\\VC\\vcvarsall.bat" +} +if { [info exists ::env(VS80COMNTOOLS)] } { + lappend ::SYS_VS_LIST "Visual Studio 2005 (vc8)" + lappend ::SYS_VC_LIST "vc8" + lappend ::SYS_VCVARS_LIST "%VS80COMNTOOLS%..\\..\\VC\\vcvarsall.bat" +} +lappend ::SYS_VS_LIST "Custom" +lappend ::SYS_VC_LIST "vcX" +lappend ::SYS_VCVARS_LIST "%VSXXCOMNTOOLS%..\\..\\VC\\vcvarsall.bat" + +set aVcVerIndex [lsearch $::SYS_VC_LIST $::VCVER] +set ::VSVER [lindex $::SYS_VS_LIST $aVcVerIndex] +if { "$::VCVARS" == "" } { + set ::VCVARS [lindex $::SYS_VCVARS_LIST $aVcVerIndex] +} + +proc wokdep:gui:Close {} { + # if changed ask + exit +} + +proc wokdep:gui:SwitchConfig {} { + set ::VCVER [lindex $::SYS_VC_LIST [.myFrame.myVsCombo current]] + set ::VCVARS [lindex $::SYS_VCVARS_LIST [.myFrame.myVsCombo current]] +} + +proc wokdep:gui:SwitchArch {} { + if { "$::ARCH" == "32" } { + wokdep:gui:Show32Bitness ::aRowIter + } + if { "$::ARCH" == "64" } { + wokdep:gui:Show64Bitness ::aRowIter + } + + if { [llength [grid info .myFrame.mySave]] != 0 } { + grid forget .myFrame.mySave .myFrame.myClose + } + + # Bottom section + grid .myFrame.mySave -row $::aRowIter -column 4 -columnspan 2 + grid .myFrame.myClose -row $::aRowIter -column 6 -columnspan 2 +} + +proc wokdep:gui:UpdateList {} { + set anIncErrs {} + set anLib32Errs {} + set anLib64Errs {} + set anBin32Errs {} + set anBin64Errs {} + wokdep:SearchTclTk anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs + wokdep:SearchFreeType anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs + wokdep:SearchFTGL anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs + wokdep:SearchX11 anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs + if { "$::HAVE_FREEIMAGE" == "true" } { + wokdep:SearchFreeImage anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs + } + if { "$::HAVE_GL2PS" == "true" } { + wokdep:SearchGL2PS anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs + } + if { "$::HAVE_TBB" == "true" } { + wokdep:SearchTBB anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs + } + if { "$::CHECK_QT4" == "true" } { + wokdep:SearchQt4 anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs + } + if { "$::CHECK_JDK" == "true" } { + wokdep:SearchJDK anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs + } + + .myFrame.myIncErrLbl configure -text [join $anIncErrs "\n"] + .myFrame.myLib32ErrLbl configure -text [join $anLib32Errs "\n"] + .myFrame.myLib64ErrLbl configure -text [join $anLib64Errs "\n"] + .myFrame.myBin32ErrLbl configure -text [join $anBin32Errs "\n"] + .myFrame.myBin64ErrLbl configure -text [join $anBin64Errs "\n"] +} + +proc wokdep:gui:BrowseVcVars {} { + set aResult [tk_chooseDirectory -initialdir $::VCVARS -title "Choose a directory"] + if { "$aResult" != "" } { + set ::VCVARS $aResult + } +} + +proc wokdep:gui:BrowsePartiesRoot {} { + set aResult [tk_chooseDirectory -initialdir $::PRODUCTS_PATH -title "Choose a directory"] + if { "$aResult" != "" } { + set ::PRODUCTS_PATH $aResult + wokdep:gui:UpdateList + } +} + +proc wokdep:gui:AddIncPath {} { + set aResult [tk_chooseDirectory -title "Choose a directory"] + if { "$aResult" != "" } { + lappend ::CSF_OPT_INC "$aResult" + wokdep:gui:UpdateList + } +} + +proc wokdep:gui:AddLib32Path {} { + set aResult [tk_chooseDirectory -title "Choose a directory"] + if { "$aResult" != "" } { + lappend ::CSF_OPT_LIB32 "$aResult" + wokdep:gui:UpdateList + } +} + +proc wokdep:gui:AddLib64Path {} { + set aResult [tk_chooseDirectory -title "Choose a directory"] + if { "$aResult" != "" } { + lappend ::CSF_OPT_LIB64 "$aResult" + wokdep:gui:UpdateList + } +} + +proc wokdep:gui:AddBin32Path {} { + set aResult [tk_chooseDirectory -title "Choose a directory"] + if { "$aResult" != "" } { + lappend ::CSF_OPT_BIN32 "$aResult" + wokdep:gui:UpdateList + } +} + +proc wokdep:gui:AddBin64Path {} { + set aResult [tk_chooseDirectory -title "Choose a directory"] + if { "$aResult" != "" } { + lappend ::CSF_OPT_BIN64 "$aResult" + wokdep:gui:UpdateList + } +} + +proc wokdep:gui:RemoveIncPath {} { + set aSelIndices [.myFrame.myIncList curselection] + if { [llength $aSelIndices] != 0 } { + .myFrame.myIncList delete [lindex $aSelIndices 0] + } + wokdep:gui:UpdateList +} + +proc wokdep:gui:RemoveLib32Path {} { + set aSelIndices [.myFrame.myLib32List curselection] + if { [llength $aSelIndices] != 0 } { + .myFrame.myLib32List delete [lindex $aSelIndices 0] + } + wokdep:gui:UpdateList +} + +proc wokdep:gui:RemoveLib64Path {} { + set aSelIndices [.myFrame.myLib64List curselection] + if { [llength $aSelIndices] != 0 } { + .myFrame.myLib64List delete [lindex $aSelIndices 0] + } + wokdep:gui:UpdateList +} + +proc wokdep:gui:RemoveBin32Path {} { + set aSelIndices [.myFrame.myBin32List curselection] + if { [llength $aSelIndices] != 0 } { + .myFrame.myBin32List delete [lindex $aSelIndices 0] + } + wokdep:gui:UpdateList +} + +proc wokdep:gui:RemoveBin64Path {} { + set aSelIndices [.myFrame.myBin64List curselection] + if { [llength $aSelIndices] != 0 } { + .myFrame.myBin64List delete [lindex $aSelIndices 0] + } + wokdep:gui:UpdateList +} + +proc wokdep:gui:ResetIncPath {} { + set ::CSF_OPT_INC {} + wokdep:gui:UpdateList +} + +proc wokdep:gui:ResetLib32Path {} { + set ::CSF_OPT_LIB32 {} + wokdep:gui:UpdateList +} + +proc wokdep:gui:ResetLib64Path {} { + set ::CSF_OPT_LIB64 {} + wokdep:gui:UpdateList +} + +proc wokdep:gui:ResetBin32Path {} { + set ::CSF_OPT_BIN32 {} + wokdep:gui:UpdateList +} + +proc wokdep:gui:ResetBin64Path {} { + set ::CSF_OPT_BIN64 {} + wokdep:gui:UpdateList +} + +proc wokdep:gui:Show32Bitness { theRowIter } { + upvar $theRowIter aRowIter + + if { [llength [grid info .myFrame.myLib64Lbl]] != 0 } { + grid forget .myFrame.myLib64Lbl .myFrame.myLib64List .myFrame.myLib64Scrl + grid forget .myFrame.myLib64Add .myFrame.myLib64Remove .myFrame.myLib64Clear .myFrame.myLib64ErrLbl + grid forget .myFrame.myBin64Lbl .myFrame.myBin64List .myFrame.myBin64Scrl + grid forget .myFrame.myBin64Add .myFrame.myBin64Remove .myFrame.myBin64Clear .myFrame.myBin64ErrLbl + } + + # Additional libraries (32-bit) search paths + grid .myFrame.myLib32Lbl -row $aRowIter -column 0 -columnspan 10 -sticky w + incr aRowIter + grid .myFrame.myLib32List -row $aRowIter -column 0 -rowspan 4 -columnspan 5 + grid .myFrame.myLib32Scrl -row $aRowIter -column 5 -rowspan 4 + grid .myFrame.myLib32Add -row $aRowIter -column 6 + incr aRowIter + #grid .myFrame.myLib32Edit -row $aRowIter -column 6 + incr aRowIter + grid .myFrame.myLib32Remove -row $aRowIter -column 6 + incr aRowIter + grid .myFrame.myLib32Clear -row $aRowIter -column 6 + incr aRowIter + grid .myFrame.myLib32ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w + incr aRowIter + + # Additional executables (32-bit) search paths + grid .myFrame.myBin32Lbl -row $aRowIter -column 0 -columnspan 10 -sticky w + incr aRowIter + grid .myFrame.myBin32List -row $aRowIter -column 0 -rowspan 4 -columnspan 5 + grid .myFrame.myBin32Scrl -row $aRowIter -column 5 -rowspan 4 + grid .myFrame.myBin32Add -row $aRowIter -column 6 + incr aRowIter + #grid .myFrame.myBin32Edit -row $aRowIter -column 6 + incr aRowIter + grid .myFrame.myBin32Remove -row $aRowIter -column 6 + incr aRowIter + grid .myFrame.myBin32Clear -row $aRowIter -column 6 + incr aRowIter + grid .myFrame.myBin32ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w + incr aRowIter +} + +proc wokdep:gui:Show64Bitness { theRowIter } { + upvar $theRowIter aRowIter + + if { [llength [grid info .myFrame.myLib32Lbl]] != 0 } { + grid forget .myFrame.myLib32Lbl .myFrame.myLib32List .myFrame.myLib32Scrl + grid forget .myFrame.myLib32Add .myFrame.myLib32Remove .myFrame.myLib32Clear .myFrame.myLib32ErrLbl + grid forget .myFrame.myBin32Lbl .myFrame.myBin32List .myFrame.myBin32Scrl + grid forget .myFrame.myBin32Add .myFrame.myBin32Remove .myFrame.myBin32Clear .myFrame.myBin32ErrLbl + } + + # Additional libraries (64-bit) search paths + grid .myFrame.myLib64Lbl -row $aRowIter -column 0 -columnspan 10 -sticky w + incr aRowIter + grid .myFrame.myLib64List -row $aRowIter -column 0 -rowspan 4 -columnspan 5 + grid .myFrame.myLib64Scrl -row $aRowIter -column 5 -rowspan 4 + grid .myFrame.myLib64Add -row $aRowIter -column 6 + incr aRowIter + #grid .myFrame.myLib64Edit -row $aRowIter -column 6 + incr aRowIter + grid .myFrame.myLib64Remove -row $aRowIter -column 6 + incr aRowIter + grid .myFrame.myLib64Clear -row $aRowIter -column 6 + incr aRowIter + grid .myFrame.myLib64ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w + incr aRowIter + + # Additional executables (64-bit) search paths + grid .myFrame.myBin64Lbl -row $aRowIter -column 0 -columnspan 10 -sticky w + incr aRowIter + grid .myFrame.myBin64List -row $aRowIter -column 0 -rowspan 4 -columnspan 5 + grid .myFrame.myBin64Scrl -row $aRowIter -column 5 -rowspan 4 + grid .myFrame.myBin64Add -row $aRowIter -column 6 + incr aRowIter + #grid .myFrame.myBin64Edit -row $aRowIter -column 6 + incr aRowIter + grid .myFrame.myBin64Remove -row $aRowIter -column 6 + incr aRowIter + grid .myFrame.myBin64Clear -row $aRowIter -column 6 + incr aRowIter + grid .myFrame.myBin64ErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w + incr aRowIter +} + +# Header +ttk::label .myFrame.myVsLbl -text "Visual Studio configuration" -relief solid -padding {5 5 80 5} +ttk::combobox .myFrame.myVsCombo -values $SYS_VS_LIST -state readonly -textvariable VSVER -width 30 +ttk::combobox .myFrame.myArchCombo -values { {32} {64} } -textvariable ARCH -state readonly -width 6 +entry .myFrame.myVcEntry -textvariable VCVER -width 6 +entry .myFrame.myVcVarsEntry -textvariable VCVARS -width 70 +ttk::button .myFrame.myVcBrowseBtn -text "Browse" -command wokdep:gui:BrowseVcVars + +# +ttk::label .myFrame.mySrchLbl -text "3rd-parties search path" -relief solid -padding {5 5 80 5} +entry .myFrame.mySrchEntry -textvariable PRODUCTS_PATH -width 80 +ttk::button .myFrame.mySrchBrowseBtn -text "Browse" -command wokdep:gui:BrowsePartiesRoot +checkbutton .myFrame.myFImageCheck -offvalue "false" -onvalue "true" -variable HAVE_FREEIMAGE -command wokdep:gui:UpdateList +ttk::label .myFrame.myFImageLbl -text "Use FreeImage" +checkbutton .myFrame.myGl2psCheck -offvalue "false" -onvalue "true" -variable HAVE_GL2PS -command wokdep:gui:UpdateList +ttk::label .myFrame.myGl2psLbl -text "Use GL2PS" +checkbutton .myFrame.myTbbCheck -offvalue "false" -onvalue "true" -variable HAVE_TBB -command wokdep:gui:UpdateList +ttk::label .myFrame.myTbbLbl -text "Use Intel TBB" +checkbutton .myFrame.myQt4Check -offvalue "false" -onvalue "true" -variable CHECK_QT4 -command wokdep:gui:UpdateList +ttk::label .myFrame.myQt4Lbl -text "Search Qt4" +checkbutton .myFrame.myJDKCheck -offvalue "false" -onvalue "true" -variable CHECK_JDK -command wokdep:gui:UpdateList +ttk::label .myFrame.myJDKLbl -text "Search JDK" + +# Additional headers search paths +ttk::label .myFrame.myIncLbl -text "Additional headers search paths" -relief solid -padding {5 5 80 5} +scrollbar .myFrame.myIncScrl -command ".myFrame.myIncList yview" +listbox .myFrame.myIncList -listvariable CSF_OPT_INC -width 80 -height 5 -yscrollcommand ".myFrame.myIncScrl set" +ttk::button .myFrame.myIncAdd -text "Add" -command wokdep:gui:AddIncPath +ttk::button .myFrame.myIncEdit -text "Edit" +ttk::button .myFrame.myIncRemove -text "Remove" -command wokdep:gui:RemoveIncPath +ttk::button .myFrame.myIncClear -text "Reset" -command wokdep:gui:ResetIncPath +ttk::label .myFrame.myIncErrLbl -text "Error: " -foreground red -padding {5 5 5 5} + +# Additional libraries (32-bit) search paths +ttk::label .myFrame.myLib32Lbl -text "Additional libraries (32-bit) search paths" -relief solid -padding {5 5 80 5} +scrollbar .myFrame.myLib32Scrl -command ".myFrame.myLib32List yview" +listbox .myFrame.myLib32List -listvariable CSF_OPT_LIB32 -width 80 -height 5 -yscrollcommand ".myFrame.myLib32Scrl set" +ttk::button .myFrame.myLib32Add -text "Add" -command wokdep:gui:AddLib32Path +ttk::button .myFrame.myLib32Edit -text "Edit" +ttk::button .myFrame.myLib32Remove -text "Remove" -command wokdep:gui:RemoveLib32Path +ttk::button .myFrame.myLib32Clear -text "Reset" -command wokdep:gui:ResetLib32Path +ttk::label .myFrame.myLib32ErrLbl -text "Error: " -foreground red -padding {5 5 5 5} + +# Additional libraries (64-bit) search paths +ttk::label .myFrame.myLib64Lbl -text "Additional libraries (64-bit) search paths" -relief solid -padding {5 5 80 5} +scrollbar .myFrame.myLib64Scrl -command ".myFrame.myLib64List yview" +listbox .myFrame.myLib64List -listvariable CSF_OPT_LIB64 -width 80 -height 5 -yscrollcommand ".myFrame.myLib64Scrl set" +ttk::button .myFrame.myLib64Add -text "Add" -command wokdep:gui:AddLib64Path +ttk::button .myFrame.myLib64Edit -text "Edit" +ttk::button .myFrame.myLib64Remove -text "Remove" -command wokdep:gui:RemoveLib64Path +ttk::button .myFrame.myLib64Clear -text "Reset" -command wokdep:gui:ResetLib64Path +ttk::label .myFrame.myLib64ErrLbl -text "Error: " -foreground red -padding {5 5 5 5} + +# Additional executables (32-bit) search paths +ttk::label .myFrame.myBin32Lbl -text "Additional executables (32-bit) search paths" -relief solid -padding {5 5 80 5} +scrollbar .myFrame.myBin32Scrl -command ".myFrame.myBin32List yview" +listbox .myFrame.myBin32List -listvariable CSF_OPT_BIN32 -width 80 -height 5 -yscrollcommand ".myFrame.myBin32Scrl set" +ttk::button .myFrame.myBin32Add -text "Add" -command wokdep:gui:AddBin32Path +ttk::button .myFrame.myBin32Edit -text "Edit" +ttk::button .myFrame.myBin32Remove -text "Remove" -command wokdep:gui:RemoveBin32Path +ttk::button .myFrame.myBin32Clear -text "Reset" -command wokdep:gui:ResetBin32Path +ttk::label .myFrame.myBin32ErrLbl -text "Error: " -foreground red -padding {5 5 5 5} + +# Additional executables (64-bit) search paths +ttk::label .myFrame.myBin64Lbl -text "Additional executables (64-bit) search paths" -relief solid -padding {5 5 80 5} +scrollbar .myFrame.myBin64Scrl -command ".myFrame.myBin64List yview" +listbox .myFrame.myBin64List -listvariable CSF_OPT_BIN64 -width 80 -height 5 -yscrollcommand ".myFrame.myBin64Scrl set" +ttk::button .myFrame.myBin64Add -text "Add" -command wokdep:gui:AddBin64Path +ttk::button .myFrame.myBin64Edit -text "Edit" +ttk::button .myFrame.myBin64Remove -text "Remove" -command wokdep:gui:RemoveBin64Path +ttk::button .myFrame.myBin64Clear -text "Reset" -command wokdep:gui:ResetBin64Path +ttk::label .myFrame.myBin64ErrLbl -text "Error: " -foreground red -padding {5 5 5 5} + +# Bottom +ttk::button .myFrame.mySave -text "Save" -command wokdep:SaveCustom +ttk::button .myFrame.myClose -text "Close" -command wokdep:gui:Close + +# Create grid +# Header +if { "$tcl_platform(platform)" == "windows" } { + grid .myFrame.myVsLbl -row $aRowIter -column 0 -columnspan 10 -sticky w + incr aRowIter + grid .myFrame.myVsCombo -row $aRowIter -column 0 -columnspan 2 -sticky w + grid .myFrame.myArchCombo -row $aRowIter -column 2 -sticky w + incr aRowIter + grid .myFrame.myVcEntry -row $aRowIter -column 0 + grid .myFrame.myVcVarsEntry -row $aRowIter -column 1 -columnspan 4 -sticky w + grid .myFrame.myVcBrowseBtn -row $aRowIter -column 6 + incr aRowIter +} + +# +grid .myFrame.mySrchLbl -row $aRowIter -column 0 -columnspan 10 -sticky w +incr aRowIter +grid .myFrame.mySrchEntry -row $aRowIter -column 0 -columnspan 5 +grid .myFrame.mySrchBrowseBtn -row $aRowIter -column 6 +incr aRowIter +grid .myFrame.myFImageCheck -row $aRowIter -column 0 -sticky e +grid .myFrame.myFImageLbl -row $aRowIter -column 1 -sticky w +grid .myFrame.myQt4Check -row $aRowIter -column 2 -sticky e +grid .myFrame.myQt4Lbl -row $aRowIter -column 3 -sticky w +incr aRowIter +grid .myFrame.myGl2psCheck -row $aRowIter -column 0 -sticky e +grid .myFrame.myGl2psLbl -row $aRowIter -column 1 -sticky w +grid .myFrame.myJDKCheck -row $aRowIter -column 2 -sticky e +grid .myFrame.myJDKLbl -row $aRowIter -column 3 -sticky w +incr aRowIter +grid .myFrame.myTbbCheck -row $aRowIter -column 0 -sticky e +grid .myFrame.myTbbLbl -row $aRowIter -column 1 -sticky w +incr aRowIter + +# Additional headers search paths +grid .myFrame.myIncLbl -row $aRowIter -column 0 -columnspan 10 -sticky w +incr aRowIter +grid .myFrame.myIncList -row $aRowIter -column 0 -rowspan 4 -columnspan 5 +grid .myFrame.myIncScrl -row $aRowIter -column 5 -rowspan 4 +grid .myFrame.myIncAdd -row $aRowIter -column 6 +incr aRowIter +#grid .myFrame.myIncEdit -row $aRowIter -column 6 +incr aRowIter +grid .myFrame.myIncRemove -row $aRowIter -column 6 +incr aRowIter +grid .myFrame.myIncClear -row $aRowIter -column 6 +incr aRowIter +grid .myFrame.myIncErrLbl -row $aRowIter -column 0 -columnspan 10 -sticky w +incr aRowIter + +# Additional 32-bit search paths +if { "$ARCH" == "32" } { + wokdep:gui:Show32Bitness aRowIter +} + +# Additional 64-bit search paths +if { "$ARCH" == "64" } { + wokdep:gui:Show64Bitness aRowIter +} + +# Bottom section +grid .myFrame.mySave -row $aRowIter -column 4 -columnspan 2 +grid .myFrame.myClose -row $aRowIter -column 6 -columnspan 2 + +# Bind events +bind .myFrame.myVsCombo <> { + wokdep:gui:SwitchConfig +} +bind .myFrame.myArchCombo <> { + wokdep:gui:SwitchArch +} + +.myFrame.mySrchEntry configure -validate all -validatecommand { + #return [file exists "$::PRODUCTS_PATH"] + wokdep:gui:UpdateList + return 1 +} + +wokdep:gui:UpdateList diff --git a/src/WOKsite/wok_env.bat b/src/WOKsite/wok_env.bat new file mode 100644 index 0000000..939d03b --- /dev/null +++ b/src/WOKsite/wok_env.bat @@ -0,0 +1,81 @@ +@echo off + +rem This file setup WOK environment. +rem Notice that usually you shouldn't modify this file. +rem To override some settings create/edit 'custom.bat' file +rem within the same directory. + +rem ----- Reset environment variables ----- +if ["%PATH_BACK%"] == [""] set "PATH_BACK=%PATH%" +rem set "PATH=%PATH_BACK%" +set "VCVER=vc8" +set "ARCH=32" +set "PATH=%SYSTEMROOT%\system32;%SYSTEMROOT%" +set "INCLUDE=" +set "LIB=" +set "DevEnvDir=" +set "HAVE_TBB=false" +set "HAVE_FREEIMAGE=false" +set "HAVE_GL2PS=false" +set "VCVARS=" + +rem ----- Set local settings (M$ Visual Studio compilers etc.) ----- +if exist %~dp0custom.bat ( + call %~dp0custom.bat %1 %2 %3 %4 %5 +) + +set "PRODUCTS_DEFINES=" +if ["%HAVE_TBB%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_TBB" +if ["%HAVE_GL2PS%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_GL2PS" +if ["%HAVE_FREEIMAGE%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_FREEIMAGE" + +rem ----- Setup Environment Variables for M$ Visual Studio compilers ----- +if ["%ARCH%"] == ["32"] set VCARCH=x86 +if ["%ARCH%"] == ["64"] set VCARCH=amd64 + +if not ["%VCVARS%"] == [""] ( + call "%VCVARS%" %VCARCH% +) else if ["%DevEnvDir%"] == [""] if not ["%VS100COMNTOOLS%"] == [""] ( + call "%VS100COMNTOOLS%..\..\VC\vcvarsall.bat" %VCARCH% + set VCVER=vc10 +) else if ["%DevEnvDir%"] == [""] if not ["%VS90COMNTOOLS%"] == [""] ( + call "%VS90COMNTOOLS%..\..\VC\vcvarsall.bat" %VCARCH% + set VCVER=vc9 +) else if ["%DevEnvDir%"] == [""] if not ["%VS80COMNTOOLS%"] == [""] ( + call "%VS80COMNTOOLS%..\..\VC\vcvarsall.bat" %VCARCH% + set VCVER=vc8 +) + +rem ----- 3rd-parties root ----- +if ["%PRODUCTS_PATH%"] == [""] set PRODUCTS_PATH=G:/occt-3rdparty/occt650products/ + +rem ----- Define WOK root ----- +set "WOKHOME=%~dp0.." +rem Stupid TCL needs Unish paths +set "WOKHOME=%WOKHOME:\=/%" +set "HOME=%WOKHOME%/home" + +rem ----- Setup Environment Variables for WOK ----- +set "WOK_ROOTADMDIR=%WOKHOME%/wok_entities" +set "WOKSTATION=wnt" +set "WOK_LIBRARY=%WOKHOME%/lib" +set "WOK_LIBPATH=%WOK_LIBRARY%;%WOK_LIBRARY%/%WOKSTATION%" +set "WOKSITE=%WOKHOME%/site" +set "WOK_SESSIONID=%HOME%" + +rem ----- Setup Environment Variables for TCL/TK ----- +set "TCLHOME=%WOKHOME%/3rdparty/win32/tcltk" +set "TCLBIN=%TCLHOME%/bin" +set "TCLLIB=%TCLHOME%/lib" +set "TCL_LIBRARY=%TCLLIB%/tcl8.5" +set "TK_LIBRARY=%TCLLIB%/tk8.5" +rem set "TCLX_LIBRARY=%TCLLIB%/teapot/package/win32-ix86/lib/tclx8.4" +rem set "TCLLIBPATH=%TCLBIN% %TCLLIB% %TCL_LIBRARY% %TK_LIBRARY% %TCLX_LIBRARY%" +set "TCLLIBPATH=%TCLBIN% %TCLLIB% %TCL_LIBRARY% %TK_LIBRARY%" + +rem ----- Setup additional variables ----- +rem set "TCL_RCFILE=%HOME%/tclshrc.tcl" +set "BISON_SIMPLE=%WOKHOME%/3rdparty/win32/codegen/bison.simple" + +rem ----- Setup Environment Variable PATH ----- +set "PATH=%WOK_LIBPATH%;%WOKHOME%/3rdparty/win32/codegen;%WOKHOME%/3rdparty/win32/utils;%TCLHOME%/bin;%TCLHOME%/lib;%WOKHOME%/3rdparty/win32/perl/bin;%PATH%" diff --git a/src/WOKsite/wok_env.sh b/src/WOKsite/wok_env.sh new file mode 100644 index 0000000..816b0ac --- /dev/null +++ b/src/WOKsite/wok_env.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +# This file setup WOK environment. +# Notice that usually you shouldn't modify this file. +# To override some settings create/edit 'custom.sh' file +# within the same directory. + +# go to the script directory +aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD"; + +# ----- Reset environment variables ----- +if [ "$PATH_BACK" == "" ]; then + export PATH_BACK="$PATH"; + export LD_PATH_BACK="$LD_LIBRARY_PATH"; + export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH"; +fi + +export TCLSH_EXE="tclsh8.5" +export PATH="$PATH_BACK"; +export LD_LIBRARY_PATH="$LD_PATH_BACK"; +export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH"; +export CPATH=""; +export LIBRARY_PATH=""; +export HAVE_TBB="false"; +export HAVE_FREEIMAGE="false"; +export HAVE_GL2PS="false"; +export PRODUCTS_DEFINES=""; + +# ----- Set local settings ----- +if [ -e "${aScriptPath}/custom.sh" ]; then + source "${aScriptPath}/custom.sh" +fi + +if [ "$HAVE_TBB" == "true" ]; then + export PRODUCTS_DEFINES="$PRODUCTS_DEFINES -DHAVE_TBB"; +fi +if [ "$HAVE_GL2PS" == "true" ]; then + export PRODUCTS_DEFINES="$PRODUCTS_DEFINES -DHAVE_GL2PS"; +fi +if [ "$HAVE_FREEIMAGE" == "true" ]; then + export PRODUCTS_DEFINES="$PRODUCTS_DEFINES -DHAVE_FREEIMAGE"; +fi + +# ----- Setup Environment Variables ----- +anArch=`uname -m` +if [ "$anArch" != "x86_64" ] && [ "$anArch" != "ia64" ]; then + export ARCH="32"; +else + export ARCH="64"; +fi + +aSystem=`uname -s` +if [ "$aSystem" == "Darwin" ]; then + export WOKSTATION="mac"; + export ARCH="64"; +else + export WOKSTATION="lin"; +fi + +# ----- Define WOK root ----- +export WOKHOME="${aScriptPath}/.."; +if [ "$HOME" != "$WOKHOME/home" ]; then + # to pass X security checks + ln -s -f "$HOME/.Xauthority" "$WOKHOME/home/.Xauthority" + export HOME="$WOKHOME/home"; +fi + +# ----- 3rd-parties root ----- +if [ "$PRODUCTS_PATH" == "" ]; then + export PRODUCTS_PATH="${WOKHOME}/3rdparty/${WOKSTATION}${ARCH}" +fi + +# ----- Setup Environment Variables for WOK ----- +export WOK_ROOTADMDIR="$WOKHOME/wok_entities"; +export WOK_LIBRARY="$WOKHOME/lib"; +export WOK_LIBPATH="$WOK_LIBRARY/$WOKSTATION"; +export WOKSITE="$WOKHOME/site"; +export WOK_SESSIONID="$HOME"; + +# ----- Setup Environment Variables PATH and LD_LIBRARY_PATH ----- +export BISON_SIMPLE="$WOKHOME/3rdparty/${WOKSTATION}${ARCH}/codegen/bison.simple" +export PATH="$WOK_LIBPATH:$PATH" +export PATH="${WOKHOME}/3rdparty/${WOKSTATION}${ARCH}/codegen:${PATH}" +aTail=":${LD_LIBRARY_PATH}" +if [ "$LD_LIBRARY_PATH" == "" ]; then aTail=""; fi +export LD_LIBRARY_PATH="${WOK_LIBPATH}${aTail}" +aTail=":$DYLD_LIBRARY_PATH" +if [ "$DYLD_LIBRARY_PATH" == "" ]; then aTail=""; fi +export DYLD_LIBRARY_PATH="${WOK_LIBPATH}${aTail}" +export WOK_LIBPATH="${WOK_LIBRARY}:${WOK_LIBPATH}" diff --git a/src/WOKsite/wok_init.bat b/src/WOKsite/wok_init.bat new file mode 100644 index 0000000..26d543b --- /dev/null +++ b/src/WOKsite/wok_init.bat @@ -0,0 +1,11 @@ +@echo off + +rem This file setup WOK environment (calls 'wok_env.bat' script) +rem and perform default initialization according to current environment. +rem As a result empty :LOC:dev will be created (if not yet exists). + +call %~dp0wok_env.bat + +rem ----- Create default Factory :Kas:dev ----- +cd %WOK_ROOTADMDIR% +%TCLBIN%/tclsh85.exe < %WOKHOME%/site/CreateFactory.tcl diff --git a/src/WOKsite/wok_init.sh b/src/WOKsite/wok_init.sh new file mode 100644 index 0000000..6a92fbe --- /dev/null +++ b/src/WOKsite/wok_init.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# This file setup WOK environment (calls 'wok_env.sh' script) +# and perform default initialization according to current environment. +# As a result empty :LOC:dev will be created (if not yet exists). + +# go to the script directory +aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD"; + +source "${aScriptPath}/wok_env.sh" + +# ----- Create default Factory :Kas:dev ----- +cd "$WOK_ROOTADMDIR" +$TCLSH_EXE < "$WOKHOME/site/CreateFactory.tcl" diff --git a/src/WOKsite/wok_tclsh.bat b/src/WOKsite/wok_tclsh.bat new file mode 100644 index 0000000..771aef4 --- /dev/null +++ b/src/WOKsite/wok_tclsh.bat @@ -0,0 +1,8 @@ +@echo off + +rem This file setup WOK environment (calls 'wok_env.bat' script) +rem and launches the TCL shell bound to WOK. + +call %~dp0wok_env.bat +cd %WOK_ROOTADMDIR% +%TCLBIN%/tclsh85.exe diff --git a/src/WOKsite/wok_tclsh.sh b/src/WOKsite/wok_tclsh.sh new file mode 100644 index 0000000..b88924f --- /dev/null +++ b/src/WOKsite/wok_tclsh.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# This file setup WOK environment (calls 'wok_env.sh' script) +# and launches the TCL shell bound to WOK. + +# go to the script directory +aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD"; + +source "${aScriptPath}/wok_env.sh" + +cd "$WOK_ROOTADMDIR" +$TCLSH_EXE diff --git a/src/WOKsite/wok_tclshrc.tcl b/src/WOKsite/wok_tclshrc.tcl new file mode 100644 index 0000000..8aa9ce7 --- /dev/null +++ b/src/WOKsite/wok_tclshrc.tcl @@ -0,0 +1,485 @@ +# +# This is a template file for a Tcl/Tk user startup file. +# +# To use it you must: +# +# On Unix/Linux system, place or invoke it in a file named .wishrc on your home directory. +# Wish, the Tcl/Tk windowing shell will automatically invoke this file. +# +# On Windows system, place this file in the directory pointed to by the variable HOME. +# Name it tclshrc.tcl or wishrc.tcl depending on the shell you want to use. +# You can then click on the Tclsh or Wish icon to start Wok. +# +# This file assumes that: +# +# On Linux platforms the variable LD_LIBRARY_PATH is setted to the name +# of the directory where Wok shareable resides. For example if you have +# downloaded Wok on /home/me/wok-C40 of a Linux system, you must set +# LD_LIBRARY_PATH to /home/me/wok-C40/lib/lin because wok shareable resides +# in this directory. See also the INSTALL file. +# +# In the same way: +# +# On SunOS platforms you set LD_LIBRARY_PATH to /home/me/wok-C40/lib/sun. +# On Windows system you set the variable PATH to C:\home\me\wok-C40\lib\wnt. +# +# The following operation are done: +# +# 1. Traversing the LD_LIBRARY_PATH or PATH variable we find where you have installed Wok. +# 2. We can: +# a) Compute the location of EDL files Wok needs for working. +# b) Modify the Tcl variable auto_path in order to add our packages: Wok and Ms +# c) In the case of a first installation, setup the directory wok_entities where +# Wok will manage to create its entities. +# +# IMPORTANT RESTRICTIONS: +# +# The purpose of this file is to provide a simple and uniform way of using Wok on Unix/Linux and on Windows. +# Be aware that if you use other Tcl tools, this can be conflicting. +# In this case you can make up a Tcl proc from this file and invoke it at the moment you choose. +# +global env tcl_platform + +if { "$tcl_platform(platform)" == "unix" } { + if { ! [file exists "/bin/csh"] } { + puts stderr "C shell is required for WOK but not found on path '/bin/csh'!" + exit + } + + if { "$tcl_platform(os)" == "HP-UX" } { + set ldpathvar SHLIB_PATH + } elseif { "$tcl_platform(os)" == "Darwin" } { + set ldpathvar DYLD_LIBRARY_PATH + } else { + set ldpathvar LD_LIBRARY_PATH + } + if { ![info exists env($ldpathvar)] } { + puts stderr "You must set $ldpathvar to point where you have installed Wok" + exit + } +} elseif { "$tcl_platform(platform)" == "windows" && ![info exists env(Path)] } { + puts stderr "You must set PATH to point where you have installed Wok" + exit +} + +if [info exists wm] { + wm withdraw . +} + +if { "$tcl_platform(platform)" == "unix" } { + set sprtor ":" + set fmtshr "lib%s.so" + if { $tcl_platform(os) == "HP-UX" } { set fmtshr "lib%s.sl" } + if { $tcl_platform(os) == "Darwin" } { set fmtshr "lib%s.dylib" } +} elseif { "$tcl_platform(platform)" == "windows" } { + set sprtor ";" + set fmtshr "%s.dll" +} + +# Wok's here we can set up our niche. +lappend auto_path $::env(WOK_LIBRARY) +package require Wok +package require Ms + +# Where tcl and edl file of wok reside +set wok_library $env(WOK_LIBRARY) +set wok_ptfm $env(WOKSTATION) +set woksite [file join $env(WOKHOME) site] + +# Prepare relative path +proc relativePath {thePathFrom thePathTo} { + if { [file isdirectory "$thePathFrom"] == 0 } { + return "" + } + + set aPathFrom [file normalize "$thePathFrom"] + set aPathTo [file normalize "$thePathTo"] + + if { [string equal "$aPathFrom" "$aPathTo"] == 1} { + return "." + } + + set aPathFromLen [string length "$aPathFrom"] + set aPathToLen [string length "$aPathTo"] + set aCommon "" + set aTail "" + set aTailTo "" + for {set anInter 1} {$anInter <= $aPathToLen} {incr anInter} { + if { [string equal -length $anInter "$aPathFrom" "$aPathTo"] == 0} { + break + } + set aCommon [string range "$aPathFrom" 0 [expr $anInter - 1]] + set aTail [string range "$aPathFrom" $anInter $aPathFromLen] + set aTailTo [string range "$aPathTo" $anInter $aPathToLen] + } + + if { [string length "$aCommon"] <= 4 } { + return "" + } + + set aRelative ".." + set aSplitIter [string first [file separator] "$aTail"] + while { $aSplitIter != -1 } { + set aRelative "${aRelative}/.." + set aTail [string range "$aTail" [expr $aSplitIter + 1] $aPathFromLen] + set aSplitIter [string first [file separator] "$aTail"] + } + + if { [string first [file separator] "$aTailTo"] == 0 } { + return "${aRelative}${aTailTo}" + } else { + return "${aRelative}/${aTailTo}" + } +} + +# Load 3rd-party dependencies info +source "$::env(WOKHOME)/site/wok_deps.tcl" + +# Show WOK configuration +set aStartDate [clock format [clock seconds] -format "%Y.%m.%d %H:%M"] +puts "Session started: $aStartDate" +puts "WOK environment configured to:" + +# Prepare 3rd-parties paths +if { "$tcl_platform(platform)" == "windows" } { + if { $env(VCVER) == "vc8" } { + puts " Visual Studio 2005 (vc8), win${env(ARCH)}" + } elseif { $env(VCVER) == "vc9" } { + puts " Visual Studio 2008 (vc9), win${env(ARCH)}" + } elseif { $env(VCVER) == "vc10" } { + puts " Visual Studio 2010 (vc10), win${env(ARCH)}" + } else { + puts " Visual Studio ???? ($env(VCVER)), win${env(ARCH)}" + } +} else { + puts " WOK Workstation: ${env(WOKSTATION)}" +} +if { "$PRODUCTS_PATH" != "" } { + puts " 3rd-parties root: '$::env(PRODUCTS_PATH)'" +} + +set anErrs {} +if { [wokdep:SearchTclTk anErrs anErrs anErrs anErrs anErrs] == "false" } { + puts " not found: Tcl/Tk (Major!)" +} +if { [wokdep:SearchFreeType anErrs anErrs anErrs anErrs anErrs] == "false" } { + puts " not found: FreeType2 (Major!)" +} +if { [wokdep:SearchFTGL anErrs anErrs anErrs anErrs anErrs] == "false" } { + puts " not found: FTGL (Major!)" +} +if { "$::HAVE_FREEIMAGE" == "true" } { + if { [wokdep:SearchFreeImage anErrs anErrs anErrs anErrs anErrs] == "false" } { + puts " not found: FreeImage (Optional, enabled)" + } +} +if { "$::HAVE_GL2PS" == "true" } { + if { [wokdep:SearchGL2PS anErrs anErrs anErrs anErrs anErrs] == "false" } { + puts " not found: GL2PS (Optional, enabled)" + } +} +if { "$::HAVE_TBB" == "true" } { + if { [wokdep:SearchTBB anErrs anErrs anErrs anErrs anErrs] == "false" } { + puts " not found: Intel TBB (Optional, enabled)" + } +} +if { "$::CHECK_QT4" == "true" } { + if { [wokdep:SearchQt4 anErrs anErrs anErrs anErrs anErrs] == "false" } { + puts " not found: Qt4 (Optional, set to check)" + } +} +if { "$::CHECK_JDK" == "true" } { + if { [wokdep:SearchJDK anErrs anErrs anErrs anErrs anErrs] == "false" } { + puts " not found: JDK (Optional, set to check)" + } +} + +# Compiler search path to the libraries +if { "$tcl_platform(platform)" == "windows" } { + # MSVC + set aEnvVarCLib "LIB" + set aEnvVarCInc "INCLUDE" +} else { + # gcc + set aEnvVarCLib "LIBRARY_PATH" + set aEnvVarCInc "CPATH" +} + +if { "$::ARCH" == "32"} { + set aCLibPaths [join $::CSF_OPT_LIB32 $::SYS_PATH_SPLITTER] +} else { + set aCLibPaths [join $::CSF_OPT_LIB64 $::SYS_PATH_SPLITTER] +} +set env($aEnvVarCLib) "${aCLibPaths}${::SYS_PATH_SPLITTER}$env($aEnvVarCLib)" + +# Compiler search path to the headers +set aCIncPaths [join $::CSF_OPT_INC $::SYS_PATH_SPLITTER] +set env($aEnvVarCInc) "${aCIncPaths}${::SYS_PATH_SPLITTER}$env($aEnvVarCInc)" + +# Search path to the libraries +if { "$::tcl_platform(platform)" != "windows" } { + # LD_LIBRARY_PATH and so on + set env($ldpathvar) "${aCLibPaths}${::SYS_PATH_SPLITTER}$env($ldpathvar)" +} + +# Executables search path +if { "$::ARCH" == "32"} { + set aBinPaths [join $::CSF_OPT_BIN32 $::SYS_PATH_SPLITTER] +} else { + set aBinPaths [join $::CSF_OPT_BIN64 $::SYS_PATH_SPLITTER] +} +set env(PATH) "${aBinPaths}${::SYS_PATH_SPLITTER}$env(PATH)" + +# Function to generate environment scripts files +if { [file exists "$::env(WOKHOME)/lib/OS.tcl"] } { + source "$::env(WOKHOME)/lib/OS.tcl" +} +proc wgenprojbat {thePath} { + source "$::env(WOKHOME)/lib/osutils.tcl" + source "$::env(WOKHOME)/lib/OS.tcl" + + set aWokCD [wokcd] + wokcd [LocateRecur OS] + winc [wokinfo -w] + set anOsIncPath [pwd] + wokcd -P Home + set anOsRootPath [pwd] + wokcd $aWokCD + set aVcVer "$::VCVER" + + set aBox [file normalize "$thePath/.."] + + if { "$::tcl_platform(platform)" == "windows" } { + set anEnvTmplFile [open "$::env(WOKHOME)/lib/templates/env.bat" "r"] + } else { + set anEnvTmplFile [open "$::env(WOKHOME)/lib/templates/env.sh" "r"] + } + set anEnvTmpl [read $anEnvTmplFile] + close $anEnvTmplFile + + set aCasRoot "" + if { [file normalize "$anOsRootPath"] != "$aBox" } { + set aCasRoot [relativePath "$aBox" "$anOsRootPath"] + } + set anOsIncPath [relativePath "$aBox" "$anOsRootPath"] + + regsub -all -- {__CASROOT__} $anEnvTmpl "$aCasRoot" anEnvTmpl + regsub -all -- {__CSF_OPT_INC__} $anEnvTmpl "$anOsIncPath" anEnvTmpl + if { "$::tcl_platform(platform)" != "windows" } { + if { "$::ARCH" == "32"} { + regsub -all -- {__CSF_OPT_LIB32__} $anEnvTmpl "${anOsRootPath}/${::env(WOKSTATION)}/cbp/lib" anEnvTmpl + regsub -all -- {__CSF_OPT_LIB32D__} $anEnvTmpl "${anOsRootPath}/${::env(WOKSTATION)}/cbp/libd" anEnvTmpl + regsub -all -- {__CSF_OPT_LIB64__} $anEnvTmpl "" anEnvTmpl + regsub -all -- {__CSF_OPT_LIB64D__} $anEnvTmpl "" anEnvTmpl + } else { + regsub -all -- {__CSF_OPT_LIB32__} $anEnvTmpl "" anEnvTmpl + regsub -all -- {__CSF_OPT_LIB32D__} $anEnvTmpl "" anEnvTmpl + regsub -all -- {__CSF_OPT_LIB64__} $anEnvTmpl "${anOsRootPath}/${::env(WOKSTATION)}/cbp/lib" anEnvTmpl + regsub -all -- {__CSF_OPT_LIB64D__} $anEnvTmpl "${anOsRootPath}/${::env(WOKSTATION)}/cbp/libd" anEnvTmpl + } + } + + if { "$::tcl_platform(platform)" == "windows" } { + set anEnvFile [open "$aBox/env.bat" "w"] + } else { + set anEnvFile [open "$aBox/env.sh" "w"] + } + puts $anEnvFile $anEnvTmpl + close $anEnvFile + + if { "$::tcl_platform(platform)" == "windows" } { + file copy -force -- "$::env(WOKHOME)/site/custom.bat" "$aBox/custom.bat" + file copy -force -- "$::env(WOKHOME)/lib/templates/draw.bat" "$aBox/draw.bat" + file copy -force -- "$::env(WOKHOME)/lib/templates/msvc.bat" "$aBox/msvc.bat" + } else { + file copy -force -- "$::env(WOKHOME)/site/custom.sh" "$aBox/custom.sh" + } +} + +# Wrapper-function to generate VS project files +proc wgenproj {{theProcArgs ""}} { + if { "$theProcArgs" != "" } { + wprocess $theProcArgs -DGroups=Src,Xcpp + } else { + wprocess -DGroups=Src,Xcpp + } + source "$::env(WOKHOME)/lib/osutils.tcl" + source "$::env(WOKHOME)/lib/OS.tcl" + set aWokCD [wokcd] + wadm [wokinfo -w] + set anAdmPath [pwd] + wokcd $aWokCD + + if { [wokinfo -x OS] } { + OS:MKPRC "$anAdmPath" "OS" "$::VCVER" + } + if { [wokinfo -x VAS] } { + OS:MKPRC "$anAdmPath" "VAS" "$::VCVER" + } + wgenprojbat "$anAdmPath" +} + +# Function to prepare environment +proc wenv {} { + # will prepend WOK branch bin / lib paths into PATH + wokenv -s + + # this staff needed to launch DRAWEXE + global env + if { $env(WOKSTATION) != "wnt" && $env(WOKSTATION) != "nil" } { + global env + set env(STATION) $env(WOKSTATION) + } + global env + set env(TARGET_DBMS) "DFLT" + set aStdRes [woklocate -u StdResource] + if { $aStdRes != "" } { + set env(CSF_PluginDefaults) [string range [wokinfo -p source:. [woklocate -u StdResource]] 0 [expr {[string length [wokinfo -p source:. $aStdRes]] - 3}]] + set env(CSF_StandardDefaults) [string range [wokinfo -p source:. [woklocate -u StdResource]] 0 [expr {[string length [wokinfo -p source:. $aStdRes]] - 3}]] + set env(CSF_StandardLiteDefaults) [string range [wokinfo -p source:. [woklocate -u StdResource]] 0 [expr {[string length [wokinfo -p source:. $aStdRes]] - 3}]] + } else { + puts "Warning! 'StdResource' package not found!" + } + + set aTextures [woklocate -u Textures] + if { $aTextures != "" } { + set env(CSF_MDTVTexturesDirectory) [string range [wokinfo -p source:. [woklocate -u Textures]] 0 [expr {[string length [wokinfo -p source:. $aTextures]] - 3}]] + } else { + puts "Warning! 'Textures' package not found!" + } + set aFontMft [woklocate -u FontMFT] + if { $aFontMft != "" } { + set env(CSF_MDTVFontDirectory) [string range [wokinfo -p source:. [woklocate -u FontMFT]] 0 [expr {[string length [wokinfo -p source:. $aFontMft]] - 3}]] + } else { + puts "Warning! 'FontMFT' package not found!" + } + + set aXSMsg [woklocate -u XSMessage] + if { $aXSMsg != "" } { + set env(CSF_XSMessage) [string range [wokinfo -p source:. [woklocate -u XSMessage]] 0 [expr {[string length [wokinfo -p source:. $aXSMsg]] - 3}]] + } else { + puts "Warning! 'XSMessage' package not found!" + } + set aSHMsg [woklocate -u SHMessage] + if { $aSHMsg != "" } { + set env(CSF_SHMessage) [string range [wokinfo -p source:. [woklocate -u SHMessage]] 0 [expr {[string length [wokinfo -p source:. $aSHMsg]] - 3}]] + } else { + puts "Warning! 'SHMessage' package not found!" + } + + if { $aStdRes != "" } { + set env(CSF_XCAFDefaults) [string range [wokinfo -p source:. $aStdRes] 0 [expr {[string length [wokinfo -p source:. $aStdRes]] - 3}]] + } + set aStepRes [woklocate -u XSTEPResource] + if { $aStepRes != "" } { + set env(CSF_STEPDefaults) [string range [wokinfo -p source:. $aStepRes] 0 [expr {[string length [wokinfo -p source:. $aStepRes]] - 3}]] + set env(CSF_IGESDefaults) [string range [wokinfo -p source:. $aStepRes] 0 [expr {[string length [wokinfo -p source:. $aStepRes]] - 3}]] + } else { + puts "Warning! 'XSTEPResource' package not found!" + } + + # main DRAWEXE commands + set aDrawRes [woklocate -u DrawResources] + if { $aDrawRes != "" } { + set env(DRAWHOME) [string range [wokinfo -p source:. $aDrawRes] 0 [expr {[string length [wokinfo -p source:. $aDrawRes]] - 3}]] + set env(CSF_DrawPluginDefaults) $env(DRAWHOME) + set env(DRAWDEFAULT) $env(DRAWHOME)/DrawDefault + } else { + puts "Warning! 'DrawResources' package not found!" + } + + # products DRAWEXE commands (optional) + set aDrawProdsRes [woklocate -u DrawResourcesProducts] + if { $aDrawProdsRes != "" } { + set env(CSF_DrawPluginProductsDefaults) [string range [wokinfo -p source:. $aDrawProdsRes] 0 [expr {[string length [wokinfo -p source:. $aDrawProdsRes]] - 3}]] + #Usage: pload -DrawPluginProducts ALL + } else { + #puts "Warning! 'DrawResourcesProducts' package not found!" + } + + if { $env(WOKSTATION) == "wnt" } { + set aTkGlLib [woklocate -p TKOpenGl:library:TKOpenGl.dll] + } elseif { $env(WOKSTATION) == "mac" } { + set aTkGlLib [woklocate -p TKOpenGl:library:libTKOpenGl.dylib] + } else { + set aTkGlLib [woklocate -p TKOpenGl:library:libTKOpenGl.so] + } + if { $aTkGlLib != "" } { + set env(CSF_GraphicShr) $aTkGlLib + } else { + puts "Warning! 'TKOpenGl' library not found!" + } + + puts "Environment configured" +} + +# Search branch using filter +proc wbranch {theFilter} { + set aBranchesAll [sinfo -w] + set anIndices [lsearch -all ${aBranchesAll} $theFilter] + set aResult {} + foreach aBranchId $anIndices { + lappend aResult [lindex $aBranchesAll $aBranchId] + } + return $aResult +} + +# Where the files ATLIST, DEFAULT.edl and SESSION.edl reside +if {![info exists env(WOK_ROOTADMDIR)] } { + set env(WOK_ROOTADMDIR) [file normalize $env(WOKHOME)/wok_entities] + if ![file exists $env(WOK_ROOTADMDIR)] { + if [file writable $env(WOKHOME)] { + puts stderr "Creating directory $env(WOK_ROOTADMDIR) for wok entities..." + if [catch { wokUtils:FILES:mkdir $env(WOK_ROOTADMDIR) } status] { + puts stderr "Error : $status" + return + } + if ![file exists $env(WOK_ROOTADMDIR)] { + return + } + } else { + puts stderr "The directory $env(WOK_ROOTADMDIR) cannot be created because $env(WOKHOME) is not writable." + puts stderr "Please give write access to this directory." + return + } + } else { + #puts stderr "Using $env(WOKHOME)/wok_entities for working entities." + } +} else { + if ![file exists $env(WOK_ROOTADMDIR)] { + puts stderr "The directory $env(WOK_ROOTADMDIR) can not be found" + return + } + #puts stderr "Using variable WOK_ROOTADMDIR = $env(WOK_ROOTADMDIR) for working entities." +} + +# Check if Wok stuff is correct. If not set it up silently. +if ![file exists [set woksession [file join $env(WOK_ROOTADMDIR) WOKSESSION.edl]]] { + set str1 [wokUtils:FILES:FileToString [file join $woksite WOKSESSION.edl]] + regsub -all -- {TOSUBSTITUTE} "$str1" "[file normalize $env(WOK_ROOTADMDIR)]" result1 + wokUtils:FILES:StringToFile $result1 $woksession + if [file exists $woksession] { + puts stderr "File $woksession has been created. " + } +} + +# +if ![file exists [set default [file join $env(WOK_ROOTADMDIR) DEFAULT.edl]]] { + set str2 [wokUtils:FILES:FileToString [file join $woksite DEFAULT.edl]] + regsub -all -- {__DEFHOME__} "$str2" "[file normalize $::env(WOK_ROOTADMDIR)]" result2 + regsub -all -- {__DEFSTATION__} $result2 "$::env(WOKSTATION)" result2 + wokUtils:FILES:StringToFile $result2 $default + if [file exists $default] { + puts stderr "File $default has been created. " + } +} + +# Where to read/write the current working entity +set env(WOK_SESSIONID) $env(HOME)/.wok + +# Everything seems OK. Display a nice prompt: +set tcl_prompt1 {if {[info commands wokcd] != ""} then \ + {puts -nonewline stdout "[wokcd]> "} else \ + {puts -nonewline stdout "tclsh> "}} +cd $env(WOK_ROOTADMDIR) +wokclose -a