-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
43 lines (33 loc) · 1.34 KB
/
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
37
38
39
40
41
42
43
SRCDIR=src
BINDIR=bin
DEPDIR=.depend
HOOKSDIR=hooks
BININCDIR=$(BINDIR)/include
all: nuclear-compositor
### CC Vars
CCSRCDIR=$(SRCDIR)
CCBINDIR=$(BINDIR)
CCDEPDIR=$(DEPDIR)
CC=gcc
CFLAGS=-g -Wall -fdiagnostics-color -Isrc -I include/linmath.h
LDFLAGS=-DOSVR_RM_USE_OPENGLES20=1 -lwayland-server -lX11 -lXcursor -lX11-xcb -lGLESv2 -lEGL -lxkbcommon-x11 -lxkbcommon -lm -losvrClientKit -losvrRenderManager
CCBIN=nuclear-compositor
CCSRCS = $(shell find $(CCSRCDIR) -type f -name '*.c')
CCBINS = $(patsubst $(CCSRCDIR)/%.c, $(CCBINDIR)/%.o, $(CCSRCS))
CCDEPS = $(patsubst $(CCSRCDIR)/%.c, $(CCDEPDIR)/%.d, $(CCSRCS))
-include $(CCDEPS)
$(CCBIN): $(CCBINS)
$(CC) $(LDFLAGS) -o $(CCBIN) $(CCBINS)
# C Source => Objects
$(CCBINDIR)/%.o: $(CCSRCDIR)/%.c
@mkdir -p "$(@D)"
@mkdir -p "$(patsubst $(CCBINDIR)%,$(CCDEPDIR)%, $(@D))"
$(CC) $(CFLAGS) -c $< -o $@
@$(CC) $(CFLAGS) -DDEP -MM $< -MT $@ -MF $(patsubst $(CCBINDIR)/%.o,$(CCDEPDIR)/%.d, $(@))
@cp -f $(patsubst $(CCBINDIR)/%.o,$(CCDEPDIR)/%.d, $(@)) $(patsubst $(CCBINDIR)/%.o,$(CCDEPDIR)/%.d, $(@)).tmp
@sed -e 's/.*://' -e 's/\\$$//' < $(patsubst $(CCBINDIR)/%.o,$(CCDEPDIR)/%.d, $(@)).tmp | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $(patsubst $(CCBINDIR)/%.o,$(CCDEPDIR)/%.d, $(@))
@rm -f $(patsubst $(CCBINDIR)/%.o,$(CCDEPDIR)/%.d, $(@)).tmp
### Main
clean:
@rm -vrf $(BINDIR)
@rm -vf $(CCBIN) $(RESBIN)