From db925cea180cf3f67ee13e0a5a0cd2fc9d3ce564 Mon Sep 17 00:00:00 2001 From: Gordon Henderson Date: Sat, 19 Jan 2013 21:46:13 +0000 Subject: [PATCH] Updated the build & makefile to allow for building the I2C libraries again - but only if the right headers are installed! --- INSTALL | 12 +++++++++ build | 64 ++++++++++++++++++++++------------------------- wiringPi/Makefile | 17 ++++++++++--- 3 files changed, 56 insertions(+), 37 deletions(-) diff --git a/INSTALL b/INSTALL index 8e0c43c..8a6d38e 100644 --- a/INSTALL +++ b/INSTALL @@ -30,6 +30,18 @@ To un-install wiringPi: ./build uninstall + +I2C: + +If your system has the correct i2c-dev libraries and headers installed, +then the I2C helpers will be compiled into wiringPi. If you want to +use the I2C helpers and don't have them installed, then under Raspbian, +issue the command: + + sudo apt-get install libi2c-dev + +Consult the documentation for your system if you are not running Raspbian. + Gordon Henderson projects@drogon.net diff --git a/build b/build index 666ab87..cbb1a4f 100755 --- a/build +++ b/build @@ -1,20 +1,5 @@ #!/bin/bash -i2c-install() -{ - echo "* wiringPi needs the I2C Development Libraires installing." - echo "" - echo "If using Debian/Raspbian, then type this command:" - echo " sudo apt-get install libi2c-dev" - echo "then run ./build again." - echo "" - echo "If using another Linux distribution, then you will have to" - echo "work out how to install the I2C Developmen Libraries for your" - echo "system. (Sorry - I don't know - do let me know though!)" - echo "" - exit 1 -} - check-make-ok() { if [ $? != 0 ]; then @@ -28,7 +13,6 @@ check-make-ok() fi } - if [ x$1 = "xclean" ]; then echo Cleaning echo @@ -38,8 +22,10 @@ if [ x$1 = "xclean" ]; then make clean cd ../examples make clean - cd .. -elif [ x$1 = "xuninstall" ]; then + exit +fi + +if [ x$1 = "xuninstall" ]; then echo Uninstalling echo echo "WiringPi library" @@ -50,27 +36,37 @@ elif [ x$1 = "xuninstall" ]; then cd ../gpio sudo make uninstall cd .. -else - echo wiringPi Build script - please wait... + exit +fi + + + echo "wiringPi Build script" + echo "=====================" echo # Check for I2C being installed... +# ... and if-so, then automatically make the I2C helpers -# if [ ! -f /usr/include/linux/i2c-dev.h ]; then -# i2c-install -# fi -# grep -q i2c_smbus_read_byte /usr/include/linux/i2c-dev.h -# if [ $? = 1 ]; then -# i2c-install -# fi + if [ -f /usr/include/linux/i2c-dev.h ]; then + grep -q i2c_smbus_read_byte /usr/include/linux/i2c-dev.h + if [ $? = 0 ]; then + target=i2c + echo "Building wiringPi with the I2C helper libraries." + else + target=all + echo "The wiringPi I2C helper libraries will not be built." + fi + fi + echo echo "WiringPi library" cd wiringPi sudo make uninstall - make + make $target check-make-ok sudo make install check-make-ok + echo echo "GPIO Utility" cd ../gpio @@ -78,12 +74,12 @@ else check-make-ok sudo make install check-make-ok - echo - echo "Examples" - cd ../examples - make - cd .. -fi + +# echo +# echo "Examples" +# cd ../examples +# make +# cd .. echo echo All Done. diff --git a/wiringPi/Makefile b/wiringPi/Makefile index 0ba690f..c6a4555 100644 --- a/wiringPi/Makefile +++ b/wiringPi/Makefile @@ -49,8 +49,12 @@ SRC = wiringPi.c wiringPiFace.c wiringSerial.c wiringShift.c \ wiringPiSPI.c \ softPwm.c softServo.c softTone.c +SRC_I2C = wiringPiI2C.c + OBJ = $(SRC:.c=.o) +OBJ_I2C = $(SRC_I2C:.c=.o) + all: $(DYNAMIC) static: $(STATIC) @@ -65,13 +69,17 @@ $(DYNAMIC): $(OBJ) @echo "[Link (Dynamic)]" @$(CC) -shared -Wl,-soname,libwiringPi.so.1 -o libwiringPi.so.1.0 -lpthread $(OBJ) +i2c: $(OBJ) $(OBJ_I2C) + @echo "[Link (Dynamic + I2C)]" + @$(CC) -shared -Wl,-soname,libwiringPi.so.1 -o libwiringPi.so.1.0 -lpthread $(OBJ) $(OBJ_I2C) + .c.o: @echo [Compile] $< @$(CC) -c $(CFLAGS) $< -o $@ .PHONEY: clean clean: - rm -f $(OBJ) *~ core tags Makefile.bak libwiringPi.* + rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPi.* .PHONEY: tags tags: $(SRC) @@ -124,7 +132,7 @@ uninstall: .PHONEY: depend depend: - makedepend -Y $(SRC) + makedepend -Y $(SRC) $(SRC_I2C) # DO NOT DELETE @@ -137,5 +145,8 @@ piNes.o: wiringPi.h piNes.h lcd.o: wiringPi.h lcd.h piHiPri.o: wiringPi.h piThread.o: wiringPi.h -softPwm.o: wiringPi.h softPwm.h wiringPiSPI.o: wiringPiSPI.h +softPwm.o: wiringPi.h softPwm.h +softServo.o: wiringPi.h softServo.h +softTone.o: wiringPi.h softTone.h +wiringPiI2C.o: wiringPi.h wiringPiI2C.h -- 2.30.2