forked from tumugin/WiringPi-Ruby
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial commit, largely untested, highly alpha
- Loading branch information
Showing
8 changed files
with
2,110 additions
and
425 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,217 @@ | ||
|
||
SHELL = /bin/sh | ||
|
||
# V=0 quiet, V=1 verbose. other values don't work. | ||
V = 0 | ||
Q1 = $(V:1=) | ||
Q = $(Q1:0=@) | ||
n=$(NULLCMD) | ||
ECHO1 = $(V:1=@$n) | ||
ECHO = $(ECHO1:0=@echo) | ||
|
||
#### Start of system configuration section. #### | ||
|
||
srcdir = . | ||
topdir = /home/pi/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1 | ||
hdrdir = /home/pi/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1 | ||
arch_hdrdir = /home/pi/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/$(arch) | ||
VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby | ||
prefix = $(DESTDIR)/home/pi/.rvm/rubies/ruby-1.9.3-p327 | ||
rubylibprefix = $(libdir)/$(RUBY_BASE_NAME) | ||
exec_prefix = $(prefix) | ||
vendorhdrdir = $(rubyhdrdir)/vendor_ruby | ||
sitehdrdir = $(rubyhdrdir)/site_ruby | ||
rubyhdrdir = $(includedir)/$(RUBY_BASE_NAME)-$(ruby_version) | ||
vendordir = $(rubylibprefix)/vendor_ruby | ||
sitedir = $(rubylibprefix)/site_ruby | ||
ridir = $(datarootdir)/$(RI_BASE_NAME) | ||
mandir = $(datarootdir)/man | ||
localedir = $(datarootdir)/locale | ||
libdir = $(exec_prefix)/lib | ||
psdir = $(docdir) | ||
pdfdir = $(docdir) | ||
dvidir = $(docdir) | ||
htmldir = $(docdir) | ||
infodir = $(datarootdir)/info | ||
docdir = $(datarootdir)/doc/$(PACKAGE) | ||
oldincludedir = $(DESTDIR)/usr/include | ||
includedir = $(prefix)/include | ||
localstatedir = $(prefix)/var | ||
sharedstatedir = $(prefix)/com | ||
sysconfdir = $(prefix)/etc | ||
datadir = $(datarootdir) | ||
datarootdir = $(prefix)/share | ||
libexecdir = $(exec_prefix)/libexec | ||
sbindir = $(exec_prefix)/sbin | ||
bindir = $(exec_prefix)/bin | ||
rubylibdir = $(rubylibprefix)/$(ruby_version) | ||
archdir = $(rubylibdir)/$(arch) | ||
sitelibdir = $(sitedir)/$(ruby_version) | ||
sitearchdir = $(sitelibdir)/$(sitearch) | ||
vendorlibdir = $(vendordir)/$(ruby_version) | ||
vendorarchdir = $(vendorlibdir)/$(sitearch) | ||
|
||
NULLCMD = : | ||
|
||
CC = gcc | ||
CXX = g++ | ||
LIBRUBY = $(LIBRUBY_SO) | ||
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a | ||
LIBRUBYARG_SHARED = -Wl,-R -Wl,$(libdir) -L$(libdir) -l$(RUBY_SO_NAME) | ||
LIBRUBYARG_STATIC = -Wl,-R -Wl,$(libdir) -L$(libdir) -l$(RUBY_SO_NAME)-static | ||
empty = | ||
OUTFLAG = -o $(empty) | ||
COUTFLAG = -o $(empty) | ||
|
||
RUBY_EXTCONF_H = | ||
cflags = $(optflags) $(debugflags) $(warnflags) | ||
optflags = -O3 | ||
debugflags = -ggdb | ||
warnflags = -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration | ||
CFLAGS = -fPIC $(cflags) -fPIC $(ARCH_FLAG) | ||
INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir) | ||
DEFS = -D_FILE_OFFSET_BITS=64 | ||
CPPFLAGS = $(DEFS) $(cppflags) -I/home/pi/.rvm/usr/include | ||
CXXFLAGS = $(CFLAGS) $(cxxflags) | ||
ldflags = -L. -rdynamic -Wl,-export-dynamic -L/home/pi/.rvm/usr/lib -Wl,-R/home/pi/.rvm/usr/lib | ||
dldflags = -L/home/pi/.rvm/usr/lib -Wl,-R/home/pi/.rvm/usr/lib | ||
ARCH_FLAG = | ||
DLDFLAGS = $(ldflags) $(dldflags) $(ARCH_FLAG) | ||
LDSHARED = $(CC) -shared | ||
LDSHAREDXX = $(CXX) -shared | ||
AR = ar | ||
EXEEXT = | ||
|
||
RUBY_BASE_NAME = ruby | ||
RUBY_INSTALL_NAME = ruby | ||
RUBY_SO_NAME = ruby | ||
arch = armv6l-linux-eabi | ||
sitearch = $(arch) | ||
ruby_version = 1.9.1 | ||
ruby = /home/pi/.rvm/rubies/ruby-1.9.3-p327/bin/ruby | ||
RUBY = $(ruby) | ||
RM = rm -f | ||
RM_RF = $(RUBY) -run -e rm -- -rf | ||
RMDIRS = rmdir --ignore-fail-on-non-empty -p | ||
MAKEDIRS = /bin/mkdir -p | ||
INSTALL = /usr/bin/install -c | ||
INSTALL_PROG = $(INSTALL) -m 0755 | ||
INSTALL_DATA = $(INSTALL) -m 644 | ||
COPY = cp | ||
TOUCH = exit > | ||
|
||
#### End of system configuration section. #### | ||
|
||
preload = | ||
|
||
libpath = . $(libdir) /home/pi/.rvm/usr/lib | ||
LIBPATH = -L. -L$(libdir) -Wl,-R$(libdir) -L/home/pi/.rvm/usr/lib -Wl,-R/home/pi/.rvm/usr/lib | ||
DEFFILE = | ||
|
||
CLEANFILES = mkmf.log | ||
DISTCLEANFILES = | ||
DISTCLEANDIRS = | ||
|
||
extout = | ||
extout_prefix = | ||
target_prefix = /wiringpi | ||
LOCAL_LIBS = | ||
LIBS = $(LIBRUBYARG_SHARED) -lpthread -lrt -ldl -lcrypt -lm -lc | ||
SRCS = wiringPiSPI.c ds1302.c wiringSerial.c lcd.c piFace.c mcp23s08.c wiringPiI2C.c softServo.c piThread.c wiringShift.c mcp23017.c piHiPri.c softTone.c wiringPi.c mcp23008.c mcp23s17.c gertboard.c softPwm.c piNes.c sr595.c wiringpi_wrap.c | ||
OBJS = WiringPi/wiringPi/wiringPiSPI.o WiringPi/wiringPi/ds1302.o WiringPi/wiringPi/wiringSerial.o WiringPi/wiringPi/lcd.o WiringPi/wiringPi/piFace.o WiringPi/wiringPi/mcp23s08.o WiringPi/wiringPi/wiringPiI2C.o WiringPi/wiringPi/softServo.o WiringPi/wiringPi/piThread.o WiringPi/wiringPi/wiringShift.o WiringPi/wiringPi/mcp23017.o WiringPi/wiringPi/piHiPri.o WiringPi/wiringPi/softTone.o WiringPi/wiringPi/wiringPi.o WiringPi/wiringPi/mcp23008.o WiringPi/wiringPi/mcp23s17.o WiringPi/wiringPi/gertboard.o WiringPi/wiringPi/softPwm.o WiringPi/wiringPi/piNes.o WiringPi/wiringPi/sr595.o wiringpi_wrap.o | ||
TARGET = wiringpi | ||
DLLIB = $(TARGET).so | ||
EXTSTATIC = | ||
STATIC_LIB = | ||
|
||
BINDIR = $(bindir) | ||
RUBYCOMMONDIR = $(sitedir)$(target_prefix) | ||
RUBYLIBDIR = $(sitelibdir)$(target_prefix) | ||
RUBYARCHDIR = $(sitearchdir)$(target_prefix) | ||
HDRDIR = $(rubyhdrdir)/ruby$(target_prefix) | ||
ARCHHDRDIR = $(rubyhdrdir)/$(arch)/ruby$(target_prefix) | ||
|
||
TARGET_SO = $(DLLIB) | ||
CLEANLIBS = $(TARGET).so | ||
CLEANOBJS = *.o *.bak | ||
|
||
all: $(DLLIB) | ||
static: $(STATIC_LIB) | ||
.PHONY: all install static install-so install-rb | ||
.PHONY: clean clean-so clean-rb | ||
|
||
clean-rb-default:: | ||
clean-rb:: | ||
clean-so:: | ||
clean: clean-so clean-rb-default clean-rb | ||
@-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES) | ||
|
||
distclean-rb-default:: | ||
distclean-rb:: | ||
distclean-so:: | ||
distclean: clean distclean-so distclean-rb-default distclean-rb | ||
@-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log | ||
@-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES) | ||
@-$(RMDIRS) $(DISTCLEANDIRS) 2> /dev/null || true | ||
|
||
realclean: distclean | ||
install: install-so install-rb | ||
|
||
install-so: $(RUBYARCHDIR)/$(DLLIB) | ||
$(RUBYARCHDIR)/$(DLLIB): $(DLLIB) | ||
-$(Q)$(MAKEDIRS) $(@D) | ||
$(INSTALL_PROG) $(DLLIB) $(@D) | ||
clean-static:: | ||
-$(Q)$(RM) $(STATIC_LIB) | ||
install-rb: pre-install-rb install-rb-default | ||
install-rb-default: pre-install-rb-default | ||
pre-install-rb: Makefile | ||
pre-install-rb-default: Makefile | ||
pre-install-rb-default: | ||
$(ECHO) installing default wiringpi libraries | ||
./.RUBYARCHDIR.time: | ||
$(Q) $(MAKEDIRS) $(RUBYARCHDIR) | ||
$(Q) $(TOUCH) $@ | ||
|
||
site-install: site-install-so site-install-rb | ||
site-install-so: install-so | ||
site-install-rb: install-rb | ||
|
||
.SUFFIXES: .c .m .cc .mm .cxx .cpp .C .o | ||
|
||
.cc.o: | ||
$(ECHO) compiling $(<) | ||
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $< | ||
|
||
.mm.o: | ||
$(ECHO) compiling $(<) | ||
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $< | ||
|
||
.cxx.o: | ||
$(ECHO) compiling $(<) | ||
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $< | ||
|
||
.cpp.o: | ||
$(ECHO) compiling $(<) | ||
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $< | ||
|
||
.C.o: | ||
$(ECHO) compiling $(<) | ||
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $< | ||
|
||
.c.o: | ||
$(ECHO) compiling $(<) | ||
$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $< | ||
|
||
.m.o: | ||
$(ECHO) compiling $(<) | ||
$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $< | ||
|
||
$(DLLIB): $(OBJS) Makefile | ||
$(ECHO) linking shared-object wiringpi/$(DLLIB) | ||
-$(Q)$(RM) $(@) | ||
$(Q) $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS) | ||
|
||
|
||
|
||
$(OBJS): $(hdrdir)/ruby.h $(hdrdir)/ruby/defines.h $(arch_hdrdir)/ruby/config.h |
Submodule WiringPi
updated
59 files
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,34 +1,138 @@ | ||
%module wiringpi | ||
%module wiringpi2 | ||
|
||
%{ | ||
#include "wiringPi.h" | ||
#include "wiringShift.h" | ||
#include "wiringSerial.h" | ||
#include "WiringPi/wiringPi/ds1302.h" | ||
#include "WiringPi/wiringPi/gertboard.h" | ||
#include "WiringPi/wiringPi/lcd.h" | ||
#include "WiringPi/wiringPi/mcp23008.h" | ||
#include "WiringPi/wiringPi/mcp23017.h" | ||
#include "WiringPi/wiringPi/mcp23s08.h" | ||
#include "WiringPi/wiringPi/mcp23s17.h" | ||
#include "WiringPi/wiringPi/mcp23x0817.h" | ||
#include "WiringPi/wiringPi/mcp23x08.h" | ||
#include "WiringPi/wiringPi/piFace.h" | ||
#include "WiringPi/wiringPi/piNes.h" | ||
#include "WiringPi/wiringPi/softPwm.h" | ||
#include "WiringPi/wiringPi/softServo.h" | ||
#include "WiringPi/wiringPi/softTone.h" | ||
#include "WiringPi/wiringPi/sr595.h" | ||
#include "WiringPi/wiringPi/wiringPi.h" | ||
#include "WiringPi/wiringPi/wiringPiI2C.h" | ||
#include "WiringPi/wiringPi/wiringPiSPI.h" | ||
#include "WiringPi/wiringPi/wiringSerial.h" | ||
#include "WiringPi/wiringPi/wiringShift.h" | ||
%} | ||
|
||
%apply unsigned char { uint8_t }; | ||
|
||
extern int wiringPiSetup (void) ; | ||
extern int wiringPiSetupSys (void) ; | ||
extern int wiringPiSetupGpio (void) ; | ||
// Core wiringPi functions | ||
|
||
extern void pinMode (int pin, int mode) ; | ||
extern void pullUpDnControl (int pin, int pud) ; | ||
extern void digitalWrite (int pin, int value) ; | ||
extern void pwmWrite (int pin, int value) ; | ||
extern int digitalRead (int pin) ; | ||
extern int wiringPiSetup (void) ; | ||
extern int wiringPiSetupSys (void) ; | ||
extern int wiringPiSetupGpio (void) ; | ||
extern int wiringPiSetupPhys (void) ; | ||
|
||
extern void shiftOut (uint8_t dPin, uint8_t cPin, uint8_t order, uint8_t val); | ||
extern uint8_t shiftIn (uint8_t dPin, uint8_t cPin, uint8_t order); | ||
extern int piFaceSetup (int pinbase) ; | ||
|
||
extern void pinMode (int pin, int mode) ; | ||
extern void pullUpDnControl (int pin, int pud) ; | ||
extern int digitalRead (int pin) ; | ||
extern void digitalWrite (int pin, int value) ; | ||
extern void pwmWrite (int pin, int value) ; | ||
extern int analogRead (int pin) ; | ||
extern void analogWrite (int pin, int value) ; | ||
|
||
// Interrupts | ||
|
||
extern int (*waitForInterrupt) (int pin, int mS) ; | ||
extern int wiringPiISR (int pin, int mode, void (*function)(void)) ; | ||
|
||
// Threads | ||
|
||
extern int piThreadCreate (void *(*fn)(void *)) ; | ||
extern void piLock (int key) ; | ||
extern void piUnlock (int key) ;// Schedulling priority | ||
|
||
extern int piHiPri (int pri) ; | ||
|
||
// Extras from arduino land | ||
|
||
extern void delay (unsigned int howLong) ; | ||
extern void delayMicroseconds (unsigned int howLong) ; | ||
extern unsigned int millis (void) ; | ||
extern unsigned int micros (void) ; | ||
|
||
// WiringSerial | ||
|
||
extern int serialOpen (char *device, int baud) ; | ||
extern void serialClose (int fd) ; | ||
extern void serialPutchar (int fd, uint8_t c) ; | ||
extern void serialFlush (int fd) ; | ||
extern void serialPutchar (int fd, unsigned char c) ; | ||
extern void serialPuts (int fd, char *s) ; | ||
extern void serialPrintf (int fd, char *message, ...) ; | ||
extern int serialDataAvail (int fd) ; | ||
extern int serialGetchar (int fd) ; | ||
extern void serialPrintf (int fd, char *message, ...) ; | ||
|
||
// Shifting | ||
|
||
extern void shiftOut (uint8_t dPin, uint8_t cPin, uint8_t order, uint8_t val); | ||
extern uint8_t shiftIn (uint8_t dPin, uint8_t cPin, uint8_t order); | ||
|
||
// Spi | ||
|
||
%typemap(in) (unsigned char *data, int len) { | ||
$1 = StringValuePtr($input); | ||
$2 = strlen($1); | ||
}; | ||
|
||
int wiringPiSPIGetFd (int channel) ; | ||
int wiringPiSPIDataRW (int channel, unsigned char *data, int len) ; | ||
int wiringPiSPISetup (int channel, int speed) ; | ||
|
||
// i2c | ||
|
||
extern int wiringPiI2CSetupInterface (char *device, int devId) ; | ||
extern int wiringPiI2CSetup (int devId) ; | ||
|
||
extern int wiringPiI2CRead (int fd) ; | ||
extern int wiringPiI2CReadReg8 (int fd, int reg) ; | ||
extern int wiringPiI2CReadReg16 (int fd, int reg) ; | ||
|
||
extern int wiringPiI2CWrite (int fd, int data) ; | ||
extern int wiringPiI2CWriteReg8 (int fd, int reg, int data) ; | ||
extern int wiringPiI2CWriteReg16 (int fd, int reg, int data) ; | ||
|
||
// Soft Tone | ||
|
||
extern int softToneCreate (int pin) ; | ||
extern void softToneWrite (int pin, int frewq) ; | ||
|
||
// Soft Servo | ||
|
||
extern void softServoWrite (int pin, int value) ; | ||
extern int softServoSetup (int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7) ; | ||
|
||
// Soft PWM | ||
|
||
extern int softPwmCreate (int pin, int value, int range) ; | ||
extern void softPwmWrite (int pin, int value) ; | ||
|
||
|
||
extern int mcp23s17Setup (int pinBase, int spiPort, int devId) ; | ||
extern int mcp23017Setup (int pinBase, int i2cAddress) ; | ||
|
||
extern int mcp23s08Setup (int pinBase, int spiPort, int devId) ; | ||
extern int mcp23008Setup (int pinBase, int i2cAddress) ; | ||
|
||
extern int sr595Setup (int pinBase, int numPins, int dataPin, int clockPin, int latchPin) ; | ||
|
||
extern void lcdHome (int fd) ; | ||
extern void lcdClear (int fd) ; | ||
extern void lcdSendCommand (int fd, uint8_t command) ; | ||
extern void lcdPosition (int fd, int x, int y) ; | ||
extern void lcdPutchar (int fd, uint8_t data) ; | ||
extern void lcdPuts (int fd, char *string) ; | ||
extern void lcdPrintf (int fd, char *message, ...) ; | ||
|
||
extern int lcdInit (int rows, int cols, int bits, int rs, int strb, | ||
int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7) ; |
Oops, something went wrong.