#define GEBS_NO_PREFIX #define GEBS_IMPLEMENTATION #include "gebs/gebs.h" char *prog = NULL; #define DEBUG 1 int main(int argc, char ** argv) { rebuild_self(argc, argv, "cc", "-o", "build", "build.c"); prog = SHIFT(&argc, &argv); char *cmd = SHIFT(&argc, &argv); if (strcmp(cmd, "make") == 0) { RULE("./aboba", "./main.c", "./routes.c", "./baked.c", "./mongoose.o", "./gpp1" ) { RULE("./mongoose.o", "./mongoose/mongoose.c") { #if DEBUG CMD("cc", "-ggdb", "-c", "-D_GNU_SOURCE", "-o", "./mongoose.o", "./mongoose/mongoose.c"); #else CMD("cc", "-c", "-D_GNU_SOURCE", "-o", "./mongoose.o", "./mongoose/mongoose.c"); #endif } RULE("./gpp1", "./gpp/gpp.c") { CMD("cc", "-DHAVE_STRDUP", "-DHAVE_FNMATCH_H", "-o", "gpp1", "gpp/gpp.c"); } #if DEBUG CMD("cc", "-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", "-DINCBIN_PREFIX=", "-DINCBIN_STYLE=INCBIN_STYLE_SNAKE", "-o", "./aboba", "./main.c", "./routes.c", "./baked.c", "./mongoose.o"); #endif } } else if (strcmp(cmd, "clean") == 0) { remove1("./build"); remove1("./aboba"); remove("./mongoose.o"); } return 0; }