Script provided by Charles S. Schuman modified by F6BVP for updating AX.25 libraries and applications. October 22/2017 (update at Jan 13 2019)

#!/bin/bash
# script updated October-22-2017 for VE7FET new AX.25 github repository (F6BVP)
# script update January-13-2019 by VE7FET to correct error checking and update for installconf changes
# Copy this script file in /usr/local/src/ax25/updAX25.sh
# cd into /usr/local/src/ax25
# and execute command : sudo chmod a+x updAX25.sh
# execute command to run the script : ./updAX25.sh
# It will update and re-compile AX.25 libraries, AX.25 tools and AX.25 apps
LIBAX25=linuxax25-master/libax25/
TOOLS=linuxax25-master/ax25tools/
APPS=linuxax25-master/ax25apps/
# Color Codes
Reset='\e[0m'
Red='\e[31m'
Green='\e[30;42m' # Black/Green
Yellow='\e[33m'
YelRed='\e[31;43m' #Red/Yellow
Blue='\e[34m'
White='\e[37m'
BluW='\e[37;44m'
echo -e "${BluW}\t\n\t Script provided by Charles S. Schuman modified by F6BVP for updating AX.25 libraries and applications\t\n\t\t\t ${Red} January-13-2019 \n \t\t${Yellow} k4gbb1@gmail.com \n${Reset}"
if ! uid=0
then su
fi
#if [ -f /usr/lib/libax25.a ]; then
echo -e "${Green} Removing Old Libax25 files out of the way${Reset}"
rm -fr /usr/lib/libax25*
rm -fr /usr/lib/libax25*.*
#fi
# Make directories if not exist
if [ -d /usr/local/src/ax25/ ]
then echo "directory /usr/local/src/ax25 already exists"
else
mkdir /usr/local/src/ax25/
fi
if ! [ -d /usr/local/etc/ax25/ ]
then mkdir /usr/local/etc/ax25/
fi
if ! [ -d /usr/local/var/ax25/ ]
then
mkdir /usr/local/var/
mkdir /usr/local/var/ax25
fi
#
# Download libax25 source file
cd /usr/local/src/ax25
rm -fr /usr/local/src/ax25/libax25
rm -f master.zip
echo -e "${Green} Getting AX25 libraries, AX25 tools and AX25 apps archives${Reset}"
wget https://github.com/ve7fet/linuxax25/archive/master.zip
if [ $? -ne 0 ]
then
echo -e "${Red}\t Ax25 Source files are Missing${Reset}"
exit 1
fi
echo -e "${Green} Now unarchiving AX.25 files${Reset}"
rm -fr linuxax25-master
unzip master.zip
#Libax25 (updating configure.ac for automake > 1.12 compliance)
cd /usr/local/src/ax25/$LIBAX25
#
echo -e "${Green}\t Creating Makefile(s) to prepare libraries compilation${Reset}"
./autogen.sh
./configure > liberror.txt 2>&1
echo -e -n "\t *"
echo -e "${Green}\t Compiling Runtime Lib files${Reset}"
# Clean old binaries
make clean
if [ $? -ne 0 ]
then
echo -e "${Red}\t Libax25 Compile error - See liberror.txt${Reset}"
exit 1
fi
# Compile
echo -n " *"
make
if [ $? -ne 0 ]
then
echo -e "${Red}\t Libax25 Compile error - See liberror.txt${Reset}"
exit 1
fi
echo " *\n"
# Install
# make install >> liberror.txt 2>&1
make install
if [ $? -ne 0 ]
then
echo -e "${Red} Libax25 Install error - See liberror.txt${Reset}"
exit 1
else
echo -e "${Green} Libax25 Installed${Reset}"
rm liberror.txt
fi
# AX25 libraries symbolic name needed for some applications
cd /usr/local/lib/
ln -s libax25.so libax25.so.0
# AX25 libraries declaration (into ld.so.conf)
echo "/usr/local/lib" >> /etc/ld.so.conf && /sbin/ldconfig
# AX25-APPS
cd /usr/local/src/ax25
rm -fr /usr/local/src/ax25/ax25apps
echo -e "${Green} AX.25 applications${Reset}"
#Libax25 (updating configure.ac for automake > 1.12 compliance)
cd /usr/local/src/ax25/$APPS
#
echo -e "${Green}\t Creating Makefile(s) to prepare apps compilation${Reset}"
./autogen.sh
./configure > appserror.txt 2>&1
echo -n -e "\t *"
# Clean old binaries
make clean
if [ $? -ne 0 ]
then
echo -e "${Red}\t Ax25-Apps Compile Error - see appserror.txt${Reset}"
exit 1
fi
# Compile Ax25-apps
echo -n " *"
echo -e "${Green}\t Compiling Ax25 apps ${Reset}"
make
if [ $? -ne 0 ]
then
echo -e "${Red}\t Ax25-Apps Compile Error - see appserror.txt${Reset}"
exit 1
fi
# Install Ax25-apps
echo " *"
# make install >> appserror.txt 2>&1
make install
if [ $? -ne 0 ]
then
echo -e "${Red} Ax25-Apps Install Error - see appserror.txt${Reset}"
exit 1
else
echo -e "${Green} Ax25-apps Installed${Reset}"
rm appserror.txt
fi
# AX25-TOOLS
cd /usr/local/src/ax25
rm -fr /usr/local/src/ax25/ax25tools
echo -e "${Green} AX.25 tools${Reset}"
cd /usr/local/src/ax25/$TOOLS
#
echo -n -e "\t *"
echo -e "${Green}\t Creating Makefile(s) to prepare apps compilation${Reset}"
./autogen.sh
./configure > toolserror.txt 2>&1
# Clean old binaries
make clean
if [ $? -ne 0 ]
then
echo -e "${Red}\t AX.25 tools Compile error - See toolserror.txt${Reset}"
exit 1
fi
# Compile Ax.25 tools
echo -e "${Green}\t Compiling AX.25 tools${Reset}"
echo -e "\t *"
make
if [ $? -ne 0 ]
then
echo -e "${Red}\t AX.25 tools Compile error - See toolserror.txt${Reset}"
exit 1
fi
# Install Ax.25 tools
echo " *"
make install
if [ $? -ne 0 ]
then
echo -e "${Red}\t AX.25 tools Install error - See toolserror.txt${Reset}"
exit 1
else
echo -e "${Green} AX.25 tools Installed${Reset}"
rm toolserror.txt
fi
# Set permissions for /usr/local/sbin/ and /usr/local/bin
# cd /usr/local/sbin/
# chmod 4775 *
# cd /usr/local/bin/
# chmod 4775 *
echo -e "\t \e[030;42m Ax.25 Libraries, applications and tools were successfully rebuilt and installed${Reset}"
echo -e "${Green} If this is a first install of AX.25 tools or apps, sample config files were installed in the doc ${Reset}"
echo -e "${Green} folder on your system. This is likely something like /usr/local/share/doc or /usr/share/doc. ${Reset}"
echo -e "${Green} Look in doc/ax25apps/conf and doc/ax25tools/conf for sample conf files, and copy them to your ${Reset}"
echo -e "${Green} etc/ax25 folder and edit (may be /etc/ax25 or /usr/local/etc/ax25, depending on your system).${Reset}"
# (End of Script)
