X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=wiringPi%2FMakefile;h=5518c9e50ab687fb029b31113b1595e8de7de2b0;hb=f5dd04b5aea2a26bf393013f33a99b1ccaae864f;hp=3798ce08a67235a21bd8d80dbd50f4d1485c2a5f;hpb=8fcaefd557ccd55be0cdb085238e72bf4ecb6c15;p=wiringPi.git diff --git a/wiringPi/Makefile b/wiringPi/Makefile index 3798ce0..5518c9e 100644 --- a/wiringPi/Makefile +++ b/wiringPi/Makefile @@ -2,7 +2,7 @@ # Makefile: # wiringPi - Wiring Compatable library for the Raspberry Pi # -# Copyright (c) 2012 Gordon Henderson +# Copyright (c) 2012-2015 Gordon Henderson ################################################################################# # This file is part of wiringPi: # https://projects.drogon.net/raspberry-pi/wiringpi/ @@ -21,83 +21,162 @@ # along with wiringPi. If not, see . ################################################################################# +VERSION=$(shell cat ../VERSION) +DESTDIR?=/usr +PREFIX?=/local -TARGET=libwiringPi.a +LDCONFIG?=ldconfig + +ifneq ($V,1) +Q ?= @ +endif + +STATIC=libwiringPi.a +DYNAMIC=libwiringPi.so.$(VERSION) #DEBUG = -g -O0 -DEBUG = -O3 +DEBUG = -O2 CC = gcc INCLUDE = -I. -CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe +DEFS = -D_GNU_SOURCE +CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC LIBS = -# Should not alter anything below this line ############################################################################### -SRC = wiringPi.c wiringPiFace.c wiringSerial.c wiringShift.c \ - gertboard.c \ - piNes.c \ - lcd.c piHiPri.c piThread.c - -OBJ = wiringPi.o wiringPiFace.o wiringSerial.o wiringShift.o \ - gertboard.o \ - piNes.o \ - lcd.o piHiPri.o piThread.o - -all: $(TARGET) - -$(TARGET): $(OBJ) - @echo [AR] $(OBJ) - @ar rcs $(TARGET) $(OBJ) - @ranlib $(TARGET) - @size $(TARGET) +SRC = 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 \ + sn3218.c \ + drcSerial.c \ + wpiExtensions.c + +HEADERS = wiringPi.h \ + wiringSerial.h wiringShift.h \ + wiringPiSPI.h wiringPiI2C.h \ + softPwm.h softTone.h \ + mcp23008.h mcp23016.h mcp23017.h \ + mcp23s08.h mcp23s17.h \ + sr595.h \ + pcf8574.h pcf8591.h \ + mcp3002.h mcp3004.h mcp4802.h mcp3422.h \ + max31855.h max5322.h \ + sn3218.h \ + drcSerial.h \ + wpiExtensions.h + + +OBJ = $(SRC:.c=.o) + +all: $(DYNAMIC) + +static: $(STATIC) + +$(STATIC): $(OBJ) + $Q echo "[Link (Static)]" + $Q ar rcs $(STATIC) $(OBJ) + $Q ranlib $(STATIC) +# @size $(STATIC) + +$(DYNAMIC): $(OBJ) + $Q echo "[Link (Dynamic)]" + $Q $(CC) -shared -Wl,-soname,libwiringPi.so -o libwiringPi.so.$(VERSION) -lpthread $(OBJ) .c.o: - @echo [CC] $< - @$(CC) -c $(CFLAGS) $< -o $@ + $Q echo [Compile] $< + $Q $(CC) -c $(CFLAGS) $< -o $@ + +.PHONY: clean clean: - rm -f $(OBJ) $(TARGET) *~ core tags Makefile.bak + $Q echo "[Clean]" + $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPi.* +.PHONY: tags tags: $(SRC) - @echo [ctags] - @ctags $(SRC) - -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 - + $Q echo [ctags] + $Q ctags $(SRC) + + +.PHONY: install +install: $(DYNAMIC) + $Q echo "[Install Headers]" + $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include + $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include + $Q echo "[Install Dynamic Lib]" + $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib + $Q install -m 0755 libwiringPi.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) + $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) $(DESTDIR)/lib/libwiringPi.so + $Q $(LDCONFIG) + +.PHONY: install-static +install-static: $(STATIC) + $Q echo "[Install Headers]" + $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include + $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include + $Q echo "[Install Static Lib]" + $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib + $Q install -m 0755 libwiringPi.a $(DESTDIR)$(PREFIX)/lib + +.PHONY: install-deb +install-deb: $(DYNAMIC) + $Q echo "[Install Headers: deb]" + $Q install -m 0755 -d ~/wiringPi/debian-template/wiringPi/usr/include + $Q install -m 0644 $(HEADERS) ~/wiringPi/debian-template/wiringPi/usr/include + $Q echo "[Install Dynamic Lib: deb]" + install -m 0755 -d ~/wiringPi/debian-template/wiringPi/usr/lib + install -m 0755 libwiringPi.so.$(VERSION) ~/wiringPi/debian-template/wiringPi/usr/lib/libwiringPi.so.$(VERSION) + ln -sf ~/wiringPi/debian-template/wiringPi/usr/lib/libwiringPi.so.$(VERSION) ~/wiringPi/debian-template/wiringPi/usr/lib/libwiringPi.so + +.PHONY: uninstall 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 + $Q echo "[UnInstall]" + $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS) + $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPi.* + $Q $(LDCONFIG) +.PHONY: depend +depend: + makedepend -Y $(SRC) $(SRC_I2C) + # DO NOT DELETE -wiringPi.o: wiringPi.h -wiringPiFace.o: wiringPi.h +wiringPi.o: softPwm.h softTone.h wiringPi.h wiringSerial.o: wiringSerial.h wiringShift.o: wiringPi.h wiringShift.h -gertboard.o: gertboard.h -piNes.o: wiringPi.h piNes.h -lcd.o: wiringPi.h lcd.h piHiPri.o: wiringPi.h piThread.o: wiringPi.h +wiringPiSPI.o: wiringPi.h wiringPiSPI.h +wiringPiI2C.o: wiringPi.h wiringPiI2C.h +softPwm.o: wiringPi.h softPwm.h +softTone.o: wiringPi.h softTone.h +mcp23008.o: wiringPi.h wiringPiI2C.h mcp23x0817.h mcp23008.h +mcp23016.o: wiringPi.h wiringPiI2C.h mcp23016.h mcp23016reg.h +mcp23017.o: wiringPi.h wiringPiI2C.h mcp23x0817.h mcp23017.h +mcp23s08.o: wiringPi.h wiringPiSPI.h mcp23x0817.h mcp23s08.h +mcp23s17.o: wiringPi.h wiringPiSPI.h mcp23x0817.h mcp23s17.h +sr595.o: wiringPi.h sr595.h +pcf8574.o: wiringPi.h wiringPiI2C.h pcf8574.h +pcf8591.o: wiringPi.h wiringPiI2C.h pcf8591.h +mcp3002.o: wiringPi.h wiringPiSPI.h mcp3002.h +mcp3004.o: wiringPi.h wiringPiSPI.h mcp3004.h +mcp4802.o: wiringPi.h wiringPiSPI.h mcp4802.h +mcp3422.o: wiringPi.h wiringPiI2C.h mcp3422.h +max31855.o: wiringPi.h wiringPiSPI.h max31855.h +max5322.o: wiringPi.h wiringPiSPI.h max5322.h +sn3218.o: wiringPi.h wiringPiI2C.h sn3218.h +drcSerial.o: wiringPi.h wiringSerial.h drcSerial.h +wpiExtensions.o: wiringPi.h mcp23008.h mcp23016.h mcp23017.h mcp23s08.h +wpiExtensions.o: mcp23s17.h sr595.h pcf8574.h pcf8591.h mcp3002.h mcp3004.h +wpiExtensions.o: mcp4802.h mcp3422.h max31855.h max5322.h sn3218.h +wpiExtensions.o: drcSerial.h wpiExtensions.h