chiark / gitweb /
Changed the build system to drop I2C for now. Seems to cause too many issues
[wiringPi.git] / wiringPi / Makefile
index 3798ce08a67235a21bd8d80dbd50f4d1485c2a5f..0ba690f3c28fb09f19bb4455b8198001b4a6046a 100644 (file)
@@ -1,4 +1,4 @@
-#
+# ;
 # Makefile:
 #      wiringPi - Wiring Compatable library for the Raspberry Pi
 #
 #    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
 #################################################################################
 
+DYN_VERS_MAJ=1
+DYN_VERS_MIN=0
+
+VERSION=$(DYN_VERS_MAJ).$(DYN_VERS_MIN)
+DESTDIR=/usr
+PREFIX=/local
 
-TARGET=libwiringPi.a
+STATIC=libwiringPi.a
+DYNAMIC=libwiringPi.so.$(VERSION)
 
 #DEBUG = -g -O0
-DEBUG  = -O3
+DEBUG  = -O2
 CC     = gcc
 INCLUDE        = -I.
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
+CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -fPIC
 
 LIBS    =
 
@@ -38,66 +45,97 @@ LIBS    =
 SRC    =       wiringPi.c wiringPiFace.c wiringSerial.c wiringShift.c  \
                gertboard.c                                             \
                piNes.c                                                 \
-               lcd.c piHiPri.c piThread.c
+               lcd.c piHiPri.c piThread.c                              \
+               wiringPiSPI.c                                           \
+               softPwm.c softServo.c softTone.c
+
+OBJ    =       $(SRC:.c=.o)
 
-OBJ    =       wiringPi.o wiringPiFace.o wiringSerial.o wiringShift.o  \
-               gertboard.o                                             \
-               piNes.o                                                 \
-               lcd.o piHiPri.o piThread.o
+all:           $(DYNAMIC)
 
-all:           $(TARGET)
+static:                $(STATIC)
 
-$(TARGET):     $(OBJ)
-       @echo [AR] $(OBJ)
-       @ar rcs $(TARGET) $(OBJ)
-       @ranlib $(TARGET)
-       @size   $(TARGET)
+$(STATIC):     $(OBJ)
+       @echo "[Link (Static)]"
+       @ar rcs $(STATIC) $(OBJ)
+       @ranlib $(STATIC)
+#      @size   $(STATIC)
+
+$(DYNAMIC):    $(OBJ)
+       @echo "[Link (Dynamic)]"
+       @$(CC) -shared -Wl,-soname,libwiringPi.so.1 -o libwiringPi.so.1.0 -lpthread $(OBJ)
 
 .c.o:
-       @echo [CC] $<
+       @echo [Compile] $<
        @$(CC) -c $(CFLAGS) $< -o $@
 
+.PHONEY:       clean
 clean:
-       rm -f $(OBJ) $(TARGET) *~ core tags Makefile.bak
+       rm -f $(OBJ) *~ core tags Makefile.bak libwiringPi.*
 
+.PHONEY:       tags
 tags:  $(SRC)
        @echo [ctags]
        @ctags $(SRC)
 
+.PHONEY:       install
+install:       $(DYNAMIC)
+       @echo "[Install]"
+       @install -m 0755 -d                     $(DESTDIR)$(PREFIX)/lib
+       @install -m 0755 -d                     $(DESTDIR)$(PREFIX)/include
+       @install -m 0644 wiringPi.h             $(DESTDIR)$(PREFIX)/include
+       @install -m 0644 wiringSerial.h         $(DESTDIR)$(PREFIX)/include
+       @install -m 0644 wiringShift.h          $(DESTDIR)$(PREFIX)/include
+       @install -m 0644 gertboard.h            $(DESTDIR)$(PREFIX)/include
+       @install -m 0644 piNes.h                $(DESTDIR)$(PREFIX)/include
+       @install -m 0644 softPwm.h              $(DESTDIR)$(PREFIX)/include
+       @install -m 0644 softServo.h            $(DESTDIR)$(PREFIX)/include
+       @install -m 0644 softTone.h             $(DESTDIR)$(PREFIX)/include
+       @install -m 0644 lcd.h                  $(DESTDIR)$(PREFIX)/include
+       @install -m 0644 wiringPiSPI.h          $(DESTDIR)$(PREFIX)/include
+       @install -m 0644 wiringPiI2C.h          $(DESTDIR)$(PREFIX)/include
+       @install -m 0755 libwiringPi.so.$(VERSION)                $(DESTDIR)$(PREFIX)/lib
+       @ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) $(DESTDIR)/lib/libwiringPi.so
+       @ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) $(DESTDIR)/lib/libwiringPi.so.1
+       @ldconfig
+
+.PHONEY:       install-static
+install-static:        $(STATIC)
+       @echo "[Install Static]"
+       @install -m 0755 libwiringPi.a          $(DESTDIR)$(PREFIX)/lib
+
+.PHONEY:       uninstall
+uninstall:
+       @echo "[UnInstall]"
+       @rm -f $(DESTDIR)$(PREFIX)/include/wiringPi.h
+       @rm -f $(DESTDIR)$(PREFIX)/include/wiringSerial.h
+       @rm -f $(DESTDIR)$(PREFIX)/include/wiringShift.h
+       @rm -f $(DESTDIR)$(PREFIX)/include/gertboard.h
+       @rm -f $(DESTDIR)$(PREFIX)/include/piNes.h
+       @rm -f $(DESTDIR)$(PREFIX)/include/softPwm.h
+       @rm -f $(DESTDIR)$(PREFIX)/include/softServo.h
+       @rm -f $(DESTDIR)$(PREFIX)/include/softTone.h
+       @rm -f $(DESTDIR)$(PREFIX)/include/lcd.h
+       @rm -f $(DESTDIR)$(PREFIX)/include/wiringPiSPI.h
+       @rm -f $(DESTDIR)$(PREFIX)/include/wiringPiI2C.h
+       @rm -f $(DESTDIR)$(PREFIX)/lib/libwiringPi.*
+       @ldconfig
+
+
+.PHONEY:       depend
 depend:
        makedepend -Y $(SRC)
 
-install:       $(TARGET)
-       @echo [install]
-       install -m 0755 -d /usr/local/lib
-       install -m 0755 -d /usr/local/include
-       install -m 0644 wiringPi.h      /usr/local/include
-       install -m 0644 wiringSerial.h  /usr/local/include
-       install -m 0644 wiringShift.h   /usr/local/include
-       install -m 0644 gertboard.h     /usr/local/include
-       install -m 0644 piNes.h         /usr/local/include
-       install -m 0644 lcd.h           /usr/local/include
-       install -m 0644 libwiringPi.a   /usr/local/lib
-
-uninstall:
-       @echo [uninstall]
-       rm -f /usr/local/include/lcd.h
-       rm -f /usr/local/include/lpiNes.h
-       rm -f /usr/local/include/gertboard.h
-       rm -f /usr/local/include/wiringShift.h
-       rm -f /usr/local/include/wiringSerial.h
-       rm -f /usr/local/include/wiringPi.h
-       rm -f /usr/local/lib/libwiringPi.a
-
-
 # DO NOT DELETE
 
 wiringPi.o: wiringPi.h
 wiringPiFace.o: wiringPi.h
 wiringSerial.o: wiringSerial.h
 wiringShift.o: wiringPi.h wiringShift.h
-gertboard.o: gertboard.h
+gertboard.o: wiringPiSPI.h gertboard.h
 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