Bladeren bron

Updated the build & makefile to allow for building the
I2C libraries again - but only if the right headers are
installed!

Gordon Henderson 11 jaren geleden
bovenliggende
commit
db925cea18
3 gewijzigde bestanden met toevoegingen van 56 en 37 verwijderingen
  1. 12 0
      INSTALL
  2. 30 34
      build
  3. 14 3
      wiringPi/Makefile

+ 12 - 0
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

+ 30 - 34
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.

+ 14 - 3
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