From e435ddd4ee81da12e3e3e3d0433a90d539901839 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Tue, 11 Jan 2011 18:16:55 +0100 Subject: add support for C++ packages, which need G++ compiler --- tools/adk/pkgmaker.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'tools') diff --git a/tools/adk/pkgmaker.c b/tools/adk/pkgmaker.c index eeba00304..e2b6e6e99 100644 --- a/tools/adk/pkgmaker.c +++ b/tools/adk/pkgmaker.c @@ -508,8 +508,12 @@ int main() { if (cfg == NULL) perror("Can not open Config.in file"); + if (pkg_need_cxx != NULL) { + fprintf(cfg, "comment \"%s... %s (disabled, c++ missing)\"\n", token, pkg_descr); + fprintf(cfg, "depends on !ADK_TOOLCHAIN_GCC_CXX\n\n"); + } fprintf(cfg, "config ADK_PACKAGE_%s\n", toupperstr(token)); - fprintf(cfg, "\tprompt \"%s... %s\"\n", pseudo_name, pkg_descr); + fprintf(cfg, "\tprompt \"%s. %s\"\n", pseudo_name, pkg_descr); fprintf(cfg, "\ttristate\n"); if (pkg_multi != NULL) if (strncmp(pkg_multi, "1", 1) == 0) @@ -592,10 +596,11 @@ int main() { } if (pkg_need_cxx != NULL) { - fprintf(cfg, "\tdepends on ADK_TOOLCHAIN_GCC_CXX"); + fprintf(cfg, "\tdepends on ADK_TOOLCHAIN_GCC_CXX\n"); } if (pkg_need_java != NULL) { - fprintf(cfg, "\tdepends on ADK_TOOLCHAIN_GCC_JAVA"); + fprintf(cfg, "\tdepends on ADK_TOOLCHAIN_GCC_JAVA\n"); + pkg_need_java = NULL; } fprintf(cfg, "\tselect ADK_COMPILE_%s\n", toupperstr(pkgdirp->d_name)); @@ -712,6 +717,8 @@ int main() { free(packages); packages = NULL; + pkg_need_cxx = NULL; + pkg_need_java = NULL; /* reset flags, free memory */ free(pkg_name); free(pkg_descr); @@ -724,8 +731,6 @@ int main() { free(pkg_arch_depends); free(pkg_host_depends); free(pkg_cxx); - free(pkg_need_cxx); - free(pkg_need_java); free(pkg_dflt); free(pkg_cfline); free(pkg_multi); -- cgit v1.2.3 From 846440bfa59b9a04a68247720edc6d81dcabfec2 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Mon, 10 Jan 2011 22:14:52 +0100 Subject: pkgmaker: improve error message on missing package category This patch bores up fatal_error(), so that it now takes arguments in printf-style, but without changing the basic semantics (i.e., messages prefixed by "Fatal error. " and trailing newline automatically appended). Signed-off-by: Phil Sutter --- tools/adk/pkgmaker.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'tools') diff --git a/tools/adk/pkgmaker.c b/tools/adk/pkgmaker.c index e2b6e6e99..dd4b90f46 100644 --- a/tools/adk/pkgmaker.c +++ b/tools/adk/pkgmaker.c @@ -37,10 +37,11 @@ static int nobinpkgs; -static void fatal_error(const char *message) { - - fprintf(stderr, "Fatal error. %s\n", message); - exit(1); +#define fatal_error(...) { \ + fprintf(stderr, "Fatal error. "); \ + fprintf(stderr, __VA_ARGS__); \ + fprintf(stderr, "\n"); \ + exit(1); \ } static int parse_var_hash(char *buf, const char *varname, StrMap *strmap) { @@ -304,7 +305,8 @@ int main() { fclose(section); } } else - fatal_error("Can not find section description for package."); + fatal_error("Can not find section description for package %s.", + pkgdirp->d_name); fclose(pkg); continue; @@ -501,7 +503,7 @@ int main() { fclose(section); } } else - fatal_error("Can not find section description for package"); + fatal_error("Can not find section description for package %s.", pkgdirp->d_name); unlink(path); cfg = fopen(path, "w"); -- cgit v1.2.3