#!/bin/sh # tiny configure script for jkSMS # Copyright (c) Jeremy Kister 2016 # http://github.com/jkister/jkSMS/ # http://jeremy.kister.net/ VERSION=20110320.01 echo " " while test $# -gt 0 ; do case $1 in --*=*) arg=`echo $1 | sed 's/.*=//'` ;; *) arg= ;; esac case $1 in --help) cat <<EOM the following syntax to ./configure is supported: --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local] --piddir=DIR jkSMS daemon PID file [/var/run] --scriptdir=DIR jkSMS script [PREFIX/script] --agidir=DIR jkSMS AGI program [/var/lib/asterisk/agi-bin] --perl=PERL full path to perl [/usr/bin/perl] --help show help message EOM exit; ;; --perl*) if [ "$arg" ]; then if [ -x "$arg" ] ; then PERL=$arg else echo "*** PERL: $arg is not executable" exit 1 fi fi ;; --piddir*) if [ "$arg" ]; then if [ -x "$arg" ] ; then PIDDIR=$arg else echo "*** PIDDIR: $arg is not executable" exit 1 fi fi ;; --prefix*) if [ "$arg" ]; then if [ -d "$arg" ] ; then PREFIX=$arg else echo "*** PREFIX: $arg is not a directory" exit 1 fi fi ;; --scriptdir*) if [ "$arg" ]; then if [ -d "$arg" ] ; then SCRIPTDIR=$arg else echo "*** SCRIPTDIR: $arg is not a directory" exit 1 fi fi ;; --agidir*) if [ "$arg" ]; then if [ -d "$arg" ] ; then AGIDIR=$arg else echo "*** AGIDIR: $arg is not a directory" exit 1 fi fi ;; *) echo "unknown argument: $1" exit 1 ;; esac shift done if [ ! -x "$PERL" ] ; then for dir in /usr/bin /usr/local/bin /bin ; do if test -f $dir/perl ; then PERL=$dir/perl break fi done if [ ! -x "$PERL" ] ; then echo "could not find perl: specify --perl=" exit 1 fi fi if [ ! "$PREFIX" ] ; then PREFIX="/usr/local" fi if [ ! "$PIDDIR" ] ; then PIDDIR="/var/run" fi if [ ! "$SCRIPTDIR" ] ; then SCRIPTDIR="$PREFIX/script" fi if [ ! "$AGIDIR" ] ; then AGIDIR="/var/lib/asterisk/agi-bin" fi echo "found perl: $PERL" for mod in DBI Asterisk::AGI Asterisk::AMI Net::CIDR::Lite Sys::SigAction ; do $PERL -e "use $mod"; if [ "$?" != 0 ] ; then echo "cannot find perl module $module" echo "" echo 'Install perl prerequisites via CPAN, apt, yum, or ... - then try ./configure again.' exit 1 fi done cat <<EOM jksmsd will be installed in: $SCRIPTDIR jksmsd PID file will be in: $PIDDIR jksms-in.pl will be installed in: $SCRIPTDIR jksms.agi will be installed in: $AGIDIR if any of these values need changing, try ./configure --help Making sure this package is intact.. EOM for file in src/*.pl ; do $PERL -wTc $file if [ $? != 0 ] ; then echo "problem with package - check Perl modules or re-download from http://jeremy.kister.net./code/asterisk/jkSMS/" exit 1 fi done echo "...done." echo "Writing Makefile..." cat <<__EOM__ > Makefile VERSION=$VERSION PERL=$PERL PIDDIR=$PIDDIR SCRIPTDIR=$SCRIPTDIR AGIDIR=$AGIDIR SEDARG=s~__PIDDIR__~\$(PIDDIR)~g; s~__SCRIPTDIR__~\$(SCRIPTDIR)~g; \ s~__VERSION__~\$(VERSION)~g; s~__PERL__~\$(PERL)~g; BUILD = built/jksmsd built/jksms.agi built/jksms-in.pl built/rc.jksmsd CLEAN = \$(BUILD) Makefile PRE = Makefile built all: \$(BUILD) text built: -mkdir built text: @echo @echo build complete. @echo now run \'make install\' built/rc.jksmsd: \$(PRE) src/rc.jksmsd @sed "\$(SEDARG)" src/rc.jksmsd > built/rc.jksmsd @chmod a+x built/rc.jksmsd built/jksmsd: \$(PRE) src/jksmsd.pl @sed "\$(SEDARG)" src/jksmsd.pl > built/jksmsd @chmod a+x built/jksmsd built/jksms.agi: \$(PRE) src/jksms.agi.pl @sed "\$(SEDARG)" src/jksms.agi.pl > built/jksms.agi @chmod a+x built/jksms.agi built/jksms-in.pl: \$(PRE) src/jksms-in.pl @sed "\$(SEDARG)" src/jksms-in.pl > built/jksms-in.pl @chmod a+x built/jksms-in.pl install: \$(BUILD) -mkdir -p \$(SCRIPTDIR) -mkdir -p \$(AGIDIR) cp built/jksmsd \$(SCRIPTDIR)/ cp built/jksms-in.pl \$(SCRIPTDIR)/ cp built/jksms.agi \$(AGIDIR)/ cp built/rc.jksmsd /etc/init.d/jksmsd ln -f -s /etc/init.d/jksmsd /etc/rc2.d/S94jksmsd ln -f -s /etc/init.d/jksmsd /etc/rc3.d/S94jksmsd ln -f -s /etc/init.d/jksmsd /etc/rc4.d/S94jksmsd ln -f -s /etc/init.d/jksmsd /etc/rc5.d/S94jksmsd ln -f -s /etc/init.d/jksmsd /etc/rc0.d/K28jksmsd ln -f -s /etc/init.d/jksmsd /etc/rc5.d/K28jksmsd ln -f -s /etc/init.d/jksmsd /etc/rc6.d/K28jksmsd clean: -rm \$(CLEAN) __EOM__ echo " " echo "now type 'make' and then 'make install'"