-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
44 lines (32 loc) · 802 Bytes
/
Copy pathMakefile
File metadata and controls
44 lines (32 loc) · 802 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
CC := gcc
CCFLAGS := -g
GHC := ghc
GHCFLAGS :=
export CCFLAGS:=$(CCFLAGS) -Wall -O3
export CC
LDFLAGS = -g
SRCDIR := src
OBJDIR := obj
OUTDIR := bin
DIRS := $(SRCDIR) $(OBJDIR) $(OUTDIR)
CSRC := $(wildcard $(SRCDIR)/*.c)
COUT := $(CSRC:$(SRCDIR)/%.c=$(OUTDIR)/%)
HSSRC := $(wildcard $(SRCDIR)/*.hs)
HSOUT := $(HSSRC:$(SRCDIR)/%.hs=$(OUTDIR)/%)
SHSRC := $(wildcard $(SRCDIR)/*.sh)
SHOUT := $(SHSRC:$(SRCDIR)/%.sh=$(OUTDIR)/%.sh)
OUT := $(COUT) $(HSOUT) $(SHOUT)
.PHONY: build setup clean
build: | setup $(OUT)
rm $(SRCDIR)/*.hi $(SRCDIR)/*.o || true
setup: $(DIRS)
$(DIRS):
mkdir -p $@
clean:
rm $(OBJDIR) $(OUTDIR) -rf
$(OUTDIR)/%: $(SRCDIR)/%.c
$(CC) $(CCFLAGS) $< -o $@
$(OUTDIR)/%: $(SRCDIR)/%.hs
$(GHC) $(GHCFLAGS) -o $@ $<
$(OUTDIR)/%.sh: $(SRCDIR)/%.sh
cp $< $@