aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-28 00:37:31 +0100
committereunhhu <[email protected]>2026-09-28 00:37:31 +0100
commitebae1463d5521f2d08641ba1c52fece29a317a9c (patch)
tree2be3ec7be64b402ff66ab7995bb4062c17dd8522 /Makefile
parent0d9d4c50bbd4a33a309ccb498b6bc55509c1dfed (diff)
downloadvega-ebae1463d5521f2d08641ba1c52fece29a317a9c.tar.gz
vega-ebae1463d5521f2d08641ba1c52fece29a317a9c.zip
Build the node's surface again when Pure's headers change
vega-surface.so is compiled against Pure's app and module layout, which a node checks when it maps the surface (sizeof PureApp and PureModule): a surface left from before a change of those headers was refused, and the node showed no frame. It now depends on Pure's core headers and serve/surface.h, as the vega command already depends on libpure.a.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile7
1 files changed, 5 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index b99d26c..e00385c 100644
--- a/Makefile
+++ b/Makefile
@@ -29,8 +29,11 @@ $(BUILD)/vega: $(SURFACES) surfaces/vega.h symbols/symbols.c symbols/symbols.h $
# The same host as a surface a Pure node maps (pure-serve --surface, Pure's
# serve/surface.h): the node's display. It calls the app model pure-serve
# exports, so it links no libpure.a of its own; it exports pure_surface_run
-# alone, and what only the vega command uses is left out.
-$(BUILD)/vega-surface.so: $(SURFACES) surfaces/vega.h symbols/symbols.c symbols/symbols.h | $(BUILD)
+# alone, and what only the vega command uses is left out. It is built again
+# when Pure's headers change: a node refuses a surface built for another
+# layout of its app and module.
+PURE_HEADERS = $(wildcard $(PURE)/core/*.h) $(PURE)/serve/surface.h
+$(BUILD)/vega-surface.so: $(SURFACES) surfaces/vega.h symbols/symbols.c symbols/symbols.h $(PURE_HEADERS) | $(BUILD)
$(CC) $(CPPFLAGS) $(CFLAGS) -Wno-unused-function -fPIC -shared -fvisibility=hidden -ffunction-sections \
-fdata-sections -DVEGA_SURFACE -I$(PURE)/core -I$(PURE)/serve -Isymbols $(SURFACES) symbols/symbols.c \
$(LDFLAGS) -Wl,--gc-sections -lm $(LDLIBS) -o $@