-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
45 lines (38 loc) · 1.05 KB
/
Makefile
File metadata and controls
45 lines (38 loc) · 1.05 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
LLVM_CONFIG?=llvm-config
ifndef VERBOSE
QUIET:=@
endif
SRC_DIR?=$(PWD)
LDFLAGS+=$(shell $(LLVM_CONFIG) --ldflags)
COMMON_FLAGS=-Wall -Wextra
CXXFLAGS+=$(COMMON_FLAGS) $(shell $(LLVM_CONFIG) --cxxflags) -fno-rtti
CPPFLAGS+=$(shell $(LLVM_CONFIG) --cppflags) -I$(SRC_DIR)
CLANGLIBS=\
-Wl,--start-group\
-lclang\
-lclangFrontend\
-lclangDriver\
-lclangSerialization\
-lclangParse\
-lclangSema\
-lclangAnalysis\
-lclangEdit\
-lclangAST\
-lclangLex\
-lclangBasic\
-Wl,--end-group
OTHERLIBS=\
-lcjson
LLVMLIBS=$(shell $(LLVM_CONFIG) --libs)
SYSTEMLIBS=$(shell $(LLVM_CONFIG) --system-libs)
PROJECT=deepin-scanlib
PROJECT_OBJECTS=deepin-scanlib.o
default: $(PROJECT)
$(PROJECT_OBJECTS) : $(SRC_DIR)/src/deepin-scanlib.cpp
@echo Compiling $*.cpp
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $(SRC_DIR)/src/$(PROJECT_OBJECTS)
$(PROJECT) : $(SRC_DIR)/src/$(PROJECT_OBJECTS)
@echo Linking $@
$(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $^ $(CLANGLIBS) $(LLVMLIBS) $(OTHERLIBS) $(SYSTEMLIBS)
clean::
$(QUIET)rm -f $(PROJECT) $(SRC_DIR)/src/$(PROJECT_OBJECTS)