build 4.8 KB

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