master Makefile
 1CC       = cc -static
 2CFLAGS   = -std=c99 -Wall -Wextra -pedantic
 3
 4BACKEND  ?= auto
 5
 6CPPFLAGS ?= -Ishared -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200809L \
 7            -DFEATURE_NOFORK=0 -DFEATURE_NOEXEC=0
 8
 9NINQU_LIB_SRC =\
10        shared/libutil/ealloc.c\
11        shared/libutil/eprintf.c\
12        shared/libutil/strlcpy.c\
13        shared/libutil/strlcat.c\
14        shared/libutil/strtonum.c\
15        shared/libutil/fshut.c\
16        shared/libutil/mkdirp.c\
17        shared/libutil/recurse_dir.c\
18        shared/libutil/wexec.c
19
20NINQU_SRC =\
21        cmd/dev/ninqu/main.c\
22        cmd/dev/ninqu/strlist.c\
23        cmd/dev/ninqu/kv.c\
24        cmd/dev/ninqu/sexpr.c\
25        cmd/dev/ninqu/gate.c\
26        cmd/dev/ninqu/registry.c\
27        cmd/dev/ninqu/fs.c\
28        cmd/dev/ninqu/exec.c\
29        cmd/dev/ninqu/backend.c\
30        cmd/dev/ninqu/parse.c\
31        cmd/dev/ninqu/expand.c\
32        cmd/dev/ninqu/schedule.c\
33        cmd/dev/ninqu/query.c\
34        cmd/dev/ninqu/resolve.c\
35        cmd/dev/ninqu/ninja.c
36
37NINQU ?= cmd/dev/ninqu/ninqu
38# no $(filter -j%,$(MAKEFLAGS)) equivalent here (GNUmakefile's own
39# trick): pass ninqu's own parallelism directly, "make JOBS=-j8 box"
40JOBS ?=
41
42# every real goal ninqu.rules exposes, listed once instead of
43# GNUmakefile's own "%: FORCE" catch-all. a new top-level group needs
44# a matching name added here too
45.PHONY: all default clean box dev man install install-base uninstall \
46        remove fmt fmt-all lib posix linux net xsi pseudo extra codegen
47
48$(NINQU): $(NINQU_SRC) cmd/dev/ninqu/ninqu.h scripts/mk/config.set $(NINQU_LIB_SRC)
49	$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(NINQU_SRC) $(NINQU_LIB_SRC)
50
51scripts/mk/config.set: build.cfg scripts/genconfig.sh
52	sh scripts/genconfig.sh config
53
54all default box dev man install install-base uninstall remove \
55fmt fmt-all lib posix linux net xsi pseudo extra codegen: $(NINQU)
56	$(NINQU) $(JOBS) $@
57
58clean: $(NINQU)
59	$(NINQU) clean
60	rm -f $(NINQU) build.ninja