forked from shurizzle/brainfuck
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
59 lines (46 loc) · 1.21 KB
/
Makefile
File metadata and controls
59 lines (46 loc) · 1.21 KB
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Makefile for ``brainfuck''
VERSION = 0.1
CC ?= gcc
CFLAGS = -Wall -Wextra -ansi -pedantic -pedantic-errors -D_BSD_SOURCE
INCS = -I/usr/include -Iincludes
PREFIX ?= /usr/local
SOURCES = sources/main.c sources/storage.c
OBJECTS = build/main.o build/storage.o
TARGET = brainfuck
ifdef BF_COMMENT_CHAR
CFLAGS += -D"BF_COMMENT_CHAR='$(BF_COMMENT_CHAR)'"
endif
ifdef DEBUG
CFLAGS += -O0 -g3
else
CFLAGS += -Os
endif
all: init $(TARGET)
init:
@mkdir -p build
@mkdir -p bin
$(TARGET): $(OBJECTS)
@echo "CC -o $@"
@$(CC) $? -o bin/$@
$(OBJECTS): build/%.o: sources/%.c
@echo "CC $<"
@echo "CFLAGS $(CFLAGS)"
@$(CC) -c $(CFLAGS) $(INCS) $< -o $@
clean:
@echo "Cleaning..."
@rm -Rfv build bin
install: all
@mkdir -p "$(DESTDIR)/$(PREFIX)/bin"
@echo "Installing binary"
@cp "bin/$(TARGET)" "$(DESTDIR)/$(PREFIX)/bin"
uninstall:
@echo "Uninstalling binary"
@rm "$(DESTDIR)/$(PREFIX)/bin/$(TARGET)"
dist:
@echo "Creating tarball..."
@mkdir -p "$(TARGET)-$(VERSION)"
@cp -R includes sources Makefile README "$(TARGET)-$(VERSION)"
@tar -cf "$(TARGET)-$(VERSION).tar" "$(TARGET)-$(VERSION)"
@gzip "$(TARGET)-$(VERSION).tar"
@rm -R "$(TARGET)-$(VERSION)"
.PHONY: all clean install uninstall