-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathmakefile
More file actions
54 lines (42 loc) · 1.34 KB
/
makefile
File metadata and controls
54 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
ifndef SNUDC_WORKING_DIR
$(error SNUDC_WORKING_DIR is undefined. Please source setup.sh ..)
endif
MKARCH := $(ROOTSYS)/etc/Makefile.arch
include $(MKARCH)
INCLUDE_DIR=include
SRC_DIR=src
OBJ_DIR=obj
LIB_DIR=lib
LIBNAME=SNUDC
LINKDEF=$(INCLUDE_DIR)/$(LIBNAME)_LinkDef.h
DICT=$(SRC_DIR)/$(LIBNAME)Dict.cxx
DICT_OBJ=$(patsubst $(SRC_DIR)/%.cxx,$(OBJ_DIR)/%.o,$(DICT))
LIB=$(LIB_DIR)/libSNUDC.so
HEADER_FILES=$(filter-out $(LINKDEF),$(wildcard $(INCLUDE_DIR)/*.h))
SRC_FILES=$(wildcard $(SRC_DIR)/*.C)
OBJ_FILES=$(patsubst $(SRC_DIR)/%.C,$(OBJ_DIR)/%.o,$(SRC_FILES))
CXXFLAGS += -I$(INCLUDE_DIR)
.PHONY: all clean check-env
all: check-env $(LIB)
$(LIB): $(OBJ_FILES) $(DICT_OBJ)
mkdir -p $(LIB_DIR)
$(LD) $(SOFLAGS) $(LDFLAGS) $^ -o $@ $(EXPLLINKLIBS)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.C $(INCLUDE_DIR)/%.h
@echo "compile $<"
mkdir -p $(OBJ_DIR)
$(CXX) $(CXXFLAGS) -c $< -o $@
$(DICT_OBJ): $(DICT)
@echo "compile $<"
mkdir -p $(OBJ_DIR)
$(CXX) $(CXXFLAGS) -c $< -o $@
$(DICT): $(HEADER_FILES) $(LINKDEF)
mkdir -p $(LIB_DIR)
$(ROOTCLING) -f $@ -rmf $(subst .so,.rootmap,$(LIB)) -rml $(notdir $(LIB)) -rml libTree.so -rml libHist.so -rml libGpad.so -rml libGraf3d.so -rml libPhysics.so -s $(LIB) $(notdir $^)
clean: check-env
rm -rf $(OBJ_DIR)
rm -f $(DICT)
rm -rf $(LIB_DIR)
check-env:
ifndef SNUDC_WORKING_DIR
$(error SNUDC_WORKING_DIR is undefined)
endif