comparison irc/irccd/irccd.sh @ 1060:89ba3e75ca96

irc/irccd: initial import, closes #1709
author David Demelier <markand@malikania.fr>
date Mon, 02 Sep 2019 21:10:00 +0200
parents
children 297b5eef115e
comparison
equal deleted inserted replaced
1059:52644ad26941 1060:89ba3e75ca96
1 #!/bin/busybox sh
2 #
3 # Copyright (c) 2019 David Demelier <markand@malikania.fr>
4 #
5 # Permission to use, copy, modify, and/or distribute this software for any
6 # purpose with or without fee is hereby granted, provided that the above
7 # copyright notice and this permission notice appear in all copies.
8 #
9 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 #
17
18 PKGNAME=irccd
19 PKGVERSION=3.0.1
20 PKGREVISION=1
21 PKGLICENSE="ISC"
22 PKGSUMMARY="an IRC bot written in C++17"
23 PKGDOWNLOAD="http://releases.malikania.fr/$PKGNAME/$PKGVERSION/$PKGNAME-$PKGVERSION.tar.xz"
24 PKGDEPENDS="cmake:build doxygen:build boost"
25 PKGUIDS="irccd:109"
26 PKGGIDS="irccd:109"
27 PKGOPTIONS="ASK
28 AUTH
29 HANGMAN
30 HISTORY
31 JAVASCRIPT
32 JOKE
33 LIBEDIT
34 LINKS
35 LOGGER
36 PLUGIN
37 ROULETTE
38 SSL
39 TICTACTOE"
40 PKGPROTECT="etc/irccd.conf
41 etc/irccdctl.conf
42 etc/rc.d/irccd"
43
44 : ${CC:=clang}
45 : ${CFLAGS:=-O2}
46 : ${CXX:=clang++}
47 : ${CXXFLAGS:=-O2}
48 : ${ASK:=yes}
49 : ${AUTH:=yes}
50 : ${HANGMAN:=yes}
51 : ${HISTORY:=yes}
52 : ${JAVASCRIPT:=yes}
53 : ${JOKE:=yes}
54 : ${LIBEDIT:=yes}
55 : ${LINKS:=yes}
56 : ${LOGGER:=yes}
57 : ${PLUGIN:=yes}
58 : ${ROULETTE:=yes}
59 : ${SSL:=yes}
60 : ${TICTACTOE:=yes}
61
62 for var in AUTH HANGMAN HISTORY JOKE LINKS LOGGER PLUGIN ROULETTE TICTACTOE; do
63 option=$(echo $var | tr '[A-Z]' '[a-z]')
64
65 eval enabled=\$$var
66
67 if [ "$enabled" = "yes" ]; then
68 # The plugin links require uriparser.
69 if [ "$var" = "LINKS" ]; then
70 PKGDEPENDS="uriparser $PKGDEPENDS"
71 fi
72
73 eval with_$option="-DIRCCD_WITH_PLUGIN_$var=On"
74 else
75 eval with_$option="-DIRCCD_WITH_PLUGIN_$var=Off"
76 fi
77 done
78
79 if [ "$JAVASCRIPT" = "yes" ]; then
80 with_javascript="-DIRCCD_WITH_JS=On"
81 else
82 with_javascript="-DIRCCD_WITH_JS=Off"
83 fi
84
85 if [ "$LIBEDIT" = "yes" ]; then
86 PKGDEPENDS="libedit $PKGDEPENDS"
87 with_libedit="-DIRCCD_WITH_LIBEDIT=On"
88 else
89 with_libedit="-DIRCCD_WITH_LIBEDIT=Off"
90 fi
91
92 if [ "$SSL" = "yes" ]; then
93 PKGDEPENDS="libressl $PKGDEPENDS"
94 with_ssl="-DIRCCD_WITH_SSL=On"
95 else
96 with_ssl="-DIRCCD_WITH_SSL=Off"
97 fi
98
99 build()
100 {
101 rm -rf $PKGNAME-$PKGVERSION
102 tar xvf $PKGNAME-$PKGVERSION.tar.xz
103 cd $PKGNAME-$PKGVERSION
104
105 mkdir build && cd build
106 cmake .. \
107 -DBUILD_SHARED_LIBS=On \
108 -DCMAKE_BUILD_TYPE=Release \
109 -DCMAKE_CXX_COMPILER="$CXX" \
110 -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
111 -DCMAKE_C_COMPILER="$CC" \
112 -DCMAKE_C_FLAGS="$CFLAGS" \
113 -DCMAKE_INSTALL_PREFIX= \
114 -DIRCCD_WITH_SYSTEMD=Off \
115 $with_ask \
116 $with_hangman \
117 $with_history \
118 $with_javascript \
119 $with_joke \
120 $with_libedit \
121 $with_links \
122 $with_logger \
123 $with_plugin \
124 $with_roulette \
125 $with_ssl \
126 $with_tictactoe
127 make VERBOSE=1
128 make install DESTDIR=$DESTDIR
129 cd ..
130 install -Dm0644 ../irccd $DESTDIR/etc/rc.d/irccd
131 mv $DESTDIR/etc/irccd.conf.sample $DESTDIR/etc/irccd.conf
132 mv $DESTDIR/etc/irccdctl.conf.sample $DESTDIR/etc/irccdctl.conf
133
134 cd ..
135 rm -rf $PKGNAME-$PKGVERSION
136 }