#!/bin/sh
#

EXT=apache2.4
TCZ=/tmp/$EXT/TCZ

sudo rm -rf /tmp/$EXT

DEPS="apr-dev apr apr-util-dev apr-util openldap-dev openldap libxml2-dev
 recode-dev recode net-snmp-dev net-snmp unixODBC-dev unixODBC
 libgd-dev libgd curl-dev curl
 enchant-dev libwebp-nox libwebp-nox-dev
 libvpx-dev gmp-dev gmp
 icu-dev cyrus-sasl-dev cyrus-sasl fontconfig-dev libXft-dev
 libnghttp2-dev libnghttp2 xorg-server-dev perl5
 postgresql-9.6 postgresql-9.6-dev"

test "$KBITS" = "64" && DEPS="$DEPS mariadb-10.1-dev lua-dev" || DEPS="$DEPS mariadb-dev lua-5.23-dev"     

NOTFOUND=""
for a in compiletc bash file squashfs-tools $DEPS
         do tce-load -i $a || tce-load -iwl $a || NOTFOUND=x
done
test -z "$NOTFOUND" || exit

for a in $(grep -I -r -l '_RUNTIMEDIR "/var/logs"' *)
        do sed -i 's#_RUNTIMEDIR "/var/logs"#_RUNTIMEDIR "/var/run"#' $a
done
for a in $(grep -I -r -l '_LOGFILEDIR "/var/logs"' *)
        do sed -i 's#_LOGFILEDIR "/var/logs"#_LOGFILEDIR "/var/log/httpd"#' $a
done

for a in $(grep -I -r -l '/logs' * | grep -v '^docs/' | cut -d: -f1 | sort -u); do sed -i -e 's#/logs#/log#g' $a; done

#make clean
./configure \
	--bindir=/usr/local/bin \
	--sbindir=/usr/local/sbin \
	--sysconfdir=/usr/local/etc/httpd \
	--localstatedir=/var \
	--enable-ssl \
	--enable-so \
	--enable-mods-shared=reallyall \
	--enable-mpms-shared=all \
	|| exit

d1='SUEXEC_BIN=\"/usr/local/sbin/suexec\"'
d2='DEFAULT_PIDLOG=\"/var/run/httpd.pid\"'
d3='DEFAULT_SCOREBOARD=\"/var/log/httpd/apache_runtime_status\"'
d4='DEFAULT_ERRORLOG=\"/var/log/httpd/error_log\"'

make CFLAGS="-D$d1 -D$d2 -D$d3 -D$d4" || exit

make install DESTDIR=$TCZ || exit
for a in $(find $TCZ -type f); do file -b $a | grep -q '^ELF .*not stripped$' && strip --strip-unneeded $a; done

rm -rf $TCZ/var
mkdir -p $TCZ-dev/usr/local/apache2
mkdir -p $TCZ-doc/usr/local/apache2

rm -f $TCZ/usr/local/etc/httpd/httpd.conf
rm -rf $TCZ/usr/local/etc/httpd/extra

mkdir -p $TCZ/usr/local/etc/init.d
cat >$TCZ/usr/local/etc/init.d/httpd <<'EOF'
#!/bin/sh
#
# Start/stop/restart/graceful[ly restart]/graceful[ly]-stop
# the Apache (httpd) web server.
#
# For information on these options, "man apachectl".

ACTLX=$(which apachectl)
test "$ACTLX" != "" && ACTLX="$ACTLX -k" || exit 1

case "$1" in
  'start')
    $ACTLX start
  ;;
  'stop')
    $ACTLX stop
    killall httpd
    # Remove both old and new .pid locations:
    rm -f /var/run/httpd.pid /var/run/httpd/httpd.pid
  ;;
  'force-restart')
    # Because sometimes restarting through apachectl just doesn't do the trick...
    $ACTLX stop
    killall httpd
    # Remove both old and new .pid locations:
    rm -f /var/run/httpd.pid /var/run/httpd/httpd.pid
    $ACTLX start
  ;;
  'restart')
    $ACTLX restart
  ;;
  'graceful')
    $ACTLX graceful
  ;;
  'graceful-stop')
    $ATCLX graceful-stop
  ;;
  *)
    echo "Usage: $0 {start|stop|force-restart|restart|graceful|graceful-stop}"
  ;;
esac
EOF
chmod 775 $TCZ/usr/local/etc/init.d/httpd

mkdir -p $TCZ/usr/local/etc/httpd/conf.d
mv $TCZ/usr/local/etc/httpd/original/extra $TCZ/usr/local/etc/httpd/original/conf.d
mv $TCZ/usr/local/etc/httpd/original/httpd.conf $TCZ/usr/local/etc/httpd/original/httpd.conf-sample

mv $TCZ/usr/local/apache2/include $TCZ-dev/usr/local/apache2
mv $TCZ/usr/local/apache2/build $TCZ-dev/usr/local/apache2
mkdir -p $TCZ-dev/usr/local/bin
mv $TCZ/usr/local/bin/apxs $TCZ-dev/usr/local/bin

mv $TCZ/usr/local/apache2/man $TCZ-doc/usr/local/share
mv $TCZ/usr/local/apache2/manual $TCZ-doc/usr/local/apache2

sudo chown -R root.root $TCZ*

mksquashfs $TCZ /tmp/$EXT/$EXT.tcz -noappend
mksquashfs $TCZ-dev /tmp/$EXT/$EXT-dev.tcz -noappend
mksquashfs $TCZ-doc /tmp/$EXT/$EXT-doc.tcz -noappend

