-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathMakefile
60 lines (48 loc) · 2.05 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
SRC_DIR= src
INC_DIR= src
OBJ_DIR= build
OBJ_DIR_DEV= build-dev
OBJECT_FILES= libseeq.o
SOURCE_FILES= seeq.c seeq-main.c
HEADER_FILES= seeq.h
LIBSRC_FILES= libseeq.c
LIBHDR_FILES= libseeq.h seeqcore.h
OBJECTS= $(addprefix $(OBJ_DIR)/,$(OBJECT_FILES))
OBJ_DEV= $(addprefix $(OBJ_DIR_DEV)/,$(OBJECT_FILES))
SOURCES= $(addprefix $(SRC_DIR)/,$(SOURCE_FILES))
HEADERS= $(addprefix $(SRC_DIR)/,$(HEADER_FILES))
LIBSRCS= $(addprefix $(SRC_DIR)/,$(LIBSRC_FILES))
LIBHDRS= $(addprefix $(SRC_DIR)/,$(LIBHDR_FILES))
INCLUDES= $(addprefix -I, $(INC_DIR))
CFLAGS_DEV= -std=c99 -Wall -g -Wunused-parameter -Wredundant-decls -Wreturn-type -Wswitch-default -Wunused-value -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wimport -Wunused -Wunused-function -Wunused-label -Wno-int-to-pointer-cast -Wbad-function-cast -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wstrict-prototypes -Wpointer-sign -Wextra -Wredundant-decls -Wunused -Wunused-function -Wunused-parameter -Wunused-value -Wunused-variable -Wformat -Wformat-nonliteral -Wparentheses -Wsequence-point -Wuninitialized -Wundef -Wbad-function-cast -Wno-padded
CFLAGS= -std=c99 -Wall -O3
LDLIBS=
#CC= clang
all: seeq
dev: CC= clang
dev: CFLAGS= $(CFLAGS_DEV)
dev: seeq-dev
lib: lib/libseeq.so
lib/libseeq.so: $(LIBSRCS) $(LIBHDRS)
mkdir -p lib
$(CC) -shared -fPIC $(CFLAGS) $(INCLUDES) $(LIBSRCS) $(shell python3-config --includes) $(shell python3-config --libs) -o $@
cp src/libseeq.h lib/libseeq.h
seeq: $(OBJECTS) $(SOURCES) $(LIBSRCS) $(HEADERS) $(LIBHDRS)
$(CC) $(CFLAGS) $(SOURCES) $(OBJECTS) $(LDLIBS) -o $@
seeq-dev: $(OBJ_DEV) $(SOURCES) $(LIBSRCS) $(HEADERS) $(LIBHDRS)
$(CC) $(CFLAGS) $(SOURCES) $(OBJ_DEV) $(LDLIBS) -o $@
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(SRC_DIR)/%.h
mkdir -p $(OBJ_DIR)
$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
$(OBJ_DIR_DEV)/%.o: $(SRC_DIR)/%.c $(SRC_DIR)/%.h
mkdir -p $(OBJ_DIR_DEV)
$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
clean-dev:
rm -f seeq-dev
rm -rf build-dev
clean:
rm -f seeq
rm -rf lib
rm -rf build
rm -f seeq-dev
rm -rf build-dev