-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
46 lines (32 loc) · 849 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
37
38
39
40
41
42
43
44
45
46
# Configure the environment.
USING_MACOSX := $(shell uname | egrep Darwin)
INCDIR = inc
OBJDIR = obj
SRCDIR = src
SRCS := $(wildcard ${SRCDIR}/*.c)
OBJS := $(addprefix ${OBJDIR}/,$(notdir $(SRCS:.c=.o)))
CC = gcc
CFLAGS = -fPIC -g -O2 -Wall -Wextra -I${INCDIR}
LDFLAGS = # linking flags
RM = rm -f # rm command
ifdef USING_MACOSX
STATIC =
else
STATIC = -static
endif
.PHONY: all
all: libmisclib.a libmisclib.so unittest/misclibTest
${OBJDIR}:
mkdir -p $@
libmisclib.a: $(OBJS)
ar rcs $@ $^
libmisclib.so: $(OBJS)
$(CC) ${LDFLAGS} -shared -o $@ $^
unittest/misclibTest: $(wildcard unittest/*.c) libmisclib.a
$(CC) ${STATIC} $(CFLAGS) -L. -lmisclib -o $@ $^
${OBJDIR}/%.o: ${SRCDIR}/%.c ${OBJDIR}
$(CC) $(CFLAGS) -c -o $@ $<
.PHONY: clean
clean:
-${RM} libmisclib.a libmisclib.so unittest/misclibTest
-rm -Rf ${OBJDIR}