summaryrefslogtreecommitdiff
path: root/install-nghdl.sh
diff options
context:
space:
mode:
Diffstat (limited to 'install-nghdl.sh')
-rwxr-xr-xinstall-nghdl.sh200
1 files changed, 114 insertions, 86 deletions
diff --git a/install-nghdl.sh b/install-nghdl.sh
index af73fe8..ab0a1eb 100755
--- a/install-nghdl.sh
+++ b/install-nghdl.sh
@@ -17,10 +17,10 @@
# REVISION: ---
#===============================================================================
-ngspice="ngspice-26"
-src_loc=".esim-nghdl"
+ngspice="ngspice-nghdl"
+config_dir="$HOME/.nghdl"
config_file="config.ini"
-cur_dir=`pwd`
+src_dir=`pwd`
#Will be used to take backup of any file
sysdate="$(date)"
@@ -30,9 +30,17 @@ timestamp=`echo $sysdate|awk '{print $3"_"$2"_"$6"_"$4 }'`
#All functions goes here
function addghdlPPA
{
- echo "Adding ghdl PPA to install latest ghdl version"
- sudo add-apt-repository ppa:pgavin/ghdl
- sudo apt-get update
+ ghdlppa="pgavin/ghdl"
+ #Checking if ghdl ppa is already exist
+ grep -h "^deb.*$ghdlppa*" /etc/apt/sources.list.d/* > /dev/null 2>&1
+ if [ $? -ne 0 ]
+ then
+ echo "Adding ghdl PPA to install latest ghdl version"
+ sudo add-apt-repository -y ppa:pgavin/ghdl
+ sudo apt-get update
+ else
+ echo "ghdl is available in synaptic"
+ fi
}
function installDependency
@@ -45,6 +53,93 @@ function installDependency
sudo apt-get install -y bison
}
+
+function installNgspice
+{
+ echo "Installing ngspice..................................."
+ #Checking if ngspice-nghdl directory is already present in Home directory
+ if [ -d $HOME/$ngspice ];then
+ echo "$ngspice directory already exist"
+ echo "Leaving ngspice installation"
+
+
+ else
+
+ #Extracting Ngspice to Home Directory
+ tar -xzvf $ngspice.tar.gz -C $HOME
+
+ if [ "$?" == 0 ];then
+ echo "Ngspice extracted sucessfuly to $HOME "
+ #change to ngspice-nghdl directory
+ cd $HOME/$ngspice
+ #Make local install directory
+ mkdir -p install_dir
+ #Make release directory for build
+ mkdir -p release
+ #Change to release directory
+ cd release
+ echo "Installing Ngspice....."
+ echo "------------------------------------"
+ sleep 5
+ ../configure --enable-xspice --disable-debug --prefix=$HOME/$ngspice/install_dir/ --exec-prefix=$HOME/$ngspice/install_dir/
+ make
+ make install
+ if [ "$?" == 0 ];then
+ echo "Ngspice Installed sucessfully"
+ else
+ echo "There was some error in installing ngspice"
+ fi
+
+ else
+ echo "Unable to extract ngspice tar file"
+ exit 1;
+ fi
+
+ fi
+}
+
+function createConfigFile
+{
+ #Creating config.ini file and adding configuration information
+ #Check if config file is present
+ if [ -d $config_dir ];then
+ rm $config_dir/$config_file && touch $config_dir/$config_file
+ else
+ mkdir $config_dir && touch $config_dir/$config_file
+
+ fi
+
+ echo "[NGSPICE]" >> $config_dir/$config_file
+ echo "NGSPICE_HOME = $HOME/$ngspice" >> $config_dir/$config_file
+ echo "DIGITAL_MODEL = %(NGSPICE_HOME)s/src/xspice/icm/ghdl" >> $config_dir/$config_file
+ echo "RELEASE = %(NGSPICE_HOME)s/release" >> $config_dir/$config_file
+ echo "[SRC]" >> $config_dir/$config_file
+ echo "SRC_HOME = $src_dir" >> $config_dir/$config_file
+ echo "LICENSE = %(SRC_HOME)s/LICENSE" >> $config_dir/$config_file
+
+}
+
+function createSoftLink
+{
+
+ ## Creating softlink
+ cd /usr/local/bin
+ if [[ -L nghdl ]];then
+ echo "Symlink was already present"
+ sudo unlink nghdl
+ sudo ln -sf $src_dir/src/ngspice_ghdl.py nghdl
+
+ else
+ echo "Creating synmlink"
+ sudo ln -sf $src_dir/src/ngspice_ghdl.py nghdl
+ fi
+ cd $pwd
+
+}
+
+#####################################################################
+# Script start from here #
+#####################################################################
echo "Enter proxy details if you are connected to internet thorugh proxy"
echo -n "Is your internet connection behind proxy? (y/n): "
@@ -80,6 +175,13 @@ if [ $getProxy == "y" -o $getProxy == "Y" ];then
#Calling functions
addghdlPPA
installDependency
+ if [ $? -ne 0 ];then
+ echo -e "\n\n\nERROR: Unable to install required packages. Please check your internet connection.\n\n"
+ exit 0
+ fi
+ installNgspice
+ createConfigFile
+ createSoftLink
elif [ $getProxy == "n" -o $getProxy == "N" ];then
echo "Install without proxy"
@@ -87,11 +189,14 @@ elif [ $getProxy == "n" -o $getProxy == "N" ];then
#Calling functions
addghdlPPA
installDependency
-
if [ $? -ne 0 ];then
- echo -e "\n\n\nERROR: Unable to install required packages. Please check your internet connection.\n\n"
- exit 0
+ echo -e "\n\n\nERROR: Unable to install required packages. Please check your internet connection.\n\n"
+ exit 0
fi
+ installNgspice
+ createConfigFile
+ createSoftLink
+
else
echo "Please select the right option"
@@ -99,83 +204,6 @@ else
fi
-#Checking if ngspice-26 directory is already present in Home directory
-if [ -d $HOME/$ngspice ];then
- echo "$ngspice directory already exist taking its backup"
- mv $HOME/$ngspice $HOME/$ngspice.$timestamp
-fi
-
-
-#Extracting Ngspice to Home Directory
-tar -xzvf $ngspice.tar.gz -C $HOME
-
-if [ "$?" == 0 ];then
- echo "Ngspice extracted sucessfuly to $HOME "
- #change to ngspice-26 directory
- cd $HOME/$ngspice
- #Make local install directory
- mkdir -p install_dir
- #Make release directory for build
- mkdir -p release
- #Change to release directory
- cd release
- echo "Installing Ngspice....."
- echo "------------------------------------"
- sleep 5
- ../configure --enable-xspice --disable-debug --prefix=$HOME/$ngspice/install_dir/ --exec-prefix=$HOME/$ngspice/install_dir/
- make
- make install
- if [ "$?" == 0 ];then
- echo "Ngspice Installed sucessfully"
- else
- echo "There was some error in installing ngspice"
- fi
-
-else
- echo "Unable to extract ngspice tar file"
- exit 1;
-fi
-
-#Creating directory to put source
-if [ -d "$HOME/$src_loc" ];then
- echo "(.)esim-nghdl directory already in $HOME,removing it and copying new code"
- rm -rf ~/$src_loc
- mkdir -p ~/$src_loc
-else
- mkdir -p ~/$src_loc
-fi
-
-#Change to current directory
-cd $cur_dir
-cp -rv src/* ~/$src_loc/
-
-#Copying LICENSE file
-cp LICENSE ~/$src_loc/
-
-#Creating config.ini file and adding configuration information
-
-cd ~/$src_loc/
-touch $config_file
-
-echo "[NGSPICE]" >> $config_file
-echo "NGSPICE_HOME = $HOME/$ngspice" >> $config_file
-echo "DIGITAL_MODEL = %(NGSPICE_HOME)s/src/xspice/icm/ghdl" >> $config_file
-echo "RELEASE = %(NGSPICE_HOME)s/release" >> $config_file
-
-
-## Creating softlink
-cd /usr/local/bin
-if [[ -L nghdl ]];then
- echo "Symlink was already present"
- sudo unlink nghdl
- sudo ln -sf ~/$src_loc/ngspice_ghdl.py nghdl
-
-else
- echo "Creating synmlink"
- sudo ln -sf ~/$src_loc/ngspice_ghdl.py nghdl
-fi
-
-