forked from simonepigazzini/DynamicTTree
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
107 lines (75 loc) · 2.44 KB
/
Makefile
File metadata and controls
107 lines (75 loc) · 2.44 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
DIR := ${CURDIR}
HDR = ./interface/
SRC = ./src/
PLG = ./plugins/
PRG = ./test/
OBJ = ./obj/
LIB = ./lib/
BIN = ./bin/
HDRSuf = .h
SRCSuf = .cc
PRGSuf = .cpp
OBJSuf = .o
LIBSuf = .so
BINSuf = .exe
HDRS = $(wildcard $(HDR)*$(HDRSuf))
SRCS = $(wildcard $(SRC)*$(SRCSuf))
PLGS = $(wildcard $(PLG)*$(HDRSuf))
_OBJS = $(patsubst %$(SRCSuf), %$(OBJSuf), $(SRCS))
OBJS = $(patsubst $(SRC)%, $(OBJ)%, $(_OBJS))
PRGS = $(wildcard $(PRG)*$(PRGSuf))
_BINS = $(wildcard $(PRG)*$(PRGSuf))
__BINS = $(_BINS:$(PRGSuf)=$(BINSuf))
___BINS = $(notdir $(__BINS))
BINS = $(addprefix $(BIN),${___BINS})
LINKDEF = $(wildcard ${HDR}*LinkDef.h)
DICTHDRS = $(patsubst $(LINKDEF),,$(HDRS)) $(LINKDEF)
ARCH = $(shell root-config --arch)
ROOTCFLAGS = $(shell root-config --cflags)
ROOTGLIBS = $(shell root-config --glibs) -lGenVector -lFoam -lMinuit -lTMVA -lMLP -lXMLIO -lTreePlayer
CXX = g++
CXXFLAGS = -Wall -O2 -fPIC -I$(DIR) $(ROOTCFLAGS)
CPP = g++
CPPFLAGS = -Wall -I$(DIR) $(ROOTCFLAGS)
LD = g++
LDFLAGS = -rdynamic -shared -O2
SONAME = libDynamicTTree.so
SOFLAGS = -Wl,-soname,
GLIBS = -lm -ldl -rdynamic $(ROOTGLIBS)
#################################################
#if mac 64
ifeq ($(ARCH),macosx64)
LIBSuf = .dylib
CPPFLAGS = -Wall -W -Woverloaded-virtual -O2 -pipe -I$(DIR) $(ROOTCFLAGS)
CXXFLAGS = -Wall -W -Woverloaded-virtual -O2 -pipe -I$(DIR) $(ROOTCFLAGS)
LDFLAGS = -dynamiclib -shared -single_module -undefined dynamic_lookup
SONAME = libDynamicTTree.dylib
SOFLAGS = -Wl,-install_name,
endif
#################################################
.PHONY: all clean test
all: $(LIB)$(SONAME)
exe: $(BINS)
test:
@echo "HDRS = $(HDRS)"
@echo "DICTHDRS = $(DICTHDRS)"
@echo "SRCS = $(SRCS)"
@echo "PLGS = $(PLGS)"
@echo "PRGS = $(PRGS)"
@echo "OBJS = $(OBJS)"
@echo "BINS = $(BINS)"
$(BIN)%$(BINSuf): $(PRG)%$(PRGSuf) $(HDRS) $(LIB)$(SONAME)
$(CPP) $(CPPFLAGS) $(GLIBS) -L$(LIB) -lDynamicTTree -o $@ $<
$(OBJ)%$(OBJSuf): $(SRC)%$(SRCSuf)
$(CXX) -c $(CXXFLAGS) -o $@ $<
$(LIB)mydict.cc: $(DICTHDRS)
@echo "Generating dictionary..."
rootcling -f $(LIB)mydict.cc -c -p $(DICTHDRS)
$(LIB)mydict.o: $(LIB)mydict.cc
$(CXX) -c $(CXXFLAGS) -o $@ $<
$(LIB)$(SONAME): $(OBJS) $(LIB)mydict.o
@echo "Linking $(SONAME):"
$(LD) $(LDFLAGS) $(OBJS) $(LIB)mydict.o -o $(LIB)$(SONAME) $(SOFLAGS)$(SONAME)
clean:
@echo "cleaning..."
rm -f $(OBJ)*$(OBJSuf) $(LIB)*$(LIBSuf) $(LIB)mydict* $(BIN)*$(BINSuf)