-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile_ccdb
98 lines (83 loc) · 2.48 KB
/
Makefile_ccdb
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
ifndef CCDB_URL
CCDB_URL=https://github.com/JeffersonLab/ccdb
endif
ifdef CCDB_VERSION
TARFILE = v$(CCDB_VERSION).tar.gz
GET_SOURCE_TARGET = $(CCDB_DIR)/.untar_done
ifdef CCDB_DIRTAG
CCDB_DIR = ccdb_$(CCDB_VERSION)^$(CCDB_DIRTAG)
else
CCDB_DIR = ccdb_$(CCDB_VERSION)
endif
MAJOR_VERSION := $(shell echo $(CCDB_VERSION) | cut -d. -f1)
else
CCDB_DIR = ccdb
GET_SOURCE_TARGET = $(CCDB_DIR)/.clone_done
ifdef CCDB_DIRTAG
CCDB_DIR = $(notdir $(CCDB_URL))^$(CCDB_DIRTAG)
else
CCDB_DIR = $(notdir $(CCDB_URL))
endif
ifndef CCDB_BRANCH
CCDB_BRANCH = master
endif
MAJOR_VERSION := 2
endif
CCDB_INSTALL_DIR = $(shell pwd)/$(CCDB_DIR)
UNTAR_TEMP_DIR := untar_temp_dir_$(shell echo $$RANDOM)
PYTHON = $(shell $(BUILD_SCRIPTS)/python_chooser.sh command)
SCONS = $(shell $(BUILD_SCRIPTS)/python_chooser.sh scons)
PYVERSION = $(shell $(BUILD_SCRIPTS)/python_chooser.sh version)
ifeq '$(MAJOR_VERSION)' '1'
BUILD_TARGET = $(CCDB_DIR)/.scons_done
else
BUILD_TARGET = $(CCDB_DIR)/.make_done
endif
all: force_rebuild_action $(BUILD_TARGET)
force_rebuild_action:
ifdef FORCE
@echo forcing rebuild
$(RM) $(CCDB_DIR)/.scons_done
endif
$(TARFILE):
wget --no-verbose --no-check-certificate -O $@ $(CCDB_URL)/archive/$(TARFILE)
$(CCDB_DIR)/.untar_done: $(TARFILE)
rm -rfv $(UNTAR_TEMP_DIR)
mkdir $(UNTAR_TEMP_DIR)
cd $(UNTAR_TEMP_DIR) ; tar zxf ../$(TARFILE)
mv -v $(UNTAR_TEMP_DIR)/* $(CCDB_DIR)
rmdir -v $(UNTAR_TEMP_DIR)
date > $@
$(CCDB_DIR)/.clone_done:
git clone -b $(CCDB_BRANCH) $(CCDB_URL) $(CCDB_DIR)
ifdef CCDB_HASH
cd $(CCDB_DIR) ; git checkout $(CCDB_HASH)
endif
date > $@
#$(CCDB_DIR)/.untar_local_scons: $(GET_SOURCE_TARGET)
# cd $(CCDB_DIR)/scripts ; \
# tar zxf scons-local-2.1.0.tar.gz
# date > $@
#$(CCDB_DIR)/.scons_done: $(CCDB_DIR)/.untar_local_scons
# source $(CCDB_DIR)/environment.bash ; \
# cd $(CCDB_DIR) ; \
# which python2; \
# python2 --version ; \
# python2 scripts/scons.py
# date > $@
$(CCDB_DIR)/.scons_done: $(GET_SOURCE_TARGET)
source $(CCDB_DIR)/environment.bash ; \
cd $(CCDB_DIR) ; \
$(SCONS) PYTHONCOMMAND=$(PYTHON)
date > $@
$(CCDB_DIR)/.cmake_done: $(GET_SOURCE_TARGET)
cd $(CCDB_DIR)/cpp; mkdir -pv build
cd $(CCDB_DIR)/cpp/build; \
cmake3 -DSQLite3_INCLUDE_DIR=$(SQLITE_HOME)/include \
-DSQLite3_LIBRARY=$(SQLITE_HOME)/lib/libsqlite3.so \
-DCMAKE_INSTALL_PREFIX=$(CCDB_INSTALL_DIR) ..
date > $@
$(CCDB_DIR)/.make_done: $(CCDB_DIR)/.cmake_done
cd $(CCDB_DIR)/cpp/build; make VERBOSE=1 install
date > $@
# end of makefile