aboutsummaryrefslogtreecommitdiff
path: root/make.c
diff options
context:
space:
mode:
authorThomas Voss <thomas.voss@humanwave.nl> 2024-02-14 17:08:55 +0100
committerThomas Voss <thomas.voss@humanwave.nl> 2024-02-14 17:08:55 +0100
commit46bdb724b1fac2335e67b6f08b633a1a63aad552 (patch)
treef97dae5baede3b3bd3c6e976388e9f611c1896fe /make.c
parent50dd7507c103e01c23f5910041aaeb48067abfdb (diff)
Begin implementing an SDL2 frontend
Diffstat (limited to 'make.c')
-rw-r--r--make.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/make.c b/make.c
index 6a03765..53860cd 100644
--- a/make.c
+++ b/make.c
@@ -165,7 +165,7 @@ build_ahoy(void)
glob_t g;
char **objs;
cmd_t c = {0};
- struct strv sv = {0};
+ struct strv sv = {0}, pc = {0};
build_librune();
@@ -187,6 +187,8 @@ build_ahoy(void)
else
env_or_default(&sv, "CFLAGS", CFLAGS_DBG);
+ (void)pcquery(&pc, "sdl2", PKGC_CFLAGS);
+
for (size_t i = 0; i < g.gl_pathc; i++) {
if (!FLAGSET('f') && !foutdated(objs[i], g.gl_pathv[i]))
continue;
@@ -196,6 +198,7 @@ build_ahoy(void)
if (FLAGSET('l'))
cmdadd(&c, "-flto");
cmdadd(&c, "-Isrc/common", "-Ivendor/da", "-Ivendor/librune/include");
+ cmdaddv(&c, pc.buf, pc.len);
cmdadd(&c, "-c", g.gl_pathv[i], "-o", objs[i]);
CMDPRC2(c);
}
@@ -204,6 +207,7 @@ build_ahoy(void)
goto out;
strvfree(&sv);
+ strvfree(&pc);
env_or_default(&sv, "CC", CC);
env_or_default(&sv, "LDFLAGS", nullptr);
@@ -211,6 +215,10 @@ build_ahoy(void)
cmdaddv(&c, sv.buf, sv.len);
if (FLAGSET('l'))
cmdadd(&c, "-flto");
+ if (pcquery(&pc, "sdl2", PKGC_LIBS))
+ cmdaddv(&c, pc.buf, pc.len);
+ else
+ cmdadd(&c, "-lSDL2");
cmdadd(&c, "-o", c.dst);
cmdaddv(&c, objs, g.gl_pathc);
cmdadd(&c, "src/common/cerr.o", "vendor/librune/librune.a");
@@ -219,6 +227,7 @@ build_ahoy(void)
out:
globfree(&g);
strvfree(&sv);
+ strvfree(&pc);
for (size_t i = 0; i < g.gl_pathc; i++)
free(objs[i]);
}