Skip to content

Commit

Permalink
Initial commit, largely untested, highly alpha
Browse files Browse the repository at this point in the history
  • Loading branch information
Gadgetoid committed Apr 7, 2013
1 parent 9fa5d7c commit 27e89e2
Show file tree
Hide file tree
Showing 8 changed files with 2,110 additions and 425 deletions.
217 changes: 217 additions & 0 deletions ext/wiringpi/Makefile
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
2 changes: 1 addition & 1 deletion ext/wiringpi/WiringPi
Submodule WiringPi updated 59 files
+0 −2 .gitignore
+48 −0 INSTALL
+27 −0 People
+0 −7 README
+26 −0 README.TXT
+85 −0 build
+69 −11 examples/Makefile
+18 −0 examples/README.TXT
+50 −0 examples/blink.c
+30 −0 examples/blink.rtb
+37 −0 examples/blink.sh
+107 −0 examples/delayTest.c
+94 −0 examples/gertboard.c
+ examples/gertboard.png
+23 −0 examples/header.h
+118 −0 examples/isr-osc.c
+99 −0 examples/isr.c
+67 −0 examples/nes.c
+83 −0 examples/okLed.c
+21 −3 examples/piface.c
+93 −0 examples/pwm.c
+48 −0 examples/serialRead.c
+75 −0 examples/serialTest.c
+57 −0 examples/servo.c
+19 −1 examples/speed.c
+ examples/test1
+21 −1 examples/test1.c
+ examples/test2
+20 −3 examples/test2.c
+59 −0 examples/tone.c
+17 −14 examples/wfi.c
+0 −674 gpio/COPYING
+24 −17 gpio/Makefile
+163 −48 gpio/gpio.1
+521 −95 gpio/gpio.c
+21 −0 gpio/test.sh
+95 −34 wiringPi/Makefile
+3 −1 wiringPi/README
+122 −0 wiringPi/gertboard.c
+39 −0 wiringPi/gertboard.h
+16 −1 wiringPi/lcd.c
+15 −6 wiringPi/lcd.h
+113 −0 wiringPi/piNes.c
+45 −0 wiringPi/piNes.h
+130 −0 wiringPi/softPwm.c
+34 −0 wiringPi/softPwm.h
+211 −0 wiringPi/softServo.c
+35 −0 wiringPi/softServo.h
+121 −0 wiringPi/softTone.c
+38 −0 wiringPi/softTone.h
+961 −300 wiringPi/wiringPi.c
+50 −16 wiringPi/wiringPi.h
+17 −10 wiringPi/wiringPiFace.c
+122 −0 wiringPi/wiringPiI2C.c
+41 −0 wiringPi/wiringPiI2C.h
+117 −0 wiringPi/wiringPiSPI.c
+35 −0 wiringPi/wiringPiSPI.h
+25 −19 wiringPi/wiringSerial.c
+1 −0 wiringPi/wiringSerial.h
3 changes: 1 addition & 2 deletions ext/wiringpi/extconf.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,4 @@
$srcs << 'wiringpi_wrap.c'
$objs << 'wiringpi_wrap.o'

create_makefile('wiringpi/wiringpi')

create_makefile('wiringpi2/wiringpi2')
136 changes: 120 additions & 16 deletions ext/wiringpi/wiringpi.i
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) ;
Loading

0 comments on commit 27e89e2

Please sign in to comment.