-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
50 lines (33 loc) · 1.17 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
BINDIR := bin
LIBDIR := lib
override TOPDIR := $(PWD)/
LIB := libanalysisutils.a
export BINDIR LIBDIR TOPDIR
LIBSRCS := $(wildcard src/Selection/*.cpp) $(wildcard src/Utilities/*.cpp)
LIBOBJS := $(foreach v,$(notdir $(LIBSRCS:.cpp=.o)),$(LIBDIR)/$v)
vpath %.cpp src/Selection src/Utilities
CXX := g++
CPPFLAGS := $(foreach path,$(shell root-config --incdir),-I$(path))
CXXFLAGS := $(filter-out -I%,$(shell root-config --cflags)) -I$(ROOTSYS)/include \
-Isrc/Selection -Isrc/Utilities
all: bin
$(LIBDIR)/$(LIB): $(LIBOBJS)
%.a:
$(AR) $(ARFLAGS) $(@) $(^)
$(LIBDIR)/%.o : %.cpp
$(CXX) -g -Wall -std=c++11 $(CPPFLAGS) -c $(CXXFLAGS) -o $(@) $(<)
echo_%:
@echo "$(subst echo_,,$@)=\"$($(subst echo_,,$@))\""
@echo "origin $(subst echo_,,$@) returns $(origin $(subst echo_,,$@))"
BIN_SUBDIRS = src/ProtonAnalyzerMC \
src/ProtonXsec \
src/BendStudy
lib: $(LIBDIR)/$(LIB)
bin: $(foreach dir,$(BIN_SUBDIRS),$(dir)/Makefile) lib
$(foreach dir,$(BIN_SUBDIRS),$(MAKE) -C $(dir) bin;)
clean:
-$(RM) $(LIBDIR)/$(LIB) $(LIBOBJS)
-$(RM) $(BINDIR)/*.exe
-$(RM) src/Selection/*.o
-$(RM) src/Utilities/*.o
$(foreach dir,$(BIN_SUBDIRS),$(RM) $(dir)/*.o;)