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