-
Notifications
You must be signed in to change notification settings - Fork 14
/
Makefile
89 lines (79 loc) · 4.46 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
ifeq ($(SCIDB),)
X := $(shell which scidb 2>/dev/null)
ifneq ($(X),)
X := $(shell dirname ${X})
SCIDB := $(shell dirname ${X})
endif
endif
CFLAGS=-fopenmp
INC=-I. -DPROJECT_ROOT="\"$(SCIDB)\"" -I"$(SCIDB)/include" -DSCIDB_CLIENT
LIBS=-ldl -lpthread -L"$(SCIDB)/lib" -lscidbclient -lboost_system
shim:
$(CXX) $(INC) -fpic -g -c client.cpp -o client.o
$(CC) -Wall $(CFLAGS) $(INC) -o shim shim.c mongoose.c client.o $(LIBS)
help:
@echo "make shim (compile and link)"
@echo
@echo "The remaining options may require setting the SCIDB environment"
@echo "variable to the path of the target SciDB installation. For example,"
@echo "make SCIDB=/opt/scidb/13.3 install"
@echo
@echo "make install (install program and files)"
@echo "make uninstall (remove program and files)"
@echo "make service (install a Debian or RHEL init.d-style service, shimsvc)"
@echo "make unservice (terminate and remove installed service)"
@echo "make deb-pkg (create a binary Ubuntu/Debian package, requires fpm)"
@echo "make rpm-pkg (create a binary RHEL package, requires fpm)"
install: shim
@if test ! -d "$(SCIDB)"; then echo "Can't find scidb. Maybe try explicitly setting SCIDB variable, for example::\n\nmake SCIDB=/opt/scidb/13.3 install"; exit 1; fi
@if test -x /etc/init.d/shimsvc; then /etc/init.d/shimsvc stop;fi
cp shim "$(SCIDB)/bin"
mkdir -p /var/lib/shim
cp -aR wwwroot /var/lib/shim/
chmod -R 755 /var/lib/shim
@if test -d /usr/local/share/man/man1;then cp man/shim.1 /usr/local/share/man/man1/;fi
uninstall: unservice
@if test ! -d "$(SCIDB)"; then echo "Can't find scidb. Maybe try explicitly setting SCIDB variable, for example:\n\nmake SCIDB=/opt/scidb/13.3 uninstall"; exit 1; fi
- @if test -x /etc/init.d/shimsvc; then /etc/init.d/shimsvc stop;fi
rm -f "$(SCIDB)/bin/shim"
rm -rf /var/lib/shim
rm -f /usr/local/share/man/man1/shim.1
service: install
cp init.d/shimsvc /etc/init.d
chmod 0755 /etc/init.d/shimsvc
@if test -n "$$(which update-rc.d 2>/dev/null)"; then update-rc.d shimsvc defaults;fi
@if test -n "$$(which chkconfig 2>/dev/null)"; then chkconfig --add shimsvc && chkconfig shimsvc on;fi
/etc/init.d/shimsvc start
unservice:
@if test -f /etc/init.d/shimsvc; then /etc/init.d/shimsvc stop; fi
- @if test -n "$$(which update-rc.d 2>/dev/null)"; then sudo update-rc.d -f shimsvc remove;fi
- @if test -n "$$(which chkconfig 2>/dev/null)"; then chkconfig --del shimsvc;fi
rm -rf /etc/init.d/shimsvc
deb-pkg: shim
@if test -z "$$(which fpm 2>/dev/null)"; then echo "Error: Package building requires fpm, try running gem install fpm."; exit 1;fi
@if test ! -d "$(SCIDB)"; then echo "Can't find scidb. Maybe try explicitly setting SCIDB variable, for example::\n\nmake SCIDB=/opt/scidb/13.3 install"; exit 1; fi
mkdir -p pkgroot/$(SCIDB)/bin
cp shim "pkgroot/$(SCIDB)/bin"
mkdir -p pkgroot/etc/init.d
cp init.d/shimsvc pkgroot/etc/init.d
mkdir -p pkgroot/var/lib/shim
cp -aR wwwroot pkgroot/var/lib/shim/
chmod -R 755 pkgroot/var/lib/shim
mkdir -p pkgroot/usr/local/share/man/man1
@if test -d /usr/local/share/man/man1;then cp man/shim.1 pkgroot/usr/local/share/man/man1/;fi
fpm -s dir -t deb -n shim --vendor Paradigm4 --license AGPLv3 -m "<[email protected]>" --url "https://github.com/Paradigm4/shim" --description "Unofficial SciDB HTTP service" --provides "shim" -v $$(basename $(SCIDB)) --after-install init.d/after-install.sh --before-remove init.d/before-remove.sh -C pkgroot opt usr var etc/init.d
rpm-pkg: shim
@if test -z "$$(which fpm 2>/dev/null)"; then echo "Error: Package building requires fpm, try running gem install fpm."; exit 1;fi
@if test ! -d "$(SCIDB)"; then echo "Can't find scidb. Maybe try explicitly setting SCIDB variable, for example::\n\nmake SCIDB=/opt/scidb/13.3 install"; exit 1; fi
mkdir -p pkgroot/$(SCIDB)/bin
cp shim "pkgroot/$(SCIDB)/bin"
mkdir -p pkgroot/etc/init.d
cp init.d/shimsvc pkgroot/etc/init.d
mkdir -p pkgroot/var/lib/shim
cp -aR wwwroot pkgroot/var/lib/shim/
chmod -R 755 pkgroot/var/lib/shim
mkdir -p pkgroot/usr/local/share/man/man1
@if test -d /usr/local/share/man/man1;then cp man/shim.1 pkgroot/usr/local/share/man/man1/;fi
fpm -s dir -t rpm -n shim --vendor Paradigm4 --license AGPLv3 -m "<[email protected]>" --url "https://github.com/Paradigm4/shim" --description "Unofficial SciDB HTTP service" --provides "shim" -v $$(basename $(SCIDB)) --after-install init.d/after-install.sh --before-remove init.d/before-remove.sh -C pkgroot opt usr var etc/init.d
clean:
rm -fr *.o *.so shim pkgroot *.rpm *.deb