-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
36 lines (29 loc) · 956 Bytes
/
Makefile
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
.DEFAULT_GOAL := pinsel
CC := gcc
INSTALLDIR := /usr/local/bin
DATADIR := ./data
SRCDIR := ./src
OBJDIR := ./obj
UIFILES := $(wildcard $(DATADIR)/*.ui)
LUAFILES := $(wildcard $(DATADIR)/*.lua)
DATAFILES := $(UIFILES) $(LUAFILES)
RESFILE := $(SRCDIR)/resources.c
CFILES := $(wildcard $(SRCDIR)/*.c) $(RESFILE)
OBJFILES := $(CFILES:$(SRCDIR)/%.c=$(OBJDIR)/%.o)
LDLIBS := $(shell pkg-config --cflags --libs gtk+-3.0 lua gio-unix-2.0)
pinsel: $(OBJFILES)
$(CC) -o $@ $^ -Wall $(LDLIBS) -export-dynamic
$(RESFILE): $(DATADIR)/data.gresource.xml $(DATAFILES)
glib-compile-resources --target $@ --generate-source $<
$(OBJDIR)/%.o: $(SRCDIR)/%.c
mkdir -p obj
$(CC) $< -c -o $@ -Wall $(LDLIBS)
.PHONY: install
install: pinsel
cp pinsel $(INSTALLDIR)/pinsel
.PHONY: uninstall
uninstall:
rm $(INSTALLDIR)/pinsel
.PHONY: clean
clean:
rm -f $(OBJFILES) $(.DEFAULT_GOAL) $(RESFILE)