Gordons Projects

--> Projects Top-Level GIT

Added a fix to include -lcrypt for people who can't do it themselves.
[wiringPi] / build
1 #!/bin/sh -e
2
3 # build
4 #       Simple wiringPi build and install script
5 #
6 #       Copyright (c) 2012-2015 Gordon Henderson
7 #################################################################################
8 # This file is part of wiringPi:
9 #       A "wiring" library for the Raspberry Pi
10 #
11 #    wiringPi is free software: you can redistribute it and/or modify
12 #    it under the terms of the GNU Lesser General Public License as published by
13 #    the Free Software Foundation, either version 3 of the License, or
14 #    (at your option) any later version.
15 #
16 #    wiringPi is distributed in the hope that it will be useful,
17 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
18 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 #    GNU Lesser General Public License for more details.
20 #
21 #    You should have received a copy of the GNU Lesser General Public License
22 #    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
23 #################################################################################
24 #
25 # wiringPi is designed to run on a Raspberry Pi only.
26 #       However if you're clever enough to actually look at this script to
27 #       see why it's not building for you, then good luck.
28 #
29 #       To everyone else: Stop using cheap alternatives. Support the
30 #       Raspberry Pi Foundation as they're the only ones putting money
31 #       back into education!
32 #################################################################################
33
34 check_make_ok() {
35   if [ $? != 0 ]; then
36     echo ""
37     echo "Make Failed..."
38     echo "Please check the messages and fix any problems. If you're still stuck,"
39     echo "then please email all the output and as many details as you can to"
40     echo "  projects@drogon.net"
41     echo ""
42     exit 1
43   fi
44 }
45
46 sudo=${WIRINGPI_SUDO-sudo}
47
48 if [ x$1 = "xclean" ]; then
49   cd wiringPi
50   echo -n "wiringPi:   "        ; make clean
51   cd ../devLib
52   echo -n "DevLib:     "        ; make clean
53   cd ../gpio
54   echo -n "gpio:       "        ; make clean
55   cd ../examples
56   echo -n "Examples:   "        ; make clean
57   cd Gertboard
58   echo -n "Gertboard:  "        ; make clean
59   cd ../PiFace
60   echo -n "PiFace:     "        ; make clean
61   cd ../q2w
62   echo -n "Quick2Wire: "        ; make clean
63   cd ../PiGlow
64   echo -n "PiGlow:     "        ; make clean
65   cd ../scrollPhat
66   echo -n "scrollPhat: "        ; make clean
67   exit
68 fi
69
70 if [ x$1 = "xuninstall" ]; then
71   cd wiringPi
72   echo -n "wiringPi: " ; $sudo make uninstall
73   cd ../devLib
74   echo -n "DevLib:   " ; $sudo make uninstall
75   cd ../gpio
76   echo -n "gpio:     " ; $sudo make uninstall
77   exit
78 fi
79
80 # Only if you know what you're doing!
81
82 if [ x$1 = "xdebian" ]; then
83   here=`pwd`
84   cd debian-template/wiringPi
85   rm -rf usr
86   cd $here/wiringPi
87   make install-deb
88   cd $here/devLib
89   make install-deb INCLUDE='-I. -I../wiringPi'
90   cd $here/gpio
91   make install-deb INCLUDE='-I../wiringPi -I../devLib' LDFLAGS=-L../debian-template/wiringPi/usr/lib
92   cd $here/debian-template
93   fakeroot dpkg-deb --build wiringPi
94   mv wiringPi.deb  wiringpi-`cat $here/VERSION`-1.deb
95   exit
96 fi
97
98 if [ x$1 != "x" ]; then
99   echo "Usage: $0 [clean | uninstall]"
100   exit 1
101 fi
102
103   echo "wiringPi Build script"
104   echo "====================="
105   echo
106
107   hardware=`fgrep Hardware /proc/cpuinfo | head -1 | awk '{ print $3 }'`
108
109 #  if [ x$hardware != "xBCM2708" ]; then
110 #    echo ""
111 #    echo "   +------------------------------------------------------------+"
112 #    echo "   |   wiringPi is designed to run on the Raspberry Pi only.    |"
113 #    echo "   |   This processor does not appear to be a Raspberry Pi.     |"
114 #    echo "   +------------------------------------------------------------+"
115 #    echo "   | In the unlikely event that you think it is a Raspberry Pi, |"
116 #    echo "   | then please accept my apologies and email the contents of  |"
117 #    echo "   | /proc/cpuinfo to projects@drogon.net.                      |"
118 #    echo "   |    - Thanks, Gordon                                        |"
119 #    echo "   +------------------------------------------------------------+"
120 #    echo ""
121 #    exit 1
122 #  fi
123
124
125   echo
126   echo "WiringPi Library"
127   cd wiringPi
128   $sudo make uninstall
129   if [ x$1 = "xstatic" ]; then
130     make -j5 static
131     check_make_ok
132     $sudo make install-static
133   else
134     make -j5
135     check_make_ok
136     $sudo make install
137   fi
138   check_make_ok
139
140   echo
141   echo "WiringPi Devices Library"
142   cd ../devLib
143   $sudo make uninstall
144   if [ x$1 = "xstatic" ]; then
145     make -j5 static
146     check_make_ok
147     $sudo make install-static
148   else
149     make -j5
150     check_make_ok
151     $sudo make install
152   fi
153   check_make_ok
154
155   echo
156   echo "GPIO Utility"
157   cd ../gpio
158   make -j5
159   check_make_ok
160   $sudo make install
161   check_make_ok
162
163 # echo
164 # echo "wiringPi Daemon"
165 # cd ../wiringPiD
166 # make -j5
167 # check_make_ok
168 # $sudo make install
169 # check_make_ok
170
171 # echo
172 # echo "Examples"
173 # cd ../examples
174 # make
175 # cd ..
176
177 echo
178 echo All Done.
179 echo ""
180 echo "NOTE: To compile programs with wiringPi, you need to add:"
181 echo "    -lwiringPi"
182 echo "  to your compile line(s) To use the Gertboard, MaxDetect, etc."
183 echo "  code (the devLib), you need to also add:"
184 echo "    -lwiringPiDev"
185 echo "  to your compile line(s)."
186 echo ""