Sergey Markov
3 years ago
6 changed files with 398 additions and 0 deletions
@ -0,0 +1,298 @@ |
|||||||
|
#!/bin/bash -e |
||||||
|
|
||||||
|
# build |
||||||
|
# Simple wiringPi build and install script |
||||||
|
# |
||||||
|
# Copyright (c) 2012-2015 Gordon Henderson |
||||||
|
################################################################################# |
||||||
|
# This file is part of wiringPi: |
||||||
|
# A "wiring" library for the Raspberry Pi |
||||||
|
# |
||||||
|
# wiringPi is free software: you can redistribute it and/or modify |
||||||
|
# it under the terms of the GNU Lesser General Public License as published by |
||||||
|
# the Free Software Foundation, either version 3 of the License, or |
||||||
|
# (at your option) any later version. |
||||||
|
# |
||||||
|
# wiringPi is distributed in the hope that it will be useful, |
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
# GNU Lesser General Public License for more details. |
||||||
|
# |
||||||
|
# You should have received a copy of the GNU Lesser General Public License |
||||||
|
# along with wiringPi. If not, see <http://www.gnu.org/licenses/>. |
||||||
|
################################################################################# |
||||||
|
# |
||||||
|
# wiringPi is designed to run on a Raspberry Pi only. |
||||||
|
# However if you're clever enough to actually look at this script to |
||||||
|
# see why it's not building for you, then good luck. |
||||||
|
# |
||||||
|
# To everyone else: Stop using cheap alternatives. Support the |
||||||
|
# Raspberry Pi Foundation as they're the only ones putting money |
||||||
|
# back into education! |
||||||
|
################################################################################# |
||||||
|
|
||||||
|
check_make_ok() { |
||||||
|
if [ $? != 0 ]; then |
||||||
|
echo "" |
||||||
|
echo "Make Failed..." |
||||||
|
echo "Please check the messages and fix any problems. If you're still stuck," |
||||||
|
echo "then please email all the output and as many details as you can to" |
||||||
|
echo " projects@drogon.net" |
||||||
|
echo "" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
select_boards() |
||||||
|
{ |
||||||
|
local cnt=0 |
||||||
|
local choice |
||||||
|
local call=${1} |
||||||
|
|
||||||
|
boards=("orangepir1" |
||||||
|
"orangepizero" |
||||||
|
"orangepizero-lts" |
||||||
|
"orangepipc" |
||||||
|
"orangepipch5" |
||||||
|
"orangepipcplus" |
||||||
|
"orangepiplus2e" |
||||||
|
"orangepione" |
||||||
|
"orangepioneh5" |
||||||
|
"orangepilite" |
||||||
|
"orangepiplus" |
||||||
|
"orangepizeroplus2h3" |
||||||
|
"orangepizeroplus" |
||||||
|
"orangepipc2" |
||||||
|
"orangepiprime" |
||||||
|
"orangepizeroplus2h5" |
||||||
|
"orangepiwin" |
||||||
|
"orangepiwinplus" |
||||||
|
"orangepi3" |
||||||
|
"orangepi3-lts" |
||||||
|
"orangepilite2" |
||||||
|
"orangepioneplus" |
||||||
|
"orangepi4" |
||||||
|
"orangepi4-lts" |
||||||
|
"orangepirk3399" |
||||||
|
"orangepi800" |
||||||
|
"orangepizero2" |
||||||
|
"orangepizero2-lts" |
||||||
|
"orangepizero2-b" |
||||||
|
"orangepir1plus-lts" |
||||||
|
"orangepir1plus") |
||||||
|
|
||||||
|
if [[ -f /etc/orangepi-release ]]; then |
||||||
|
|
||||||
|
source /etc/orangepi-release |
||||||
|
|
||||||
|
elif [[ -f /etc/armbian-release ]]; then |
||||||
|
|
||||||
|
source /etc/armbian-release |
||||||
|
[[ $BOARD == orangepi-r1 ]] && BOARD=orangepir1 |
||||||
|
[[ $BOARD == orangepi-rk3399 ]] && BOARD=orangepirk3399 |
||||||
|
[[ $BOARD == orangepizeroplus2-h3 ]] && BOARD=orangepizeroplus2h3 |
||||||
|
[[ $BOARD == orangepizeroplus2-h5 ]] && BOARD=orangepizeroplus2h5 |
||||||
|
|
||||||
|
else |
||||||
|
|
||||||
|
printf "All available boards:\n" |
||||||
|
for var in ${boards[@]} ; do |
||||||
|
printf "%4d. %s\n" $cnt ${boards[$cnt]} |
||||||
|
((cnt+=1)) |
||||||
|
done |
||||||
|
|
||||||
|
while true ; do |
||||||
|
read -p "Choice: " choice |
||||||
|
if [ -z "${choice}" ] ; then |
||||||
|
continue |
||||||
|
fi |
||||||
|
if [ -z "${choice//[0-9]/}" ] ; then |
||||||
|
if [ $choice -ge 0 -a $choice -lt $cnt ] ; then |
||||||
|
export BOARD="${boards[$choice]}" |
||||||
|
break |
||||||
|
fi |
||||||
|
fi |
||||||
|
printf "Invalid input ...\n" |
||||||
|
done |
||||||
|
fi |
||||||
|
|
||||||
|
[[ $BOARD == orangepir1 ]] && BOARD=orangepir1-h2 |
||||||
|
[[ $BOARD == orangepizero ]] && BOARD=orangepizero-h2 |
||||||
|
[[ $BOARD == orangepizero-lts ]] && BOARD=orangepizero-h2 |
||||||
|
[[ $BOARD == orangepipc ]] && BOARD=orangepipc-h3 |
||||||
|
[[ $BOARD == orangepipch5 ]] && BOARD=orangepipc-h3 |
||||||
|
[[ $BOARD == orangepipcplus ]] && BOARD=orangepipcplus-h3 |
||||||
|
[[ $BOARD == orangepiplus2e ]] && BOARD=orangepiplus2e-h3 |
||||||
|
[[ $BOARD == orangepione ]] && BOARD=orangepione-h3 |
||||||
|
[[ $BOARD == orangepioneh5 ]] && BOARD=orangepione-h3 |
||||||
|
[[ $BOARD == orangepilite ]] && BOARD=orangepilite-h3 |
||||||
|
[[ $BOARD == orangepiplus ]] && BOARD=orangepiplus-h3 |
||||||
|
[[ $BOARD == orangepizeroplus ]] && BOARD=orangepizeroplus-h5 |
||||||
|
[[ $BOARD == orangepipc2 ]] && BOARD=orangepipc2-h5 |
||||||
|
[[ $BOARD == orangepiprime ]] && BOARD=orangepiprime-h5 |
||||||
|
[[ $BOARD == orangepiwin ]] && BOARD=orangepiwin-a64 |
||||||
|
[[ $BOARD == orangepiwinplus ]] && BOARD=orangepiwinplus-a64 |
||||||
|
[[ $BOARD == orangepi3 ]] && BOARD=orangepi3-h6 |
||||||
|
[[ $BOARD == orangepi3-lts ]] && BOARD=orangepi3-h6 |
||||||
|
[[ $BOARD == orangepilite2 ]] && BOARD=orangepilite2-h6 |
||||||
|
[[ $BOARD == orangepioneplus ]] && BOARD=orangepioneplus-h6 |
||||||
|
[[ $BOARD == orangepizero2 ]] && BOARD=orangepizero2-h616 |
||||||
|
[[ $BOARD == orangepizero2-lts ]] && BOARD=orangepizero2-h616 |
||||||
|
[[ $BOARD == orangepizero2-b ]] && BOARD=orangepizero2-h616 |
||||||
|
[[ $BOARD == orangepir1plus ]] && BOARD=orangepir1plus-rk3328 |
||||||
|
[[ $BOARD == orangepir1plus-lts ]] && BOARD=orangepir1plus-rk3328 |
||||||
|
|
||||||
|
export BOARD="${BOARD}" |
||||||
|
} |
||||||
|
|
||||||
|
sudo=${WIRINGPI_SUDO-sudo} |
||||||
|
|
||||||
|
if [ x$1 = "xclean" ]; then |
||||||
|
cd wiringPi |
||||||
|
echo -n "wiringPi: " ; make clean |
||||||
|
cd ../devLib |
||||||
|
echo -n "DevLib: " ; make clean |
||||||
|
cd ../gpio |
||||||
|
echo -n "gpio: " ; make clean |
||||||
|
cd ../examples |
||||||
|
echo -n "Examples: " ; make clean |
||||||
|
cd Gertboard |
||||||
|
echo -n "Gertboard: " ; make clean |
||||||
|
cd ../PiFace |
||||||
|
echo -n "PiFace: " ; make clean |
||||||
|
cd ../q2w |
||||||
|
echo -n "Quick2Wire: " ; make clean |
||||||
|
cd ../PiGlow |
||||||
|
echo -n "PiGlow: " ; make clean |
||||||
|
cd ../scrollPhat |
||||||
|
echo -n "scrollPhat: " ; make clean |
||||||
|
cd ../.. |
||||||
|
echo -n "Deb: " ; rm -f debian-template/wiringpi*.deb |
||||||
|
echo |
||||||
|
exit |
||||||
|
fi |
||||||
|
|
||||||
|
if [ x$1 = "xuninstall" ]; then |
||||||
|
cd wiringPi |
||||||
|
echo -n "wiringPi: " ; $sudo make uninstall |
||||||
|
cd ../devLib |
||||||
|
echo -n "DevLib: " ; $sudo make uninstall |
||||||
|
cd ../gpio |
||||||
|
echo -n "gpio: " ; $sudo make uninstall |
||||||
|
exit |
||||||
|
fi |
||||||
|
|
||||||
|
# Only if you know what you're doing! |
||||||
|
|
||||||
|
if [ x$1 = "xdebian" ]; then |
||||||
|
here=`pwd` |
||||||
|
echo "removing old libs" |
||||||
|
cd debian-template/wiringPi |
||||||
|
rm -rf usr |
||||||
|
echo "building wiringPi" |
||||||
|
cd $here/wiringPi |
||||||
|
make install-deb |
||||||
|
echo "building devLib" |
||||||
|
cd $here/devLib |
||||||
|
make install-deb INCLUDE='-I. -I../wiringPi' |
||||||
|
echo "building gpio" |
||||||
|
cd $here/gpio |
||||||
|
make install-deb INCLUDE='-I../wiringPi -I../devLib' LDFLAGS=-L../debian-template/wiringPi/usr/lib |
||||||
|
echo "Building deb package" |
||||||
|
cd $here/debian-template |
||||||
|
fakeroot dpkg-deb --build wiringPi |
||||||
|
mv wiringPi.deb wiringpi-`cat $here/VERSION`-1.deb |
||||||
|
exit |
||||||
|
fi |
||||||
|
|
||||||
|
if [ x$1 != "x" ]; then |
||||||
|
echo "Usage: $0 [clean | uninstall]" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
|
||||||
|
select_boards |
||||||
|
|
||||||
|
echo "wiringPi Build script" |
||||||
|
echo "=====================" |
||||||
|
echo |
||||||
|
|
||||||
|
hardware=`fgrep Hardware /proc/cpuinfo | head -1 | awk '{ print $3 }'` |
||||||
|
|
||||||
|
# if [ x$hardware != "xBCM2708" ]; then |
||||||
|
# echo "" |
||||||
|
# echo " +------------------------------------------------------------+" |
||||||
|
# echo " | wiringPi is designed to run on the Raspberry Pi only. |" |
||||||
|
# echo " | This processor does not appear to be a Raspberry Pi. |" |
||||||
|
# echo " +------------------------------------------------------------+" |
||||||
|
# echo " | In the unlikely event that you think it is a Raspberry Pi, |" |
||||||
|
# echo " | then please accept my apologies and email the contents of |" |
||||||
|
# echo " | /proc/cpuinfo to projects@drogon.net. |" |
||||||
|
# echo " | - Thanks, Gordon |" |
||||||
|
# echo " +------------------------------------------------------------+" |
||||||
|
# echo "" |
||||||
|
# exit 1 |
||||||
|
# fi |
||||||
|
|
||||||
|
|
||||||
|
echo |
||||||
|
echo "WiringPi Library" |
||||||
|
cd wiringPi |
||||||
|
$sudo make uninstall |
||||||
|
if [ x$1 = "xstatic" ]; then |
||||||
|
make -j5 static |
||||||
|
check_make_ok |
||||||
|
$sudo make install-static |
||||||
|
else |
||||||
|
make -j5 |
||||||
|
check_make_ok |
||||||
|
$sudo make install |
||||||
|
fi |
||||||
|
check_make_ok |
||||||
|
|
||||||
|
echo |
||||||
|
echo "WiringPi Devices Library" |
||||||
|
cd ../devLib |
||||||
|
$sudo make uninstall |
||||||
|
if [ x$1 = "xstatic" ]; then |
||||||
|
make -j5 static |
||||||
|
check_make_ok |
||||||
|
$sudo make install-static |
||||||
|
else |
||||||
|
make -j5 |
||||||
|
check_make_ok |
||||||
|
$sudo make install |
||||||
|
fi |
||||||
|
check_make_ok |
||||||
|
|
||||||
|
echo |
||||||
|
echo "GPIO Utility" |
||||||
|
cd ../gpio |
||||||
|
make -j5 |
||||||
|
check_make_ok |
||||||
|
$sudo make install |
||||||
|
check_make_ok |
||||||
|
|
||||||
|
# echo |
||||||
|
# echo "wiringPi Daemon" |
||||||
|
# cd ../wiringPiD |
||||||
|
# make -j5 |
||||||
|
# check_make_ok |
||||||
|
# $sudo make install |
||||||
|
# check_make_ok |
||||||
|
|
||||||
|
# echo |
||||||
|
# echo "Examples" |
||||||
|
# cd ../examples |
||||||
|
# make |
||||||
|
# cd .. |
||||||
|
|
||||||
|
echo |
||||||
|
echo All Done. |
||||||
|
echo "" |
||||||
|
echo "NOTE: To compile programs with wiringPi, you need to add:" |
||||||
|
echo " -lwiringPi" |
||||||
|
echo " to your compile line(s) To use the Gertboard, MaxDetect, etc." |
||||||
|
echo " code (the devLib), you need to also add:" |
||||||
|
echo " -lwiringPiDev" |
||||||
|
echo " to your compile line(s)." |
||||||
|
echo "" |
@ -0,0 +1,9 @@ |
|||||||
|
set(CMAKE_AR /usr/bin/arm-linux-gnueabihf-ar) |
||||||
|
set(CMAKE_ASM_COMPILER /usr/bin/arm-linux-gnueabihf-as) |
||||||
|
set(CMAKE_C_COMPILER /usr/bin/arm-linux-gnueabihf-gcc) |
||||||
|
set(CMAKE_CXX_COMPILER /usr/bin/arm-linux-gnueabihf-g++) |
||||||
|
set(CMAKE_LINKER /usr/bin/arm-linux-gnueabihf-ld) |
||||||
|
set(CMAKE_OBJCOPY /usr/bin/arm-linux-gnueabihf-objcopy) |
||||||
|
set(CMAKE_RANLIB /usr/bin/arm-linux-gnueabihf-ranlib) |
||||||
|
set(CMAKE_SIZE /usr/bin/arm-linux-gnueabihf-size) |
||||||
|
set(CMAKE_STRIP /usr/bin/arm-linux-gnueabihf-strip) |
@ -0,0 +1,23 @@ |
|||||||
|
set(DEVLIB devLib) |
||||||
|
|
||||||
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}) |
||||||
|
|
||||||
|
add_library(${DEVLIB}Obj OBJECT |
||||||
|
ds1302.c |
||||||
|
maxdetect.c |
||||||
|
piNes.c |
||||||
|
gertboard.c |
||||||
|
piFace.c |
||||||
|
lcd128x64.c |
||||||
|
lcd.c |
||||||
|
scrollPhat.c |
||||||
|
piGlow.c) |
||||||
|
|
||||||
|
add_library(${DEVLIB} STATIC $<TARGET_OBJECTS:${DEVLIB}Obj>) |
||||||
|
add_library(${DEVLIB}shared SHARED $<TARGET_OBJECTS:${DEVLIB}Obj>) |
||||||
|
set_target_properties(${DEVLIB}shared PROPERTIES OUTPUT_NAME ${DEVLIB}) |
||||||
|
|
||||||
|
install(TARGETS ${DEVLIB} ${DEVLIB}shared |
||||||
|
RUNTIME DESTINATION bin |
||||||
|
LIBRARY DESTINATION lib |
||||||
|
ARCHIVE DESTINATION lib) |
@ -0,0 +1,17 @@ |
|||||||
|
set(GPIO gpio) |
||||||
|
|
||||||
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}) |
||||||
|
|
||||||
|
add_library(${GPIO}Obj OBJECT |
||||||
|
gpio.c |
||||||
|
readall.c |
||||||
|
OrangePi.c) |
||||||
|
|
||||||
|
add_library(${GPIO} STATIC $<TARGET_OBJECTS:${GPIO}Obj>) |
||||||
|
add_library(${GPIO}shared SHARED $<TARGET_OBJECTS:${GPIO}Obj>) |
||||||
|
set_target_properties(${GPIO}shared PROPERTIES OUTPUT_NAME ${GPIO}) |
||||||
|
|
||||||
|
install(TARGETS ${GPIO} ${GPIO}shared |
||||||
|
RUNTIME DESTINATION bin |
||||||
|
LIBRARY DESTINATION lib |
||||||
|
ARCHIVE DESTINATION lib) |
@ -0,0 +1,50 @@ |
|||||||
|
set(WIRINGPI wiringPi) |
||||||
|
|
||||||
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}) |
||||||
|
|
||||||
|
add_library(${WIRINGPI}Obj OBJECT |
||||||
|
wiringPi.c |
||||||
|
wiringSerial.c |
||||||
|
wiringShift.c |
||||||
|
piHiPri.c |
||||||
|
piThread.c |
||||||
|
wiringPiSPI.c |
||||||
|
wiringPiI2C.c |
||||||
|
softPwm.c |
||||||
|
softTone.c |
||||||
|
mcp23008.c |
||||||
|
mcp23016.c |
||||||
|
mcp23017.c |
||||||
|
mcp23s08.c |
||||||
|
mcp23s17.c |
||||||
|
sr595.c |
||||||
|
pcf8574.c |
||||||
|
pcf8591.c |
||||||
|
mcp3002.c |
||||||
|
mcp3004.c |
||||||
|
mcp4802.c |
||||||
|
mcp3422.c |
||||||
|
max31855.c |
||||||
|
max5322.c |
||||||
|
ads1115.c |
||||||
|
sn3218.c |
||||||
|
bmp180.c |
||||||
|
htu21d.c |
||||||
|
ds18b20.c |
||||||
|
rht03.c |
||||||
|
drcSerial.c |
||||||
|
drcNet.c |
||||||
|
pseudoPins.c |
||||||
|
wpiExtensions.c |
||||||
|
w25q64.c |
||||||
|
oled.c |
||||||
|
OrangePi.c) |
||||||
|
|
||||||
|
add_library(${WIRINGPI} STATIC $<TARGET_OBJECTS:${WIRINGPI}Obj>) |
||||||
|
add_library(${WIRINGPI}shared SHARED $<TARGET_OBJECTS:${WIRINGPI}Obj>) |
||||||
|
set_target_properties(${WIRINGPI}shared PROPERTIES OUTPUT_NAME ${WIRINGPI}) |
||||||
|
|
||||||
|
install(TARGETS ${WIRINGPI} ${WIRINGPI}shared |
||||||
|
RUNTIME DESTINATION bin |
||||||
|
LIBRARY DESTINATION lib |
||||||
|
ARCHIVE DESTINATION lib) |
Loading…
Reference in new issue