Gordons Projects

--> Projects Top-Level GIT

Updated the build & makefile to allow for building the
authorGordon Henderson <projects@drogon.net>
Sat, 19 Jan 2013 21:46:13 +0000 (21:46 +0000)
committerGordon Henderson <projects@drogon.net>
Sat, 19 Jan 2013 21:46:13 +0000 (21:46 +0000)
I2C libraries again - but only if the right headers are
installed!

INSTALL
build
wiringPi/Makefile

diff --git a/INSTALL b/INSTALL
index 8e0c43c..8a6d38e 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -30,6 +30,18 @@ To un-install wiringPi:
 
   ./build uninstall
 
 
   ./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
 Gordon Henderson
 
 projects@drogon.net
diff --git a/build b/build
index 666ab87..cbb1a4f 100755 (executable)
--- a/build
+++ b/build
@@ -1,20 +1,5 @@
 #!/bin/bash
 
 #!/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
 check-make-ok()
 {
   if [ $? != 0 ]; then
@@ -28,7 +13,6 @@ check-make-ok()
   fi
 }
 
   fi
 }
 
-
 if [ x$1 = "xclean" ]; then
   echo Cleaning
   echo
 if [ x$1 = "xclean" ]; then
   echo Cleaning
   echo
@@ -38,8 +22,10 @@ if [ x$1 = "xclean" ]; then
   make clean
   cd ../examples
   make clean
   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"
   echo Uninstalling
   echo
   echo "WiringPi library"
@@ -50,27 +36,37 @@ elif [ x$1 = "xuninstall" ]; then
   cd ../gpio
   sudo make uninstall
   cd ..
   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...
   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
   echo "WiringPi library"
   cd wiringPi
   sudo make uninstall
-  make
+  make $target
   check-make-ok
   sudo make install
   check-make-ok
   check-make-ok
   sudo make install
   check-make-ok
+
   echo
   echo "GPIO Utility"
   cd ../gpio
   echo
   echo "GPIO Utility"
   cd ../gpio
@@ -78,12 +74,12 @@ else
   check-make-ok
   sudo make install
   check-make-ok
   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.
 
 echo
 echo All Done.
index 0ba690f..c6a4555 100644 (file)
@@ -49,8 +49,12 @@ SRC  =       wiringPi.c wiringPiFace.c wiringSerial.c wiringShift.c  \
                wiringPiSPI.c                                           \
                softPwm.c softServo.c softTone.c
 
                wiringPiSPI.c                                           \
                softPwm.c softServo.c softTone.c
 
+SRC_I2C        =       wiringPiI2C.c
+
 OBJ    =       $(SRC:.c=.o)
 
 OBJ    =       $(SRC:.c=.o)
 
+OBJ_I2C        =       $(SRC_I2C:.c=.o)
+
 all:           $(DYNAMIC)
 
 static:                $(STATIC)
 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)
 
        @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:
 .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)
 
 .PHONEY:       tags
 tags:  $(SRC)
@@ -124,7 +132,7 @@ uninstall:
 
 .PHONEY:       depend
 depend:
 
 .PHONEY:       depend
 depend:
-       makedepend -Y $(SRC)
+       makedepend -Y $(SRC) $(SRC_I2C)
 
 # DO NOT DELETE
 
 
 # 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
 lcd.o: wiringPi.h lcd.h
 piHiPri.o: wiringPi.h
 piThread.o: wiringPi.h
-softPwm.o: wiringPi.h softPwm.h
 wiringPiSPI.o: wiringPiSPI.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