summaryrefslogtreecommitdiffabout
path: root/lib
Side-by-side diff
Diffstat (limited to 'lib') (more/less context) (ignore whitespace changes)
-rw-r--r--lib/component_factory.cc25
1 files changed, 21 insertions, 4 deletions
diff --git a/lib/component_factory.cc b/lib/component_factory.cc
index 5c18bb7..b5e95af 100644
--- a/lib/component_factory.cc
+++ b/lib/component_factory.cc
@@ -117,3 +117,2 @@ namespace sitecing {
string dp = normalize_path(dst,strip_trailing_slash);
- // XXX: or just compare it off, instead of throwing things around.
try {
@@ -129,2 +128,3 @@ namespace sitecing {
}catch(utility_no_prefix& unp) { }
+ // XXX: or just compare it off, instead of throwing things around.
try {
@@ -149,2 +149,3 @@ namespace sitecing {
string o = root_intermediate+noro+".o";
+ cerr << "Linking " << noro << endl;
if(access(o.c_str(),R_OK))
@@ -193,2 +194,3 @@ namespace sitecing {
string o = root_intermediate+nos+".o";
+ cerr << "Compiling " << nos << endl;
if(access(cc.c_str(),R_OK))
@@ -232,2 +234,3 @@ namespace sitecing {
string src = root_source+nos;
+ cerr << "Preprocessing " << nos << endl;
if(access(src.c_str(),R_OK))
@@ -266,5 +269,19 @@ namespace sitecing {
+ void component_factory::make(const string& dst) {
+ string dp = normalize_path(dst,strip_trailing_slash);
+ try {
+ string noso = strip_suffix(dp,".so");
+ string noro = strip_prefix(noso,root_so);
+ file_list_t a;
+ get_ancestors(noro,a);
+ for(file_list_t::const_iterator i=a.begin();i!=a.end();++i) {
+ make(root_so+*i+".so");
+ }
+ }catch(utility_no_affix& una) { }
+ file_factory::make(dst);
+ }
+
int component_factory::execute(const string& cmd, const list<string>& args,int stdo,int stde) {
// XXX: is it right that we do stdio/stderr tricks outside of the function?
- cerr << "executing: " << cmd;
+ // cerr << "executing: " << cmd;
vector<const char*> argv(args.size()+2);
@@ -273,6 +290,6 @@ namespace sitecing {
for(list<string>::const_iterator i=args.begin();i!=args.end();i++) {
- cerr << " " << *i ;
+ // cerr << " " << *i ;
argv[an++] = i->c_str();
}
- cerr << endl;
+ // cerr << endl;
argv[an++]=NULL;