From f316f52636ade7c7d323d706119f855965cbba90 Mon Sep 17 00:00:00 2001 From: Dongjin Kim Date: Tue, 18 Jan 2022 10:10:24 +0000 Subject: [PATCH] Rework to build by autoconf/automake and new Debian scripts Building in local machine: $ sh autogen.sh $ ./configure $ make $ sudo make install Building Debian package: $ debuild -uc -us -b Signed-off-by: Dongjin Kim Change-Id: I76faa07c1586658d053a3e260ea231a19392f792 --- .gitignore | 11 ++ Makefile.am | 29 +++++ autogen.sh | 3 + build | 208 ------------------------------- configure.ac | 61 +++++++++ debian/changelog | 6 + debian/compat | 2 +- debian/control | 40 ++++-- debian/libwiringpi-dev.install | 14 ++- debian/libwiringpi2.install | 5 +- debian/odroid-wiringpi.install | 6 +- debian/rules | 38 +----- debian/wiringpi-examples.install | 1 + devLib/Makefile | 131 ------------------- devLib/Makefile.am | 20 +++ examples/Gertboard/Makefile | 78 ------------ examples/Gertboard/Makefile.am | 26 ++++ examples/Makefile | 171 ------------------------- examples/Makefile.am | 75 +++++++++++ examples/PiFace/Makefile | 88 ------------- examples/PiFace/Makefile.am | 22 ++++ examples/PiGlow/Makefile | 82 ------------ examples/PiGlow/Makefile.am | 10 ++ examples/PiGlow/piGlow0 | Bin 0 -> 13800 bytes examples/autogen.sh | 3 + examples/configure.ac | 39 ++++++ examples/q2w/Makefile | 84 ------------- examples/q2w/Makefile.am | 20 +++ examples/scrollPhat/Makefile | 79 ------------ examples/scrollPhat/Makefile.am | 10 ++ gpio/Makefile | 95 -------------- gpio/Makefile.am | 14 +++ libwiringpi2.pc.in | 10 ++ pins/Makefile | 25 ---- pins/Makefile.am | 16 +++ pins/odroid_c1.pdf | Bin 17510 -> 0 bytes pins/odroid_c2.pdf | Bin 17411 -> 0 bytes pins/odroid_c4.pdf | Bin 31518 -> 0 bytes pins/odroid_n1.pdf | Bin 17832 -> 0 bytes pins/odroid_n2.pdf | Bin 17316 -> 0 bytes pins/odroid_xu3.pdf | Bin 18219 -> 0 bytes wiringPi/Makefile | 188 ---------------------------- wiringPi/Makefile.am | 53 ++++++++ wiringPiD/Makefile | 100 --------------- wiringPiD/Makefile.am | 16 +++ 45 files changed, 492 insertions(+), 1387 deletions(-) create mode 100644 Makefile.am create mode 100755 autogen.sh delete mode 100755 build create mode 100644 configure.ac mode change 100644 => 100755 debian/rules create mode 100644 debian/wiringpi-examples.install delete mode 100644 devLib/Makefile create mode 100644 devLib/Makefile.am delete mode 100644 examples/Gertboard/Makefile create mode 100644 examples/Gertboard/Makefile.am delete mode 100644 examples/Makefile create mode 100644 examples/Makefile.am delete mode 100644 examples/PiFace/Makefile create mode 100644 examples/PiFace/Makefile.am delete mode 100644 examples/PiGlow/Makefile create mode 100644 examples/PiGlow/Makefile.am create mode 100755 examples/PiGlow/piGlow0 create mode 100755 examples/autogen.sh create mode 100644 examples/configure.ac delete mode 100644 examples/q2w/Makefile create mode 100644 examples/q2w/Makefile.am delete mode 100644 examples/scrollPhat/Makefile create mode 100644 examples/scrollPhat/Makefile.am delete mode 100644 gpio/Makefile create mode 100644 gpio/Makefile.am create mode 100644 libwiringpi2.pc.in delete mode 100644 pins/Makefile create mode 100644 pins/Makefile.am delete mode 100644 pins/odroid_c1.pdf delete mode 100644 pins/odroid_c2.pdf delete mode 100644 pins/odroid_c4.pdf delete mode 100644 pins/odroid_n1.pdf delete mode 100644 pins/odroid_n2.pdf delete mode 100644 pins/odroid_xu3.pdf delete mode 100644 wiringPi/Makefile create mode 100644 wiringPi/Makefile.am delete mode 100644 wiringPiD/Makefile create mode 100644 wiringPiD/Makefile.am diff --git a/.gitignore b/.gitignore index 7866fcc..84cd7bc 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,14 @@ gpio/gpio libs/ obj/ + +*.lo +*.la +*.in +*.pdf + +.deps/ +.libs/ +.debhelper/ +m4/ +autom4te.cache/ diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..f5896d6 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,29 @@ +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + +pkgconfigdir = @pkgconfigdir@ +pkgconfig_DATA = libwiringpi2.pc + +SUBDIRS = wiringPi wiringPiD devLib gpio + +wiringpi_includedir = ${includedir}/wiringpi2 +wiringpi_include_HEADERS = \ + devLib/ds1302.h \ + devLib/font.h \ + devLib/gertboard.h \ + devLib/lcd.h \ + devLib/lcd128x64.h \ + devLib/maxdetect.h \ + devLib/piFace.h \ + devLib/piGlow.h \ + devLib/piNes.h \ + devLib/scrollPhat.h \ + devLib/scrollPhatFont.h \ + wiringPi/drcSerial.h \ + wiringPi/max31855.h \ + wiringPi/mcp23017.h \ + wiringPi/pcf8591.h \ + wiringPi/sn3218.h \ + wiringPi/softPwm.h \ + wiringPi/softTone.h \ + wiringPi/wiringPi.h \ + wiringPi/wiringSerial.h diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..d991b45 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +autoreconf -v --install || exit 1 diff --git a/build b/build deleted file mode 100755 index 5399ba5..0000000 --- a/build +++ /dev/null @@ -1,208 +0,0 @@ -#!/bin/sh -e - -# build -# Simple wiringPi build and install script -# -# Copyright (c) 2012-2015 Gordon Henderson -################################################################################# -# This file is part of wiringPi: -# A "wiring" library for the Raspberry Pi -# -# wiringPi is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# wiringPi is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with wiringPi. If not, see . -################################################################################# -# -# wiringPi is designed to run on a Raspberry Pi only. -# However if you're clever enough to actually look at this script to -# see why it's not building for you, then good luck. -# -# To everyone else: Stop using cheap alternatives. Support the -# Raspberry Pi Foundation as they're the only ones putting money -# back into education! -################################################################################# - -sudo=${WIRINGPI_SUDO-sudo} -make="make -j $(( $(nproc) + 1 ))" -hardware=$(fgrep -a Hardware /proc/cpuinfo | head -1 | awk '{ printf("%s %s %s\n", $3, $4, $5) }' | xargs) -[ "$hardware",, != *"odroid"* ] \ - && [ -f "/sys/firmware/devicetree/base/model" ] \ - && hardware=$(cat /sys/firmware/devicetree/base/model) - -check_make_ok() { - if [ $? != 0 ]; then - echo "" - echo "Make Failed..." - echo "Please check the messages and fix any problems. If you're still stuck," - echo "then please email all the output and as many details as you can to" - echo " projects@drogon.net" - echo "" - exit 1 - fi -} - -configure_gpiomem() { - [ $(env | grep DEB_BUILD | wc -l) -ne 0 ] && return - - GPIOMEM="/dev/gpiomem" - - if [ -z $1 ] && [ "$(stat -c "%a %G" "$GPIOMEM")" != "660"*"odroid" ]; then - echo "Configure /dev/gpiomem" - case "$(echo $hardware | tr [:upper:] [:lower:])" in - *xu4) - $sudo cp -f udev/rules.d/99-odroid-wiringpi-exynos.rules /etc/udev/rules.d/ - ;; - *c|*c1|*c2) - $sudo cp -f udev/rules.d/99-odroid-wiringpi-meson.rules /etc/udev/rules.d/ - ;; - *n2|*c4) - $sudo cp -f udev/rules.d/99-odroid-wiringpi-aml.rules /etc/udev/rules.d/ - ;; - *) - echo "This system seems not ODROID" - ;; - esac - - echo "Reload udev..." - [ -x "$(command -v udevadm)" ] \ - && $sudo udevadm trigger \ - || echo "udevadm not found. Please reboot to take effect" - elif [ "$1" = "uninstall" ]; then - echo "Deconfigure /dev/gpiomem" - $sudo rm -f /etc/udev/rules.d/99-odroid-wiringpi-* - else - echo "Not found $GPIOMEM" - echo "You will not be able to use WiringPi without root permission" - fi -} - -install() { - echo "=====================" - echo "wiringPi Build script" - echo "=====================" - echo - echo "WiringPi Library" - cd wiringPi - if [ x$1 = "xstatic" ]; then - $make static - check_make_ok - $sudo $make install-static - else - $make - check_make_ok - $sudo $make install - fi - check_make_ok - - echo - echo "WiringPi Devices Library" - cd ../devLib - $sudo $make uninstall - if [ x$1 = "xstatic" ]; then - $make static - check_make_ok - $sudo $make install-static - else - $make - check_make_ok - $sudo $make install - fi - check_make_ok - - echo - echo "WiringPi Devices Library" - cd ../devLib - if [ x$1 = "xstatic" ]; then - $make static - check_make_ok - $sudo $make install-static - else - $make - check_make_ok - $sudo $make install - fi - check_make_ok - - echo - echo "GPIO Utility" - cd ../gpio - $make - check_make_ok - $sudo $make install - check_make_ok - - echo - cd .. - configure_gpiomem - - echo - echo All Done. - echo "" - echo "NOTE: To compile programs with wiringPi, you need to add:" - echo " -lwiringPi -wiringPiDev" - echo " to your compile line(s) To use the Gertboard, MaxDetect, etc." - echo " code (the devLib), you need to also add:" - echo " -lwiringPiDev" - echo " to your compile line(s)." - echo "" -} - -uninstall() { - cd wiringPi - echo -n "wiringPi: " ; $sudo $make uninstall - cd ../devLib - echo -n "DevLib: " ; $sudo $make uninstall - cd ../gpio - echo -n "gpio: " ; $sudo $make uninstall - cd .. - configure_gpiomem uninstall - echo -} - -clean() { - cd wiringPi - echo -n "wiringPi: " ; $make clean - cd ../devLib - echo -n "DevLib: " ; $make clean - cd ../gpio - echo -n "gpio: " ; $make clean - cd ../examples - echo -n "Examples: " ; $make clean - cd Gertboard - echo -n "Gertboard: " ; $make clean - cd ../PiFace - echo -n "PiFace: " ; $make clean - cd ../q2w - echo -n "Quick2Wire: " ; $make clean - cd ../PiGlow - echo -n "PiGlow: " ; $make clean - cd ../scrollPhat - echo -n "scrollPhat: " ; $make clean - cd ../.. -} - -if [ x$1 = "xclean" ]; then - clean - exit -fi - -if [ x$1 = "xuninstall" ]; then - uninstall - exit -fi - -if [ x$1 != "x" ]; then - echo "Usage: $0 [clean | uninstall]" - exit 1 -fi - -uninstall; clean; install diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..2e89199 --- /dev/null +++ b/configure.ac @@ -0,0 +1,61 @@ +AC_PREREQ([2.69]) +AC_INIT([odroid-wiringpi], [3.0], [tobetter@gmail.com]) +AC_CONFIG_SRCDIR([Makefile.am]) +AC_CONFIG_HEADERS([config.h]) + +CURRENT=2 +REVISION=0 +AGE=0 +AC_SUBST([LIBWIRINGPI_VERSION], [$CURRENT:$REVISION:$AGE]) + +AC_SUBST([EXTRA_CFLAGS], "-Wformat=2 -Wall -Wextra -Winline -Wno-format-truncation -pipe -fPIC") + +pkgconfigdir=${libdir}/pkgconfig +AC_SUBST(pkgconfigdir) + +# Checks for programs. +AC_PROG_CC +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_RANLIB + +# Checks for libraries. +PKG_CHECK_MODULES([LIBCRYPT], [libcrypt]) + +# Checks for header files. +AC_CHECK_HEADERS([arpa/inet.h fcntl.h malloc.h netdb.h netinet/in.h stdint.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h syslog.h termios.h unistd.h]) + +AM_INIT_AUTOMAKE([foreign]) +#AM_MAINTAINER_MODE + +AC_CONFIG_MACRO_DIRS([m4]) +AC_PROG_LIBTOOL + +# Checks for typedefs, structures, and compiler characteristics. +AC_CHECK_HEADER_STDBOOL +AC_C_INLINE +AC_TYPE_INT16_T +AC_TYPE_INT8_T +AC_TYPE_PID_T +AC_TYPE_UID_T +AC_TYPE_UINT16_T +AC_TYPE_UINT32_T +AC_TYPE_UINT64_T +AC_TYPE_UINT8_T + +# Checks for library functions. +AC_FUNC_CHOWN +AC_FUNC_FORK +AC_FUNC_MALLOC +AC_FUNC_MMAP +AC_CHECK_FUNCS([clock_gettime floor ftruncate gettimeofday memset pow rint socket strcasecmp strchr strerror strstr strtol strtoul uname]) + +AC_CONFIG_FILES([ + Makefile + devLib/Makefile + gpio/Makefile + libwiringpi2.pc + pins/Makefile + wiringPi/Makefile + wiringPiD/Makefile]) +AC_OUTPUT diff --git a/debian/changelog b/debian/changelog index b2f2050..c29578c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +odroid-wiringpi (3.12) stable; urgency=medium + + * Rework Debian package scripts + + -- Dongjin Kim Wed, 19 Jan 2022 08:57:34 +0000 + odroid-wiringpi (9:3.9) stable; urgency=medium * WiringPi: Android: Add odroidhc4.c to compile on the android platform diff --git a/debian/compat b/debian/compat index f599e28..b1bd38b 100644 --- a/debian/compat +++ b/debian/compat @@ -1 +1 @@ -10 +13 diff --git a/debian/control b/debian/control index 684e0c3..22d8aff 100644 --- a/debian/control +++ b/debian/control @@ -4,25 +4,41 @@ Priority: optional Maintainer: Deokgyu Yang , Steve Jeong Standards-Version: 3.8.0 Homepage: https://wiki.odroid.com -Build-Depends: debhelper (>= 10) +Build-Depends: debhelper (>= 10), + libc6-dev, + libcrypt-dev, + libgpiod-dev, + texlive-latex-base, + texlive-fonts-recommended + +Package: odroid-wiringpi +Architecture: any +Depends: ${misc:Depends}, libwiringpi2 (= ${binary:Version}) +Description: gpio utility for ODROID + The wiringPi gpio command line utility, for GPIO access on a + ODROID from the command line. Package: libwiringpi2 Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libgpiod-dev Description: GPIO libraries for ODROID (runtime). - Runtime for the popular wiringPi library. - -Package: odroid-wiringpi -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, libwiringpi2 (= ${binary:Version}) -Description: gpio utility for ODROID - The wiringPi gpio command line utility, for GPIO access on a - ODROID from the command line. + Runtime for the popular wiringPi library. Package: libwiringpi-dev Architecture: any -Depends: libc6-dev, ${misc:Depends}, libwiringpi2 (= ${binary:Version}), odroid-wiringpi (= ${binary:Version}), +Depends: ${misc:Depends}, + libc6-dev, + libgpiod-dev, + libwiringpi2 (= ${binary:Version}), + odroid-wiringpi (= ${binary:Version}) Description: GPIO development library for ODROID - Development libraries to allow GPIO access on a ODROID from C - and C++ programs. + Development libraries to allow GPIO access on a ODROID from C + and C++ programs. + +Package: wiringpi-examples +Architecture: any +Depends: libwiringpi-dev +Description: GPIO development library examples for ODROID + Development libraries to allow GPIO access on a ODROID from C + and C++ programs. diff --git a/debian/libwiringpi-dev.install b/debian/libwiringpi-dev.install index d7ea901..417b9cf 100644 --- a/debian/libwiringpi-dev.install +++ b/debian/libwiringpi-dev.install @@ -1,3 +1,11 @@ -debian/tmp/usr/include -debian/tmp/usr/lib/*.so -examples usr/share/doc/libwiringpi-dev +debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/libwiringPi.a usr/lib/${DEB_HOST_MULTIARCH} +debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/libwiringPi.la usr/lib/${DEB_HOST_MULTIARCH} +debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/libwiringPiDev.a usr/lib/${DEB_HOST_MULTIARCH} +debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/libwiringPiDev.la usr/lib/${DEB_HOST_MULTIARCH} + +debian/tmp/usr/include/wiringpi2/*.h usr/include/wiringpi2/ + +debian/tmp/usr/lib/aarch64-linux-gnu/pkgconfig/libwiringpi2.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ + +README.TXT usr/share/doc/wiringpi +People usr/share/doc/wiringpi diff --git a/debian/libwiringpi2.install b/debian/libwiringpi2.install index c45ebcf..5b03e12 100644 --- a/debian/libwiringpi2.install +++ b/debian/libwiringpi2.install @@ -1 +1,4 @@ -debian/tmp/usr/lib/lib*.so.* +debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/libwiringPi.so* usr/lib/${DEB_HOST_MULTIARCH} +debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/libwiringPiDev.so* usr/lib/${DEB_HOST_MULTIARCH} +debian/tmp/usr/sbin/gpio +debian/tmp/usr/sbin/wiringPiD diff --git a/debian/odroid-wiringpi.install b/debian/odroid-wiringpi.install index 11c034a..b842a38 100644 --- a/debian/odroid-wiringpi.install +++ b/debian/odroid-wiringpi.install @@ -1,5 +1 @@ -debian/tmp/usr/bin -debian/tmp/usr/man usr/share -README.TXT usr/share/doc/wiringpi -People usr/share/doc/wiringpi -udev/rules.d tmp/odroid-wiringpi +udev/rules.d/* usr/lib/udev/rules.d/ diff --git a/debian/rules b/debian/rules old mode 100644 new mode 100755 index 5989ac0..4bb42c0 --- a/debian/rules +++ b/debian/rules @@ -1,40 +1,6 @@ #!/usr/bin/make -f -.PHONY: build - -VERSION:=$(shell cat VERSION) -export VERSION - -soname:=$(shell echo $${VERSION%%.*}) -WIRINGPI_SONAME_SUFFIX:=.$(soname) -export soname -export WIRINGPI_SONAME_SUFFIX - -build: - dh $@ - -override_dh_auto_configure: - -override_dh_prep: - dh_prep -Xdebian/tmp - -dirs: - dh_installdirs -A - mkdir debian/tmp - set -e; for p in `dh_listpackages`; do \ - (cd debian/$$p; find -type d) | \ - (cd debian/tmp; xargs mkdir -p) \ - done - -override_dh_clean: - dh_clean - WIRINGPI_SUDO= bash -xe ./build clean - -override_dh_auto_build: dirs - V=1 LDCONFIG=: WIRINGPI_SUDO= WIRINGPI_SUID=0 \ - DESTDIR=`pwd`/debian/tmp/usr \ - PREFIX= WIRINGPI_SUDO= \ - bash -xe ./build +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) %: - dh $@ + dh $@ --with autoreconf diff --git a/debian/wiringpi-examples.install b/debian/wiringpi-examples.install new file mode 100644 index 0000000..9c37be4 --- /dev/null +++ b/debian/wiringpi-examples.install @@ -0,0 +1 @@ +examples/* usr/lib/${DEB_HOST_MULTIARCH}/wiringpi/examples/ diff --git a/devLib/Makefile b/devLib/Makefile deleted file mode 100644 index 6f1c800..0000000 --- a/devLib/Makefile +++ /dev/null @@ -1,131 +0,0 @@ -# -# Makefile: -# wiringPi device - A "wiring" library for the Raspberry Pi -# -# Copyright (c) 2012-2016 Gordon Henderson -################################################################################# -# This file is part of wiringPi: -# https://projects.drogon.net/raspberry-pi/wiringpi/ -# -# wiringPi is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# wiringPi is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with wiringPi. If not, see . -################################################################################# - -VERSION=$(shell cat ../VERSION) -DESTDIR?=/usr -PREFIX?=/local - -MAJOR=$(shell cat ../VERSION | cut -d'.' -f1) - -LDCONFIG?=ldconfig - -ifneq ($V,1) -Q ?= @ -endif - -STATIC=libwiringPiDev.a -DYNAMIC=libwiringPiDev.so.$(VERSION) - -#DEBUG = -g -O0 -DEBUG = -O2 -CC = gcc -INCLUDE = -I. -I../wiringPi -DEFS = -D_GNU_SOURCE -CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC - -LIBS = - -############################################################################### - -SRC = ds1302.c maxdetect.c piNes.c \ - gertboard.c piFace.c \ - lcd128x64.c lcd.c \ - scrollPhat.c \ - piGlow.c - -OBJ = $(SRC:.c=.o) - -HEADERS = ds1302.h gertboard.h lcd128x64.h lcd.h maxdetect.h piFace.h piGlow.h piNes.h\ - scrollPhat.h - -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,libwiringPiDev.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPiDev.so.$(VERSION) -lpthread $(OBJ) - -.c.o: - $Q echo [Compile] $< - $Q $(CC) -c $(CFLAGS) $< -o $@ - -.PHONY: clean -clean: - $Q echo "[Clean]" - $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPiDev.* - -.PHONY: tags -tags: $(SRC) - $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 libwiringPiDev.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION) - $Q ln -sf libwiringPiDev.so.$(VERSION) $(DESTDIR)/lib/libwiringPiDev.so.$(MAJOR) - $Q ln -sf libwiringPiDev.so.$(MAJOR) $(DESTDIR)/lib/libwiringPiDev.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 libwiringPiDev.a $(DESTDIR)$(PREFIX)/lib - -.PHONY: uninstall -uninstall: - $Q echo "[UnInstall]" - $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS) - $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPiDev.* - $Q $(LDCONFIG) - - -.PHONY: depend -depend: - makedepend -Y $(SRC) - -# DO NOT DELETE - -ds1302.o: ds1302.h -maxdetect.o: maxdetect.h -piNes.o: piNes.h -gertboard.o: gertboard.h -piFace.o: piFace.h -lcd128x64.o: font.h lcd128x64.h -lcd.o: lcd.h diff --git a/devLib/Makefile.am b/devLib/Makefile.am new file mode 100644 index 0000000..988d7fa --- /dev/null +++ b/devLib/Makefile.am @@ -0,0 +1,20 @@ +lib_LTLIBRARIES = libwiringPiDev.la + +libwiringPiDev_la_SOURCES = \ + ds1302.c \ + gertboard.c \ + lcd.c \ + lcd128x64.c \ + maxdetect.c \ + piFace.c \ + piGlow.c \ + piNes.c \ + scrollPhat.c + +libwiringPiDev_la_CFLAGS = \ + -I ../wiringPi \ + @EXTRA_CFLAGS@ + +libwiringPiDev_la_LDFLAGS = \ + -version-info @LIBWIRINGPI_VERSION@ \ + -lpthread $(LIBCRYPT_LIBS) diff --git a/examples/Gertboard/Makefile b/examples/Gertboard/Makefile deleted file mode 100644 index 1939ad6..0000000 --- a/examples/Gertboard/Makefile +++ /dev/null @@ -1,78 +0,0 @@ -# -# Makefile: -# Gertboard - Examples using wiringPi -# -# Copyright (c) 2013 Gordon Henderson -################################################################################# - -ifneq ($V,1) -Q ?= @ -endif - -#DEBUG = -g -O0 -DEBUG = -O3 -CC = gcc -INCLUDE = -I/usr/local/include -CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe - -LDFLAGS = -L/usr/local/lib -LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm - -# Should not alter anything below this line -############################################################################### - -SRC = gertboard.c \ - buttons.c 7segments.c \ - voltmeter.c temperature.c vumeter.c \ - record.c - -OBJ = $(SRC:.c=.o) - -BINS = $(SRC:.c=) - -all: $(BINS) - -gertboard: gertboard.o - $Q echo [link] - $Q $(CC) -o $@ gertboard.o $(LDFLAGS) $(LDLIBS) - -buttons: buttons.o - $Q echo [link] - $Q $(CC) -o $@ buttons.o $(LDFLAGS) $(LDLIBS) - -7segments: 7segments.o - $Q echo [link] - $Q $(CC) -o $@ 7segments.o $(LDFLAGS) $(LDLIBS) - -voltmeter: voltmeter.o - $Q echo [link] - $Q $(CC) -o $@ voltmeter.o $(LDFLAGS) $(LDLIBS) - -temperature: temperature.o - $Q echo [link] - $Q $(CC) -o $@ temperature.o $(LDFLAGS) $(LDLIBS) - -vumeter: vumeter.o - $Q echo [link] - $Q $(CC) -o $@ vumeter.o $(LDFLAGS) $(LDLIBS) - -record: record.o - $Q echo [link] - $Q $(CC) -o $@ record.o $(LDFLAGS) $(LDLIBS) - -.c.o: - $Q echo [CC] $< - $Q $(CC) -c $(CFLAGS) $< -o $@ - -clean: - $Q echo [Clean] - $Q rm -f $(OBJ) *~ core tags $(BINS) - -tags: $(SRC) - $Q echo [ctags] - $Q ctags $(SRC) - -depend: - makedepend -Y $(SRC) - -# DO NOT DELETE diff --git a/examples/Gertboard/Makefile.am b/examples/Gertboard/Makefile.am new file mode 100644 index 0000000..e45f1a4 --- /dev/null +++ b/examples/Gertboard/Makefile.am @@ -0,0 +1,26 @@ +COMMON_CFLAGS=$(EXTRA_CFLAGS) $(LIBWIRINGPI_CFLAGS) +LIBS=$(LIBWIRINGPI_LIBS) + +bin_PROGRAMS = gertboard buttons 7segments voltmeter temperature vumeter record + +gertboard_SOURCES = gertboard.c +gertboard_CFLAGS = $(COMMON_CFLAGS) +gertboard_LDADD = -lm + +buttons_SOURCES = buttons.c +buttons_CFLAGS = $(COMMON_CFLAGS) + +7segments_SOURCES = 7segments.c +7segments_CFLAGS = $(COMMON_CFLAGS) + +voltmeter_SOURCES = voltmeter.c +voltmeter_CFLAGS = $(COMMON_CFLAGS) + +temperature_SOURCES = temperature.c +temperature_CFLAGS = $(COMMON_CFLAGS) + +vumeter_SOURCES = vumeter.c +vumeter_CFLAGS = $(COMMON_CFLAGS) + +record_SOURCES = record.c +record_CFLAGS = $(COMMON_CFLAGS) diff --git a/examples/Makefile b/examples/Makefile deleted file mode 100644 index 6d87885..0000000 --- a/examples/Makefile +++ /dev/null @@ -1,171 +0,0 @@ -# -# Makefile: -# wiringPi - A "wiring" library for the Raspberry Pi -# https://projects.drogon.net/wiring-pi -# -# Copyright (c) 2012-2015 Gordon Henderson -################################################################################# -# This file is part of wiringPi: -# Wiring Compatable library for the Raspberry Pi -# -# wiringPi is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# wiringPi is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with wiringPi. If not, see . -################################################################################# - -ifneq ($V,1) -Q ?= @ -endif - -#DEBUG = -g -O0 -DEBUG = -O3 -CC = gcc -INCLUDE = -I/usr/local/include -CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe - -LDFLAGS = -L/usr/local/lib -LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt - -# Should not alter anything below this line -############################################################################### - -SRC = blink.c blink8.c blink12.c \ - blink12drcs.c \ - pwm.c \ - speed.c wfi.c isr.c isr-osc.c \ - lcd.c lcd-adafruit.c clock.c \ - nes.c \ - softPwm.c softTone.c \ - delayTest.c serialRead.c serialTest.c okLed.c ds1302.c \ - lowPower.c \ - max31855.c \ - rht03.c - -OBJ = $(SRC:.c=.o) - -BINS = $(SRC:.c=) - -all: - $Q cat README.TXT - $Q echo " $(BINS)" | fmt - $Q echo "" - -really-all: $(BINS) - -blink: blink.o - $Q echo [link] - $Q $(CC) -o $@ blink.o $(LDFLAGS) $(LDLIBS) - -blink8: blink8.o - $Q echo [link] - $Q $(CC) -o $@ blink8.o $(LDFLAGS) $(LDLIBS) - -blink12drcs: blink12drcs.o - $Q echo [link] - $Q $(CC) -o $@ blink12drcs.o $(LDFLAGS) $(LDLIBS) - -blink12: blink12.o - $Q echo [link] - $Q $(CC) -o $@ blink12.o $(LDFLAGS) $(LDLIBS) - -speed: speed.o - $Q echo [link] - $Q $(CC) -o $@ speed.o $(LDFLAGS) $(LDLIBS) - -lcd: lcd.o - $Q echo [link] - $Q $(CC) -o $@ lcd.o $(LDFLAGS) $(LDLIBS) - -lcd-adafruit: lcd-adafruit.o - $Q echo [link] - $Q $(CC) -o $@ lcd-adafruit.o $(LDFLAGS) $(LDLIBS) - -clock: clock.o - $Q echo [link] - $Q $(CC) -o $@ clock.o $(LDFLAGS) $(LDLIBS) - -wfi: wfi.o - $Q echo [link] - $Q $(CC) -o $@ wfi.o $(LDFLAGS) $(LDLIBS) - -isr: isr.o - $Q echo [link] - $Q $(CC) -o $@ isr.o $(LDFLAGS) $(LDLIBS) - -isr-osc: isr-osc.o - $Q echo [link] - $Q $(CC) -o $@ isr-osc.o $(LDFLAGS) $(LDLIBS) - -nes: nes.o - $Q echo [link] - $Q $(CC) -o $@ nes.o $(LDFLAGS) $(LDLIBS) - -rht03: rht03.o - $Q echo [link] - $Q $(CC) -o $@ rht03.o $(LDFLAGS) $(LDLIBS) - -pwm: pwm.o - $Q echo [link] - $Q $(CC) -o $@ pwm.o $(LDFLAGS) $(LDLIBS) - -softPwm: softPwm.o - $Q echo [link] - $Q $(CC) -o $@ softPwm.o $(LDFLAGS) $(LDLIBS) - -softTone: softTone.o - $Q echo [link] - $Q $(CC) -o $@ softTone.o $(LDFLAGS) $(LDLIBS) - -delayTest: delayTest.o - $Q echo [link] - $Q $(CC) -o $@ delayTest.o $(LDFLAGS) $(LDLIBS) - -serialRead: serialRead.o - $Q echo [link] - $Q $(CC) -o $@ serialRead.o $(LDFLAGS) $(LDLIBS) - -serialTest: serialTest.o - $Q echo [link] - $Q $(CC) -o $@ serialTest.o $(LDFLAGS) $(LDLIBS) - -okLed: okLed.o - $Q echo [link] - $Q $(CC) -o $@ okLed.o $(LDFLAGS) $(LDLIBS) - -tone: tone.o - $Q echo [link] - $Q $(CC) -o $@ tone.o $(LDFLAGS) $(LDLIBS) - -ds1302: ds1302.o - $Q echo [link] - $Q $(CC) -o $@ ds1302.o $(LDFLAGS) $(LDLIBS) - -max31855: max31855.o - $Q echo [link] - $Q $(CC) -o $@ max31855.o $(LDFLAGS) $(LDLIBS) - -.c.o: - $Q echo [CC] $< - $Q $(CC) -c $(CFLAGS) $< -o $@ - -clean: - $Q echo "[Clean]" - $Q rm -f $(OBJ) *~ core tags $(BINS) - -tags: $(SRC) - $Q echo [ctags] - $Q ctags $(SRC) - -depend: - makedepend -Y $(SRC) - -# DO NOT DELETE diff --git a/examples/Makefile.am b/examples/Makefile.am new file mode 100644 index 0000000..ab6cacc --- /dev/null +++ b/examples/Makefile.am @@ -0,0 +1,75 @@ +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + +COMMON_CFLAGS = $(EXTRA_CFLAGS) $(LIBWIRINGPI_CFLAGS) +LIBS = $(LIBWIRINGPI_LIBS) + +bin_PROGRAMS = blink blink12 blink12drcs blink8 clock delayTest ds1302 isr isr-osc lcd lcd-adafruit max31855 nes okLed pwm rht03 serialRead serialTest softPwm softTone speed wfi + +blink_SOURCES = blink.c +blink_CFLAGS = $(COMMON_CFLAGS) + +blink12_SOURCES = blink12.c +blink12_CFLAGS = $(COMMON_CFLAGS) + +blink12drcs_SOURCES = blink12drcs.c +blink12drcs_CFLAGS = $(COMMON_CFLAGS) + +blink8_SOURCES = blink8.c +blink8_CFLAGS = $(COMMON_CFLAGS) + +clock_SOURCES = clock.c +clock_CFLAGS = $(COMMON_CFLAGS) +clock_LDADD = -lm + +delayTest_SOURCES = delayTest.c +delayTest_CFLAGS = $(COMMON_CFLAGS) + +ds1302_SOURCES = ds1302.c +ds1302_CFLAGS = $(COMMON_CFLAGS) + +isr_SOURCES = isr.c +isr_CFLAGS = $(COMMON_CFLAGS) + +isr_osc_SOURCES = isr-osc.c +isr_osc_CFLAGS = $(COMMON_CFLAGS) + +lcd_SOURCES = lcd.c +lcd_CFLAGS = $(COMMON_CFLAGS) + +lcd_adafruit_SOURCES = lcd-adafruit.c +lcd_adafruit_CFLAGS = $(COMMON_CFLAGS) + +max31855_SOURCES = max31855.c +max31855_CFLAGS = $(COMMON_CFLAGS) + +nes_SOURCES = nes.c +nes_CFLAGS = $(COMMON_CFLAGS) + +okLed_SOURCES = okLed.c +okLed_CFLAGS = $(COMMON_CFLAGS) + +pwm_SOURCES = pwm.c +pwm_CFLAGS = $(COMMON_CFLAGS) + +rht03_SOURCES = rht03.c +rht03_CFLAGS = $(COMMON_CFLAGS) + +serialRead_SOURCES = serialRead.c +serialRead_CFLAGS = $(COMMON_CFLAGS) + +serialTest_SOURCES = serialTest.c +serialTest_CFLAGS = $(COMMON_CFLAGS) + +softPwm_SOURCES = softPwm.c +softPwm_CFLAGS = $(COMMON_CFLAGS) + +softTone_SOURCES = softTone.c +softTone_CFLAGS = $(COMMON_CFLAGS) + +speed_SOURCES = speed.c +speed_CFLAGS = $(COMMON_CFLAGS) + +wfi_SOURCES = wfi.c +wfi_CFLAGS = $(COMMON_CFLAGS) + +SUBDIRS = Gertboard PiFace PiGlow q2w scrollPhat diff --git a/examples/PiFace/Makefile b/examples/PiFace/Makefile deleted file mode 100644 index f937c14..0000000 --- a/examples/PiFace/Makefile +++ /dev/null @@ -1,88 +0,0 @@ -# -# Makefile: -# wiringPi - A "wiring" library for the Raspberry Pi -# https://projects.drogon.net/wiring-pi -# -# Copyright (c) 2012 Gordon Henderson -################################################################################# -# This file is part of wiringPi: -# A "wiring" library for the Raspberry Pi -# -# wiringPi is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# wiringPi is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with wiringPi. If not, see . -################################################################################# - -ifneq ($V,1) -Q ?= @ -endif - -#DEBUG = -g -O0 -DEBUG = -O3 -CC = gcc -INCLUDE = -I/usr/local/include -CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe - -LDFLAGS = -L/usr/local/lib -LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm - -# Should not alter anything below this line -############################################################################### - -SRC = blink.c buttons.c reaction.c ladder.c metro.c motor.c - -OBJ = $(SRC:.c=.o) - -BINS = $(SRC:.c=) - -all: $(BINS) - -blink: blink.o - $Q echo [link] - $Q $(CC) -o $@ blink.o $(LDFLAGS) $(LDLIBS) - -buttons: buttons.o - $Q echo [link] - $Q $(CC) -o $@ buttons.o $(LDFLAGS) $(LDLIBS) - -reaction: reaction.o - $Q echo [link] - $Q $(CC) -o $@ reaction.o $(LDFLAGS) $(LDLIBS) - -ladder: ladder.o - $Q echo [link] - $Q $(CC) -o $@ ladder.o $(LDFLAGS) $(LDLIBS) - -metro: metro.o - $Q echo [link] - $Q $(CC) -o $@ metro.o $(LDFLAGS) $(LDLIBS) - -motor: motor.o - $Q echo [link] - $Q $(CC) -o $@ motor.o $(LDFLAGS) $(LDLIBS) - -.c.o: - $Q echo [CC] $< - $Q $(CC) -c $(CFLAGS) $< -o $@ - -clean: - $Q echo "[Clean]" - $Q rm -f $(OBJ) *~ core tags $(BINS) - -tags: $(SRC) - $Q echo [ctags] - $Q ctags $(SRC) - -depend: - makedepend -Y $(SRC) - -# DO NOT DELETE diff --git a/examples/PiFace/Makefile.am b/examples/PiFace/Makefile.am new file mode 100644 index 0000000..ca3ad77 --- /dev/null +++ b/examples/PiFace/Makefile.am @@ -0,0 +1,22 @@ +COMMON_CFLAGS = $(EXTRA_CFLAGS) $(LIBWIRINGPI_CFLAGS) -I. +LIBS = $(LIBWIRINGPI_LIBS) + +bin_PROGRAMS = blink buttons ladder metro motor reaction + +blink_SOURCES = blink.c +blink_CFLAGS = $(COMMON_CFLAGS) + +buttons_SOURCES = buttons.c +buttons_CFLAGS = $(COMMON_CFLAGS) + +ladder_SOURCES = ladder.c +ladder_CFLAGS = $(COMMON_CFLAGS) + +metro_SOURCES = metro.c +metro_CFLAGS = $(COMMON_CFLAGS) + +motor_SOURCES = motor.c +motor_CFLAGS = $(COMMON_CFLAGS) + +reaction_SOURCES = reaction.c +reaction_CFLAGS = $(COMMON_CFLAGS) diff --git a/examples/PiGlow/Makefile b/examples/PiGlow/Makefile deleted file mode 100644 index f182db7..0000000 --- a/examples/PiGlow/Makefile +++ /dev/null @@ -1,82 +0,0 @@ -# -# Makefile: -# wiringPi - A "wiring" library for the Raspberry Pi -# https://projects.drogon.net/wiring-pi -# -# Copyright (c) 2012-2015 Gordon Henderson -################################################################################# -# This file is part of wiringPi: -# A "wiring" library for the Raspberry Pi -# -# wiringPi is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# wiringPi is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with wiringPi. If not, see . -################################################################################# - -ifneq ($V,1) -Q ?= @ -endif - -#DEBUG = -g -O0 -DEBUG = -O3 -CC = gcc -INCLUDE = -I/usr/local/include -CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe - -LDFLAGS = -L/usr/local/lib -LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm - -# Should not alter anything below this line -############################################################################### - -SRC = piGlow0.c piGlow1.c piglow.c - -OBJ = $(SRC:.c=.o) - -BINS = $(SRC:.c=) - -all: $(BINS) - -piGlow0: piGlow0.o - $Q echo [link] - $Q $(CC) -o $@ piGlow0.o $(LDFLAGS) $(LDLIBS) - -piGlow1: piGlow1.o - $Q echo [link] - $Q $(CC) -o $@ piGlow1.o $(LDFLAGS) $(LDLIBS) - -piglow: piglow.o - $Q echo [link] - $Q $(CC) -o $@ piglow.o $(LDFLAGS) $(LDLIBS) - -.c.o: - $Q echo [CC] $< - $Q $(CC) -c $(CFLAGS) $< -o $@ - -clean: - $Q echo "[Clean]" - $Q rm -f $(OBJ) *~ core tags $(BINS) - -tags: $(SRC) - $Q echo [ctags] - $Q ctags $(SRC) - -install: piglow - $Q echo Installing piglow into /usr/local/bin - $Q cp -a piglow /usr/local/bin/piglow - $Q chmod 755 /usr/local/bin/piglow - $Q echo Done. Remember to load the I2C drivers! - -depend: - makedepend -Y $(SRC) - -# DO NOT DELETE diff --git a/examples/PiGlow/Makefile.am b/examples/PiGlow/Makefile.am new file mode 100644 index 0000000..a4e302c --- /dev/null +++ b/examples/PiGlow/Makefile.am @@ -0,0 +1,10 @@ +COMMON_CFLAGS=$(EXTRA_CFLAGS) $(LIBWIRINGPI_CFLAGS) -I. +LIBS=$(LIBWIRINGPI_LIBS) + +bin_PROGRAMS = piGlow0 piGlow1 + +piGlow0_SOURCES = piGlow0.c +piGlow0_CFLAGS = $(COMMON_CFLAGS) + +piGlow1_SOURCES = piGlow1.c +piGlow1_CFLAGS = $(COMMON_CFLAGS) diff --git a/examples/PiGlow/piGlow0 b/examples/PiGlow/piGlow0 new file mode 100755 index 0000000000000000000000000000000000000000..4c9b49df0bb9515474f0c8417b398d1db87a68f0 GIT binary patch literal 13800 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 TXT0h4|K$=}zsIHEV#R*}Gk7cv literal 0 HcmV?d00001 diff --git a/examples/autogen.sh b/examples/autogen.sh new file mode 100755 index 0000000..d991b45 --- /dev/null +++ b/examples/autogen.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +autoreconf -v --install || exit 1 diff --git a/examples/configure.ac b/examples/configure.ac new file mode 100644 index 0000000..d8078e5 --- /dev/null +++ b/examples/configure.ac @@ -0,0 +1,39 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ([2.69]) +AC_INIT([wiringpi-examples], [1.0], [tobetter@gmail.com]) +AC_CONFIG_SRCDIR([serialRead.c]) +AC_CONFIG_HEADERS([config.h]) + +AC_SUBST([EXTRA_CFLAGS], ["-Wformat=2 -Wall -Wextra -Winline -Wno-format-truncation -pipe -fPIC"]) + +# Checks for programs. +AC_PROG_CC + +# Checks for libraries. +PKG_CHECK_MODULES([LIBCRYPT], [libcrypt]) +PKG_CHECK_MODULES([LIBWIRINGPI], [libwiringpi2]) + +AM_INIT_AUTOMAKE([foreign]) +AC_CONFIG_MACRO_DIRS([m4]) + +# Checks for header files. +AC_CHECK_HEADERS([fcntl.h stdint.h stdlib.h string.h sys/ioctl.h sys/time.h unistd.h]) + +# Checks for typedefs, structures, and compiler characteristics. + +# Checks for library functions. +AC_FUNC_MALLOC +AC_CHECK_FUNCS([floor gettimeofday rint strcasecmp strerror]) + +AC_CONFIG_FILES([ + Makefile + Gertboard/Makefile + PiFace/Makefile + PiGlow/Makefile + q2w/Makefile + scrollPhat/Makefile + ]) + +AC_OUTPUT diff --git a/examples/q2w/Makefile b/examples/q2w/Makefile deleted file mode 100644 index 8f773bf..0000000 --- a/examples/q2w/Makefile +++ /dev/null @@ -1,84 +0,0 @@ -# -# Makefile: -# wiringPi - A "wiring" library for the Raspberry Pi -# https://projects.drogon.net/wiring-pi -# -# Copyright (c) 2012-2013 Gordon Henderson -################################################################################# -# This file is part of wiringPi: -# A "wiring" library for the Raspberry Pi -# -# wiringPi is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# wiringPi is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with wiringPi. If not, see . -################################################################################# - -ifneq ($V,1) -Q ?= @ -endif - -#DEBUG = -g -O0 -DEBUG = -O3 -CC = gcc -INCLUDE = -I/usr/local/include -CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe - -LDFLAGS = -L/usr/local/lib -LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm - -############################################################################### - -SRC = blink.c button.c blink-io.c volts.c bright.c - -OBJ = $(SRC:.c=.o) - -BINS = $(SRC:.c=) - -all: $(BINS) - -blink: blink.o - $Q echo [link] - $Q $(CC) -o $@ blink.o $(LDFLAGS) $(LDLIBS) - -blink-io: blink-io.o - $Q echo [link] - $Q $(CC) -o $@ blink-io.o $(LDFLAGS) $(LDLIBS) - -button: button.o - $Q echo [link] - $Q $(CC) -o $@ button.o $(LDFLAGS) $(LDLIBS) - -volts: volts.o - $Q echo [link] - $Q $(CC) -o $@ volts.o $(LDFLAGS) $(LDLIBS) - -bright: bright.o - $Q echo [link] - $Q $(CC) -o $@ bright.o $(LDFLAGS) $(LDLIBS) - - -.c.o: - $Q echo [CC] $< - $Q $(CC) -c $(CFLAGS) $< -o $@ - -clean: - $Q echo "[Clean]" - $Q rm -f $(OBJ) *~ core tags $(BINS) - -tags: $(SRC) - $Q echo [ctags] - $Q ctags $(SRC) - -depend: - makedepend -Y $(SRC) - -# DO NOT DELETE diff --git a/examples/q2w/Makefile.am b/examples/q2w/Makefile.am new file mode 100644 index 0000000..d40052b --- /dev/null +++ b/examples/q2w/Makefile.am @@ -0,0 +1,20 @@ +COMMON_CFLAGS=$(EXTRA_CFLAGS) $(LIBWIRINGPI_CFLAGS) +LIBS=$(LIBWIRINGPI_LIBS) + +bin_PROGRAMS = blink button blink-io volts bright + +blink_SOURCES = blink.c +blink_CFLAGS = $(COMMON_CFLAGS) +blink_LDADD = -lm + +button_SOURCES = button.c +button_CFLAGS = $(COMMON_CFLAGS) + +blink_io_SOURCES = blink-io.c +blink_io_CFLAGS = $(COMMON_CFLAGS) + +volts_SOURCES = volts.c +volts_CFLAGS = $(COMMON_CFLAGS) + +bright_SOURCES = bright.c +bright_CFLAGS = $(COMMON_CFLAGS) diff --git a/examples/scrollPhat/Makefile b/examples/scrollPhat/Makefile deleted file mode 100644 index 2471f69..0000000 --- a/examples/scrollPhat/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -# -# Makefile: -# wiringPi - A "wiring" library for the Raspberry Pi -# https://projects.drogon.net/wiring-pi -# -# Copyright (c) 2012-2015 Gordon Henderson -################################################################################# -# This file is part of wiringPi: -# A "wiring" library for the Raspberry Pi -# -# wiringPi is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# wiringPi is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with wiringPi. If not, see . -################################################################################# - -ifneq ($V,1) -Q ?= @ -endif - -#DEBUG = -g -O0 -DEBUG = -O3 -CC = gcc -INCLUDE = -I/usr/local/include -CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe - -LDFLAGS = -L/usr/local/lib -LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm - -# Should not alter anything below this line -############################################################################### - -SRC = scphat.c test.c - -OBJ = $(SRC:.c=.o) - -BINS = $(SRC:.c=) - -all: $(BINS) - -test: test.o - $Q echo [link] - $Q $(CC) -o $@ test.o $(LDFLAGS) $(LDLIBS) - -scphat: scphat.o - $Q echo [link] - $Q $(CC) -o $@ scphat.o $(LDFLAGS) $(LDLIBS) - - -.c.o: - $Q echo [CC] $< - $Q $(CC) -c $(CFLAGS) $< -o $@ - -clean: - $Q echo "[Clean]" - $Q rm -f $(OBJ) *~ core tags $(BINS) - -tags: $(SRC) - $Q echo [ctags] - $Q ctags $(SRC) - -install: scphat - $Q echo Installing scphat into /usr/local/bin - $Q cp -a scphat /usr/local/bin/scphat - $Q chmod 755 /usr/local/bin/scphat - $Q echo Done. Remember to load the I2C drivers if needed. - -depend: - makedepend -Y $(SRC) - -# DO NOT DELETE diff --git a/examples/scrollPhat/Makefile.am b/examples/scrollPhat/Makefile.am new file mode 100644 index 0000000..1953e34 --- /dev/null +++ b/examples/scrollPhat/Makefile.am @@ -0,0 +1,10 @@ +COMMON_CFLAGS=$(EXTRA_CFLAGS) $(LIBWIRINGPI_CFLAGS) +LIBS=$(LIBWIRINGPI_LIBS) + +bin_PROGRAMS = scphat test + +scphat_SOURCES = scphat.c +scphat_CFLAGS = $(COMMON_CFLAGS) + +test_SOURCES = test.c +test_CFLAGS = $(COMMON_CFLAGS) diff --git a/gpio/Makefile b/gpio/Makefile deleted file mode 100644 index b1b974e..0000000 --- a/gpio/Makefile +++ /dev/null @@ -1,95 +0,0 @@ -# -# Makefile: -# The gpio command: -# A swiss-army knige of GPIO shenanigans. -# https://projects.drogon.net/wiring-pi -# -# Copyright (c) 2012-2016 Gordon Henderson -################################################################################# -# This file is part of wiringPi: -# A "wiring" library for the Raspberry Pi -# -# wiringPi is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# wiringPi is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with wiringPi. If not, see . -################################################################################# - -DESTDIR?=/usr -PREFIX?=/local - -ifneq ($V,1) -Q ?= @ -endif - -#DEBUG = -g -O0 -DEBUG = -O2 -CC = gcc -INCLUDE = -I$(DESTDIR)$(PREFIX)/include -CFLAGS = $(DEBUG) -Wall -Wextra $(INCLUDE) -Winline -pipe - -LDFLAGS = -L$(DESTDIR)$(PREFIX)/lib -LIBS = -lwiringPi -lpthread -lrt -lm -lcrypt -lgpiod - -# May not need to alter anything below this line -############################################################################### - -SRC = gpio.c readall.c - -OBJ = $(SRC:.c=.o) - -all: gpio - -version.h: ../VERSION - $Q echo Need to run newVersion above. - -gpio: $(OBJ) - $Q echo [Link] - $Q $(CC) -o $@ $(OBJ) $(LDFLAGS) $(LIBS) - -.c.o: - $Q echo [Compile] $< - $Q $(CC) -c $(CFLAGS) $< -o $@ - -.PHONY: clean -clean: - $Q echo "[Clean]" - $Q rm -f $(OBJ) gpio *~ core tags *.bak - -.PHONY: tags -tags: $(SRC) - $Q echo [ctags] - $Q ctags $(SRC) - -.PHONY: install -install: gpio - $Q echo "[Install]" - $Q cp gpio $(DESTDIR)$(PREFIX)/bin -ifneq ($(WIRINGPI_SUID),0) - $Q chown root.root $(DESTDIR)$(PREFIX)/bin/gpio - $Q chmod 4755 $(DESTDIR)$(PREFIX)/bin/gpio -endif - $Q mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1 - $Q cp gpio.1 $(DESTDIR)$(PREFIX)/share/man/man1 - -.PHONY: uninstall -uninstall: - $Q echo "[UnInstall]" - $Q rm -f $(DESTDIR)$(PREFIX)/bin/gpio - $Q rm -f $(DESTDIR)$(PREFIX)/share/man/man1/gpio.1 - -.PHONY: depend -depend: - makedepend -Y $(SRC) - -# DO NOT DELETE - -gpio.o: ../version.h diff --git a/gpio/Makefile.am b/gpio/Makefile.am new file mode 100644 index 0000000..c2a1516 --- /dev/null +++ b/gpio/Makefile.am @@ -0,0 +1,14 @@ +sbin_PROGRAMS = gpio + +gpio_SOURCES = \ + gpio.c \ + readall.c + +gpio_CFLAGS = \ + -I ../wiringPi \ + @EXTRA_CFLAGS@ \ + $(LIBCRYPT_CFLAGS) + +gpio_LDFLAGS = \ + -L../wiringPi/.libs -lwiringPi \ + $(LIBCRYPT_LIBS) diff --git a/libwiringpi2.pc.in b/libwiringpi2.pc.in new file mode 100644 index 0000000..655913b --- /dev/null +++ b/libwiringpi2.pc.in @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libwiringpi2 +Description: GPIO libraries for ODROID (runtime). +Version: 2.0.0 +Libs: -L${libdir} -lwiringPiDev -lwiringPi +Cflags: -I${includedir}/wiringpi2 diff --git a/pins/Makefile b/pins/Makefile deleted file mode 100644 index 19c66ff..0000000 --- a/pins/Makefile +++ /dev/null @@ -1,25 +0,0 @@ - -ifneq ($V,1) -Q ?= @ -endif - -SRC = odroid_xu3.tex \ - odroid_c1.tex \ - odroid_c2.tex \ - odroid_n1.tex \ - odroid_n2.tex \ - odroid_c4.tex \ - odroid_m1.tex - -DVI = $(SRC:.tex=.dvi) - -all: $(DVI) - $Q echo Generating DVI - -.tex.dvi: - $Q latex $< $@ - $Q dvipdf $@ - -.PHONY: clean -clean: - $Q rm -f *.dvi *.aux *.log *.ps *.toc *.bak *~ diff --git a/pins/Makefile.am b/pins/Makefile.am new file mode 100644 index 0000000..3f52bfa --- /dev/null +++ b/pins/Makefile.am @@ -0,0 +1,16 @@ +dist_pdf_DATA = \ + odroid_c1.pdf \ + odroid_c2.pdf \ + odroid_c4.pdf \ + odroid_m1.pdf \ + odroid_n1.pdf \ + odroid_n2.pdf \ + odroid_xu3.pdf + +.tex.pdf: + pdflatex $< $@ + +clean-latex: + rm -f *.pdf *.aux *.log + +clean-local: clean-latex diff --git a/pins/odroid_c1.pdf b/pins/odroid_c1.pdf deleted file mode 100644 index a930f9590b9c1f1e2e172a082767f18793b8ec44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17510 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 C`e9c9 diff --git a/pins/odroid_c2.pdf b/pins/odroid_c2.pdf deleted file mode 100644 index 24839116f48d8678944ed5cec00bc489c4c6be80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17411 zcmb`v1zeO}(=ZMQA`4PdBFaig$g;aMNOyM&l1n#BOLupdfP{dwq_i|564Id32-02u z1>^C)@8^BL=llN8^4q=6nKLtIt~qngxn|B>P|FL8f}o770P3#w$ZP;B5CXK;Hv@2U zgQa0s#&8oL8v>#T7B#hi!|Z@yQ42jdOc-WhZ3yG#1=z#wV0xAS=d}0fPb(MM@cidK zlyXF#a)*7?X0!Hw*=BR^mXa30`Bo3EBIL#b%GvXUP*w0mMVHv@D@g?cH{s0Jql$<5 z)eDxFrwR@y3gMR;7l)NKIDAJ`ydK;8?IR}zoncF)C=G3ooRaU zq1hEbm7KS+Y{0R^sV1_^@yXt&uBkpXIk5El6PUZ+g_TwH?5qc;qxoCbF9#s^2w1mO4H!cTi?(V1;1}Mi&tmz2ffefEs=GA`S!z>xlBmH&7h~zHe+JRbciCJ_WX^Fh-dokd7XVW>;ds7D0A%P!_h3vSC&)}9ozM8_9&i>J$H zo&>5o7(Eayx_A|06p0TY1|BqbGkXNSU2AI+g-gLr{dPFl#!NT9LekSoLN4>p>O5nlqMzV4K)oHZPzLkHcoTBqAnJ=EY4W&+bMABXujBmdoh1RZ;2+p zt85tmky>@LnRc>gg+QVjJTv$Px9m}#eor)3RaBUe`(>4WNft~v$#o2dp6>=ZxOYz$%Vct}989Z?A3j$&~hS*S$w;|d#7I=lWZ z)IN$X{SZDUP~6<5Ar0yk$PbR_ZN5H~dr8^P+Im< zlu?`ad4&+Ml2Z-N%kq@@mdFCsY+>pxA=SGIW9`N_6=~DT1NnWh1eDE>`uQtFmcQeQ z4{_pBr{CZ+jK>q9bhs@J%S%VcXTiu8zO!}Xu>gSv>@0{7ms<5s)brk~ETo|!MWmka zc^#ylz>76}bRe~8z5i7E!ziE-E;SRWw{ZIA4Z3Lz@eA&#&qctHz_)kB84vu2QK=@Q zk2x_%?L?|XVpdRJ3ezA7tKL-{yK##Zziu8U8uc#9t4~OR;lk;GLR1pVUU6`2q-d3Z z5!aWKkEwb-yaNQ`7h#AGtf}}{RT1zr(a{iWK1DMgVr^>1 zi4u**teO8QP{u?ZyEaMh049*Iqd%%NU;{5Iqph2A!>T!v3he#z!wrlkKz7K(Ox3<+ z%AVYPlj)R)HGSb_&gyu<^hgrQ$ZUr3-f$i*uS}WR^)Kj5sN%1`pq$AspFi|?X^$kq zg>KPJe?y|UQzRda4?0>WL1peP)3AJb=VW@JOc#^F#k`_I zT~|f$`GN5O@n_lKCl5>sr^L!AhS~sU-h@zqYPeMHwou`O635Cy`UBaLc&|uteE#4q zEbYZr&mucdP7$VcW2}jtejJ zJqRsBSu(q#WMp1KLrEa9NMi8`IUr^|K6WLYe|*x7k*4nO+?A<%ELJ22XZf21hZMKk zVG+&5CKK|Ao&a5i->R9Cd<;oA6(7{TS<{TuJ!%@&ZY=0#u;RSj z$=s*8A}v|Ho-p9QR7eX_!OsOaf-^rf$+T3IAC){pC1p}FHp>3gd+Ee(zp<=g@L5;^ zk8X_#MGCv9oY7$uzEg{pA_dFXH_5cu{JWzhY@3QiZF1I1AygEcRIrj@!g9G{BBbbe zeo1@IWCjZj*`)*&iH`vh!3$ldEIti=jJc6enGY>Awr&=^Ot(~{wzXJ}M_d@5%!v*A zSL{5e#yGqs$K6Y;_bwv=Qux3VMO2;|?n7TD9)^_Phm1l{zJr2vaZ5x4zx)+coj+Uq z;g=v`TnZB(Trcr3{=9GYndaTTb)^}+z9Jfgt*bj#T(R%ebz~YXG44)EbzfLa++q(d z3D06u3x8Zv>szRBLS&S)89ey0zQUv*gqC%VTi@ar@d-XjI28?{c+qxiut(I7`Z%we z5IWbl0iNl9bb>1XRk$;f1X&(Z-%oiUSeg**{s1O{N-J)*@UbN7B1jCE!pjHu zvsf4s?Sqz3Zv8K?M`})+-kHTANDeNVt&~J>`Y5LcC_PieCS*{Q4GO%(*3CQ=2?)!f$yg!M@V`Mj32``9gc z5Gp$NjHPo|#K1A~$Wql`=)`&$#5TMVUDTYEwna~+P`cugnke^FQYb-p%A!ydicZ9tCEo7ehdKBht`Kc zn3X9wcb&PXih1=+ru!?oLJ0afecZTOz>t*BP!S+bI8hf+kMyttC7&@+x^u`eMV2f$ zhzdo;pv6n7K{6sjSUfliAlZUIDEx#xsL5NR-^lQ`Fu%wP&k(Pa@x!_nU%lB)t8ZPH z##8wpDm&x^tqf`x45Hc^Y?S#WmwoKuywPrN+jEM6i3vW_T(@HxyDejx%Q0e-$3&gn z-}n_<`FagR38GrZ$GE&#JaBpa9qzdRE&W1{M|Pq8^^K(L$44{SFU)xO#mR5 z@KUz6MSA-%3dz$Yru@FV#Nfs}PQYoJ4f#Bo2ma@KH)!U#H7FmZzuBD55SH{ikY_5_ z?usge8l4U)mT6CTsKkGZ!|x+S?rsa=$9nt%pz6o0#<=$0NzRq9p|#U^mPaDSPt!`t zIEJub@w<}onxe~M&66i#K98~!8Wc_HZ%_y3Kgt#^SY-2mq~Wdk9b1i5mmsv1d2Nf4 z3{QNdp1Wt@Xke74u8r0+Lc!K!x@!YR&Xr8kTuNAl@$$eKEi+g*Tp-RmpMe{uG5Qfb zT{sxGpYTmVMOG+UX#&ww{I@_ol~DR`C8OC^BsyO;{;ezZ4l&rW%xMT1MplO>-QhqJmuW|a?VAiq>5BiA~6AY?A0JAqnX-v$5@df zn8>SBxAzoqDj9*DD;~^%WThQbK}h6Pw5>bujMPAU+bxmyjZ93KbF@TX%VM%@i(IxK z>r?jJspsEdlB#OWHd-${ql$N(RIw=>3&66&T!SQ1b&{{4JLe-b)D_qqC5o{k3`HZ; zit>DU^pFGLbHl|hiw6F4UiaA7S=DR!1vqq7*j17mj=+Q5;>v0Vbis6Vo-@k5cD_-M z&0#GX!jkWEK`v*5fFauHKvDUO;uiOV1w|E|QUEmJZ z+r$G#B79Q8i!^~w$bwf->WltjQpFBFAR>vXEsw$wO*rVlLux^W zwUpz5M~5%=p;RQZd==>u z_2lcE!@J5NbP0E7C08VSupmV=AZ}7A*2L|N+P){ zpuC7x3Ak{@nle`)@@OLRr_y^XjwKNXoS5k`SGVSMV<{W8g_!!z z?Cblgi_1fbpJxiTJ&-#a-V8GzF~(&+65)TdRCI9@^;RH3>+{Mu<>3Yv68|_Hzd`ce z$G9G6h5;pGLT??&+b%aR zO66fzT=&?~qUyBuvQY8%>&JUkMeK%`V`q+OQ$^Ot;O2=Y83As5*&0y{HZ*#yRJckP z5f%~k=PKIdf?~uH00)E6;#DB&pn^1{(cAU4;gZFJf~ueKu71PEIFH%r^Sj>ctUF+D zQO4L|VtzP!SdWB()IE6j5jF{kY`Jmvk+X?Hf;fKc6XE~kWQ=AEBVJ9OvxvVtxBhuYvE)?RIIo75psj|!AH2w=>YSNq7i^{HR`eaw z+wIXNHSi)uWO+bP*Su>K!^qK=n+A?upUL*Oz{?x?s;>!QR)#;LGl3yzMC=C$L15Xz ztl&WAtH2Nf470a(urq+!BSJ>kTa_#>jG2xS65nXcNwickmudZk}PkpsZ-H<~M)pHVnLJ$u-dzQD3# z;u2CCk7Z3Q^&RY$^sJ;oiZEk`Yh4P%><#QpZQ#~+K-UElI`6GGXhcJ^=~6Foa1 z3j{2!_p=OTf`HXb4dEvCPl3$L%-7#5ajyQD*b(voSXtSC|H=0k72*nj0NL2C?w_5B z>H7P#hTwMvx#oL~amAMd(d#uHI|txjR97W7=+)p|l{i^guCG7ZfA@sw=ZeEs{g;GS zynn!$5Iz0Cyz1c^hQNpXyu)93h)Hlo4S`%4s1+idX=-JRP>7X)mA&cjx{`xF{AyZU znI2-if1B17=|6@?MqE%$ZpSR)WJU zRe?|lf`yE!y**-%UawhKss@17f3jg^=0tEsEO3aOhZZaV76J={MZjWUaj*nf3M>tl z0n38r!17>4uo74qtO`~GtAjPbdSF8^416sJ*a&Q7>IefHA@(t_G1wGr3AO@TnOecX z)`+jo)oy12GlKsp*JlvrP1d09Y^=*B1Pvqs2jYNfhd5yOyS~!Y-O8G*?fva!52U?s$3EP0 ziu236F+ZHRKpaQ7WC$aEI@Q@xTxD-#bG8|g8W|b6pHgvoW^g}FBQ7@Hm?x1zlG%P2 zGcMVsWB%ebh8M**adS$)>8iHNsh709oRH0SKWc$i|Evx@>Myyb_|f#zlMCmh_V?eYkG=!vV80-x;Rei z9Iacnad9Mb(%RWoaE^02cW)1#ho)`b7*5n-?&iye?aj+LZIPu)v@)ju-42T5ZcZU7Qey%JF) z1T6_PZJ{nRTWdV$FEuQq3yln;PtF{->Nfst|HiAPOc!t-mOSpGtS_xr-Fv22b7?<5 zY)sd%C(ljS-2_d0j(t0=_}k`d9Gxommtwu!e5b^Ulp~uDezO_)Q&1T^Ek{qz?EW@z>BeK%$Z9 z13;QjcR{ucY0OcLuJ>)Ls?{kYOjgXff@hxz3qEkJFDR#}5DK-M&u&jNoB&$*l$ma% z4ZQfYI7f^{c}t*F=N#j!GkP`mm-#f1OYcen8Q;74LoKhsTS1>t&?~Lx82TadzW~6q1AI}UokoJ)JfT@CPc{m6V35<#eiO0N3j0w=Xu`4 zq$eS=(|OS=cZ3C6YM#Hap$r9)rEOKUlnsX$ElP~--WNeijN?u;|BBZl6XFV$NDHaBeZgK@gtn)TzcG*8v=09Fc#SFE#8+#rXbQIKI31T-lzZpqe z6&ShsnzQXv^&SsZC{g<|iZn&0Zzn}c%U2@kt&}X6;=)T)U6N?q2P!duW6)5MJcu86 zow?I2!k~=v9VCK*p%vYhKo#1~Ani*~_KvRqmN@}Zc!tu)#&;?}z3_4TJ1pb;fW2*w zAR0~EW>pHKr~E0m!jP+6sfjq!c)0E^uhB58lc<=9=sui5GSDg%abrCyT2Z=TlRl^+ z8|FH1#@0Yx{U}L!4$Dc}K!=Rm%QR`Sq(!<*g|A4LfCota_f)!u94YN<>m!f9he z-uJMxlyV=yocreZZdZ$jp(AwrE4fiCH)P`*(!oo8mD)4Z?w3wAqpPGvIoYKiSd~tPIbX(&bN~)N4+aJ-@Iqa5wLG!}ZlJU5;c$_V zMdQAyr{TZrhN;b?>Uq)IaVLBQ8HbtJah}uex$gqTV@-)KNbl@@K@v?(+Y;XaZKMNk zx0LEdx~xw6kysq0gw;?UA|kn$(=6=$2A-vbpZhREPDVc6W>PV!sc%)L+){;B{-McDpMrYPR>e&;B-X>3vHvNHQ@c$6Go{ z5;KgJ1ZPRa;`J@WD$3iX$kpa7FH7Nu8*7y;jidyN)E950C*w_%aCQ+9RLy;tHM~U@ z-NNzpwfp&w;mTgCd6=OCri>oD_t)lIpDWN*N6)vGLtf{W5lhy7TPfNp4A)6`pb@C( zQaXb5wC*kee!b_#=-cx;c2lQxT{)k9wzPEv*tu&iymfuKb4i%-)R^^Lo@QvF!r`l4 z7K+9C$rgoRVE${IjI~*k(?WUVFA|<0GxbpYysWUHz3G^@;dE1pSt7LGg&l=j$C~+c zT;dOPAGb%m%#g6gcF#b=XYqRQiWJN;nrSI?_)*@XVZ-!HU|2bFZJ)Iu-gElX9_5zh zc0{}#GoJXQJt=7uF#g!7F&=4=R45;3o#f5Xd5v2LGlMR<>2@{4GZ;z7w|5Fg4=}|f zD#?rHE=@PkI!klcchsHutk+pdWe*ls-#6Sp954>(*)FhcKXN@36s_G>N$Y70Yp^0t zQ>|xE$e2n|y&vME&>Nr<{dRrFU|^kGVE)$LQwCrNuuN|o-VS_5i;a)!%&Rd#C3TM| z8zV_aT^-ouBNCu?nGn=9vy`n*YuK&$3FjU^h)m!7@m-B&ar?FBhlJaV*ga#j&$G95 z4?D@U+$_%h2LmT4g97Wo=(;EJj=N{f01eO6SJo-yGU%25+T(yJ)FZvX4-1;rJ3F&$ zLY|7FIkb=BklRZ3qN;t-Y?tC%2Ipm{cMZ4teNP{b0Zm4@+kQD z9d0{^y-lN7i$4QF+qrES<{F0H zR=&EXnm8}sw`aN+J-3PHn?7t%zp#APjOJG6=;3cn_0n3YL}7%V;>Osx?Xc4*ZcZK; zN9aDZDOT&f(dQdnQ2#S|8zW6avu;s2KQup@`#2^+#i4bHQm)wQ;csuENjnVdX>5h~ z#3zSH-m-AtXRZ%qG=7fPd*}8({>jq>&U!I1hP~jmBLTPN?_T=PM^1y^+4hqNW#rQu zl#^djp-y$qzdni-#lRg3*J_d}^ffJ8-tpg)H(G#ZT)$y-l>}5Bx{^VK<~{bj&GVrHI6dJSV_y20nv3(il_K^85?Q zQf2^>2L(^r$e~R$u^4Dm-WyxxE8QBc})tNj$db^pm%ch zizt{loPWZ8FiSXwk>Zxcm?4$(cByOb!GrqYgRqrNOn0A<@2-!$H(u8DwR7k2e;&4oK-YZ*lN$P2<*z3BKblTTm<0 zv=|m<@$G*#PKkHwqB~z+xdP(ZQbj4ZM!T0o(DEiQXl49C=TCAs^bC5OJg9pu) zq}Z`6d<@@-uo~W+_$_KN=CNC~GPCVQcWPkX4!ZqP;UubmiWx}qr~>`s%weO&snlBf ze6`a_Tlkd~@r-nlRMArxZmhbjvi-Xs{gbDZoIqdRtY?^?4v>`;)}L*>B6@c?8;lX8 zok)sd>t-&^bxRYRe3q5<2D`yhnMmqh)d;EJ~@s9xIf9^d(IoR0#@E-k@G3Aw) z37ZnNzt7T!lub+)G&-dUo1>s)v+BOa!waJ_!7o!Vm-llZo`Aue^fVsuI(N@o@J9!| zHB=)?6r(;0x`RhfNeEsW87+WPmd8rs&*x0CrQ2^<8@t+4CzYoUOeed2NZ<8be!k2% zC#Gaa9+GD&0)MXmwZH7k2h*>HnrUAtF9cO3rL*T1(!fVOEpoHG{ybzs1t?E<)XC$fi0VnB*7)M!YQ zhFFMFT~D~vJ1T6gObSNLZcDHw357k{I2-dB{lpR~d*0Mp42791j+S>~g}Rzn2;>|% z5`T3Uxp(_sB?Dr;l(A)RdIT>r}cJL6wwfq}|S67|~zjI0v{-8^_4iSTtGWr^VCsHE*SF zOtrsca!cYh5{HT?&~tT#4&Wn~V(yXitn73PgVt0?aCg)wXm+Ajsk~@6QFCxkrt3nz z$s`^%tBQ2!G@NhvVZwfk6^2^2lI7u;6DNobOxG%Gh7EER^>%IUT;Q zCHq(U>VMVuC~9yBqa0ocjEy94L$emZJ1+lg>wl9a~bd=Sk1+knDj5TX15$>vHfuLHFB5m>y=*Fc}$g zduL+SY7AoDiO1PS{jRK0SR9|XaaSeO{0neua>91mDE(n&Oy#mi+!V3}F-M9^WHz$a zO?y)TTh5x!@|$*E)Xn9>WX5+7MTRaz~P)^&)o zT+~rp@P5^p*E*}+w{IpF-;itT?=;KZ`Ix+oFQ_-VDShA3QQ^pqnWvv`no=mXy8zH>TeTH)M<&FojwJ% z3d^O0ZPjq2{{W}H2UA7lO`VK9=8XJ={NkRXEP+kl7XK~o4UH#$+e6u~P~LR<{0sFC zWZfCrS0Z;7Xsl7+g)*tBs3I+$rBj||hu^HyG&?Q} z(jGrx!RdLoFJ3f#S3aiZ&9r8JyhX3ZeYEwo6{)!g_BkjtPp}0aT90kenIKnpd>nUN zBowE>Oo*nd44OMsg5n;ZAKp903n50^BShibmZT%UbkNH6_Ys;V%xk5F_WPmmN=&zM zPb?bm3%1>bSx*Hx+%~7V!$q4!+v8{b?2@Lmf74g)ux?6SIuWc$MJ3X&Q?O zn7%0^zVKE$FRgBCKn(h>2P>jW8>b7#h8BaRL40>FZAc5ZmU-rC16(FU zdhJ4viwXNM!^@C}$UdB=yvbA<)n4Uu$B=FFdbOnTspun(mPrp0KJ{nz?Si#0A(Xqb zl9GKrUu<4|<;0G}yhvPv2DsSlw*)IWbi&BW^IQ*I=4?KNT`pny;-Dz(0#!*rTaw|@ zyn5T~ncVXsE}>K<2KgignaS#95&`+W(Tl#Yoh)@mCu7d=&SHj~kI9RUPtvWdP|3Og zEGK(CTTu%)S0Vv(CB|Wtem%^5qnhkOOHsNyXRUoKRwHJvJgMd=MR~D8{nXv6va;Ue5POp+6o%ryLt5=(=*g8s&p^Eqo*ceG&M<+~YkG3@kjPh1~Zm94OEklvN+><>+=oNdhgSYGo{yTQ^)k5$dH zDu14(Oh^0DMzz22Fo9}kzGfXi$9(I(HdeXHV?Ss{`7}x0`;|kV&&$i(_rw$~kqvJ! z$Ncl5=IU7DKY6D4Uk*9`5>#hKoT&W~R7X6r{QnH9Uq#LTm!LY!pF#Djkh&NmoG$r0 zl&*{jqw9h7e?Qp#j-LO1wz0Slqa&Vf{$2bW5jg+(jN|anF!|q4L;pA%`p+M9nAlkV ze9%c(by6o7Bg*uiNyfwTAel*|v4GPa7fCXlZ;IE0?cXF0Y!|*;twLf-pa({Gucn+O&+T>Zz*f~wN|6Uf> z7OAIkkZUSxZxmq=(8uljw1=5U+Fmlro4X<9NiKp#)h-G0Dn_cCrZCPV5aYGZp6 zEV^x#Le08jvfnk7Su`bUOlrWQ(GZfdH}tM*k6kg3TIxI||9xD{K2f8#LClanlZ@zV zmeGRIr(`GMJ-TnC9?gjkX@a0x`{(XVk9j*sJ0U-_j-)^Md^zn(F%mmD#06^sFk z8drC&ZhwO)mK(Cl%cQHM&i5?&_rHQ_lEo-xZtflRj7V|iv>Of87U-Du8nL?yb=#7F zG@9MWffM^0qzwZvot!sZ<&SyzR&g}UE!blF+{V^MUBAq&z*l4fNXU!ub4MS_#B;y9 zSY2=mx!@Zj35aI+6pZ00R>4dIt9YdJL?$yKgLNiJkLkk$wn81ly%!I$Vmn_lmom90 z-<7^O9GTqHub-WCA8^4{y-KT9^0xctIIYz z`m>0Pv(&%{y4&4dAIfu0RUX>v?2h=|iQBprxBjrO>;aW$EijY7){vtjDM%tR+FJql z5LG=1N$G^Ay?jkyIpn=@Ok0~VO$7O&>u@ZMacYwy`kT9HgCfsxv?u0q7v~O$In}hZ zn~OW)hMmN|kw7Wb{&yuL-u|^%f)JmZsVM0gZ7bnsSj!1rFF%B2(F^XllK{#yFHw<~ zBkC#+3#E407OY1wM!39nCy-k$n1x$uMuhCyIr_c%Oeft>dKUvi#8Bf<3G&2BSqJK3 zsxS#hNaMxc@DZ)Pk$(`E*s05aoeI4fzXq(MK`S9HaBp$IdF6qud7C_D)^0((Pb~FQ zlTwLK;xS=IQ4cATfB#_8ynmFyYl4bh*)8Av&t0E}Fz*sDxumbtG+|B;impqYAKcCG zyU<9LS*%;zIU8DB2I%gsKL`ZW5X6w_WieXYCBV*!63teZR8rM8awexwNwy-DgD7=k z59UQV+@0^A9T4U>Kd(*Ik^#>x=D&R< zA``CV1~0$KL5t>vvu06l3Gqm8@d3RZ4Gt(gloz@lBs?Q(epkmg*4*Rk{tu~ zhFBxkY0C2q$*H0vtWcK&c-QQ=!bf2#-LbZ?-3ZgjHSi)UJ~BnKWx%XiU9VVr>Ez*1 z)XN9B2Nry?Nh<+ecfD@6P8k2))l{~*<`p1aPYu; zDB;f>;woM;ahEEjf39#2R-_K6Z%!DA4sDRjr2cdmQq72`ixguqxSbdE)!u(ea5s)|2i-Wmf_-qXBXIDp=ydln z#kaIc8{S1-K(g@CWH>Y0c$*MX2Hrh68d2c^32Disv8@F?OM}=G9L@)O{LiqRIw)44 zd-t$%g}X!pzbH%B9|Ev^zdKob*Q$g!a;RmGvc=xQz%1eAX?Rs#rKnxeoc%K3x!}RL zB>vm?%di}8eUBJ@M(dTE3YJD;W;#7z6kKxg4Y=34JDz!DwDujo*kx9oy;-NfO|*lo zA;(zEQMqpOsa;R)t*`E9BxPNIY%TfCkAtgv2Il^xDq5{5>E{mF)S;5Q2Vncs+2ijT zdNVw>27OtSnK42yD_SgPQV#XLyWMP6yWByqIxsI7vyl^SoYd0SVQNd_GPTRj0%uu8 zz4q9ze0j2v;NKjhBhlx55^(a3ye5VQm7^UTo0`WGQTROhR>!!C-++$TXWTF{!U*qi z(>()H<-PY^gTVt;-tTTdHqF#n{d^o^)ZC+FTUVyy$AazZeu#7;;5;ou_M#KqxK9@f zD15xlUR2p72QiGyvp~}Ha9+!q6uQOWn{ly&#AWr>`Tgjzn-bjv?Nb9tL?_fq9+~GG zPNEKHe#A1(2Nz~r)q?{{fBN-4LUTz5l_i4-2ecYfg|J%B8-gP{A`ke4MJ>39$?=X) zULM6AkC9*4?d;xslL#J{ZO@QxZ<1&)+4j>$5)&c$;9l*tU8VBUWP@pc^7&T^f2!m2 zv>gj%{X?69*L{2x@#eZ8Q)Hm5pm?#8sLh_mx4RQ6m^cIAEbr>TlNhq>7YRy71}`mS zCWb0UgL_4_jcp)T=qbzTR=dx7&j?|Uo_{%S z@OWLA_kDzS3Wc!RP41#9v0+Ot|9Ob?j@C(Lf#!3^r6vi#h$H3f_vx7rwU&K7q_)ro zjaF}3S0~4F#0gcObKLCiiXV>@f}KK@d%L)oqmIFqG1ypKTO|VWr>xYLXuX2uxavm@ zr8rKZcNQc#V%k9)5|UV6W@OR^q-SW6m;$)acwgn(moIN5@^dT*aY#)i?Wm%BfuHHs zq8}@E>=KTexwXrDYp&#byC@LQg<-EC0!h)81{HdJ_s^_@bhG&Q@T0Q2;MS_D1G$?e z0%;ma{dR>v>j{DiZVBHBO2(vr>GsgayrbWDkFevG&lk~!wm~<-D%{>S4QJq2Ml65r zreHE!>%4g*^7o?4S!Pa8t2rX1pH%^Qm?=GRTX|7^r2@&4T;Pg17i^}F_6fVbnK9OS zQVsg@*HAl!5wqTw7`3gs6Bj~X0WKZcV&4rYhu21EK7}mK#Y_r~l3)tmRxAxP;`(O_XtZDE(2XI}=J9wW_@n^0) zAqmDSZ-YA9$G_&j@3Yh5V!?0j#_$FJP+4z{2t;mrsZY3<+{G|og!yYEp&GmuX_ zPUz^!$he>IP}pwX6dccMk;U58IS%=@@XyEp>vY0DpZ|X)8vZM-LtRGtS560%nd4tM z9o&4*Hi#tx1_$cHj7_b0Xf_*~X@I7NJTz*oG7uRXA()A&xT_sZ$yHX_z}4J<(~yRb z7r@P@he-2;ft>YhKt|Uu>)HbmsWm(lLWiL5qqQ*mG0*Bjhfx%8rPK-{>h^^Qd4CUnH1Vfm>OiUmI2FTvU3a;l2va+W{ z^mi?Ysrqj+D|^OknHUYMEy1ShU??L5{Hvp1DM_Z*R=}%{_4KVB;5;-A4yJ}&P$nZ5 zHfA;mhzVxE1cE}1m_ZQ42c*vdGt_5iVKHFig#GHy<_|Id(jTG$(IGQJ4~P;MBA3l8APh0k&7@Q z6PK3>0_6Zf5JLl1hO%=(AY3dgk0G3h0yp??n25ngkP0DQ)<(R%{U4D2f%yliwVg7; zBzO%SO>OLH&FO%wjGUb8Kp|@zm+Pb`AVMB?prW3ksezsaP{aiWRI)aLJ0aY^AM#u? z{mFwHd^Li9=$-NNi}pWn^t2Y^Ml`}r;TAC7 z>zOHF0sm33Fuj^-To!s(#ym96AVZjuo`VIPhS%EA&f3&a$AF0uF{VF;#KM&KN8y?n z{4a+8X27mNi0O|QJMiztg%<$)FMa-djQ+KvBF>(8Xq>Lr%YU3g{gHG1YwFYfyO~di zIM}(GNC>T8O(j}kuB&+nfg(Qa5Xkiuq=7(a5NL?0`hURqIVEVXr<4}0xz_*1q(XF{ zd^Ogze;Gx(-)ZU2b}%DEhA0yvEBp5c$i~Xb%nCFD{)Dk`AdbwgTY*+TVNfhl{0VPR)OBp?3`#s>KZ3<9~z>i-)aE5|=!S6Qro!((N?N*(_TEtCn7rv5h=gq4Nq z?|2YS4%UD2gIuNB|Ailf4a$PZx%?}Pg_HRoeXww{{R76v%7n-h{tGP>0%iMqzfdN` z3l@LJV})`eGQfY)!tL}B`Ji@)|FHoCE19~&5Mu;Hyj@|9c!2>CG*kqFC9I6Bfmim3 zcvnI~82FT%la*aql$o8Gm018Pz|O+XEXXM;#Kb8m2od0bvIvUs{+}_luilNYhwItF TuMGpr#=*)Cpr#g)69xQ#z)z7# diff --git a/pins/odroid_c4.pdf b/pins/odroid_c4.pdf deleted file mode 100644 index d5d4760363f2f8e9b655bd19d785ec760904ced4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31518 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 V5vWVU;1#~eer0BsQIr9so_-T4W}G3&;k98$SjJ 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 V;B;*mU~V36b^r~Hq_Py?{{yxaCjI~b diff --git a/pins/odroid_xu3.pdf b/pins/odroid_xu3.pdf deleted file mode 100644 index 77ce7e5c446378688a3a3703e596f3b0429246c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18219 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 diff --git a/wiringPi/Makefile b/wiringPi/Makefile deleted file mode 100644 index 99e417c..0000000 --- a/wiringPi/Makefile +++ /dev/null @@ -1,188 +0,0 @@ -# -# Makefile: -# wiringPi - Wiring Compatable library for the Raspberry Pi -# -# Copyright (c) 2012-2015 Gordon Henderson -################################################################################# -# This file is part of wiringPi: -# https://projects.drogon.net/raspberry-pi/wiringpi/ -# -# wiringPi is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# wiringPi is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with wiringPi. If not, see . -################################################################################# - -VERSION=$(shell cat ../VERSION) -DESTDIR?=/usr -PREFIX?=/local - -MAJOR=$(shell cat ../VERSION | cut -d'.' -f1) - -LDCONFIG?=ldconfig - -ifneq ($V,1) -Q ?= @ -endif - -STATIC=libwiringPi.a -DYNAMIC=libwiringPi.so.$(VERSION) - -#DEBUG = -g -O0 -DEBUG = -O2 -CC = gcc -INCLUDE = -I. -DEFS = -D_GNU_SOURCE -CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Wextra -Winline -Wno-format-truncation $(INCLUDE) -pipe -fPIC - -LIBS = -lm -lpthread -lrt -lcrypt -lgpiod - -############################################################################### - -SRC = wiringPi.c \ - wiringSerial.c wiringShift.c \ - wiringPiSPI.c wiringPiI2C.c \ - piHiPri.c piThread.c \ - softPwm.c softTone.c softServo.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 ads1115.c \ - sn3218.c \ - bmp180.c htu21d.c ds18b20.c rht03.c \ - drcSerial.c drcNet.c \ - pseudoPins.c \ - wpiExtensions.c \ - odroidc1.c \ - odroidc2.c \ - odroidxu3.c \ - odroidn1.c \ - odroidn2.c \ - odroidc4.c \ - odroidhc4.c \ - odroidm1.c - -HEADERS = $(shell ls *.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$(WIRINGPI_SONAME_SUFFIX) -o libwiringPi.so.$(VERSION) $(OBJ) $(LIBS) - -.c.o: - $Q echo [Compile] $< - $Q $(CC) -c $(CFLAGS) $< -o $@ - - -.PHONY: clean -clean: - $Q echo "[Clean]" - $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPi.* - -.PHONY: tags -tags: $(SRC) - $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 libwiringPi.so.$(VERSION) $(DESTDIR)/lib/libwiringPi.so.$(MAJOR) - $Q ln -sf libwiringPi.so.$(MAJOR) $(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: uninstall -uninstall: - $Q echo "[UnInstall]" - $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS) wiringOdroid*.h - $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPi.* - $Q $(LDCONFIG) - - -.PHONY: depend -depend: - makedepend -Y $(SRC) $(SRC_I2C) - -# DO NOT DELETE -wiringPi.o: softPwm.h softTone.h wiringPi.h ../version.h -wiringSerial.o: wiringSerial.h -wiringShift.o: wiringPi.h wiringShift.h -wiringPiSPI.o: wiringPi.h wiringPiSPI.h -wiringPiI2C.o: wiringPi.h wiringPiI2C.h -piHiPri.o: wiringPi.h -piThread.o: wiringPi.h -softPwm.o: wiringPi.h softPwm.h -softTone.o: wiringPi.h softTone.h -softServo.o: wiringPi.h softServo.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 -ads1115.o: wiringPi.h wiringPiI2C.h ads1115.h -sn3218.o: wiringPi.h wiringPiI2C.h sn3218.h -bmp180.o: wiringPi.h wiringPiI2C.h bmp180.h -htu21d.o: wiringPi.h wiringPiI2C.h htu21d.h -ds18b20.o: wiringPi.h ds18b20.h -drcSerial.o: wiringPi.h wiringSerial.h drcSerial.h -pseudoPins.o: wiringPi.h pseudoPins.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 ads1115.h sn3218.h -wpiExtensions.o: drcSerial.h pseudoPins.h bmp180.h htu21d.h ds18b20.h -wpiExtensions.o: wpiExtensions.h - -# ODROID Boards -odroidc1.o : wiringPi.h odroidc1.h -odroidc2.o : wiringPi.h odroidc2.h -odroidxu3.o : wiringPi.h odroidxu3.h -odroidn1.o : wiringPi.h odroidn1.h -odroidn2.o : wiringPi.h odroidn2.h -odroidc4.o : wiringPi.h odroidc4.h -odroidhc4.o : wiringPi.h odroidc4.h -odroidm1.o : wiringPi.h odroidm1.h diff --git a/wiringPi/Makefile.am b/wiringPi/Makefile.am new file mode 100644 index 0000000..aa0df83 --- /dev/null +++ b/wiringPi/Makefile.am @@ -0,0 +1,53 @@ +lib_LTLIBRARIES = libwiringPi.la + +libwiringPi_la_SOURCES = \ + ads1115.c \ + bmp180.c \ + drcNet.c \ + drcSerial.c \ + ds18b20.c \ + htu21d.c \ + max31855.c \ + max5322.c \ + mcp23008.c \ + mcp23016.c \ + mcp23017.c \ + mcp23s08.c \ + mcp23s17.c \ + mcp3002.c \ + mcp3004.c \ + mcp3422.c \ + mcp4802.c \ + odroidc1.c \ + odroidc2.c \ + odroidc4.c \ + odroidhc4.c \ + odroidm1.c \ + odroidn1.c \ + odroidn2.c \ + odroidxu3.c \ + pcf8574.c \ + pcf8591.c \ + piHiPri.c \ + piThread.c \ + pseudoPins.c \ + rht03.c \ + sn3218.c \ + softPwm.c \ + softServo.c \ + softTone.c \ + sr595.c \ + wiringPi.c \ + wiringPiI2C.c \ + wiringPiSPI.c \ + wiringSerial.c \ + wiringShift.c \ + wpiExtensions.c + +libwiringPi_la_CFLAGS = \ + @EXTRA_CFLAGS@ \ + $(LIBCRYPT_CFLAGS) + +libwiringPi_la_LDFLAGS = \ + -version-info @LIBWIRINGPI_VERSION@ \ + -lpthread -lm -lrt $(LIBCRYPT_LIBS) diff --git a/wiringPiD/Makefile b/wiringPiD/Makefile deleted file mode 100644 index 6b2cc9e..0000000 --- a/wiringPiD/Makefile +++ /dev/null @@ -1,100 +0,0 @@ -# -# Makefile: -# The wiringPiD utility: -# https://projects.drogon.net/wiring-pi -# -# Copyright (c) 2012-2017 Gordon Henderson -################################################################################# -# This file is part of wiringPi: -# A "wiring" library for the Raspberry Pi -# -# wiringPi is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# wiringPi is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with wiringPi. If not, see . -################################################################################# - -DESTDIR?=/usr -PREFIX?=/local - -ifneq ($V,1) -Q ?= @ -endif - -#DEBUG = -g -O0 -DEBUG = -O2 -CC = gcc -INCLUDE = -I$(DESTDIR)$(PREFIX)/include -CFLAGS = $(DEBUG) -Wall -Wextra $(INCLUDE) -Winline -pipe - -LDFLAGS = -L$(DESTDIR)$(PREFIX)/lib -LIBS = -lwiringPi -lwiringPiDev -lpthread -lrt -lm -lcrypt - -# May not need to alter anything below this line -############################################################################### - -SRC = wiringpid.c network.c runRemote.c daemonise.c - -OBJ = $(SRC:.c=.o) - -all: wiringpid - -wiringpid: $(OBJ) - $Q echo [Link] - $Q $(CC) -o $@ $(OBJ) $(LDFLAGS) $(LIBS) - -.c.o: - $Q echo [Compile] $< - $Q $(CC) -c $(CFLAGS) $< -o $@ - -.PHONY: clean -clean: - $Q echo "[Clean]" - $Q rm -f $(OBJ) wiringpid *~ core tags *.bak - -.PHONY: tags -tags: $(SRC) - $Q echo [ctags] - $Q ctags $(SRC) - -.PHONY: install -install: wiringpid - $Q echo "[Install]" - $Q mkdir -p $(DESTDIR)$(PREFIX)/sbin - $Q cp wiringpid $(DESTDIR)$(PREFIX)/sbin - $Q chown root.root $(DESTDIR)$(PREFIX)/sbin/wiringpid - -# $Q mkdir -p $(DESTDIR)$(PREFIX)/man/man8 -# $Q cp gpio.1 $(DESTDIR)$(PREFIX)/man/man8 - -.PHONY: install-deb -install-deb: gpio - $Q echo "[Install: deb]" - $Q install -m 0755 -d ~/wiringPi/debian-template/wiringPi/usr/bin - $Q install -m 0755 gpio ~/wiringPi/debian-template/wiringPi/usr/bin - $Q install -m 0755 -d ~/wiringPi/debian-template/wiringPi/man/man1 - $Q install -m 0644 gpio.1 ~/wiringPi/debian-template/wiringPi/man/man1 - -.PHONY: uninstall -uninstall: - $Q echo "[UnInstall]" - $Q rm -f $(DESTDIR)$(PREFIX)/sbin/wiringpid - $Q rm -f $(DESTDIR)$(PREFIX)/man/man8/wiringpid.8 - -.PHONY: depend -depend: - makedepend -Y $(SRC) -# DO NOT DELETE - -wiringpid.o: drcNetCmd.h network.h runRemote.h daemonise.h -network.o: network.h -runRemote.o: drcNetCmd.h network.h runRemote.h -daemonise.o: daemonise.h diff --git a/wiringPiD/Makefile.am b/wiringPiD/Makefile.am new file mode 100644 index 0000000..9755742 --- /dev/null +++ b/wiringPiD/Makefile.am @@ -0,0 +1,16 @@ +sbin_PROGRAMS = wiringPiD + +wiringPiD_SOURCES = \ + daemonise.c \ + network.c \ + runRemote.c \ + wiringpid.c + +wiringPiD_CFLAGS = \ + -I ../wiringPi \ + @EXTRA_CFLAGS@ \ + $(LIBCRYPT_CFLAGS) + +wiringPiD_LDFLAGS = \ + -L../wiringPi/.libs -lwiringPi \ + $(LIBCRYPT_LIBS)