2
0

nobuild.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #define NOBUILD_IMPLEMENTATION
  2. #include "./nobuild.h"
  3. #define CFLAGS "-Wall", "-Wextra", "-Wswitch-enum", "-std=c11", "-pedantic", "-ggdb"
  4. #define CSV_FILE_PATH "./csv/stress-copy.csv"
  5. // #define CSV_FILE_PATH "./csv/sum.csv"
  6. // #define CSV_FILE_PATH "./csv/foo.csv"
  7. // #define CSV_FILE_PATH "./csv/bills.csv"
  8. const char *cc(void)
  9. {
  10. const char *result = getenv("CC");
  11. return result ? result : "cc";
  12. }
  13. int posix_main(int argc, char **argv)
  14. {
  15. CMD(cc(), CFLAGS, "-o", "minicel", "src/main.c");
  16. if (argc > 1) {
  17. if (strcmp(argv[1], "run") == 0) {
  18. CMD("./minicel", CSV_FILE_PATH);
  19. } else if (strcmp(argv[1], "gdb") == 0) {
  20. CMD("gdb", "./minicel");
  21. } else if (strcmp(argv[1], "valgrind") == 0) {
  22. CMD("valgrind", "--error-exitcode=1", "./minicel", CSV_FILE_PATH);
  23. } else {
  24. PANIC("%s is unknown subcommand", argv[1]);
  25. }
  26. }
  27. return 0;
  28. }
  29. int msvc_main(int argc, char **argv)
  30. {
  31. CMD("cl.exe", "/Feminicel", "src/main.c");
  32. if (argc > 1) {
  33. if (strcmp(argv[1], "run") == 0) {
  34. CMD(".\\minicel.exe", CSV_FILE_PATH);
  35. } else {
  36. PANIC("%s is unknown subcommand", argv[1]);
  37. }
  38. }
  39. return 0;
  40. }
  41. int main(int argc, char **argv)
  42. {
  43. GO_REBUILD_URSELF(argc, argv);
  44. #ifndef _WIN32
  45. return posix_main(argc, argv);
  46. #else
  47. return msvc_main(argc, argv);
  48. #endif
  49. }