summaryrefslogtreecommitdiff
path: root/GNUmakefile
diff options
context:
space:
mode:
Diffstat (limited to 'GNUmakefile')
-rw-r--r--GNUmakefile45
1 files changed, 45 insertions, 0 deletions
diff --git a/GNUmakefile b/GNUmakefile
new file mode 100644
index 0000000..087d2df
--- /dev/null
+++ b/GNUmakefile
@@ -0,0 +1,45 @@
+SHELL = /bin/sh
+
+.SUFFIXES =
+.SUFFIXES = .c .o
+
+CC := gcc
+LD := gcc
+CFLAGS := -Wall -Wextra -Os -funroll-all-loops -g
+LDFLAGS := -flto -lncurses
+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)