X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuilder.cpp;h=dac7bb84a43c6f68c577331b2294955309982f08;hb=8d7926359d2477a9928d7367678314bcbc1f6e81;hp=37ad766fe26c7a3ba501caef1c3217c730534a89;hpb=782df8c2a38d9f88d30fecc525d72c45db8efa8e;p=builder.git diff --git a/source/builder.cpp b/source/builder.cpp index 37ad766..dac7bb8 100644 --- a/source/builder.cpp +++ b/source/builder.cpp @@ -243,33 +243,42 @@ int Builder::main() return 0; } - if(!conf_only && create_targets()) - return 1; - - PackageList all_reqs = main_pkg->collect_requires(); - if(conf_only) return 0; + if(create_targets()) + return 1; + if(verbose>=2) { IO::print("Building on %s, for %s%s\n", native_arch.get_name(), current_arch->get_name(), (current_arch->is_native() ? " (native)" : "")); IO::print("Prefix is %s\n", prefix); } + if(verbose>=1) - IO::print("%d active packages, %d targets\n", all_reqs.size(), targets.size()); + { + unsigned n_packages = 0; + for(PackageMap::const_iterator i=packages.begin(); i!=packages.end(); ++i) + if(i->second && i->second->is_configured()) + ++n_packages; + IO::print("%d active packages, %d targets\n", n_packages, targets.size()); + } + if(verbose>=2) { - for(PackageList::const_iterator i=all_reqs.begin(); i!=all_reqs.end(); ++i) + for(PackageMap::const_iterator i=packages.begin(); i!=packages.end(); ++i) { - IO::print(" %s", (*i)->get_name()); - if(dynamic_cast(*i)) + if(!i->second->is_configured()) + continue; + + IO::print(" %s", i->second->get_name()); + if(dynamic_cast(i->second)) IO::print("*"); unsigned count = 0; unsigned to_be_built = 0; for(TargetMap::iterator j=targets.begin(); j!=targets.end(); ++j) - if(j->second->get_package()==*i) + if(j->second->get_package()==i->second) { ++count; if(j->second->get_rebuild()) @@ -599,10 +608,12 @@ int Builder::create_targets() Target *tarballs = new VirtualTarget(*this, "tarballs"); world->add_depend(tarballs); - PackageList all_reqs = main_pkg->collect_requires(); - for(PackageList::iterator i=all_reqs.begin(); i!=all_reqs.end(); ++i) + for(PackageMap::const_iterator i=packages.begin(); i!=packages.end(); ++i) { - SourcePackage *spkg = dynamic_cast(*i); + if(!i->second || !i->second->is_configured()) + continue; + + SourcePackage *spkg = dynamic_cast(i->second); if(!spkg) continue; @@ -641,7 +652,6 @@ int Builder::create_targets() // Make the cmdline target depend on all targets mentioned on the command line Target *cmdline = new VirtualTarget(*this, "cmdline"); - bool build_world = false; for(list::iterator i=cmdline_targets.begin(); i!=cmdline_targets.end(); ++i) { Target *tgt = get_target(*i); @@ -652,8 +662,7 @@ int Builder::create_targets() IO::print("I don't know anything about %s\n", *i); return -1; } - if(tgt==world) - build_world = true; + cmdline->add_depend(tgt); }