Commit 1eab1f7a authored by Dick Hollenbeck's avatar Dick Hollenbeck

add script to build KiCad on Ubuntu/Debian/Mint linux

parent 25a12772
#!/bin/bash
# Install KiCad from source onto a Ubuntu/Debian/Mint compatible linux system.
# The "installing pre-requisites" step is the only "distro dependent" one. Could modify
# that step for other linux distros probably.
# Set where the 3 source trees will go
WORKING_TREES=~/kicad_sources
usage()
{
echo ""
echo " usage:"
echo ""
echo "./kicad-install.sh <cmd>"
echo " where <cmd> is one of:"
echo " --install-or-update (does full installation or update.)"
echo " --remove-sources (removes source trees for another attempt.)"
echo ""
echo "example:"
echo ' $ ./kicad-install.sh --install-or-update'
}
install_or_update()
{
echo "step 1) installing pre-requisites"
sudo apt-get install \
bzr \
bzrtools \
build-essential \
cmake \
cmake-curses-gui \
debhelper \
doxygen \
libssl-dev \
libwxgtk2.8-dev
echo "step 2) make $WORKING_TREES if it does not exist"
if [ ! -d "$WORKING_TREES" ]; then
sudo mkdir -p "$WORKING_TREES"
echo " mark $WORKING_TREES as owned by me"
sudo chown -R `whoami` "$WORKING_TREES"
fi
cd $WORKING_TREES
echo "step 3) checking out the source code from launchpad repo..."
if [ ! -d "$WORKING_TREES/kicad.bzr" ]; then
bzr checkout lp:kicad kicad.bzr
echo " source repo to local working tree."
else
cd kicad.bzr
bzr up
echo " local source working tree updated."
cd ../
fi
echo "step 4) checking out the libraries from launchpad repo..."
if [ ! -d "$WORKING_TREES/kicad-lib.bzr" ]; then
bzr checkout lp:~kicad-lib-committers/kicad/library kicad-lib.bzr
echo ' kicad-lib just checked out.'
else
cd kicad-lib.bzr
bzr up
echo ' kicad-lib repo just updated.'
cd ../
fi
echo "step 5) checking out the documentation from launchpad repo..."
if [ ! -d "$WORKING_TREES/kicad-doc.bzr" ]; then
bzr checkout lp:~kicad-developers/kicad/doc kicad-doc.bzr
echo " docs checked out."
else
cd kicad-doc.bzr
bzr up
echo " docs working tree updated."
cd ../
fi
echo "step 6) compiling source code..."
cd kicad.bzr
rm -rf build && mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \
-DUSE_FP_LIB_TABLE \
-DBUILD_GITHUB_PLUGIN \
../
make
echo " kicad compiled."
echo "step 7) installing KiCad program files..."
sudo make install
echo " kicad installed."
echo "step 8) installing libraries..."
cd ../../kicad-lib.bzr
rm -rf build && mkdir build && cd build
cmake ../
sudo make install
echo " kicad-lib installed."
echo "step 9) installing documentation..."
cd ../../kicad-doc.bzr
rm -rf build && mkdir build && cd build
cmake ../
sudo make install
echo " kicad-doc.bzr installed."
}
if [ $# -eq 1 -a "$1" == "--remove-sources" ]; then
# run this only once, kills .config & makes dirs
rm -rf "$WORKING_TREES"
exit
fi
if [ $# -eq 1 -a "$1" == "--install-or-update" ]; then
install_or_update
exit
fi
usage
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment