Browse Source

replace st_dir with ODIR, other cleanup

David Rose 23 years ago
parent
commit
ae6288a165
4 changed files with 70 additions and 67 deletions
  1. 4 6
      dtool/Config.pp
  2. 12 6
      dtool/pptempl/Depends.pp
  3. 3 6
      dtool/pptempl/Global.pp
  4. 51 49
      dtool/pptempl/Template.gmsvc.pp

+ 4 - 6
dtool/Config.pp

@@ -444,14 +444,12 @@
 #defer SED ppremake -s '$[script]' <$[source] >$[target]
 #defer SED ppremake -s '$[script]' <$[source] >$[target]
 
 
 // What directory name (within each source directory) should the .o
 // What directory name (within each source directory) should the .o
-// (or .obj) files be written to, for both shared and static sources?
-// In general, it is safe to define these to be the same.  However,
-// don't define these to be '.', or you will be very sad the next time
-// you run 'make clean'.
+// (or .obj) files be written to?  This can be any name, and it can be
+// used to differentiate different builds within the same tree.
+// However, don't define this to be '.', or you will be very sad the
+// next time you run 'make clean'.
 //#defer ODIR Opt$[OPTIMIZE]-$[PLATFORM]$[USE_COMPILER]
 //#defer ODIR Opt$[OPTIMIZE]-$[PLATFORM]$[USE_COMPILER]
 #defer ODIR Opt$[OPTIMIZE]-$[PLATFORM]
 #defer ODIR Opt$[OPTIMIZE]-$[PLATFORM]
-#defer ODIR_SHARED $[ODIR]
-#defer ODIR_STATIC $[ODIR]
 
 
 
 
 
 

+ 12 - 6
dtool/pptempl/Depends.pp

@@ -70,28 +70,31 @@
 
 
     // Define what the object files are.
     // Define what the object files are.
     #foreach file $[c_sources] $[cxx_sources] $[yxx_sources] $[lxx_sources]
     #foreach file $[c_sources] $[cxx_sources] $[yxx_sources] $[lxx_sources]
-      #define $[file]_obj $[patsubst %.c %.cxx %.yxx %.lxx,$[st_dir]/$[TARGET]_%.obj,$[file]]
+      #define $[file]_obj $[patsubst %.c %.cxx %.yxx %.lxx,$[ODIR]/$[TARGET]_%.obj,$[file]]
+      #push 1 $[file]_obj
     #end file
     #end file
 
 
     #if $[USE_SINGLE_COMPOSITE_SOURCEFILE]
     #if $[USE_SINGLE_COMPOSITE_SOURCEFILE]
       #if $[> $[words $[cxx_sources]], 1]
       #if $[> $[words $[cxx_sources]], 1]
         // If we have multiple C++ files, put them together into one
         // If we have multiple C++ files, put them together into one
         // composite file.
         // composite file.
-        #define composite_file $[st_dir]/$[TARGET]_composite.cxx
+        #define composite_file $[ODIR]/$[TARGET]_composite.cxx
         #set composite_list $[composite_list] $[composite_file]
         #set composite_list $[composite_list] $[composite_file]
         #define $[composite_file]_sources $[cxx_sources]
         #define $[composite_file]_sources $[cxx_sources]
+        #define $[composite_file]_obj $[ODIR]/$[TARGET]_composite.obj
         #push 1 $[composite_file]_sources
         #push 1 $[composite_file]_sources
-        #define $[composite_file]_obj $[st_dir]/$[TARGET]_composite.obj
+        #push 1 $[composite_file]_obj
         #set cxx_sources $[composite_file]
         #set cxx_sources $[composite_file]
       #endif
       #endif
       #if $[> $[words $[c_sources]], 1]
       #if $[> $[words $[c_sources]], 1]
         // If we have multiple C files, put them together into one
         // If we have multiple C files, put them together into one
         // composite file also.
         // composite file also.
-        #define composite_file $[st_dir]/$[TARGET]_composite_c.c
+        #define composite_file $[ODIR]/$[TARGET]_composite_c.c
         #set composite_list $[composite_list] $[composite_file]
         #set composite_list $[composite_list] $[composite_file]
         #define $[composite_file]_sources $[c_sources]
         #define $[composite_file]_sources $[c_sources]
+        #define $[composite_file]_obj $[ODIR]/$[TARGET]_composite_c.obj
         #push 1 $[composite_file]_sources
         #push 1 $[composite_file]_sources
-        #define $[composite_file]_obj $[st_dir]/$[TARGET]_composite_c.obj
+        #push 1 $[composite_file]_obj
         #set c_sources $[composite_file]
         #set c_sources $[composite_file]
       #endif
       #endif
     #endif
     #endif
@@ -102,20 +105,23 @@
     // tend to be very large files themselves.
     // tend to be very large files themselves.
     #foreach source_file $[yxx_sources] $[lxx_sources]
     #foreach source_file $[yxx_sources] $[lxx_sources]
       #define generated_file $[patsubst %.yxx %.lxx,%.cxx,$[source_file]]
       #define generated_file $[patsubst %.yxx %.lxx,%.cxx,$[source_file]]
-      #define $[generated_file]_obj $[patsubst %.yxx %.lxx,$[st_dir]/$[TARGET]_%.obj,$[source_file]]
+      #define $[generated_file]_obj $[patsubst %.yxx %.lxx,$[ODIR]/$[TARGET]_%.obj,$[source_file]]
       #define $[generated_file]_sources $[source_file]
       #define $[generated_file]_sources $[source_file]
+      #push 1 $[generated_file]_obj
       #set cxx_sources $[cxx_sources] $[generated_file]
       #set cxx_sources $[cxx_sources] $[generated_file]
     #end source_file
     #end source_file
     #if $[get_igateoutput]
     #if $[get_igateoutput]
       #define generated_file $[get_igateoutput]
       #define generated_file $[get_igateoutput]
       #define $[generated_file]_obj $[get_igateoutput:%.cxx=%.obj]
       #define $[generated_file]_obj $[get_igateoutput:%.cxx=%.obj]
       #define $[generated_file]_sources $[get_igatescan]
       #define $[generated_file]_sources $[get_igatescan]
+      #push 1 $[generated_file]_obj
       #set cxx_sources $[cxx_sources] $[generated_file]
       #set cxx_sources $[cxx_sources] $[generated_file]
     #endif
     #endif
     #if $[get_igatemout]
     #if $[get_igatemout]
       #define generated_file $[get_igatemout]
       #define generated_file $[get_igatemout]
       #define $[generated_file]_obj $[get_igatemout:%.cxx=%.obj]
       #define $[generated_file]_obj $[get_igatemout:%.cxx=%.obj]
       #define $[generated_file]_sources none
       #define $[generated_file]_sources none
+      #push 1 $[generated_file]_obj
       #set cxx_sources $[cxx_sources] $[generated_file]
       #set cxx_sources $[cxx_sources] $[generated_file]
     #endif
     #endif
 
 

+ 3 - 6
dtool/pptempl/Global.pp

@@ -306,21 +306,21 @@
 // the target is not to be interrogated.
 // the target is not to be interrogated.
 #defer get_igatedb \
 #defer get_igatedb \
   $[if $[and $[run_interrogate],$[IGATESCAN]], \
   $[if $[and $[run_interrogate],$[IGATESCAN]], \
-    $[st_dir]/lib$[TARGET]$[dllext].in]
+    $[ODIR]/lib$[TARGET]$[dllext].in]
 
 
 // This variable returns the name of the interrogate code file
 // This variable returns the name of the interrogate code file
 // that will be generated for a particular target, or empty string if
 // that will be generated for a particular target, or empty string if
 // the target is not to be interrogated.
 // the target is not to be interrogated.
 #defer get_igateoutput \
 #defer get_igateoutput \
   $[if $[and $[run_interrogate],$[IGATESCAN]], \
   $[if $[and $[run_interrogate],$[IGATESCAN]], \
-    $[st_dir]/lib$[TARGET]_igate.cxx]
+    $[ODIR]/lib$[TARGET]_igate.cxx]
 
 
 // This variable is the set of .in files generated by all of our
 // This variable is the set of .in files generated by all of our
 // component libraries.  If it is nonempty, then we do need to
 // component libraries.  If it is nonempty, then we do need to
 // generate a module, and $[get_igatemout] is the name of the .cxx file
 // generate a module, and $[get_igatemout] is the name of the .cxx file
 // that interrogate will produce to make this module.
 // that interrogate will produce to make this module.
 #defer get_igatemscan $[components $[get_igatedb:%=$[RELDIR]/%],$[active_component_libs]]
 #defer get_igatemscan $[components $[get_igatedb:%=$[RELDIR]/%],$[active_component_libs]]
-#defer get_igatemout $[if $[get_igatemscan],$[st_dir]/lib$[TARGET]_module.cxx]
+#defer get_igatemout $[if $[get_igatemscan],$[ODIR]/lib$[TARGET]_module.cxx]
 
 
 // This variable returns the set of external packages used by this
 // This variable returns the set of external packages used by this
 // target, and by all the components shared by this target.
 // target, and by all the components shared by this target.
@@ -478,9 +478,6 @@
 
 
 // Define a few directories that will be useful.
 // Define a few directories that will be useful.
 
 
-#define so_dir $[ODIR_SHARED]
-#define st_dir $[ODIR_STATIC]
-
 #define install_dir $[$[upcase $[PACKAGE]]_INSTALL]
 #define install_dir $[$[upcase $[PACKAGE]]_INSTALL]
 #if $[eq $[install_dir],]
 #if $[eq $[install_dir],]
   #error Variable $[upcase $[PACKAGE]]_INSTALL is not set!  Cannot install!
   #error Variable $[upcase $[PACKAGE]]_INSTALL is not set!  Cannot install!

+ 51 - 49
dtool/pptempl/Template.gmsvc.pp

@@ -57,12 +57,12 @@
   // $[bin_targets] the list of binaries.  $[test_bin_targets] is the
   // $[bin_targets] the list of binaries.  $[test_bin_targets] is the
   // list of binaries that are to be built only when specifically asked
   // list of binaries that are to be built only when specifically asked
   // for.
   // for.
-  #define lib_targets $[patsubst %,$[st_dir]/lib%$[dllext].$[dlllib],$[active_target(metalib_target noinst_lib_target)] $[real_lib_targets]]
-  #define static_lib_targets $[active_target(static_lib_target ss_lib_target):%=$[st_dir]/lib%$[dllext].lib]
+  #define lib_targets $[patsubst %,$[ODIR]/lib%$[dllext].$[dlllib],$[active_target(metalib_target noinst_lib_target)] $[real_lib_targets]]
+  #define static_lib_targets $[active_target(static_lib_target ss_lib_target):%=$[ODIR]/lib%$[dllext].lib]
   #define bin_targets \
   #define bin_targets \
-      $[active_target(bin_target noinst_bin_target):%=$[st_dir]/%.exe] \
-      $[active_target(sed_bin_target):%=$[st_dir]/%]
-  #define test_bin_targets $[active_target(test_bin_target):%=$[st_dir]/%.exe]
+      $[active_target(bin_target noinst_bin_target):%=$[ODIR]/%.exe] \
+      $[active_target(sed_bin_target):%=$[ODIR]/%]
+  #define test_bin_targets $[active_target(test_bin_target):%=$[ODIR]/%.exe]
   
   
   // And these variables will define the various things we need to
   // And these variables will define the various things we need to
   // install.
   // install.
@@ -75,13 +75,12 @@
   #define install_config $[sort $[INSTALL_CONFIG(metalib_target lib_target static_lib_target ss_lib_target bin_target)] $[INSTALL_CONFIG]]
   #define install_config $[sort $[INSTALL_CONFIG(metalib_target lib_target static_lib_target ss_lib_target bin_target)] $[INSTALL_CONFIG]]
   #define install_igatedb $[sort $[get_igatedb(metalib_target lib_target)]]
   #define install_igatedb $[sort $[get_igatedb(metalib_target lib_target)]]
 
 
-  // Since we don't make a distinction in Windows between building for
-  // static or dynamic targets, let's eliminate so_sources and just
-  // use st_sources for simplicity.
-  #define st_sources $[compile_sources(metalib_target lib_target noinst_lib_target static_lib_target ss_lib_target bin_target noinst_bin_target test_bin_target)]
-  #define yxx_st_sources $[yxx_sources(metalib_target lib_target noinst_lib_target static_lib_target ss_lib_target bin_target noinst_bin_target test_bin_target)]
-  #define lxx_st_sources $[lxx_sources(metalib_target lib_target noinst_lib_target static_lib_target ss_lib_target bin_target noinst_bin_target test_bin_target)]
-  #define dep_sources_1 $[get_sources(metalib_target lib_target noinst_lib_target static_lib_target ss_lib_target bin_target noinst_bin_target test_bin_target)]
+  // These are the various sources collected from all targets within the
+  // directory.
+  #define st_sources $[sort $[compile_sources(metalib_target lib_target noinst_lib_target static_lib_target ss_lib_target bin_target noinst_bin_target test_bin_target)]]
+  #define yxx_st_sources $[sort $[yxx_sources(metalib_target lib_target noinst_lib_target static_lib_target ss_lib_target bin_target noinst_bin_target test_bin_target)]]
+  #define lxx_st_sources $[sort $[lxx_sources(metalib_target lib_target noinst_lib_target static_lib_target ss_lib_target bin_target noinst_bin_target test_bin_target)]]
+  #define dep_sources_1 $[sort $[get_sources(metalib_target lib_target noinst_lib_target static_lib_target ss_lib_target bin_target noinst_bin_target test_bin_target)]]
   
   
   // These are the source files that our dependency cache file will
   // These are the source files that our dependency cache file will
   // depend on.  If it's an empty list, we won't bother writing rules to
   // depend on.  If it's an empty list, we won't bother writing rules to
@@ -116,7 +115,7 @@
 
 
 // $[complete_lpath] is rather like $[complete_ipath]: the list of
 // $[complete_lpath] is rather like $[complete_ipath]: the list of
 // directories (from within this tree) we should add to our -L list.
 // directories (from within this tree) we should add to our -L list.
-#defer complete_lpath $[static_libs $[RELDIR:%=%/$[st_dir]],$[actual_local_libs]] $[dynamic_libs $[RELDIR:%=%/$[st_dir]],$[actual_local_libs]]
+#defer complete_lpath $[static_libs $[RELDIR:%=%/$[ODIR]],$[actual_local_libs]] $[dynamic_libs $[RELDIR:%=%/$[ODIR]],$[actual_local_libs]]
 
 
 // $[lpath] is like $[target_ipath]: it's the list of directories we
 // $[lpath] is like $[target_ipath]: it's the list of directories we
 // should add to our -L list, from the context of a particular target.
 // should add to our -L list, from the context of a particular target.
@@ -142,10 +141,10 @@
     $[if $[install_igatedb],$[install_igatedb_dir]] \
     $[if $[install_igatedb],$[install_igatedb_dir]] \
     ]
     ]
 
 
-// Similarly, we need to ensure that $[st_dir] exists.  Trying to make
+// Similarly, we need to ensure that $[ODIR] exists.  Trying to make
 // the makefiles do this automatically just causes problems with
 // the makefiles do this automatically just causes problems with
 // multiprocess builds.
 // multiprocess builds.
-#mkdir $[st_dir]
+#mkdir $[ODIR]
 
 
 // Pre-compiled headers are one way to speed the compilation of many
 // Pre-compiled headers are one way to speed the compilation of many
 // C++ source files that include similar headers, but it turns out a
 // C++ source files that include similar headers, but it turns out a
@@ -197,7 +196,10 @@ test : $[test_bin_targets]
 
 
 clean :
 clean :
 #if $[st_sources]
 #if $[st_sources]
-$[TAB] rm -f $[st_dir]/*
+$[TAB] rm -f $[patsubst %,$[%_obj],$[st_sources]]
+#endif
+#if $[lib_targets] $[static_lib_targets] $[bin_targets] $[test_bin_targets]
+$[TAB] rm -f $[lib_targets] $[static_lib_targets] $[bin_targets] $[test_bin_targets]
 #endif
 #endif
 $[TAB] rm -f *.pyc *.pyo // Also scrub out old generated Python code.
 $[TAB] rm -f *.pyc *.pyo // Also scrub out old generated Python code.
                          
                          
@@ -205,7 +207,7 @@ $[TAB] rm -f *.pyc *.pyo // Also scrub out old generated Python code.
 // and building.  It removes everything except the Makefile.
 // and building.  It removes everything except the Makefile.
 cleanall : clean
 cleanall : clean
 #if $[st_sources]
 #if $[st_sources]
-$[TAB] rm -rf $[st_dir]
+$[TAB] rm -rf $[ODIR]
 #endif
 #endif
 #if $[yxx_st_sources] $[lxx_st_sources]
 #if $[yxx_st_sources] $[lxx_st_sources]
 $[TAB] rm -f $[patsubst %.yxx,%.cxx %.h,$[yxx_st_sources]] $[patsubst %.lxx,%.cxx,$[lxx_st_sources]]
 $[TAB] rm -f $[patsubst %.yxx,%.cxx %.h,$[yxx_st_sources]] $[patsubst %.lxx,%.cxx,$[lxx_st_sources]]
@@ -245,7 +247,7 @@ $[TAB] rm -f $[igatemout] $[$[igatemout]_obj]
      $[INSTALL_CONFIG:%=$[install_config_dir]/%]
      $[INSTALL_CONFIG:%=$[install_config_dir]/%]
 
 
 #define installed_igate_files \
 #define installed_igate_files \
-     $[get_igatedb(metalib_target lib_target ss_lib_target):$[st_dir]/%=$[install_igatedb_dir]/%]
+     $[get_igatedb(metalib_target lib_target ss_lib_target):$[ODIR]/%=$[install_igatedb_dir]/%]
 
 
 #define install_targets \
 #define install_targets \
      $[active_target(metalib_target lib_target static_lib_target ss_lib_target):%=install-lib%] \
      $[active_target(metalib_target lib_target static_lib_target ss_lib_target):%=install-lib%] \
@@ -289,7 +291,7 @@ igate : $[get_igatedb(metalib_target lib_target ss_lib_target)]
 
 
 // In Windows, we don't actually build all the libraries.  In
 // In Windows, we don't actually build all the libraries.  In
 // particular, we don't build any libraries that are listed on a
 // particular, we don't build any libraries that are listed on a
-// metalib.  Is this one such library?
+// metalib.  Is this one such a library?
 #define build_it $[eq $[module $[TARGET],$[TARGET]],]
 #define build_it $[eq $[module $[TARGET],$[TARGET]],]
 
 
 // We might need to define a BUILDING_ symbol for win32.  We use the
 // We might need to define a BUILDING_ symbol for win32.  We use the
@@ -332,7 +334,7 @@ igate : $[get_igatedb(metalib_target lib_target ss_lib_target)]
 
 
   #define varname $[subst -,_,lib$[TARGET]_so]
   #define varname $[subst -,_,lib$[TARGET]_so]
 $[varname] = $[sources]
 $[varname] = $[sources]
-  #define target $[st_dir]/lib$[TARGET]$[dllext].$[dlllib]
+  #define target $[ODIR]/lib$[TARGET]$[dllext].$[dlllib]
   #define sources $($[varname])
   #define sources $($[varname])
   #define flags   $[get_cflags] $[C++FLAGS] $[CFLAGS_OPT$[OPTIMIZE]] $[CFLAGS_SHARED] $[building_var:%=/D%]
   #define flags   $[get_cflags] $[C++FLAGS] $[CFLAGS_OPT$[OPTIMIZE]] $[CFLAGS_SHARED] $[building_var:%=/D%]
   #define mybasename $[basename $[notdir $[target]]]  
   #define mybasename $[basename $[notdir $[target]]]  
@@ -362,10 +364,10 @@ $[TAB] $[SHARED_LIB_C]
 #endif
 #endif
 
 
 #if $[build_dlls]
 #if $[build_dlls]
-$[st_dir]/lib$[TARGET]$[dllext].lib : $[st_dir]/lib$[TARGET]$[dllext].dll
+$[ODIR]/lib$[TARGET]$[dllext].lib : $[ODIR]/lib$[TARGET]$[dllext].dll
 #endif
 #endif
 #if $[build_pdbs]
 #if $[build_pdbs]
-$[st_dir]/lib$[TARGET]$[dllext].pdb : $[st_dir]/lib$[TARGET]$[dllext].dll
+$[ODIR]/lib$[TARGET]$[dllext].pdb : $[ODIR]/lib$[TARGET]$[dllext].dll
 #endif
 #endif
 
 
 #endif
 #endif
@@ -382,7 +384,7 @@ $[st_dir]/lib$[TARGET]$[dllext].pdb : $[st_dir]/lib$[TARGET]$[dllext].dll
     $[INSTALL_HEADERS:%=$[install_headers_dir]/%] \
     $[INSTALL_HEADERS:%=$[install_headers_dir]/%] \
     $[INSTALL_DATA:%=$[install_data_dir]/%] \
     $[INSTALL_DATA:%=$[install_data_dir]/%] \
     $[INSTALL_CONFIG:%=$[install_config_dir]/%] \
     $[INSTALL_CONFIG:%=$[install_config_dir]/%] \
-    $[igatedb:$[st_dir]/%=$[install_igatedb_dir]/%]
+    $[igatedb:$[ODIR]/%=$[install_igatedb_dir]/%]
 
 
 install-lib$[TARGET] : $[installed_files]
 install-lib$[TARGET] : $[installed_files]
 
 
@@ -392,22 +394,22 @@ $[TAB] rm -f $[sort $[installed_files]]
 #endif
 #endif
 
 
 #if $[build_dlls]
 #if $[build_dlls]
-$[install_lib_dir]/lib$[TARGET]$[dllext].dll : $[st_dir]/lib$[TARGET]$[dllext].dll
+$[install_lib_dir]/lib$[TARGET]$[dllext].dll : $[ODIR]/lib$[TARGET]$[dllext].dll
 #define local lib$[TARGET]$[dllext].dll
 #define local lib$[TARGET]$[dllext].dll
 #define dest $[install_lib_dir]
 #define dest $[install_lib_dir]
-$[TAB] cp -f $[st_dir]/$[local] $[dest]
+$[TAB] cp -f $[ODIR]/$[local] $[dest]
 #endif
 #endif
 
 
-$[install_lib_dir]/lib$[TARGET]$[dllext].lib : $[st_dir]/lib$[TARGET]$[dllext].lib
+$[install_lib_dir]/lib$[TARGET]$[dllext].lib : $[ODIR]/lib$[TARGET]$[dllext].lib
 #define local lib$[TARGET]$[dllext].lib
 #define local lib$[TARGET]$[dllext].lib
 #define dest $[install_lib_dir]
 #define dest $[install_lib_dir]
-$[TAB] cp -f $[st_dir]/$[local] $[dest]
+$[TAB] cp -f $[ODIR]/$[local] $[dest]
 
 
 #if $[and $[build_dlls],$[build_pdbs]]
 #if $[and $[build_dlls],$[build_pdbs]]
-$[install_lib_dir]/lib$[TARGET]$[dllext].pdb : $[st_dir]/lib$[TARGET]$[dllext].pdb
+$[install_lib_dir]/lib$[TARGET]$[dllext].pdb : $[ODIR]/lib$[TARGET]$[dllext].pdb
 #define local lib$[TARGET]$[dllext].pdb
 #define local lib$[TARGET]$[dllext].pdb
 #define dest $[install_lib_dir]
 #define dest $[install_lib_dir]
-$[TAB] cp -f $[st_dir]/$[local] $[dest]
+$[TAB] cp -f $[ODIR]/$[local] $[dest]
 #endif
 #endif
 
 
 #if $[igatescan]
 #if $[igatescan]
@@ -423,7 +425,7 @@ $[TAB] cp -f $[st_dir]/$[local] $[dest]
   #define igatemod $[TARGET]
   #define igatemod $[TARGET]
 #endif
 #endif
 
 
-$[igatedb:$[st_dir]/%=$[install_igatedb_dir]/%] : $[igatedb]
+$[igatedb:$[ODIR]/%=$[install_igatedb_dir]/%] : $[igatedb]
 #define local $[igatedb]
 #define local $[igatedb]
 #define dest $[install_igatedb_dir]
 #define dest $[install_igatedb_dir]
 $[TAB] cp -f $[local] $[dest]
 $[TAB] cp -f $[local] $[dest]
@@ -472,7 +474,7 @@ $[TAB] $[INTERROGATE_MODULE] -oc $[target] -module "$[igatemod]" -library "$[iga
 #forscopes noinst_lib_target
 #forscopes noinst_lib_target
 #define varname $[subst -,_,lib$[TARGET]_so]
 #define varname $[subst -,_,lib$[TARGET]_so]
 $[varname] = $[patsubst %,$[%_obj],$[compile_sources]]
 $[varname] = $[patsubst %,$[%_obj],$[compile_sources]]
-#define target $[st_dir]/lib$[TARGET]$[dllext].$[dlllib]
+#define target $[ODIR]/lib$[TARGET]$[dllext].$[dlllib]
 #define sources $($[varname])
 #define sources $($[varname])
 $[target] : $[sources]
 $[target] : $[sources]
 #if $[filter %.cxx %.yxx %.lxx,$[get_sources]]
 #if $[filter %.cxx %.yxx %.lxx,$[get_sources]]
@@ -482,10 +484,10 @@ $[TAB] $[SHARED_LIB_C]
 #endif
 #endif
 
 
 #if $[build_dlls]
 #if $[build_dlls]
-$[st_dir]/lib$[TARGET]$[dllext].lib : $[st_dir]/lib$[TARGET]$[dllext].dll
+$[ODIR]/lib$[TARGET]$[dllext].lib : $[ODIR]/lib$[TARGET]$[dllext].dll
 #endif
 #endif
 #if $[build_pdbs]
 #if $[build_pdbs]
-$[st_dir]/lib$[TARGET]$[dllext].pdb : $[st_dir]/lib$[TARGET]$[dllext].dll
+$[ODIR]/lib$[TARGET]$[dllext].pdb : $[ODIR]/lib$[TARGET]$[dllext].dll
 #endif
 #endif
 
 
 #end noinst_lib_target
 #end noinst_lib_target
@@ -501,7 +503,7 @@ $[st_dir]/lib$[TARGET]$[dllext].pdb : $[st_dir]/lib$[TARGET]$[dllext].dll
 #forscopes static_lib_target ss_lib_target
 #forscopes static_lib_target ss_lib_target
 #define varname $[subst -,_,lib$[TARGET]_a]
 #define varname $[subst -,_,lib$[TARGET]_a]
 $[varname] = $[patsubst %,$[%_obj],$[compile_sources]]
 $[varname] = $[patsubst %,$[%_obj],$[compile_sources]]
-#define target $[st_dir]/lib$[TARGET]$[dllext].lib
+#define target $[ODIR]/lib$[TARGET]$[dllext].lib
 #define sources $($[varname])
 #define sources $($[varname])
 $[target] : $[sources]
 $[target] : $[sources]
 #if $[filter %.cxx %.yxx %.lxx,$[get_sources]]
 #if $[filter %.cxx %.yxx %.lxx,$[get_sources]]
@@ -524,10 +526,10 @@ uninstall-lib$[TARGET] :
 $[TAB] rm -f $[sort $[installed_files]]
 $[TAB] rm -f $[sort $[installed_files]]
 #endif
 #endif
 
 
-$[install_lib_dir]/lib$[TARGET]$[dllext].lib : $[st_dir]/lib$[TARGET]$[dllext].lib
+$[install_lib_dir]/lib$[TARGET]$[dllext].lib : $[ODIR]/lib$[TARGET]$[dllext].lib
 #define local lib$[TARGET]$[dllext].lib
 #define local lib$[TARGET]$[dllext].lib
 #define dest $[install_lib_dir]
 #define dest $[install_lib_dir]
-$[TAB] cp -f $[st_dir]/$[local] $[dest]
+$[TAB] cp -f $[ODIR]/$[local] $[dest]
 
 
 #end static_lib_target ss_lib_target
 #end static_lib_target ss_lib_target
 
 
@@ -540,9 +542,9 @@ $[TAB] cp -f $[st_dir]/$[local] $[dest]
 /////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////
 
 
 #forscopes sed_bin_target
 #forscopes sed_bin_target
-$[TARGET] : $[st_dir]/$[TARGET]
+$[TARGET] : $[ODIR]/$[TARGET]
 
 
-#define target $[st_dir]/$[TARGET]
+#define target $[ODIR]/$[TARGET]
 #define source $[SOURCE]
 #define source $[SOURCE]
 #define script $[COMMAND]
 #define script $[COMMAND]
 $[target] : $[source]
 $[target] : $[source]
@@ -561,8 +563,8 @@ $[TAB] rm -f $[sort $[installed_files]]
 
 
 #define local $[TARGET]
 #define local $[TARGET]
 #define dest $[install_bin_dir]
 #define dest $[install_bin_dir]
-$[install_bin_dir]/$[TARGET] : $[st_dir]/$[TARGET]
-$[TAB] cp -f $[st_dir]/$[local] $[dest]
+$[install_bin_dir]/$[TARGET] : $[ODIR]/$[TARGET]
+$[TAB] cp -f $[ODIR]/$[local] $[dest]
 
 
 #end sed_bin_target
 #end sed_bin_target
 
 
@@ -573,11 +575,11 @@ $[TAB] cp -f $[st_dir]/$[local] $[dest]
 /////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////
 
 
 #forscopes bin_target
 #forscopes bin_target
-$[TARGET] : $[st_dir]/$[TARGET].exe
+$[TARGET] : $[ODIR]/$[TARGET].exe
 
 
 #define varname $[subst -,_,bin_$[TARGET]]
 #define varname $[subst -,_,bin_$[TARGET]]
 $[varname] = $[patsubst %,$[%_obj],$[compile_sources]]
 $[varname] = $[patsubst %,$[%_obj],$[compile_sources]]
-#define target $[st_dir]/$[TARGET].exe
+#define target $[ODIR]/$[TARGET].exe
 #define sources $($[varname])
 #define sources $($[varname])
 #define ld $[get_ld]
 #define ld $[get_ld]
 $[target] : $[sources]
 $[target] : $[sources]
@@ -594,7 +596,7 @@ $[TAB] $[LINK_BIN_C]
 #endif
 #endif
 
 
 #if $[build_pdbs]
 #if $[build_pdbs]
-$[st_dir]/$[TARGET].pdb : $[st_dir]/$[TARGET].exe
+$[ODIR]/$[TARGET].pdb : $[ODIR]/$[TARGET].exe
 #endif
 #endif
 
 
 #define installed_files \
 #define installed_files \
@@ -612,16 +614,16 @@ uninstall-$[TARGET] :
 $[TAB] rm -f $[sort $[installed_files]]
 $[TAB] rm -f $[sort $[installed_files]]
 #endif
 #endif
 
 
-$[install_bin_dir]/$[TARGET].exe : $[st_dir]/$[TARGET].exe
+$[install_bin_dir]/$[TARGET].exe : $[ODIR]/$[TARGET].exe
 #define local $[TARGET].exe
 #define local $[TARGET].exe
 #define dest $[install_bin_dir]
 #define dest $[install_bin_dir]
-$[TAB] cp -f $[st_dir]/$[local] $[dest]
+$[TAB] cp -f $[ODIR]/$[local] $[dest]
 
 
 #if $[build_pdbs]
 #if $[build_pdbs]
-$[install_bin_dir]/$[TARGET].pdb : $[st_dir]/$[TARGET].pdb
+$[install_bin_dir]/$[TARGET].pdb : $[ODIR]/$[TARGET].pdb
 #define local $[TARGET].pdb
 #define local $[TARGET].pdb
 #define dest $[install_bin_dir]
 #define dest $[install_bin_dir]
-$[TAB] cp -f $[st_dir]/$[local] $[dest]
+$[TAB] cp -f $[ODIR]/$[local] $[dest]
 #endif
 #endif
 
 
 #end bin_target
 #end bin_target
@@ -634,11 +636,11 @@ $[TAB] cp -f $[st_dir]/$[local] $[dest]
 /////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////
 
 
 #forscopes noinst_bin_target test_bin_target
 #forscopes noinst_bin_target test_bin_target
-$[TARGET] : $[st_dir]/$[TARGET].exe
+$[TARGET] : $[ODIR]/$[TARGET].exe
 
 
 #define varname $[subst -,_,bin_$[TARGET]]
 #define varname $[subst -,_,bin_$[TARGET]]
 $[varname] = $[patsubst %,$[%_obj],$[compile_sources]]
 $[varname] = $[patsubst %,$[%_obj],$[compile_sources]]
-#define target $[st_dir]/$[TARGET].exe
+#define target $[ODIR]/$[TARGET].exe
 #define sources $($[varname])
 #define sources $($[varname])
 $[target] : $[sources]
 $[target] : $[sources]
 #if $[filter %.cxx %.yxx %.lxx,$[get_sources]]
 #if $[filter %.cxx %.yxx %.lxx,$[get_sources]]