From f4a908541addfc6b492cfb208eaadbebb617dec6 Mon Sep 17 00:00:00 2001 From: kamkow1 Date: Sun, 15 Jun 2025 11:17:30 +0200 Subject: [PATCH] Compile with -fPIC, add help option, add options for watcher --- build.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/build.c b/build.c index 44c0fb6..e342ac5 100644 --- a/build.c +++ b/build.c @@ -25,9 +25,9 @@ int main(int argc, char ** argv) RULE("./mongoose.o", "./mongoose/mongoose.c") { #if DEBUG - CMD("cc", "-ggdb", "-c", "-D_GNU_SOURCE", "-o", "./mongoose.o", "./mongoose/mongoose.c"); + CMD("cc", "-ggdb", "-c", "-fPIC", "-D_GNU_SOURCE", "-o", "./mongoose.o", "./mongoose/mongoose.c"); #else - CMD("cc", "-c", "-D_GNU_SOURCE", "-o", "./mongoose.o", "./mongoose/mongoose.c"); + CMD("cc", "-c", "-fPIC", "-D_GNU_SOURCE", "-o", "./mongoose.o", "./mongoose/mongoose.c"); #endif } @@ -36,11 +36,11 @@ int main(int argc, char ** argv) } #if DEBUG - CMD("cc", "-ggdb", "-I.", "-D_GNU_SOURCE", "-DGEBS_NO_PREFIX", + CMD("cc", "-fPIC", "-ggdb", "-I.", "-D_GNU_SOURCE", "-DGEBS_NO_PREFIX", "-DINCBIN_PREFIX=", "-DINCBIN_STYLE=INCBIN_STYLE_SNAKE", "-o", "./aboba", "./main.c", "./routes.c", "./baked.c", "./mongoose.o"); #else - CMD("cc", "-I.", "-D_GNU_SOURCE", "-DGEBS_NO_PREFIX", + CMD("cc", "-fPIC", "-I.", "-D_GNU_SOURCE", "-DGEBS_NO_PREFIX", "-DINCBIN_PREFIX=", "-DINCBIN_STYLE=INCBIN_STYLE_SNAKE", "-o", "./aboba", "./main.c", "./routes.c", "./baked.c", "./mongoose.o"); #endif @@ -49,6 +49,18 @@ int main(int argc, char ** argv) remove1("./build"); remove1("./aboba"); remove("./mongoose.o"); + remove("./gpp1"); + remove("./watcher"); + } else if (strcmp(cmd, "make-watcher") == 0) { + CMD("cc", "-o", "watcher", "watcher.c"); + } else if (strcmp(cmd, "watch") == 0) { + CMD("./watcher", ".", "sh", "-c", "./build make && ./aboba"); + } else if (strcmp(cmd, "help") == 0) { + LOGI("Help:\n"); + printf("%s make Build the application\n", prog); + printf("%s clean Clean build atrifacts\n", prog); + printf("%s make-watcher Bootstrap source code watcher (hot recompiling)\n", prog); + printf("%s watch Watch the source code and recompile+rerun on change\n", prog); } return 0;