-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathMakefile
70 lines (56 loc) · 2.36 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
OUT = freetron
SRC = ${wildcard *.cpp}
OBJ = ${SRC:.cpp=.o}
DEPENDS = .depends
WEBSRC = ${wildcard website/*.cpp}
WEBOBJ = ${WEBSRC:.cpp=.o}
SKIN = website/skin.cpp
SKINOBJ = ${SKIN:.cpp=.o}
SKINSRC = ${wildcard website/*.tmpl}
CXXFLAGS += -ffast-math -funroll-loops -std=c++11
LDFLAGS += -lpodofo -lIL -ltiff -ltiffxx -pthread -lcppcms -lbooster -lcppdb -lssl -lcrypto
TMPLCC ?= cppcms_tmpl_cc
PREFIX ?= /usr/local
MANPREFIX ?= ${PREFIX}/share/man
all: CXXFLAGS += -O2
all: ${OUT}
debug: CXXFLAGS += -O2 -g -Wall -Wextra -Wpedantic
debug: ${OUT}
${OUT}: ${OBJ} ${WEBOBJ} ${SKINOBJ}
${CXX} -o $@ ${OBJ} ${WEBOBJ} ${SKINOBJ} ${LDFLAGS}
.cpp.o:
${CXX} -c -o $@ $< ${CXXFLAGS}
${DEPENDS}: ${SRC} ${WEBSRC}
${RM} -f ./${DEPENDS}
${CXX} ${CXXFLAGS} -MM $^ >> ./${DEPENDS}
${SKIN}: website/master.tmpl ${SKINSRC}
${TMPLCC} $^ -o ${SKIN}
depends: ${DEPENDS}
min:
${RM} -f website/files/*.min.*
yuglify website/files/*.js
yuglify website/files/*.css
sed -i '1s#^#// (c) Chris Veness 2002-2014\n#' website/files/sha256.min.js
sed -i '1s#^#// http://www.boost.org/LICENSE_1_0.txt)\n#' website/files/jsonrpc.min.js
sed -i '1s#^#// accompanying file LICENSE_1_0.txt or copy at\n#' website/files/jsonrpc.min.js
sed -i '1s#^#// Distributed under the Boost Software License, Version 1.0. (See\n#' website/files/jsonrpc.min.js
sed -i '1s#^#// (c) 2011 Artyom Beilis (Tonkikh)\n#' website/files/jsonrpc.min.js
install: ${OUT}
install -Dm755 ${OUT} ${DESTDIR}${PREFIX}/bin/freetron
mkdir -p -m 700 ${DESTDIR}/srv/freetron/uploads
mkdir -p ${DESTDIR}/srv/freetron/files
mkdir -p ${DESTDIR}${PREFIX}/lib/systemd/system
install -Dm644 website/files/*.min.* ${DESTDIR}/srv/freetron/files/
install -Dm644 website/files/*.pdf ${DESTDIR}/srv/freetron/files/
install -Dm644 website/config.js ${DESTDIR}/srv/freetron/config.js
install -Dm644 website/freetron.service ${DESTDIR}${PREFIX}/lib/systemd/system/
uninstall:
${RM} -f ${DESTDIR}${PREFIX}/bin/freetron
${RM} -f ${DESTDIR}${PREFIX}/lib/systemd/system/freetron.service
${RM} -rf ${DESTDIR}/srv/freetron/files/
clean:
${RM} ${OUT} ${OBJ} ${DEPENDS} ${SKIN} ${SKINOBJ} ${WEBOBJ}
${RM} -r cmake/CMakeFiles cmake/CMakeCache.txt cmake/cmake_install.cmake
${RM} -r cmake/Makefile cmake/freetron cmake/install_manifest.txt
-include ${DEPENDS}
.PHONY: all debug depends install uninstall clean min