diff options
author | Jari Vetoniemi <mailroxas@gmail.com> | 2019-02-25 09:10:29 +0200 |
---|---|---|
committer | Jari Vetoniemi <mailroxas@gmail.com> | 2019-02-25 09:10:29 +0200 |
commit | 8197b9b10901bb2f1d7b79d534ce6004349979b5 (patch) | |
tree | 855e5ad51ebfc1baa64e4825cfd99d599023e6e4 /GNUmakefile | |
parent | 8039ba530de2f64eb275845e9f7dd014b95f9575 (diff) |
Makefile -> GNUmakefile
We are GNUmake specific
Diffstat (limited to 'GNUmakefile')
-rw-r--r-- | GNUmakefile | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/GNUmakefile b/GNUmakefile new file mode 100644 index 0000000..edfd4ba --- /dev/null +++ b/GNUmakefile @@ -0,0 +1,61 @@ +PREFIX ?= /usr/local +bindir ?= /bin + +MAKEFLAGS += --no-builtin-rules + +# GCC 7: -Wstringop-overflow=, -Walloc-size-larger-than=, -Wduplicated-{branches,cond} +WARNINGS = -Wall -Wextra -Wpedantic -Wformat=2 -Wstrict-aliasing=3 -Wstrict-overflow=5 -Wstack-usage=12500 \ + -Wfloat-equal -Wcast-align -Wpointer-arith -Wchar-subscripts -Warray-bounds=2 + +override CFLAGS ?= -g -O2 $(WARNINGS) +override CFLAGS += -std=c11 +override CPPFLAGS ?= -D_FORTIFY_SOURCE=2 +override CPPFLAGS += -Isrc +override COLMFLAGS += -Isrc/compiler + +bins = fspec-info fspec-dump dec2bin xidec xi2path xils xifile uneaf +all: $(bins) + +%.c: %.lm + colm $(COLMFLAGS) -c $< + +%.c: %.rl + ragel $^ + +%.a: + $(LINK.c) -c $(filter %.c,$^) $(LDLIBS) -o $@ + +$(bins): %: + $(LINK.c) $(filter %.c %.a,$^) $(LDLIBS) -o $@ + +src/compiler/compiler.c: src/compiler/expr.lm src/compiler/types.lm +fspec-compiler-native.a: private override WARNINGS = -Wno-unusued-parameter +fspec-compiler-native.a: src/compiler/native.c +fspec-compiler.a: private override WARNINGS = +fspec-compiler.a: src/compiler/compiler.c fspec-compiler-native.a + +fspec-info: private override LDLIBS += -lcolm +fspec-info: src/bin/fspec-info.c fspec-compiler.a fspec-compiler-native.a +fspec-dump: src/bin/fspec-dump.c + +dec2bin: src/bin/misc/dec2bin.c + +xidec: private override WARNINGS += -Wno-strict-overflow +xidec: src/bin/xi/xidec.c +xi2path: src/bin/xi/xi2path.c +xils: src/bin/xi/xils.c +xifile: src/bin/xi/xifile.c + +uneaf: private LDLIBS += $(shell pkg-config --libs-only-l zlib) +uneaf: src/bin/fw/uneaf.c + +install-bin: $(bins) + install -Dm755 $^ -t "$(DESTDIR)$(PREFIX)$(bindir)" + +install: install-bin + +clean: + $(RM) src/compiler/compiler.c + $(RM) $(bins) *.a + +.PHONY: all clean install |