diff options
| author | 2022-08-30 10:41:16 +0200 | |
|---|---|---|
| committer | 2022-08-30 10:41:16 +0200 | |
| commit | dea68bafe81c40adf29e45630cfeceb97b91a630 (patch) | |
| tree | 687c50f8e1402ed30ee711d27647aad8251a015c /Makefile | |
| parent | e4163c18cdc3522f24e459cd6ddde60edb1605e2 (diff) | |
Makefile and such
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..72d7007 --- /dev/null +++ b/Makefile @@ -0,0 +1,42 @@ +CFFC ?= cffc +SRCS=src/env.cff \ + src/fmt.cff \ + src/fold.cff \ + src/host-target-triple.cff \ + src/llvm.cff \ + src/main.cff \ + src/parse.cff \ + src/targ.cff \ + src/type.cff \ + src/util.cff + +OBJ=$(foreach o,$(subst .cff,.o,$(SRCS)),build/$o) +OUT ?= cffc + + +ifneq ($(VERBOSE),) + V= +else + V=@ +endif + +all: $(OUT) + +clean: + $(RM) -r build/ src/host-target-triple.cff + +$(OUT): $(OBJ) + +src/host-target-triple.cff: + echo "extern static host_target_triple const *const u8 = \"`clang -print-target-triple`\";" > $@ + +$(OBJ): $(wildcard src/*.hff) + +build/%.o: %.cff + $Vmkdir -p `dirname $@` + @echo -e '\e[1mCFFC\e[0m' '\e[32m'"$<"'\e[0m' '->' '\e[34m'"$@"'\e[0m' + $V$(CFFC) $< -o $@.ll + $Vset -euo pipefail;\ + (opt -Oz -opaque-pointers $@.ll | llc --relocation-model=pic -opaque-pointers | as - -o $@) || ($(RM) $@; false) + + |