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;