-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
58 lines (42 loc) · 1.34 KB
/
Copy pathMakefile
File metadata and controls
58 lines (42 loc) · 1.34 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
56
57
SDIR=src
ODIR=obj
LDIR=lib
BINDIR=bin
SHAREDIR=share
PYDIR=python
SOLIBNAME := Utils
SOLIB = $(LDIR)/lib$(SOLIBNAME).so
IDIR = -Iinclude
LIBS=-L./$(LDIR)
CXX = g++
LD = g++
CFLAGSCINT = -O2 -Wall -Wextra -Wno-unused-parameter $(IDIR) -fPIC
CFLAGS = $(CFLAGSCINT) -g -c -std=c++11
LDFLAGS = -shared -fPIC -Wl,-soname,lib$(SOLIBNAME).so $(shell root-config --ldflags)
ROOTCFLAGS=$(shell root-config --cflags)
ROOTLIBS=$(shell root-config --libs)
lib_src = $(wildcard $(SDIR)/*.cxx)
lib_obj_tmp = $(patsubst %.cxx, %.o, $(lib_src))
lib_obj = $(patsubst $(SDIR)/%, $(ODIR)/%, $(lib_obj_tmp))
share_files = $(wildcard $(SHAREDIR)/*)
share_files_bin = $(patsubst $(SHAREDIR)/%, $(BINDIR)/%, $(share_files))
python_files = $(wildcard $(PYDIR)/*)
python_files_bin = $(patsubst $(PYDIR)/%, $(BINDIR)/%, $(python_files))
all : dirs bin so
so : $(LDIR) $(DEPFILES) $(SOLIB)
bin: $(share_files_bin) $(python_files_bin)
dirs:
mkdir -p $(ODIR)
mkdir -p $(LDIR)
mkdir -p $(BINDIR)
.PHONY: clean
clean:
rm -f $(ODIR)/*.o $(ODIR)/*.d $(ODIR)/*Dict* core* $(LDIR)/*.so *_C.so $(BINDIR)/*
$(ODIR)/%.o: $(SDIR)/%.cxx
$(CXX) -o $@ $< $(ROOTCFLAGS) $(CFLAGS)
$(SOLIB): $(lib_obj)
$(LD) $(LDFLAGS) $^ $(ROOTLIBS) -o $@
$(BINDIR)/%.py:
ln -sf $(patsubst $(BINDIR)/%, ../$(PYDIR)/%, $@) $@
$(BINDIR)/%:
ln -sf $(patsubst $(BINDIR)/%, ../$(SHAREDIR)/%, $@) $@