-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
101 lines (85 loc) · 2.82 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
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
#
# Authors:
# Riccardo Farinelli <[email protected]>
# Lia Lavezzi <[email protected]>
#
# All rights reserved
# For the licensing terms see $PARSIFAL/LICENSE
#
SRC = $(PARSIFAL)/src
LIB = $(PARSIFAL)/lib
BIN = $(PARSIFAL)/bin
LOG = $(PARSIFAL)/log
DATA = $(PARSIFAL)/data
INC = $(addprefix -I,$(SRC))
vpath %.C $(SRC)
CC = g++
CCFLAGS = -c -Wno-deprecated -g #-std=c++11 -Wall
LD = g++
#LDFLAGS = -lGui -lTreePlayer -Wall -std=c++11 -fopenmp
LDFLAGS = -lGui -lTreePlayer -Wall#-w # -Wall -w toglie i warning
# YOU SHOULD ACTIVE -Wall every time !!!!
ROOTINCS = $(shell root-config --cflags) # will be used as it is
ROOTLIBS = $(shell root-config --glibs) -lMinuit # will be used as it is
LIBS = $(LIB) # will get an -L for each entry
EXEC1 = Test
COMPONENTS1 = main/main_test Geometry/Geometry Particle/Particle Ionization/Ionization ElectronDrift/ElectronDrift DetectorGain/DetectorGain Readout/Readout Resistive/Resistive Signal/Signal Reconstruction/Reconstruction
BIN_EXEC1 = $(addprefix $(BIN)/,$(EXEC1) )
EXEC2 = Simulate
COMPONENTS2 = main/main_sim main/Parsifal Geometry/Geometry Particle/Particle Ionization/Ionization ElectronDrift/ElectronDrift DetectorGain/DetectorGain Readout/Readout Resistive/Resistive Signal/Signal Reconstruction/Reconstruction
BIN_EXEC2 = $(addprefix $(BIN)/,$(EXEC2) )
EXEC3 = Analysis
COMPONENTS3 = main/main_ana
BIN_EXEC3 = $(addprefix $(BIN)/,$(EXEC3) )
default: all
# compile sources
$(LIB)/%.o: %.C
@echo .
@echo ... compiling source: $< to $@
$(CC) $(CCFLAGS) $< $(ROOTINCS) $(INC) -o $@
# 0
$(BIN_EXEC0):
$(LD) $(LDFLAGS) $^ $(ROOTLIBS) $(addprefix -L, $(LIBS)) -o $@
$(BIN)/$(EXEC0): $(addprefix $(LIB)/, $(addsuffix .o, $(COMPONENTS0) ) )
# 1
$(BIN_EXEC1):
$(LD) $(LDFLAGS) $^ $(ROOTLIBS) $(addprefix -L, $(LIBS)) -o $@
$(BIN)/$(EXEC1): $(addprefix $(LIB)/, $(addsuffix .o, $(COMPONENTS1) ) )
# 2
$(BIN_EXEC2):
$(LD) $(LDFLAGS) $^ $(ROOTLIBS) $(addprefix -L, $(LIBS)) -o $@
$(BIN)/$(EXEC2): $(addprefix $(LIB)/, $(addsuffix .o, $(COMPONENTS2) ) )
# 3
$(BIN_EXEC3):
$(LD) $(LDFLAGS) $^ $(ROOTLIBS) $(addprefix -L, $(LIBS)) -o $@
$(BIN)/$(EXEC3): $(addprefix $(LIB)/, $(addsuffix .o, $(COMPONENTS3) ) )
.PHONY : clean
clean:
@echo ... cleaning
rm -rf $(LIB)
rm -rf $(LIB)/*
rm -rf $(BIN)
$(LIB):
mkdir -p $(LIB)
mkdir -p $(LIB)/Geometry
mkdir -p $(LIB)/Particle
mkdir -p $(LIB)/Ionization
mkdir -p $(LIB)/ElectronDrift
mkdir -p $(LIB)/DetectorGain
mkdir -p $(LIB)/Readout
mkdir -p $(LIB)/Reconstruction
mkdir -p $(LIB)/Resistive
mkdir -p $(LIB)/Signal
mkdir -p $(LIB)/main
$(BIN):
mkdir -p $(BIN)
$(LOG):
mkdir -p $(LOG)
$(DATA):
mkdir -p $(DATA)
installdirs: $(LIB) $(BIN) $(LOG) $(DATA)
yo: installdirs $(BIN_EXEC1)
tum: installdirs $(BIN_EXEC2)
fush: installdirs $(BIN_EXEC3)
#all: yo tum fush
all: tum fush