X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuilder.cpp;h=122e1b901e011d6abafd8ea86789b86e66bb628e;hb=90bc57276bd8d82f4d95558ab7afc702edd4bdd2;hp=c08c3055795c233599904aeff7d9f91a25319ce7;hpb=73efab6c6d83b936a6afa6e1efec0218f03e9180;p=builder.git diff --git a/source/builder.cpp b/source/builder.cpp index c08c305..122e1b9 100644 --- a/source/builder.cpp +++ b/source/builder.cpp @@ -263,8 +263,6 @@ int Builder::main() } } - main_pkg->configure(cmdline_options, conf_all?2:1); - if(help) { usage(0, "builder", false); @@ -276,7 +274,7 @@ int Builder::main() if(conf_only) return 0; - if(create_targets()) + if(!prepare_build()) return 1; logger.log("environment", format("Building on %s, for %s%s", native_arch.get_name(), @@ -293,7 +291,7 @@ int Builder::main() list package_details; for(PackageManager::PackageMap::const_iterator i=packages.begin(); i!=packages.end(); ++i) { - if(!i->second || !i->second->is_configured()) + if(!i->second || !i->second->is_prepared()) continue; string line = i->second->get_name(); @@ -397,7 +395,7 @@ int Builder::load_build_file(const FS::Path &fn) return 0; } -int Builder::create_targets() +bool Builder::prepare_build() { Target *world = new VirtualTarget(*this, "world"); @@ -410,10 +408,7 @@ int Builder::create_targets() Target *tarballs = new VirtualTarget(*this, "tarballs"); world->add_depend(*tarballs); - const PackageManager::PackageMap &packages = package_manager.get_packages(); - for(PackageManager::PackageMap::const_iterator i=packages.begin(); i!=packages.end(); ++i) - if(i->second && i->second->is_configured()) - i->second->create_targets(); + main_pkg->prepare(); // Make the cmdline target depend on all targets mentioned on the command line Target *cmdline = new VirtualTarget(*this, "cmdline"); @@ -427,7 +422,7 @@ int Builder::create_targets() if(!tgt) { IO::print("I don't know anything about %s\n", *i); - return -1; + return false; } cmdline->add_depend(*tgt); @@ -442,7 +437,7 @@ int Builder::create_targets() if(!tgt) { IO::print(IO::cerr, "Unknown what-if target %s\n", *i); - return -1; + return false; } tgt->touch(); } @@ -456,11 +451,12 @@ int Builder::create_targets() if(!dry_run) { + const PackageManager::PackageMap &packages = package_manager.get_packages(); for(PackageManager::PackageMap::const_iterator i=packages.begin(); i!=packages.end(); ++i) i->second->save_caches(); } - return 0; + return true; } int Builder::do_build()