-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
53 lines (38 loc) · 1.36 KB
/
Makefile
File metadata and controls
53 lines (38 loc) · 1.36 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
CC ?= gcc
CFLAGS ?= -O0 -Wall -g
LDFLAGS = -export-dynamic
PKGCONFIG = $(shell which pkg-config)
GTK_INC = $(shell $(PKGCONFIG) --cflags gtk+-3.0)
GTK_LIB = $(shell $(PKGCONFIG) --libs gtk+-3.0)
SOURCEDIR = src
BUILDDIR = build
IMAGEDIR = data/images
EXECUTABLE = CatsInvasion
RESOURCES_XML = data/resources.xml
RESOURCES_SOURCE = build/resources.c
RESOURCES_OBJECT = build/resources.o
ASM_SOURCES = $(wildcard $(SOURCEDIR)/*.S)
C_SOURCES = $(wildcard $(SOURCEDIR)/*.c)
ASM_OBJECTS = $(patsubst $(SOURCEDIR)/%.S,$(BUILDDIR)/%.o,$(ASM_SOURCES))
C_OBJECTS = $(patsubst $(SOURCEDIR)/%.c,$(BUILDDIR)/%.o,$(C_SOURCES))
OBJECTS = $(ASM_OBJECTS) $(C_OBJECTS) $(RESOURCES_OBJECT)
.phony: all
all: dir $(BUILDDIR)/$(EXECUTABLE)
dir:
mkdir -p $(BUILDDIR)
$(BUILDDIR)/$(EXECUTABLE): $(OBJECTS)
$(CC) -o $@ $(LDFLAGS) $^ $(GTK_LIB)
$(RESOURCES_SOURCE):
glib-compile-resources --target=$(RESOURCES_SOURCE) --generate-source $(RESOURCES_XML)
$(RESOURCES_OBJECT): $(RESOURCES_SOURCE)
$(CC) -c -o $@ $(CFLAGS) $(GTK_INC) $<
$(C_OBJECTS): $(BUILDDIR)/%.o : $(SOURCEDIR)/%.c
$(CC) -c -o $@ $(CFLAGS) $(GTK_INC) $<
$(ASM_OBJECTS): $(BUILDDIR)/%.o : $(SOURCEDIR)/%.S
$(CC) -c -o $@ $(CFLAGS) $<
.phony: clean
clean:
rm -rf $(BUILDDIR)
.phony: archive
archive:
tar czvf cats-invasion.tar.gz data src .gitignore Makefile README.md