;# Should be overwritten
;#
proc osutils:dsp:readtemplate { } {
- puts stderr "Info : readtemplate : Template for MS project from [set loc /adv_20/KAS/C40/ros/src/OS/template.dsp]"
+ set loc [wokinfo -p source:template.dsp KAS:dev:ros:WOKTclLib]
+ puts stderr "Info : readtemplate : Template for MS project from $loc"
return [wokUtils:FILES:FileToString $loc]
}
proc osutils:dsp:readtemplatex { } {
- puts stderr "Info : readtemplate : Template for MS project from [set loc /adv_20/KAS/C40/ros/src/OS/template.dspx]"
+ puts stderr "Info : readtemplate : Template for MS project from [set loc [wokinfo -p source:template.dspx KAS:dev:ros:WOKTclLib]]"
return [wokUtils:FILES:FileToString $loc]
}
proc osutils:am:readtemplate { } {
- puts stderr "Info : readtemplate : Template for Makefile.am from [set loc /adv_20/KAS/C40/ros/src/WOKTclLib/template.mam]"
+ puts stderr "Info : readtemplate : Template for Makefile.am from [set loc [wokinfo -p source:template.mam KAS:dev:ros:WOKTclLib]]"
return [wokUtils:FILES:FileToString $loc]
}
proc osutils:am:readtemplatex { } {
- puts stderr "Info : readtemplatex : Template for Makefile.am from [set loc /adv_20/KAS/C40/ros/src/WOKTclLib/template.mamx]"
+ puts stderr "Info : readtemplatex : Template for Makefile.am from [set loc [wokinfo -p source:template.mamx KAS:dev:ros:WOKTclLib]]"
return [wokUtils:FILES:FileToString $loc]
}
proc osutils:in:readtemplate { } {
- puts stderr "Info : readtemplate : Template for Makefile.in from [set loc /adv_20/KAS/C40/ros/src/WOKTclLib/template.min]"
+ puts stderr "Info : readtemplate : Template for Makefile.in from [set loc [wokinfo -p source:template.min KAS:dev:ros:WOKTclLib]]"
return [wokUtils:FILES:FileToString $loc]
}
proc osutils:in:readtemplatex { } {
- puts stderr "Info : readtemplatex : Template for Makefile.in from [set loc /adv_20/KAS/C40/ros/src/WOKTclLib/template.minx]"
+ puts stderr "Info : readtemplatex : Template for Makefile.in from [set loc [wokinfo -p source:template.minx KAS:dev:ros:WOKTclLib]]"
return [wokUtils:FILES:FileToString $loc]
}
"\}\}\}" "\n" \
"\n" \
"Package=<4>" "\n" \
- "\{\{\{" "\n" \
- " Begin Project Dependency" "\n" \
- " Project_Dep_Name $Dep_Name" "\n" \
- " End Project Dependency" "\n" \
- "\}\}\}" "\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"
;#
proc osutils:justunix { listloc } {
set lret {}
- set goaway [list WNT]
+ set goaway [list WNT WOKNT]
foreach u $listloc {
if { [lsearch $goaway [wokinfo -n $u]] == -1 } {
lappend lret $u
}
return $lret
}
+;#
+;# Define libraries to link
+proc LibToLink {tkit} {
+ if {[uinfo -t $tkit] == "toolkit"} {
+ set l {}
+ set LibList [woklocate -p [wokinfo -n $tkit]:stadmfile:[wokinfo -n $tkit]_lib_tks.Out]
+ if ![ catch { set id [ open $LibList r ] } status ] {
+ while {[gets $id x] >= 0 } {
+ if [regexp -- {(-E[^ ]*)} $x] {
+ set endnameid [expr { [string wordend $x 4] -1 }]
+ set fx [string range $x 3 $endnameid]
+ if {[uinfo -t [wokcd]:[file rootname $fx]] == "toolkit"} {
+ lappend l $fx
+ }
+ }
+ #if [regexp -- {(-VE[^ ]*)} $x] {
+ # set startid [string first CSF $x]
+ # set endid [ expr { [string wordend $x $startid] -1 } ]
+ # set fx [string range $x $startid $endid]
+ # lappend l $fx
+ #}
+
+ }
+ close $id
+ } else {
+ puts $status
+ }
+ return $l
+ }
+}
+
+proc LibToLinkX {tkit name} {
+ if {[uinfo -t $tkit] == "executable"} {
+ set l {}
+ set LibList [woklocate -p [wokinfo -n $tkit]:stadmfile:[wokinfo -n $tkit]_exec_tks_${name}.Out]
+ if ![ catch { set id [ open $LibList r ] } status ] {
+ while {[gets $id x] >= 0 } {
+ if [regexp -- {(-E[^ ]*)} $x] {
+ set endnameid [expr { [string wordend $x 4] -1 }]
+ set fx [string range $x 3 $endnameid]
+ lappend l $fx
+ }
+ #if [regexp -- {(-VE[^ ]*)} $x] {
+ # set startid [string first CSF $x]
+ # set endid [ expr { [string wordend $x $startid] -1 } ]
+ # set CSF_fx [string range $x $startid $endid]
+ # if { $CSF_fx != "-"} {
+ # puts $CSF_fx
+ # set fx [file tail [lindex [wokparam -v \%$CSF_fx $tkit] 0]]
+ # lappend l $fx
+ # }
+ #}
+
+ }
+ close $id
+ } else {
+ puts $status
+ }
+ return $l
+ }
+}
+
+
;#
;# ((((((((WOK toolkits manipulations))))))))
;#
set result {}
set recurse {}
foreach dir $ltk {
- set ids [woklocate -p [wokinfo -n [wokinfo -u $dir]]:source:EXTERNLIB [wokinfo -w $dir]]
+ #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]
- ;#puts "EXTERNLIB dir = $dir ids = $ids result = $result"
+ set ids [LibToLink $dir]
+ set result [concat $result $ids]
+ #puts "EXTERNLIB dir = $dir ids = $ids result = $result eated = $eated"
foreach file $eated {
- ;#puts "file = $file"
set kds [woklocate -p [wokinfo -n [wokinfo -u $file]]:source:EXTERNLIB [wokinfo -w $file]]
if { [osutils:tk:eatpk $kds] != {} } {
lappend recurse $file
if { $recurse != {} } {
set result [concat $result [osutils:tk:close $recurse]]
}
+ #puts $result
return $result
}
;#
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 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"
+ #puts " listloc = $listloc"
if { $l_compilable == {} } {
set l_comp [list .c .cxx .cpp]
} else {
set utyp [uinfo -t $loc]
if [array exists map] { unset map }
osutils:tk:loadunit $loc map
- ;#puts " loc = $loc === > [array names map]"
+ #puts " loc = $loc === > [array names map]"
set LType $Tfiles(source,${utyp})
foreach typ [array names map] {
if { [lsearch $LType $typ] == -1 } {
}
}
foreach type [array names map] {
+ #puts $type
foreach f $map($type) {
+ #puts $f
if { [lsearch $l_comp [file extension $f]] != -1 } {
if { $justail == 1 } {
- lappend lret [file tail $f]
+ 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
}
foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {
append tkused "${tkx}.lib "
}
+ foreach tk [lappend [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] $tkloc] {
+ foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
+ if {[wokparam -t %$element] != 0} {
+ set felem [file tail [lindex [wokparam -v "%$element"] 0]]
+ if {[lsearch $tkused $felem] == "-1"} {
+ if {$felem != "\{\}"} {
+ set tkused [concat $tkused $felem]
+ }
+ }
+ }
+ }
+ }
+
+ #puts "alternative [LibToLink $tkloc]"
puts "$tkloc requires $tkused"
regsub -all -- {__TKDEP__} $temp0 $tkused temp1
set files ""
;#set lsrc [lsort [osutils:tk:files $tkloc osutils:am:compilable 1 osutils:justwnt]]
if [array exists written] { unset written }
foreach fxlo $resultloc {
- set xlo [wokinfo -n $fxlo]
+ set xlo [wokinfo -n $fxlo]
+ append files "# Begin Group \"${xlo}\"" "\n"
set lsrc [osutils:tk:files $xlo osutils:am:compilable 0]
- foreach f $lsrc {
+ set fxloparam [lindex [intersect3 [split [lindex [wokparam -v %CMPLRS_CXX_Options] 0]] [split [lindex [wokparam -v %CMPLRS_CXX_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] "\n"
+ append files [format $fmtcpp $xlo $xlo $xlo] "$needparam" "\n"
append files "# End Source File" "\n"
} else {
puts "Warning : in dsp more than one occurences for [file tail $f]"
}
}
+ append files "# End Group" "\n"
}
regsub -all -- {__FILES__} $temp1 $files temp2
proc osutils:mkdspx { dir tkloc {tmplat {} } {fmtcpp {} } } {
if { $tmplat == {} } {set tmplat [osutils:dsp:readtemplatex]}
if { $fmtcpp == {} } {set fmtcpp [osutils:dsp:fmtcppx]}
- set fp [open [set fdsp [file join $dir ${tkloc}.dsp]] w]
- fconfigure $fp -translation crlf
- set l_compilable [osutils:dsp:compilable]
- regsub -all -- {__XQTNAM__} $tmplat $tkloc temp0
- set tkused ""
- foreach tkx [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]] {
- append tkused "${tkx}.lib "
- }
- puts "$tkloc requires $tkused"
- regsub -all -- {__TKDEP__} $temp0 $tkused temp1
- set files ""
- set lsrc [osutils:tk:files $tkloc osutils:am:compilable 0]
- foreach f $lsrc {
+ foreach f [osutils:tk:files $tkloc osutils:am:compilable 0] {
+ set tf [file rootname [file tail $f]]
+ set fp [open [set fdsp [file join $dir ${tf}.dsp]] w]
+ fconfigure $fp -translation crlf
+ set l_compilable [osutils:dsp:compilable]
+ regsub -all -- {__XQTNAM__} $tmplat $tf temp0
+ set tkused ""
+ puts [LibToLinkX $tkloc $tf]
+ foreach tkx [LibToLinkX $tkloc $tf] {
+ if {[uinfo -t $tkx] == "toolkit"} {
+ append tkused "${tkx}.lib "
+ }
+ if {[lsearch [w_info -l] $tkx] == "-1"} {
+ append tkused "${tkx}.lib "
+ }
+ }
+ foreach tk [LibToLinkX $tkloc $tf] {
+ foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
+ if {[wokparam -t %$element] != 0} {
+ set felem [file tail [lindex [wokparam -v "%$element"] 0]]
+ if {[lsearch $tkused $felem] == "-1"} {
+ if {$felem != "\{\}"} {
+ #puts "was found $element $felem"
+ set tkused [concat $tkused $felem]
+ }
+ }
+ }
+ }
+ }
+ if {[wokparam -v %WOKSteps_exec_link $tkloc] == "#WOKStep_DLLink(exec.tks)"} {
+ set tkused [concat $tkused "\/dll"]
+ regsub -all -- {__DEST__} $temp0 "dll" temp1
+ } else {
+ regsub -all -- {__DEST__} $temp0 "bin" temp1
+ }
+ puts "$tf requires $tkused"
+ regsub -all -- {__TKDEP__} $temp1 $tkused temp2
+ set files ""
+ ;#set lsrc [osutils:tk:files $tkloc osutils:am:compilable 0]
+ ;#foreach f $lsrc {
if { ![info exists written([file tail $f])] } {
set written([file tail $f]) 1
+ append files "# Begin Group \"" $tkloc "\" \n"
append files "# Begin Source File" "\n"
append files "SOURCE=..\\..\\" [wokUtils:EASY:bs1 [wokUtils:FILES:wtail $f 3]] "\n"
append files [format $fmtcpp $tkloc $tkloc $tkloc] "\n"
append files "# End Source File" "\n"
+ append files "# End Group" "\n"
} else {
puts "Warning : in dsp more than one occurences for [file tail $f]"
}
- }
+ ;#}
- regsub -all -- {__FILES__} $temp1 $files temp2
- puts $fp $temp2
+ regsub -all -- {__FILES__} $temp2 $files temp3
+ puts $fp $temp3
close $fp
- return $fdsp
+ set fout [lappend fout $fdsp]
+ }
+ return $fout
}
;#
;# (((((((((((((((((((((((( AUTOMAKE/ PROJECTs )))))))))))))))))))))))
puts stderr "osutils:tk:mkam : Error. File PACKAGES not found for toolkit $tkloc."
return {}
}
-
set tmplat [osutils:am:readtemplate]
set lpkgs [osutils:justunix [wokUtils:FILES:FileToList $pkgs]]
set close [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
set source [osutils:am:__SOURCES__ $lsrc]
regsub -all -- {__SOURCES__} "$temp3" "$source" temp4
regsub -all -- {__EXTERNINC__} "$temp4" "$externinc" temp5
- regsub -all -- {__EXTERNLIB__} "$temp5" "$externlib" MakeFile_am
+ set CXXFl [osutils:am:__CXXFLAG__ $lpkgs]
+ regsub -all -- {__CXXFLAG__} "$temp5" "$CXXFl" temp6
+ set CFl [osutils:am:__CFLAG__ $lpkgs]
+ regsub -all -- {__CFLAG__} "$temp6" "$CFl" temp7
+
+ regsub -all -- {__EXTERNLIB__} "$temp7" "$externlib" MakeFile_am
wokUtils:FILES:StringToFile "$MakeFile_am" [set fmam [file join $dir Makefile.am]]
- catch { unset temp0 temp1 temp2 temp3 temp4 temp5}
+ catch { unset temp0 temp1 temp2 temp3 temp4 temp5 temp6 temp7}
- set tmplat [osutils:in:readtemplate]
+ #set tmplat [osutils:in:readtemplate]
- regsub -all -- {__TKNAM__} "$tmplat" "$tkloc" temp0
- if { $close != {} } {
- set dpncies [osutils:in:__DEPENDENCIES__ $close]
- } else {
+ #regsub -all -- {__TKNAM__} "$tmplat" "$tkloc" temp0
+ #if { $close != {} } {
+ #set dpncies [osutils:in:__DEPENDENCIES__ $close]
+ #} else {
set dpncies ""
- }
- regsub -all -- {__DEPENDENCIES__} "$temp0" "$dpncies" temp1
+ #}
+ #regsub -all -- {__DEPENDENCIES__} "$temp0" "$dpncies" temp1
- set objects [osutils:in:__OBJECTS__ $lobj]
- regsub -all -- {__OBJECTS__} "$temp1" "$objects" temp2
- set amdep [osutils:in:__AMPDEP__ $lobj]
- regsub -all -- {__AMPDEP__} "$temp2" "$amdep" temp3
- set amdeptrue [osutils:in:__AMDEPTRUE__ $lobj]
- regsub -all -- {__AMDEPTRUE__} "$temp3" "$amdeptrue" temp4
+ #set objects [osutils:in:__OBJECTS__ $lobj]
+ #regsub -all -- {__OBJECTS__} "$temp1" "$objects" temp2
+ #set amdep [osutils:in:__AMPDEP__ $lobj]
+ #regsub -all -- {__AMPDEP__} "$temp2" "$amdep" temp3
+ #set amdeptrue [osutils:in:__AMDEPTRUE__ $lobj]
+ #regsub -all -- {__AMDEPTRUE__} "$temp3" "$amdeptrue" temp4
;# so easy..
- regsub -all -- {__MAKEFILEIN__} "$temp4" "$MakeFile_am" MakeFile_in
-
- wokUtils:FILES:StringToFile "$MakeFile_in" [set fmin [file join $dir Makefile.in]]
+ #regsub -all -- {__MAKEFILEIN__} "$temp4" "$MakeFile_am" MakeFile_in
- return [list $fmam $fmin]
+ #wokUtils:FILES:StringToFile "$MakeFile_in" [set fmin [file join $dir Makefile.in]]
+ return [list $fmam]
+ #return [list $fmam $fmin]
}
;#
;# Create in dir the Makefile.am associated with toolkit tkloc.
;# Returns the full path of the created file.
;#
proc osutils:tk:mkamx { dir tkloc } {
- 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 [wokcd]:$tkloc] ${tkloc}_WOKSteps.edl] != "-1"} {
+ set pkgs [woklocate -p ${tkloc}:EXTERNLIB]
+ if { $pkgs == {} } {
+ puts stderr "osutils:tk:mkamx : Error. File EXTERNLIB not found for executable $tkloc."
+ #return {}
}
-
set tmplat [osutils:am:readtemplatex]
- set lpkgs [osutils:justunix [wokUtils:FILES:FileToList $pkgs]]
set close [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
set lsrc [lsort [osutils:tk:files $tkloc osutils:am:compilable 1 osutils:justunix]]
set lobj [wokUtils:LIST:sanspoint $lsrc]
-
- set lcsf [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]]
+ set CXXList {}
+ foreach SourceFile [uinfo -f -T source $tkloc] {
+ if {[file extension $SourceFile] == ".cxx"} {
+ lappend CXXList [file rootname $SourceFile]
+ }
+ }
+ set pkgs [LibToLinkX $tkloc [lindex $CXXList 0]]
+ set lpkgs [osutils:justunix [wokUtils:FILES:FileToList $pkgs]]
+ puts "pkgs $pkgs"
+ #set lcsf [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]]
set lcsf {}
- foreach tk $close {
- set lcsf [concat $lcsf [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]]]
+ foreach tk $pkgs {
+ foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
+ if {[lsearch $lcsf $element] == "-1"} {
+ set lcsf [concat $lcsf $element]
+ }
+ }
}
-
set final 0
set externinc ""
set externlib ""
set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0]
set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0]
}
-
regsub -all -- {__XQTNAM__} "$tmplat" "$tkloc" temp0
- set temp1 $temp0
+ set temp1 "$temp0 \nlib_LTLIBRARIES="
+ foreach entity $CXXList {
+ set temp1 "${temp1} lib${entity}.la"
+ }
+ set temp1 "${temp1}\n"
set inclu [osutils:am:__INCLUDES__ $lpkgs]
regsub -all -- {__INCLUDES__} "$temp1" "$inclu" temp2
- if { $close != {} } {
- set libadd [osutils:am:__LIBADD__ $close $final]
+ if { $pkgs != {} } {
+ set libadd [osutils:am:__LIBADD__ $pkgs $final]
} else {
set libadd ""
}
regsub -all -- {__LIBADD__} "$temp2" "$libadd" temp3
- set source [osutils:am:__SOURCES__ $lsrc]
+ set source [osutils:am:__SOURCES__ $CXXList]
regsub -all -- {__SOURCES__} "$temp3" "$source" temp4
- regsub -all -- {__EXTERNINC__} "$temp4" "$externinc" temp5
- regsub -all -- {__EXTERNLIB__} "$temp5" "$externlib" MakeFile_am
-
+ regsub -all -- {__EXTERNINC__} "$temp4" "$externinc" MakeFile_am
+ foreach entity $CXXList {
+ set MakeFile_am "$MakeFile_am lib${entity}_la_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n"
+ }
+ foreach entity $CXXList {
+ set MakeFile_am "$MakeFile_am lib${entity}_la_LIB_ADD = $libadd $externlib \n"
+ }
wokUtils:FILES:StringToFile "$MakeFile_am" [set fmam [file join $dir Makefile.am]]
catch { unset temp0 temp1 temp2 temp3 temp4 temp5}
+ return [list $fmam]
- set tmplat [osutils:in:readtemplatex]
-
+ } else {
+ set pkgs [woklocate -p ${tkloc}:EXTERNLIB]
+ if { $pkgs == {} } {
+ puts stderr "osutils:tk:mkamx : Error. File EXTERNLIB not found for executable $tkloc."
+ #return {}
+ }
+ set tmplat [osutils:am:readtemplatex]
+ set close [wokUtils:LIST:Purge [osutils:tk:close [woklocate -u $tkloc]]]
+ set lsrc [lsort [osutils:tk:files $tkloc osutils:am:compilable 1 osutils:justunix]]
+ set lobj [wokUtils:LIST:sanspoint $lsrc]
+ set CXXList {}
+ foreach SourceFile [uinfo -f -T source $tkloc] {
+ if {[file extension $SourceFile] == ".cxx"} {
+ lappend CXXList [file rootname $SourceFile]
+ }
+ }
+ set pkgs [LibToLinkX $tkloc [lindex $CXXList 0]]
+ set lpkgs [osutils:justunix [wokUtils:FILES:FileToList $pkgs]]
+ set lcsf [osutils:tk:hascsf [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]]
+
+ set lcsf {}
+ foreach tk $pkgs {
+ foreach element [osutils:tk:hascsf [woklocate -p ${tk}:source:EXTERNLIB [wokcd]]] {
+ if {[lsearch $lcsf $element] == "-1"} {
+ set lcsf [concat $lcsf $element]
+ }
+ }
+ }
+ set final 0
+ set externinc ""
+ set externlib ""
+ if { $lcsf != {} } {
+ set final 1
+ set fmtinc "\$(%s_INCLUDES) "
+ set fmtlib "\$(%s_LIB) "
+ set externinc [wokUtils:EASY:FmtSimple1 $fmtinc $lcsf 0]
+ set externlib [wokUtils:EASY:FmtSimple1 $fmtlib $lcsf 0]
+ }
regsub -all -- {__XQTNAM__} "$tmplat" "$tkloc" temp0
- if { $close != {} } {
- set dpncies [osutils:in:__DEPENDENCIES__ $close]
+ set temp1 "$temp0 \nbin_PROGRAMS="
+ foreach entity $CXXList {
+ set temp1 "${temp1} ${entity}"
+ }
+
+ set temp1 "${temp1}\n"
+ set inclu [osutils:am:__INCLUDES__ $lpkgs]
+ regsub -all -- {__INCLUDES__} "$temp1" "$inclu" temp2
+ if { $pkgs != {} } {
+ set libadd [osutils:am:__LIBADD__ $pkgs $final]
} else {
- set dpncies ""
+ set libadd ""
}
- regsub -all -- {__DEPENDENCIES__} "$temp0" "$dpncies" temp1
-
- ;#set objects [osutils:in:__OBJECTS__ $lobj]
- ;#regsub -all -- {__OBJECTS__} "$temp1" "$objects" temp2
- set temp2 $temp1
- ;#set amdep [osutils:in:__AMPDEP__ $lobj]
- ;#regsub -all -- {__AMPDEP__} "$temp2" "$amdep" temp3
- set temp3 $temp2
- ;#set amdeptrue [osutils:in:__AMDEPTRUE__ $lobj]
- ;#regsub -all -- {__AMDEPTRUE__} "$temp3" "$amdeptrue" temp4
- set temp4 $temp3
-;# so easy..
- regsub -all -- {__MAKEFILEIN__} "$temp4" "$MakeFile_am" MakeFile_in
+ set source [osutils:am:__SOURCES__ $CXXList]
+ regsub -all -- {__SOURCES__} "$temp2" "$source" temp3
+ regsub -all -- {__EXTERNINC__} "$temp3" "$externinc" MakeFile_am
+ foreach entity $CXXList {
+ set MakeFile_am "$MakeFile_am ${entity}_SOURCES = @top_srcdir@/src/${tkloc}/${entity}.cxx \n"
+ }
+ foreach entity $CXXList {
+ set MakeFile_am "$MakeFile_am ${entity}_LDADD = $libadd $externlib \n"
+ }
+ wokUtils:FILES:StringToFile "$MakeFile_am" [set fmam [file join $dir Makefile.am]]
+
+ catch { unset temp0 temp1 temp2 temp3 temp4 temp5}
+
+ # set tmplat [osutils:in:readtemplatex]
+
+ # regsub -all -- {__XQTNAM__} "$tmplat" "$tkloc" temp0
+ # if { $close != {} } {
+ #set dpncies [osutils:in:__DEPENDENCIES__ $close]
+ # } else {
+ #set dpncies ""
+ # }
+ # regsub -all -- {__DEPENDENCIES__} "$temp0" "$dpncies" temp1
- wokUtils:FILES:StringToFile "$MakeFile_in" [set fmin [file join $dir Makefile.in]]
+ # set objects [osutils:in:__OBJECTS__ $lobj]
+ # regsub -all -- {__OBJECTS__} "$temp1" "$objects" temp2
+ # #set temp2 $temp1
+ # set amdep [osutils:in:__AMPDEP__ $lobj]
+ # regsub -all -- {__AMPDEP__} "$temp2" "$amdep" temp3
+ #set temp3 $temp2
+ # set amdeptrue [osutils:in:__AMDEPTRUE__ $lobj]
+ # regsub -all -- {__AMDEPTRUE__} "$temp3" "$amdeptrue" temp4
+ #set temp4 $temp3
+;# so easy..
+ # regsub -all -- {__MAKEFILEIN__} "$temp4" "$MakeFile_am" MakeFile_in
- return [list $fmam $fmin]
+ #wokUtils:FILES:StringToFile "$MakeFile_in" [set fmin [file join $dir Makefile.in]]
+ return [list $fmam]
+ #return [list $fmam $fmin]
+ }
}
;#
return $u
}
}
+proc osutils:am:PkCXXOption ppk {
+ set CXXCOMMON [lindex [wokparam -e %CMPLRS_CXX_Options [wokcd]] 0]
+ set FoundFlag ""
+ foreach pk $ppk {
+ if {[lsearch [uinfo -f -T source [wokcd]:$pk] ${pk}_CMPLRS.edl] != "-1"} {
+ set CXXStr [lindex [wokparam -e %CMPLRS_CXX_Options $pk] 0]
+ set LastIndex [expr {[string length $CXXCOMMON ] - 1}]
+ if {[string equal $CXXCOMMON [string range $CXXStr 0 $LastIndex]]} {
+ set CXXOption [string range $CXXStr $LastIndex end ]
+ } else {
+ set CXXOption [string range $CXXStr 0 [expr {[string last $CXXCOMMON $CXXStr] - 1}]]
+ }
+ if {$CXXOption != " " && $CXXOption != "" && $CXXOption != " " && $CXXOption != " "} {
+ set FoundList [split $CXXOption " "]
+ foreach elem $FoundList {
+ if {$elem != ""} {
+ if {[string first "-I" $elem] == "-1" } {
+ if {[string first $elem $FoundFlag] == "-1"} {
+ set FoundFlag "$FoundFlag $elem"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return $FoundFlag
+}
+
+proc osutils:am:PkCOption ppk {
+ set CCOMMON [lindex [wokparam -e %CMPLRS_C_Options [wokcd]] 0]
+ set FoundFlag ""
+ foreach pk $ppk {
+ if {[lsearch [uinfo -f -T source [wokcd]:$pk] ${pk}_CMPLRS.edl] != "-1"} {
+ set CStr [lindex [wokparam -e %CMPLRS_C_Options $pk] 0]
+ set LastIndex [expr {[string length $CCOMMON ] - 1}]
+ if {[string equal $CCOMMON [string range $CStr 0 $LastIndex]]} {
+ set COption [string range $CStr $LastIndex end ]
+ } else {
+ set COption [string range $CStr 0 [expr {[string last $CCOMMON $CStr] - 1}]]
+ }
+ if {$COption != " " && $COption != "" && $COption != " " && $COption != " "} {
+ set FoundList [split $COption " "]
+ foreach elem $FoundList {
+ if {$elem != ""} {
+ if {[string first "-I" $elem] == "-1" } {
+ if {[string first $elem $FoundFlag] == "-1"} {
+ set FoundFlag "$FoundFlag $elem"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+return $FoundFlag
+}
+
+proc osutils:am:__CXXFLAG__ { l } {
+ set fmt "%s"
+ #puts "l is: $l"
+ return [wokUtils:EASY:FmtString1 $fmt [osutils:am:PkCXXOption $l]]
+}
+;#
+;# Used to replace the string __CFLAG__ in Makefile.am
+;# l is the list of all compilable files in a toolkit.
+;#
+proc osutils:am:__CFLAG__ { l } {
+ set fmt "%s"
+ return [wokUtils:EASY:FmtString1 $fmt [osutils:am:PkCOption $l]]
+}
+
;#
;# Used to replace the string __INCLUDES__ in Makefile.am
;# l is the list of packages in a toolkit.
;#
proc osutils:am:__INCLUDES__ { l } {
- set fmt "-I@top_srcdir@/drv/%s"
- return [wokUtils:EASY:FmtString1 $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
;#############################################################
;#
-proc TESTAM { {root home/AUTOCONF/src} } {
+proc TESTAM { {root /dn04/OS/OCC/RELEASE/ros/adm/make} } {
- set root /home/AUTOCONF/src/
-
- wokcd KAS:C40:ros
- set ltk [w_info -T toolkit [wokcd]]
+ wokcd KAS:dev:ros
+ set ltk [w_info -T toolkit OS:OCC:RELEASE]
;#set ltk TKernel
foreach tkloc $ltk {
- puts " toolkit: $tkloc ==> [woklocate -p ${tkloc}:source:EXTERNLIB KAS:C40:ros]"
+ puts " toolkit: $tkloc ==> [woklocate -p ${tkloc}:source:EXTERNLIB [wokcd]]"
wokUtils:FILES:mkdir $root/$tkloc
osutils:tk:mkam $root/$tkloc $tkloc
+ #osutils:mkdsp $root/$tkloc $tkloc
}
-
- set ltk [w_info -T executable [wokcd]]
-# set ltk {}
+ set ltk [w_info -T executable OS:OCC:RELEASE]
foreach tkloc $ltk {
- puts " Executable: $tkloc ==> [woklocate -p ${tkloc}:source:EXTERNLIB KAS:C40:ros]"
wokUtils:FILES:mkdir $root/$tkloc
- osutils:tk:mkamx $root/$tkloc $tkloc
+ osutils:tk:mkamx $root/$tkloc $tkloc
+# osutils:mkdspx $root/$tkloc $tkloc
}
}
-# Microsoft Developer Studio Project File - Name="__XQTNAM__" - Package Owner=<4>\r
-# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
-# ** DO NOT EDIT **\r
-\r
-# TARGTYPE "Win32 (x86) Application" 0x0101\r
-\r
-CFG=__XQTNAM__ - Win32 Debug\r
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
-!MESSAGE use the Export Makefile command and run\r
-!MESSAGE \r
-!MESSAGE NMAKE /f "__XQTNAM__.mak".\r
-!MESSAGE \r
-!MESSAGE You can specify a configuration when running NMAKE\r
-!MESSAGE by defining the macro CFG on the command line. For example:\r
-!MESSAGE \r
-!MESSAGE NMAKE /f "__XQTNAM__.mak" CFG="__XQTNAM__ - Win32 Debug"\r
-!MESSAGE \r
-!MESSAGE Possible choices for configuration are:\r
-!MESSAGE \r
-!MESSAGE "__XQTNAM__ - Win32 Release" (based on "Win32 (x86) Application")\r
-!MESSAGE "__XQTNAM__ - Win32 Debug" (based on "Win32 (x86) Application")\r
-!MESSAGE \r
-\r
-# Begin Project\r
-# PROP AllowPerConfigDependencies 0\r
-# PROP Scc_ProjName ""\r
-# PROP Scc_LocalPath ""\r
-CPP=cl.exe\r
-MTL=midl.exe\r
-RSC=rc.exe\r
-\r
-!IF "$(CFG)" == "__XQTNAM__ - Win32 Release"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 0\r
-# PROP BASE Output_Dir "Release"\r
-# PROP BASE Intermediate_Dir "Release"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 0\r
-# PROP Output_Dir "Release"\r
-# PROP Intermediate_Dir "Release"\r
-# PROP Ignore_Export_Lib 0\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c\r
-# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "WNT" /D "CSFDB" /FD /c\r
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
-# ADD BASE RSC /l 0x409 /d "NDEBUG"\r
-# ADD RSC /l 0x409 /d "NDEBUG"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LINK32=link.exe\r
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386\r
-# ADD LINK32 __TKDEP__ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /libpath:"Release"\r
-\r
-!ELSEIF "$(CFG)" == "__XQTNAM__ - Win32 Debug"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 1\r
-# PROP BASE Output_Dir "Debug"\r
-# PROP BASE Intermediate_Dir "Debug"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 1\r
-# PROP Output_Dir "Debug"\r
-# PROP Intermediate_Dir "Debug"\r
-# PROP Ignore_Export_Lib 0\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /GZ /c\r
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "WNT" /D "CSFDB" /FD /GZ /c\r
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
-# ADD BASE RSC /l 0x409 /d "_DEBUG"\r
-# ADD RSC /l 0x409 /d "_DEBUG"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LINK32=link.exe\r
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept\r
-# ADD LINK32 __TKDEP__ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"Debug"\r
-\r
-!ENDIF \r
-\r
-# Begin Target\r
-\r
-# Name "__XQTNAM__ - Win32 Release"\r
-# Name "__XQTNAM__ - Win32 Debug"\r
-# Begin Group "Source Files"\r
-__FILES__\r
-# End Group\r
-# End Target\r
-# End Project\r
+# Microsoft Developer Studio Project File - Name="__XQTNAM__" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0103
+
+CFG=__XQTNAM__ - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "__XQTNAM__.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "__XQTNAM__.mak" CFG="__XQTNAM__ - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "__XQTNAM__ - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "__XQTNAM__ - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "__XQTNAM__ - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "..\..\win32\Release\__XQTNAM__"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\win32\__DEST__"
+# PROP Intermediate_Dir "..\..\win32\Release\__XQTNAM__"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "No_Exception" /D "_WINDOWS" /D "WNT" /D "CSFDB" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 __TKDEP__ /nologo /subsystem:console /machine:I386 /libpath:"..\..\win32\lib" /implib:"..\..\win32\lib\__XQTNAM__.lib"
+
+!ELSEIF "$(CFG)" == "__XQTNAM__ - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "..\..\win32\Debug\__XQTNAM__"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\win32\__DEST__d"
+# PROP Intermediate_Dir "..\..\win32\Debug\__XQTNAM__"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /GZ /c
+# ADD CPP /nologo /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "WNT" /D "CSFDB" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 __TKDEP__ /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\win32\libd" /implib:"..\..\win32\libd\__XQTNAM__.lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "__XQTNAM__ - Win32 Release"
+# Name "__XQTNAM__ - Win32 Debug"
+# Begin Group "Source Files"
+__FILES__
+# End Group
+# End Target
+# End Project