-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile.in
More file actions
55 lines (44 loc) · 1.5 KB
/
Makefile.in
File metadata and controls
55 lines (44 loc) · 1.5 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
54
55
CC = @CC@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
PLATFORM = @PLATFORM@
PLATFORM_CODE = @PLATFORM_CODE@
SPACER := 3
SRCDIR = src/core
LIBDIR = src/lib
MSCDIR = src/misc
PLTDIR = src/platform/${PLATFORM}
BINDIR = bin
OBJDIR = obj
MAIN = http-server
SRCS = $(wildcard ${SRCDIR}/*.c)
LIBS = $(wildcard ${LIBDIR}/*.c)
MSCS = $(wildcard ${MSCDIR}/*.c)
PLTS = $(wildcard ${PLTDIR}/*.c)
SRCOBJ = $(patsubst ${SRCDIR}/%.c,${OBJDIR}/core-%.o,${SRCS})
LIBOBJ = $(patsubst ${LIBDIR}/%.c,${OBJDIR}/lib-%.o,${LIBS})
MSCOBJ = $(patsubst ${MSCDIR}/%.c,${OBJDIR}/misc-%.o,${MSCS})
PLTOBJ = $(patsubst ${PLTDIR}/%.c,${OBJDIR}/platform-${PLATFORM}-%.o,${PLTS})
.PHONY: all clean
all: main
main: ${BINDIR}/${MAIN}
clean:
@printf " %-${SPACER}s %s\n" "RM" "${OBJDIR}/*"
@${RM} ${OBJDIR}/*
@printf " %-${SPACER}s %s\n" "RM" "${BINDIR}/${MAIN}"
@${RM} ${BINDIR}/${MAIN}
${BINDIR}/${MAIN}: ${SRCOBJ} ${LIBOBJ} ${MSCOBJ} ${PLTOBJ}
@printf " %-${SPACER}s %s\n" "LD" "$@"
@${CC} -o $@ $^ ${LDFLAGS}
${OBJDIR}/core-%.o: ${SRCDIR}/%.c
@printf " %-${SPACER}s %s\n" "CC" "$<"
@${CC} -o $@ -c $< ${CFLAGS} -DPLATFORM=${PLATFORM_CODE}
${OBJDIR}/lib-%.o: ${LIBDIR}/%.c
@printf " %-${SPACER}s %s\n" "CC" "$<"
@${CC} -o $@ -c $< ${CFLAGS} -DPLATFORM=${PLATFORM_CODE}
${OBJDIR}/misc-%.o: ${MSCDIR}/%.c
@printf " %-${SPACER}s %s\n" "CC" "$<"
@${CC} -o $@ -c $< ${CFLAGS} -DPLATFORM=${PLATFORM_CODE}
${OBJDIR}/platform-${PLATFORM}-%.o: ${PLTDIR}/%.c
@printf " %-${SPACER}s %s\n" "CC" "$<"
@${CC} -o $@ -c $< ${CFLAGS} -DPLATFORM=${PLATFORM_CODE}