CODEGEN_INPUTS = protocol.yaml codegen/gen.mjs CODEGEN_OUTPUTS = c-backend/generated/protocol.h \ c-backend/generated/protocol.c \ node-server/src/generated/protocol.mjs .PHONY: all generate c-backend node-install clean all: generate c-backend node-install generate: $(CODEGEN_OUTPUTS) $(CODEGEN_OUTPUTS): $(CODEGEN_INPUTS) | codegen/node_modules node codegen/gen.mjs codegen/node_modules: codegen/package.json cd codegen && npm install @touch codegen/node_modules c-backend: generate $(MAKE) -C c-backend node-install: node-server/node_modules node-server/node_modules: node-server/package.json cd node-server && npm install @touch node-server/node_modules clean: $(MAKE) -C c-backend clean rm -f $(CODEGEN_OUTPUTS)