[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH 3/4] build: -nc zum Ueberspringen der Kompilierung
+ build: Mit -nc kann die Kompilierung uebersprungen werden, wenn die
Objektdateien schon vorhanden sind und nur noch Bibliotheken erstellt bzw.
Objektdateien gelinkt werden muessen.
Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
src/modules/c/build/build.c | 28 +++++++++++++++-------------
src/modules/c/build/main.c | 6 +++++-
2 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/src/modules/c/build/build.c b/src/modules/c/build/build.c
index ecf8fc4..683428b 100644
--- a/src/modules/c/build/build.c
+++ b/src/modules/c/build/build.c
@@ -228,22 +228,24 @@ static void do_build(struct build_dir* dir, const char* parent_include,
// Und schliesslich noch die einzelnen Dateien
// TODO Pruefen, ob sich Abhaengigkeiten veraendert haben
- printf("%s: Kompilieren (C)...", dir->path);
- fflush(stdout);
- compile(dir->path, dir->src_files[LANG_C], c_compiler, cflags, include);
+ if (!dont_compile) {
+ printf("%s: Kompilieren (C)...", dir->path);
+ fflush(stdout);
+ compile(dir->path, dir->src_files[LANG_C], c_compiler, cflags, include);
- printf("\r%s: Kompilieren (Pascal)...\033[K", dir->path);
- fflush(stdout);
- compile(dir->path, dir->src_files[LANG_PAS], "fpc", fpcflags, include);
+ printf("\r%s: Kompilieren (Pascal)...\033[K", dir->path);
+ fflush(stdout);
+ compile(dir->path, dir->src_files[LANG_PAS], "fpc", fpcflags, include);
- printf("\r%s: Assemblieren (gas)...\033[K", dir->path);
- fflush(stdout);
- compile(dir->path, dir->src_files[LANG_ASM_GAS], "gcc", gasflags, include);
+ printf("\r%s: Assemblieren (gas)...\033[K", dir->path);
+ fflush(stdout);
+ compile(dir->path, dir->src_files[LANG_ASM_GAS], "gcc", gasflags, include);
- printf("\r%s: Assemblieren (yasm)...\033[K", dir->path);
- fflush(stdout);
- for (i = 0; (file = list_get_element_at(dir->src_files[LANG_ASM_NASM], i)); i++) {
- do_command(dir->path, "yasm", "%s %s", nasmflags, file->name);
+ printf("\r%s: Assemblieren (yasm)...\033[K", dir->path);
+ fflush(stdout);
+ for (i = 0; (file = list_get_element_at(dir->src_files[LANG_ASM_NASM], i)); i++) {
+ do_command(dir->path, "yasm", "%s %s", nasmflags, file->name);
+ }
}
// Im Wurzelverzeichnis wird gelinkt (TODO einstellbar machen)
diff --git a/src/modules/c/build/main.c b/src/modules/c/build/main.c
index 46f196f..8997abe 100644
--- a/src/modules/c/build/main.c
+++ b/src/modules/c/build/main.c
@@ -71,13 +71,15 @@ int verbose = 0;
/// Nur Meldungen ausgeben, aber nichts wirklich aufrufen
int dry_run= 0;
+/// Nur Bibliotheken sammeln und linken
+int dont_compile= 0;
/// Keine Standardbibliotheken einbinden
int standalone = 0;
static void usage(char* binary)
{
- fprintf(stderr, "Aufruf: %s [-k] [-v] [--dry-run] [<Wurzelverzeichnis>]\n",
+ fprintf(stderr, "Aufruf: %s [-k] [-nc] [-v] [--dry-run] [<Wurzelverzeichnis>]\n",
binary);
exit(1);
}
@@ -101,6 +103,8 @@ int main(int argc, char** argv)
dry_run = 1;
} else if (!strcmp(argv[i], "-k")) {
standalone = 1;
+ } else if (!strcmp(argv[i], "-nc")) {
+ dont_compile = 1;
} else if (argv[i][0] == '-') {
usage(argv[0]);
} else if (rootdir_path) {
--
1.5.6.5