|
|
@@ -27,10 +27,14 @@
|
|
|
|
|
|
// We define $[c_sources], $[cxx_sources], $[yxx_sources], and
|
|
|
// $[lxx_sources] within each target, which lists original files as
|
|
|
- // well as synthetic composite files. There's also
|
|
|
- // $[compile_sources], which is the union of all the others: any
|
|
|
- // source files that are actually compiled and result in a generated
|
|
|
- // .o (or .obj) file.
|
|
|
+ // well as synthetic composite files. We also now add
|
|
|
+ // $[cxx_interrogate_sources], which are the C++ files generated by
|
|
|
+ // interrogate. Under OSX, we want to compile these files
|
|
|
+ // separately.
|
|
|
+
|
|
|
+ // Finally, there's $[compile_sources], which is the union of all
|
|
|
+ // the others: any source files that are actually compiled and
|
|
|
+ // result in a generated .o (or .obj) file.
|
|
|
|
|
|
// Finally, we build up $[composite_list] out here to list all of
|
|
|
// the composite files generated for all targets.
|
|
|
@@ -78,11 +82,17 @@
|
|
|
// Now compute the source files.
|
|
|
#define c_sources $[filter %.c,$[get_sources]]
|
|
|
#define cxx_sources $[filter-out %_src.cxx,$[filter %.cxx %.cpp,$[get_sources]]]
|
|
|
+ #define cxx_interrogate_sources
|
|
|
+ #if $[PYTHON_MODULE_ONLY]
|
|
|
+ #set cxx_interrogate_sources $[cxx_sources]
|
|
|
+ #set cxx_sources
|
|
|
+ #endif
|
|
|
+
|
|
|
#define yxx_sources $[filter %.yxx,$[get_sources]]
|
|
|
#define lxx_sources $[filter %.lxx,$[get_sources]]
|
|
|
|
|
|
// Define what the object files are.
|
|
|
- #foreach file $[c_sources] $[cxx_sources] $[yxx_sources] $[lxx_sources]
|
|
|
+ #foreach file $[c_sources] $[cxx_sources] $[cxx_interrogate_sources] $[yxx_sources] $[lxx_sources]
|
|
|
#define $[file]_obj $[patsubst %.c %.cxx %.cpp %.yxx %.lxx,$[ODIR]/$[obj_prefix]%$[OBJ],$[notdir $[file]]]
|
|
|
#push 1 $[file]_obj
|
|
|
#end file
|
|
|
@@ -97,7 +107,11 @@
|
|
|
#define $[composite_file]_obj $[ODIR]/$[TARGET]_composite$[OBJ]
|
|
|
#push 1 $[composite_file]_sources
|
|
|
#push 1 $[composite_file]_obj
|
|
|
- #set cxx_sources $[composite_file]
|
|
|
+ #if $[PYTHON_MODULE_ONLY]
|
|
|
+ #set cxx_interrogate_sources $[composite_file]
|
|
|
+ #else
|
|
|
+ #set cxx_sources $[composite_file]
|
|
|
+ #endif
|
|
|
#endif
|
|
|
#if $[> $[words $[c_sources]], 1]
|
|
|
// If we have multiple C files, put them together into one
|
|
|
@@ -128,6 +142,10 @@
|
|
|
#define $[generated_file]_obj $[get_igateoutput:%.cxx=%$[OBJ]]
|
|
|
#define $[generated_file]_sources $[get_igatescan]
|
|
|
#push 1 $[generated_file]_obj
|
|
|
+ // We add this to cxx_sources instead of cxx_interrogate_sources,
|
|
|
+ // even though it's an interrogate-generated file, because it's
|
|
|
+ // not a module file--we really only accumulate module files into
|
|
|
+ // cxx_interrogate_sources.
|
|
|
#set cxx_sources $[cxx_sources] $[generated_file]
|
|
|
#endif
|
|
|
#if $[get_igatemout]
|
|
|
@@ -135,10 +153,10 @@
|
|
|
#define $[generated_file]_obj $[get_igatemout:%.cxx=%$[OBJ]]
|
|
|
#define $[generated_file]_sources none
|
|
|
#push 1 $[generated_file]_obj
|
|
|
- #set cxx_sources $[cxx_sources] $[generated_file]
|
|
|
+ #set cxx_interrogate_sources $[cxx_interrogate_sources] $[generated_file]
|
|
|
#endif
|
|
|
|
|
|
- #define compile_sources $[c_sources] $[cxx_sources]
|
|
|
+ #define compile_sources $[c_sources] $[cxx_sources] $[cxx_interrogate_sources]
|
|
|
|
|
|
#end metalib_target lib_target noinst_lib_target test_lib_target static_lib_target ss_lib_target bin_target noinst_bin_target test_bin_target
|
|
|
|