summaryrefslogtreecommitdiff
path: root/GNUmakefile
blob: 006a32887c9ba3cd6797b98bed3cbe0b826f35c8 (plain)
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
SHELL = /bin/sh

.SUFFIXES =
.SUFFIXES = .c .o

CC := gcc
LD := gcc
CFLAGS := -Wall -Wextra -Os -funroll-all-loops -std=c99 -pedantic
LDFLAGS := -lz
STRIPARGS := -s -p

SRCDIR = src
OBJDIR = obj
BINDIR = bin

SOURCES := $(wildcard $(SRCDIR)/*.c)
OBJECTS := $(SOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.o)


all: $(BINDIR)/nekopack


$(BINDIR)/nekopack: $(OBJECTS)
	@mkdir -p $(BINDIR)
	@$(LD) $(LDFLAGS) -o $@ $(OBJECTS)


$(OBJDIR)/%.o: $(SRCDIR)/%.c
	@mkdir -p $(OBJDIR)
	@$(CC) $(CFLAGS) -o $@ -c $<


.PHONY: strip
strip:
	@strip $(STRIPARGS) $(BINDIR)/nekopack


.PHONY: clean
clean:
	@rm -rf $(OBJECTS)


.PHONY: remove
remove: clean
	@rm -rf $(BINDIR)/$(TARGET)