From 1eab1f7a88166289e1a44de84ebcac21c7da78d5 Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Thu, 17 Oct 2013 10:33:46 -0500 Subject: [PATCH] add script to build KiCad on Ubuntu/Debian/Mint linux --- scripts/kicad-install.sh | 129 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100755 scripts/kicad-install.sh diff --git a/scripts/kicad-install.sh b/scripts/kicad-install.sh new file mode 100755 index 0000000000..243773adbe --- /dev/null +++ b/scripts/kicad-install.sh @@ -0,0 +1,129 @@ +#!/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 " + echo " where 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