aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: eadb7b09c5400f585c9bd110335050d4ce4727ca (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
include config.mk

Q?=@

SRC=$(wildcard **/*.c)
SRC+=$(wildcard platform/${PLATFORM}/**/*.c)
SRC+=$(wildcard platform/${PLATFORM}/*.c)
OBJ=$(SRC:%.c=.obj/%.o)

.PHONY: all echo run clean full-clean

all: Makefile.dep ${OUT} 

echo:
	$(Q)echo CFLAGS=${CFLAGS}
	$(Q)echo LDFLAGS=${LDFLAGS}
	$(Q)echo SRC=${SRC}
	$(Q)echo OBJ=${OBJ}

${OUT}: ${OBJ}
	$(Q)echo linking $@
	$(Q)${CC} -o $@ ${LDFLAGS} ${OBJ}

.obj/%.o: %.c
	$(Q)mkdir -p ${@D}
	$(Q)echo ${CC} $<
	$(Q)${CC} -c -o $@ ${CFLAGS} $<

Makefile.dep: ${SRC}
	$(Q)echo update $@
	$(Q)${CC} ${CFLAGS} ${SRC} -MM > $@

run: all
	${RUN_CMD} ./${OUT}

clean:
	rm -f ${OBJ} ${OUT}

# Don't use this unless you are fine with your custom config getting deleted
full-clean: clean
	rm -rf .obj config.mk

include Makefile.dep