#define NOB_IMPLEMENTATION #define NOB_STRIP_PREFIX #include "nob.h" #define BUILD_FOLDER "build/" #define SRC_FOLDER "src/" #define SRC_FILE "src/main.c" int main(int argc, char **argv){ NOB_GO_REBUILD_URSELF(argc, argv); Nob_Cmd cmd = {0}; if (!nob_mkdir_if_not_exists(BUILD_FOLDER)) return 1; if (!nob_mkdir_if_not_exists(SRC_FOLDER)) return 1; if(!file_exists(SRC_FILE)) { String_Builder sb = {0}; sb_append_cstr(&sb, "/* Initial 'Hello World' */\n"); sb_append_cstr(&sb, "#include \n"); sb_append_cstr(&sb, "\nint main()\n"); sb_append_cstr(&sb, "{\n printf(\"Hello, world\\n\");\n"); sb_append_cstr(&sb, " return 0;\n}\n"); /* const char *data = "#include \n\nint main(){\n printf(\"Hello, world\\n\");\n return 0;\n}\n"; */ write_entire_file(SRC_FILE, sb.items, sb.count); } nob_cmd_append(&cmd, "cc"); nob_cmd_append(&cmd, "-Wall", "-Wextra"); nob_cmd_append(&cmd, "-o", BUILD_FOLDER"main", SRC_FOLDER"main.c"); if(!nob_cmd_run(&cmd)) return 1; nob_cmd_append(&cmd, BUILD_FOLDER"main"); if(!nob_cmd_run(&cmd)) return 1; return 0; }