madrona-rad 0.4.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Manifest.txt +1 -0
- data/README.rdoc +2 -4
- data/VERSION +1 -1
- data/bin/rad +21 -2
- data/lib/rad/arduino_sketch.rb +2 -1
- data/lib/rad/generators/makefile/better_makefile.erb +304 -0
- data/lib/rad/generators/makefile/makefile.rb +36 -6
- data/lib/rad/tasks/build_and_make.rake +13 -1
- data/madrona-rad.gemspec +147 -161
- metadata +51 -32
- data/.gitignore +0 -5
data/Manifest.txt
CHANGED
|
@@ -106,6 +106,7 @@ lib/rad/arduino_sketch.rb
|
|
|
106
106
|
lib/rad/darwin_installer.rb
|
|
107
107
|
lib/rad/generators/makefile/makefile.erb
|
|
108
108
|
lib/rad/generators/makefile/makefile.rb
|
|
109
|
+
lib/rad/generators/makefile/better_makefile.erb
|
|
109
110
|
lib/rad/hardware_library.rb
|
|
110
111
|
lib/rad/init.rb
|
|
111
112
|
lib/rad/linux_installer.rb
|
data/README.rdoc
CHANGED
|
@@ -22,15 +22,13 @@ http://github.com/atduskgreg/rad/wikis
|
|
|
22
22
|
To install the edge gem:
|
|
23
23
|
|
|
24
24
|
# Update to RubyGems 1.2.0 before proceeding!
|
|
25
|
-
$ gem sources -a http://
|
|
25
|
+
$ gem sources -a http://gemcutter.org (you only have to do this once)
|
|
26
26
|
$ sudo gem install madrona-rad
|
|
27
27
|
|
|
28
28
|
A very old and feature poor (though slightly more 'stable' RAD) is available from RubyGems:
|
|
29
29
|
|
|
30
30
|
$ sudo gem install rad
|
|
31
31
|
|
|
32
|
-
We plan to push tagged releases to RubyGems at key points. The 0.3 release should be coming up soon.
|
|
33
|
-
|
|
34
32
|
Run the rad command to create a new project:
|
|
35
33
|
|
|
36
34
|
$ rad my_project
|
|
@@ -61,4 +59,4 @@ And RAD will do its best to get the Arduino software installed on your system.
|
|
|
61
59
|
|
|
62
60
|
==Get Involved
|
|
63
61
|
|
|
64
|
-
Cheers? Jeers? Wanna help out? Contact
|
|
62
|
+
Cheers? Jeers? Wanna help out? Contact JD Barnhart: jd [at] jdbarnhart [dot] com
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.5.0
|
data/bin/rad
CHANGED
|
@@ -24,11 +24,13 @@ class OptionParser #:nodoc:
|
|
|
24
24
|
|
|
25
25
|
options = {"hardware" => {
|
|
26
26
|
"serial_port" => '/dev/tty.usbserial*',
|
|
27
|
-
"mcu" => "
|
|
27
|
+
"mcu" => "diecimila",
|
|
28
28
|
"physical_reset" => false
|
|
29
29
|
},
|
|
30
30
|
"software" => {
|
|
31
|
-
"arduino_root" => "/Applications/arduino-0015"
|
|
31
|
+
"arduino_root" => "/Applications/arduino-0015",
|
|
32
|
+
"experimental" => false,
|
|
33
|
+
"arduino_version" => 22
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
36
|
|
|
@@ -299,12 +301,29 @@ else
|
|
|
299
301
|
# atmega328 => Arduino Duemilanove w/ ATmega328
|
|
300
302
|
# mega => Arduino Mega
|
|
301
303
|
|
|
304
|
+
# and if you are running in experimental mode:
|
|
305
|
+
# uno => Arduino Uno
|
|
306
|
+
|
|
302
307
|
"
|
|
303
308
|
file << options["hardware"].to_yaml
|
|
304
309
|
end
|
|
305
310
|
puts "Added #{sketch_name}/config/hardware.yml"
|
|
306
311
|
|
|
307
312
|
File.open("#{sketch_name}/config/software.yml", 'w') do |file|
|
|
313
|
+
file << "##############################################################
|
|
314
|
+
# What's this experimental stuff?
|
|
315
|
+
# baby steps working towards support for the latest boards
|
|
316
|
+
# like duo using arduino version 22
|
|
317
|
+
#
|
|
318
|
+
# Are there drawbacks?
|
|
319
|
+
# Yes, we haven't ported over the
|
|
320
|
+
# rad libraries, so only bare-bones sketches work and it
|
|
321
|
+
# has only been tested on OS X
|
|
322
|
+
#
|
|
323
|
+
# How do I use it?
|
|
324
|
+
# flip experimental to true and make sure you have the latest arduino installed (22)
|
|
325
|
+
|
|
326
|
+
"
|
|
308
327
|
file << options["software"].to_yaml
|
|
309
328
|
end
|
|
310
329
|
puts "Added #{sketch_name}/config/software.yml"
|
data/lib/rad/arduino_sketch.rb
CHANGED
|
@@ -435,6 +435,7 @@ class ArduinoSketch
|
|
|
435
435
|
|
|
436
436
|
def compose_setup #:nodoc: also composes headers and signatures
|
|
437
437
|
|
|
438
|
+
software_params = Makefile::software_params
|
|
438
439
|
declarations = []
|
|
439
440
|
plugin_directives = []
|
|
440
441
|
signatures = []
|
|
@@ -448,7 +449,7 @@ class ArduinoSketch
|
|
|
448
449
|
declarations << comment_box( "Auto-generated by RAD" )
|
|
449
450
|
|
|
450
451
|
declarations << "#include <WProgram.h>\n"
|
|
451
|
-
declarations << "#include <SoftwareSerial.h>\n"
|
|
452
|
+
declarations << "#include <SoftwareSerial.h>\n" unless software_params['experimental'] == true
|
|
452
453
|
$load_libraries.each { |lib| declarations << "#include <#{lib}.h>" } unless $load_libraries.nil?
|
|
453
454
|
$defines.each { |d| declarations << d }
|
|
454
455
|
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2011 Alan Burlison, alan@bleaklow.com. All rights reserved.
|
|
3
|
+
# Subsequently modified by Matthieu Weber, matthieu.weber@jyu.fi.
|
|
4
|
+
# Use is subject to license terms.
|
|
5
|
+
#
|
|
6
|
+
# Redistribution and use in source and binary forms, with or without
|
|
7
|
+
# modification, are permitted provided that the following conditions are met:
|
|
8
|
+
#
|
|
9
|
+
# 1. Redistributions of source code must retain the above copyright notice,
|
|
10
|
+
# this list of conditions and the following disclaimer.
|
|
11
|
+
#
|
|
12
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
# this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
# and/or other materials provided with the distribution.
|
|
15
|
+
#
|
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY ALAN BURLISON "AS IS" AND ANY EXPRESS OR IMPLIED
|
|
17
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
18
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
|
19
|
+
# EVENT SHALL ALAN BURLISON OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
20
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
21
|
+
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
22
|
+
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
23
|
+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
24
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
25
|
+
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
26
|
+
#
|
|
27
|
+
# Minor adjustments for Mac OS X and for educational purposes by Maik Schmidt,
|
|
28
|
+
# contact@maik-schmidt.de.
|
|
29
|
+
#
|
|
30
|
+
# Makefile for building Arduino projects outside of the Arduino environment
|
|
31
|
+
#
|
|
32
|
+
# This makefile should be included into a per-project Makefile of the following
|
|
33
|
+
# form:
|
|
34
|
+
#
|
|
35
|
+
# ----------
|
|
36
|
+
# BOARD = mega
|
|
37
|
+
# PORT = /dev/term/0
|
|
38
|
+
# INC_DIRS = ../common
|
|
39
|
+
# LIB_DIRS = ../libraries/Task ../../libraries/VirtualWire
|
|
40
|
+
# include ../../Makefile.master
|
|
41
|
+
# ----------
|
|
42
|
+
#
|
|
43
|
+
# Where:
|
|
44
|
+
# BOARD : Arduino board type, from $(ARD_HOME)/hardware/boards.txt
|
|
45
|
+
# PORT : USB port
|
|
46
|
+
# INC_DIRS : List pf directories containing header files
|
|
47
|
+
# LIB_DIRS : List of directories containing library source
|
|
48
|
+
#
|
|
49
|
+
# Before using this Makefile you can adjust the following macros to suit
|
|
50
|
+
# your environment, either by editing this file directly or by defining them in
|
|
51
|
+
# the Makefile that includes this one, in which case they will override the
|
|
52
|
+
# definitions below:
|
|
53
|
+
# ARD_REV : arduino software revision, e.g. 0017, 0018
|
|
54
|
+
# ARD_HOME : installation directory of the Arduino software.
|
|
55
|
+
# ARD_BIN : location of compiler binaries
|
|
56
|
+
# AVRDUDE : location of avrdude executable
|
|
57
|
+
# AVRDUDE_CONF : location of avrdude configuration file
|
|
58
|
+
# PROGRAMMER : avrdude programmer type
|
|
59
|
+
# MON_CMD : serial monitor command
|
|
60
|
+
# MON_SPEED : serial monitor speed
|
|
61
|
+
#
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
# from makefile
|
|
65
|
+
|
|
66
|
+
# SKETCH = <%= params['target'] %>
|
|
67
|
+
ARD_REV = 0022
|
|
68
|
+
ARD_HOME = /Applications/Arduino.app/Contents/Resources/Java
|
|
69
|
+
AVR_HOME = $(ARD_HOME)/hardware/tools/avr
|
|
70
|
+
ARD_BIN = $(AVR_HOME)/bin
|
|
71
|
+
AVRDUDE = $(ARD_BIN)/avrdude
|
|
72
|
+
AVRDUDE_CONF = $(AVR_HOME)/etc/avrdude.conf
|
|
73
|
+
|
|
74
|
+
# Your favorite serial monitor.
|
|
75
|
+
MON_CMD = screen
|
|
76
|
+
MON_SPEED = 9600
|
|
77
|
+
|
|
78
|
+
# Board settings.
|
|
79
|
+
BOARD = <%= params['build.board_designation'] %>
|
|
80
|
+
PORT = <%= params['serial_port'] %>
|
|
81
|
+
PROGRAMMER = <%= params['upload.protocol'] %>
|
|
82
|
+
|
|
83
|
+
# Where to find header files and libraries.
|
|
84
|
+
INC_DIRS = ./inc
|
|
85
|
+
LIB_DIRS = $(addprefix $(ARD_HOME)/libraries/, $(LIBS))
|
|
86
|
+
LIBS =
|
|
87
|
+
|
|
88
|
+
# Global configuration.
|
|
89
|
+
ARD_REV ?= 0022
|
|
90
|
+
ARD_HOME ?= /Applications/Arduino.app/Contents/Resources/Java
|
|
91
|
+
ARD_BIN ?= /usr/local/CrossPack-AVR/bin
|
|
92
|
+
AVRDUDE ?= $(ARD_HOME)/hardware/tools/avr/bin/avrdude
|
|
93
|
+
AVRDUDE_CONF ?= $(ARD_HOME)/hardware/tools/avr/etc/avrdude.conf
|
|
94
|
+
PROGRAMMER ?= stk500v1
|
|
95
|
+
MON_SPEED ?= 57600
|
|
96
|
+
MON_CMD ?= picocom
|
|
97
|
+
PORT ?= /dev/tty.usbserial-A60061a3
|
|
98
|
+
BOARD ?= atmega328
|
|
99
|
+
|
|
100
|
+
### Nothing below here should require editing. ###
|
|
101
|
+
|
|
102
|
+
# Check for the required definitions.
|
|
103
|
+
|
|
104
|
+
ifndef BOARD
|
|
105
|
+
$(error $$(BOARD) not defined)
|
|
106
|
+
endif
|
|
107
|
+
ifndef PORT
|
|
108
|
+
$(error $$(PORT) not defined)
|
|
109
|
+
endif
|
|
110
|
+
|
|
111
|
+
# Version-specific settings
|
|
112
|
+
ARD_BOARDS = $(ARD_HOME)/hardware/arduino/boards.txt
|
|
113
|
+
ARD_SRC_DIR = $(ARD_HOME)/hardware/arduino/cores/arduino
|
|
114
|
+
ARD_MAIN = $(ARD_SRC_DIR)/main.cpp
|
|
115
|
+
|
|
116
|
+
# Standard macros.
|
|
117
|
+
# grab the pde, because it's not a directory
|
|
118
|
+
SKETCH = $(notdir $(CURDIR))
|
|
119
|
+
BUILD_DIR = buildz
|
|
120
|
+
VPATH = $(LIB_DIRS)
|
|
121
|
+
|
|
122
|
+
# Macros derived from boards.txt
|
|
123
|
+
MCU := $(shell sed -n 's/$(BOARD)\.build\.mcu=\(.*\)/\1/p' < $(ARD_BOARDS))
|
|
124
|
+
F_CPU := $(shell sed -n 's/$(BOARD)\.build\.f_cpu=\(.*\)/\1/p' < $(ARD_BOARDS))
|
|
125
|
+
UPLOAD_SPEED := \
|
|
126
|
+
$(shell sed -n 's/$(BOARD)\.upload\.speed=\(.*\)/\1/p' < $(ARD_BOARDS))
|
|
127
|
+
|
|
128
|
+
# Build tools.
|
|
129
|
+
CC = $(ARD_BIN)/avr-gcc
|
|
130
|
+
CXX = $(ARD_BIN)/avr-g++
|
|
131
|
+
CXXFILT = $(ARD_BIN)/avr-c++filt
|
|
132
|
+
OBJCOPY = $(ARD_BIN)/avr-objcopy
|
|
133
|
+
OBJDUMP = $(ARD_BIN)/avr-objdump
|
|
134
|
+
AR = $(ARD_BIN)/avr-ar
|
|
135
|
+
SIZE = $(ARD_BIN)/avr-size
|
|
136
|
+
NM = $(ARD_BIN)/avr-nm
|
|
137
|
+
MKDIR = mkdir -p
|
|
138
|
+
RM = rm -rf
|
|
139
|
+
MV = mv -f
|
|
140
|
+
LN = ln -f
|
|
141
|
+
|
|
142
|
+
# Compiler flags.
|
|
143
|
+
INC_FLAGS = \
|
|
144
|
+
$(addprefix -I,$(INC_DIRS)) $(addprefix -I,$(LIB_DIRS)) -I$(ARD_SRC_DIR)
|
|
145
|
+
ARD_FLAGS = -mmcu=$(MCU) -DF_CPU=$(F_CPU) -DARDUINO=$(ARD_REV)
|
|
146
|
+
C_CXX_FLAGS = \
|
|
147
|
+
-Wall -Wextra -Wundef -Wno-unused-parameter \
|
|
148
|
+
-fdiagnostics-show-option -g -Wa,-adhlns=$(BUILD_DIR)/$*.lst
|
|
149
|
+
C_FLAGS = \
|
|
150
|
+
$(C_CXX_FLAGS) -std=gnu99 -Wstrict-prototypes -Wno-old-style-declaration
|
|
151
|
+
CXX_FLAGS = $(C_CXX_FLAGS)
|
|
152
|
+
|
|
153
|
+
# Optimiser flags.
|
|
154
|
+
# optimise for size, unsigned by default, pack data.
|
|
155
|
+
# separate sections, drop unused ones, shorten branches, jumps.
|
|
156
|
+
# don't inline, vectorise loops. no exceptions.
|
|
157
|
+
# no os preamble, use function calls in prologues.
|
|
158
|
+
# http://gcc.gnu.org/onlinedocs/gcc-4.3.5/gcc/
|
|
159
|
+
# http://www.tty1.net/blog/2008-04-29-avr-gcc-optimisations_en.html
|
|
160
|
+
OPT_FLAGS = \
|
|
161
|
+
-Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums \
|
|
162
|
+
-ffunction-sections -fdata-sections -Wl,--gc-sections,--relax \
|
|
163
|
+
-fno-inline-small-functions -fno-tree-scev-cprop -fno-exceptions \
|
|
164
|
+
-ffreestanding -mcall-prologues
|
|
165
|
+
|
|
166
|
+
# Build parameters.
|
|
167
|
+
IMAGE = $(BUILD_DIR)/$(SKETCH)
|
|
168
|
+
ARD_C_SRC = $(wildcard $(ARD_SRC_DIR)/*.c)
|
|
169
|
+
ARD_CXX_SRC = $(wildcard $(ARD_SRC_DIR)/*.cpp)
|
|
170
|
+
ARD_C_OBJ = $(patsubst %.c,%.o,$(notdir $(ARD_C_SRC)))
|
|
171
|
+
ARD_CXX_OBJ = $(patsubst %.cpp,%.o,$(notdir $(ARD_CXX_SRC)))
|
|
172
|
+
ARD_LIB = arduino
|
|
173
|
+
ARD_AR = $(BUILD_DIR)/lib$(ARD_LIB).a
|
|
174
|
+
ARD_AR_OBJ = $(ARD_AR)($(ARD_C_OBJ) $(ARD_CXX_OBJ))
|
|
175
|
+
ARD_LD_FLAG = -l$(ARD_LIB)
|
|
176
|
+
|
|
177
|
+
# Workaround for http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34734
|
|
178
|
+
$(ARD_AR)(Tone.o) : CXX_FLAGS += -w
|
|
179
|
+
|
|
180
|
+
# Copy source and libraries to BUILD_DIR
|
|
181
|
+
# Sketch libraries.
|
|
182
|
+
LIB_C_SRC = $(foreach ld,$(LIB_DIRS),$(wildcard $(ld)/*.c))
|
|
183
|
+
LIB_CXX_SRC = $(foreach ld,$(LIB_DIRS),$(wildcard $(ld)/*.cpp))
|
|
184
|
+
LIB_SRC = $(LIB_C_SRC) $(LIB_CXX_SRC)
|
|
185
|
+
ifneq "$(strip $(LIB_C_SRC) $(LIB_CXX_SRC))" ""
|
|
186
|
+
LIB_C_OBJ = $(patsubst %.c,%.o,$(notdir $(LIB_C_SRC)))
|
|
187
|
+
LIB_CXX_OBJ = $(patsubst %.cpp,%.o,$(notdir $(LIB_CXX_SRC)))
|
|
188
|
+
LIB_LIB = library
|
|
189
|
+
LIB_AR = $(BUILD_DIR)/lib$(LIB_LIB).a
|
|
190
|
+
LIB_AR_OBJ = $(LIB_AR)($(LIB_C_OBJ) $(LIB_CXX_OBJ))
|
|
191
|
+
LIB_LD_FLAG = -l$(LIB_LIB)
|
|
192
|
+
endif
|
|
193
|
+
|
|
194
|
+
# Sketch PDE source.
|
|
195
|
+
SKT_PDE_SRC = $(wildcard *.pde)
|
|
196
|
+
# SKT_PDE_SRC_BIS = $(wildcard *.pde)
|
|
197
|
+
ifneq "$(strip $(SKT_PDE_SRC))" ""
|
|
198
|
+
SKT_PDE_OBJ = $(BUILD_DIR)/$(SKETCH)_pde.o
|
|
199
|
+
endif
|
|
200
|
+
|
|
201
|
+
# C and C++ source.
|
|
202
|
+
SKT_C_SRC = $(wildcard *.c)
|
|
203
|
+
SKT_CXX_SRC = $(wildcard *.cpp)
|
|
204
|
+
ifneq "$(strip $(SKT_C_SRC) $(SKT_CXX_SRC))" ""
|
|
205
|
+
SKT_C_OBJ = $(patsubst %.c,%.o,$(SKT_C_SRC))
|
|
206
|
+
SKT_CXX_OBJ = $(patsubst %.cpp,%.o,$(SKT_CXX_SRC))
|
|
207
|
+
SKT_LIB = sketch
|
|
208
|
+
SKT_AR = $(BUILD_DIR)/lib$(SKT_LIB).a
|
|
209
|
+
SKT_AR_OBJ = $(SKT_AR)/($(SKT_C_OBJ) $(SKT_CXX_OBJ))
|
|
210
|
+
SKT_LD_FLAG = -l$(SKT_LIB)
|
|
211
|
+
endif
|
|
212
|
+
|
|
213
|
+
# Definitions.
|
|
214
|
+
define run-cc
|
|
215
|
+
@ $(CC) $(ARD_FLAGS) $(INC_FLAGS) -M -MT '$@($%)' -MF $@_$*.dep $<
|
|
216
|
+
$(CC) -c $(C_FLAGS) $(OPT_FLAGS) $(ARD_FLAGS) $(INC_FLAGS) \
|
|
217
|
+
$< -o $(BUILD_DIR)/$%
|
|
218
|
+
@ $(AR) rc $@ $(BUILD_DIR)/$%
|
|
219
|
+
@ $(RM) $(BUILD_DIR)/$%
|
|
220
|
+
@ $(CXXFILT) < $(BUILD_DIR)/$*.lst > $(BUILD_DIR)/$*.lst.tmp
|
|
221
|
+
@ $(MV) $(BUILD_DIR)/$*.lst.tmp $(BUILD_DIR)/$*.lst
|
|
222
|
+
endef
|
|
223
|
+
|
|
224
|
+
define run-cxx
|
|
225
|
+
@ $(CXX) $(ARD_FLAGS) $(INC_FLAGS) -M -MT '$@($%)' -MF $@_$*.dep $<
|
|
226
|
+
$(CXX) -c $(CXX_FLAGS) $(OPT_FLAGS) $(ARD_FLAGS) $(INC_FLAGS) \
|
|
227
|
+
$< -o $(BUILD_DIR)/$%
|
|
228
|
+
@ $(AR) rc $@ $(BUILD_DIR)/$%
|
|
229
|
+
@ $(RM) $(BUILD_DIR)/$%
|
|
230
|
+
@ $(CXXFILT) < $(BUILD_DIR)/$*.lst > $(BUILD_DIR)/$*.lst.tmp
|
|
231
|
+
@ $(MV) $(BUILD_DIR)/$*.lst.tmp $(BUILD_DIR)/$*.lst
|
|
232
|
+
endef
|
|
233
|
+
|
|
234
|
+
# Rules.
|
|
235
|
+
.PHONY : all clean upload monitor upload_monitor
|
|
236
|
+
|
|
237
|
+
all : $(BUILD_DIR) $(IMAGE).hex
|
|
238
|
+
|
|
239
|
+
clean :
|
|
240
|
+
$(RM) $(BUILD_DIR)
|
|
241
|
+
|
|
242
|
+
$(BUILD_DIR) :
|
|
243
|
+
$(MKDIR) $@
|
|
244
|
+
|
|
245
|
+
$(SKT_PDE_OBJ) : $(SKT_PDE_SRC)
|
|
246
|
+
echo '#include <WProgram.h>' > $(BUILD_DIR)/$(SKETCH)_pde.cpp
|
|
247
|
+
echo '#include "$(SKT_PDE_SRC)"' >> $(BUILD_DIR)/$(SKETCH)_pde.cpp
|
|
248
|
+
echo '// hack notes' >> $(BUILD_DIR)/$(SKETCH)_pde.cpp
|
|
249
|
+
echo '// SKT_PDE_SRC "$(SKT_PDE_SRC)"' >> $(BUILD_DIR)/$(SKETCH)_pde.cpp
|
|
250
|
+
echo '// SKT_PDE_OBJ "$(SKT_PDE_OBJ)"' >> $(BUILD_DIR)/$(SKETCH)_pde.cpp
|
|
251
|
+
echo '// CXX "$(CXX)"' >> $(BUILD_DIR)/$(SKETCH)_pde.cpp
|
|
252
|
+
echo '// SKETCH "$(SKETCH)"' >> $(BUILD_DIR)/$(SKETCH)_pde.cpp
|
|
253
|
+
$(LN) $(SKT_PDE_SRC) $(BUILD_DIR)/$(SKT_PDE_SRC)
|
|
254
|
+
cd $(BUILD_DIR) && $(CXX) -c $(subst build/,,$(CXX_FLAGS)) \
|
|
255
|
+
$(OPT_FLAGS) $(ARD_FLAGS) -I.. \
|
|
256
|
+
$(patsubst -I..%,-I../..%,$(INC_FLAGS)) \
|
|
257
|
+
$(SKETCH)_pde.cpp -o $(@F)
|
|
258
|
+
|
|
259
|
+
(%.o) : $(ARD_SRC_DIR)/%.c
|
|
260
|
+
$(run-cc)
|
|
261
|
+
|
|
262
|
+
(%.o) : $(ARD_SRC_DIR)/%.cpp
|
|
263
|
+
$(run-cxx)
|
|
264
|
+
|
|
265
|
+
(%.o) : %.c
|
|
266
|
+
$(run-cc)
|
|
267
|
+
|
|
268
|
+
(%.o) : %.cpp
|
|
269
|
+
$(run-cxx)
|
|
270
|
+
|
|
271
|
+
$(BUILD_DIR)/%.d : %.c
|
|
272
|
+
$(run-cc-d)
|
|
273
|
+
|
|
274
|
+
$(BUILD_DIR)/%.d : %.cpp
|
|
275
|
+
$(run-cxx-d)
|
|
276
|
+
|
|
277
|
+
$(IMAGE).hex : $(ARD_AR_OBJ) $(LIB_AR_OBJ) $(SKT_AR_OBJ) $(SKT_PDE_OBJ)
|
|
278
|
+
$(CC) $(CXX_FLAGS) $(OPT_FLAGS) $(ARD_FLAGS) -L$(BUILD_DIR) \
|
|
279
|
+
$(SKT_PDE_OBJ) $(SKT_LD_FLAG) $(LIB_LD_FLAG) $(ARD_LD_FLAG) -lm \
|
|
280
|
+
-o $(IMAGE).elf
|
|
281
|
+
$(OBJCOPY) -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load \
|
|
282
|
+
--no-change-warnings --change-section-lma .eeprom=0 $(IMAGE).elf \
|
|
283
|
+
$(IMAGE).eep
|
|
284
|
+
$(OBJCOPY) -O ihex -R .eeprom $(IMAGE).elf $(IMAGE).hex
|
|
285
|
+
$(OBJDUMP) -h -S $(IMAGE).elf | $(CXXFILT) -t > $(IMAGE).lst
|
|
286
|
+
$(SIZE) $(IMAGE).hex
|
|
287
|
+
|
|
288
|
+
# START:makemods
|
|
289
|
+
upload : all
|
|
290
|
+
- pkill -f '$(MON_CMD).*$(PORT)'
|
|
291
|
+
- sleep 1
|
|
292
|
+
- stty -f $(PORT) hupcl
|
|
293
|
+
- $(AVRDUDE) -V -C$(AVRDUDE_CONF) -p$(MCU) -c$(PROGRAMMER) \
|
|
294
|
+
-P$(PORT) -b$(UPLOAD_SPEED) -D -Uflash:w:$(IMAGE).hex:i
|
|
295
|
+
|
|
296
|
+
monitor :
|
|
297
|
+
$(MON_CMD) $(PORT) $(MON_SPEED)
|
|
298
|
+
# END:makemods
|
|
299
|
+
|
|
300
|
+
upload_monitor : upload monitor
|
|
301
|
+
|
|
302
|
+
-include $(wildcard $(BUILD_DIR)/*.dep))
|
|
303
|
+
|
|
304
|
+
# vim:ft=make
|
|
@@ -7,7 +7,17 @@ class Makefile
|
|
|
7
7
|
# build the sketch Makefile for the given template based on the values in its software and hardware config files
|
|
8
8
|
def compose_for_sketch(build_dir)
|
|
9
9
|
params = hardware_params.merge software_params
|
|
10
|
-
|
|
10
|
+
params['serial_port'] = serial_port if params['serial_port'] == "/dev/tty.usbserial*"
|
|
11
|
+
if @software_params['experimental'] == true
|
|
12
|
+
@experimental_mode = true
|
|
13
|
+
puts "#################################### running in experimental mode"
|
|
14
|
+
if @software_params['arduino_root'] == "/Applications/arduino-0015"
|
|
15
|
+
@software_params['arduino_root'] = "/Applications/Arduino.app/Contents/Resources/Java"
|
|
16
|
+
end
|
|
17
|
+
board_config = board_configuration(@software_params['arduino_root'], @hardware_params['mcu'], "/arduino")
|
|
18
|
+
else
|
|
19
|
+
board_config = board_configuration(@software_params['arduino_root'], @hardware_params['mcu'], "")
|
|
20
|
+
end
|
|
11
21
|
params = params.merge board_config
|
|
12
22
|
params['target'] = build_dir.split("/").last
|
|
13
23
|
|
|
@@ -19,7 +29,7 @@ class Makefile
|
|
|
19
29
|
|
|
20
30
|
params['asm_files'] = Dir.entries( File.expand_path(RAD_ROOT) + "/" + PROJECT_DIR_NAME ).select{|e| e =~ /\.S/}
|
|
21
31
|
|
|
22
|
-
e = ERB.new File.read("#{File.dirname(__FILE__)}
|
|
32
|
+
e = ERB.new File.read("#{File.dirname(__FILE__)}/#{"better_" if @experimental_mode == true}makefile.erb")
|
|
23
33
|
|
|
24
34
|
File.open("#{build_dir}/Makefile", "w") do |f|
|
|
25
35
|
f << e.result(binding)
|
|
@@ -36,15 +46,35 @@ class Makefile
|
|
|
36
46
|
return @software_params = YAML.load_file( "#{RAD_ROOT}/config/software.yml" )
|
|
37
47
|
end
|
|
38
48
|
|
|
49
|
+
def serial_port
|
|
50
|
+
usb = Dir.glob("/dev/tty.usbserial*")
|
|
51
|
+
if usb.empty?
|
|
52
|
+
usb = Dir.glob("/dev/tty.usbmodem*") #uno shows up as usbmodem on OS X...
|
|
53
|
+
end
|
|
54
|
+
puts "#################################### serial port: #{usb}"
|
|
55
|
+
usb
|
|
56
|
+
end
|
|
57
|
+
|
|
39
58
|
## match the mcu with the proper board configuration from the arduino board.txt file
|
|
40
|
-
def board_configuration(arduino_root, board_name)
|
|
59
|
+
def board_configuration(arduino_root, board_name, path_mod)
|
|
41
60
|
board_configuration = {}
|
|
42
|
-
|
|
61
|
+
board_type = {}
|
|
62
|
+
puts "#################################### checking boards.txt at: #{arduino_root}/hardware#{path_mod}/boards.txt for: #{board_name}"
|
|
63
|
+
File.open("#{arduino_root}/hardware#{path_mod}/boards.txt", "r") do |infile|
|
|
43
64
|
infile.each_line do |line|
|
|
44
|
-
|
|
45
|
-
|
|
65
|
+
next unless line.chomp =~ /^#{board_name}\.([^=]*)=(.*)$/
|
|
66
|
+
# next unless line.chomp =~ /^(#{board_name})\.name/
|
|
67
|
+
board_configuration[$1] = $2
|
|
68
|
+
# board_configuration = $1
|
|
46
69
|
end
|
|
47
70
|
end
|
|
71
|
+
board_type['build.board_designation'] = board_name
|
|
72
|
+
if board_configuration.empty?
|
|
73
|
+
raise "#################################### no board configuration found for : #{board_name} check your hardware configuration -- type rake arduino:boards"
|
|
74
|
+
else
|
|
75
|
+
puts "#################################### board_configuration (per boards.txt): #{board_configuration.inspect}"
|
|
76
|
+
end
|
|
77
|
+
board_configuration = board_configuration.merge board_type
|
|
48
78
|
board_configuration
|
|
49
79
|
end
|
|
50
80
|
|
|
@@ -37,6 +37,18 @@ namespace :test do
|
|
|
37
37
|
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
+
namespace :arduino do
|
|
41
|
+
|
|
42
|
+
desc "list all supported boards in the current arduino version (currently hardwired for OS X to get this up and running)"
|
|
43
|
+
task :boards do
|
|
44
|
+
File.open("/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/boards.txt", "r") do |f1|
|
|
45
|
+
while line = f1.gets
|
|
46
|
+
puts line
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
40
52
|
|
|
41
53
|
namespace :make do
|
|
42
54
|
|
|
@@ -73,7 +85,7 @@ namespace :make do
|
|
|
73
85
|
|
|
74
86
|
task :clean_sketch_dir => ["build:file_list", "build:sketch_dir"] do
|
|
75
87
|
FileList.new(Dir.entries("#{@sketch.build_dir}")).exclude("#{@sketch.name}.cpp").exclude(/^\./).each do |f|
|
|
76
|
-
sh %{rm #{@sketch.build_dir}/#{f}}
|
|
88
|
+
sh %{rm -rf #{@sketch.build_dir}/#{f}}
|
|
77
89
|
end
|
|
78
90
|
end
|
|
79
91
|
|
data/madrona-rad.gemspec
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# Generated by jeweler
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{madrona-rad}
|
|
8
|
-
s.version = "0.
|
|
8
|
+
s.version = "0.5.0"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["JD Barnhart", "Greg Borenstein"]
|
|
12
|
-
s.date = %q{
|
|
12
|
+
s.date = %q{2011-07-04}
|
|
13
13
|
s.default_executable = %q{rad}
|
|
14
14
|
s.description = %q{Ruby Arduino Development: a framework for programming the Arduino physcial computing platform using Ruby}
|
|
15
15
|
s.email = %q{jd@jdbarnhart.com}
|
|
@@ -18,173 +18,159 @@ Gem::Specification.new do |s|
|
|
|
18
18
|
"README.rdoc"
|
|
19
19
|
]
|
|
20
20
|
s.files = [
|
|
21
|
-
".
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
21
|
+
"History.txt",
|
|
22
|
+
"License.txt",
|
|
23
|
+
"Manifest.txt",
|
|
24
|
+
"README.rdoc",
|
|
25
|
+
"Rakefile",
|
|
26
|
+
"VERSION",
|
|
27
|
+
"bin/rad",
|
|
28
|
+
"lib/examples/add_hysteresis.rb",
|
|
29
|
+
"lib/examples/basic_blink.rb",
|
|
30
|
+
"lib/examples/blink_m_address_assignment.rb",
|
|
31
|
+
"lib/examples/blink_m_hello.rb",
|
|
32
|
+
"lib/examples/blink_m_multi.rb",
|
|
33
|
+
"lib/examples/blink_with_serial.rb",
|
|
34
|
+
"lib/examples/configure_pa_lcd_boot.rb",
|
|
35
|
+
"lib/examples/debounce_methods.rb",
|
|
36
|
+
"lib/examples/external_variable_fu.rb",
|
|
37
|
+
"lib/examples/external_variables.rb",
|
|
38
|
+
"lib/examples/first_sound.rb",
|
|
39
|
+
"lib/examples/frequency_generator.rb",
|
|
40
|
+
"lib/examples/hello_array.rb",
|
|
41
|
+
"lib/examples/hello_array2.rb",
|
|
42
|
+
"lib/examples/hello_array_eeprom.rb",
|
|
43
|
+
"lib/examples/hello_clock.rb",
|
|
44
|
+
"lib/examples/hello_eeprom.rb",
|
|
45
|
+
"lib/examples/hello_eeprom_lcdpa.rb",
|
|
46
|
+
"lib/examples/hello_format_print.rb",
|
|
47
|
+
"lib/examples/hello_lcd_charset.rb",
|
|
48
|
+
"lib/examples/hello_maxbotix.rb",
|
|
49
|
+
"lib/examples/hello_pa_lcd.rb",
|
|
50
|
+
"lib/examples/hello_servos.rb",
|
|
51
|
+
"lib/examples/hello_spectra_sound.rb",
|
|
52
|
+
"lib/examples/hello_world.rb",
|
|
53
|
+
"lib/examples/hello_xbee.rb",
|
|
54
|
+
"lib/examples/hysteresis_duel.rb",
|
|
55
|
+
"lib/examples/i2c_with_clock_chip.rb",
|
|
56
|
+
"lib/examples/midi_beat_box.rb",
|
|
57
|
+
"lib/examples/midi_scales.rb",
|
|
58
|
+
"lib/examples/motor_knob.rb",
|
|
59
|
+
"lib/examples/servo_buttons.rb",
|
|
60
|
+
"lib/examples/servo_calibrate_continuous.rb",
|
|
61
|
+
"lib/examples/servo_throttle.rb",
|
|
62
|
+
"lib/examples/software_serial.rb",
|
|
63
|
+
"lib/examples/sparkfun_lcd.rb",
|
|
64
|
+
"lib/examples/spectra_soft_pot.rb",
|
|
65
|
+
"lib/examples/times_method.rb",
|
|
66
|
+
"lib/examples/toggle.rb",
|
|
67
|
+
"lib/examples/twitter.rb",
|
|
68
|
+
"lib/examples/two_wire.rb",
|
|
69
|
+
"lib/libraries/AFSoftSerial/AFSoftSerial.cpp",
|
|
70
|
+
"lib/libraries/AFSoftSerial/AFSoftSerial.h",
|
|
71
|
+
"lib/libraries/AFSoftSerial/keywords.txt",
|
|
72
|
+
"lib/libraries/AF_XPort/AF_XPort.cpp",
|
|
73
|
+
"lib/libraries/AF_XPort/AF_XPort.h",
|
|
74
|
+
"lib/libraries/DS1307/DS1307.cpp",
|
|
75
|
+
"lib/libraries/DS1307/DS1307.h",
|
|
76
|
+
"lib/libraries/DS1307/keywords.txt",
|
|
77
|
+
"lib/libraries/FrequencyTimer2/FrequencyTimer2.cpp",
|
|
78
|
+
"lib/libraries/FrequencyTimer2/FrequencyTimer2.h",
|
|
79
|
+
"lib/libraries/FrequencyTimer2/keywords.txt",
|
|
80
|
+
"lib/libraries/I2CEEPROM/I2CEEPROM.cpp",
|
|
81
|
+
"lib/libraries/I2CEEPROM/I2CEEPROM.h",
|
|
82
|
+
"lib/libraries/I2CEEPROM/keywords.txt",
|
|
83
|
+
"lib/libraries/LoopTimer/LoopTimer.cpp",
|
|
84
|
+
"lib/libraries/LoopTimer/LoopTimer.h",
|
|
85
|
+
"lib/libraries/LoopTimer/keywords.txt",
|
|
86
|
+
"lib/libraries/OneWire/OneWire.cpp",
|
|
87
|
+
"lib/libraries/OneWire/OneWire.h",
|
|
88
|
+
"lib/libraries/OneWire/keywords.txt",
|
|
89
|
+
"lib/libraries/OneWire/readme.txt",
|
|
90
|
+
"lib/libraries/SWSerLCDpa/SWSerLCDpa.cpp",
|
|
91
|
+
"lib/libraries/SWSerLCDpa/SWSerLCDpa.h",
|
|
92
|
+
"lib/libraries/SWSerLCDsf/SWSerLCDsf.cpp",
|
|
93
|
+
"lib/libraries/SWSerLCDsf/SWSerLCDsf.h",
|
|
94
|
+
"lib/libraries/Servo/Servo.cpp",
|
|
95
|
+
"lib/libraries/Servo/Servo.h",
|
|
96
|
+
"lib/libraries/Stepper/Stepper.cpp",
|
|
97
|
+
"lib/libraries/Stepper/Stepper.h",
|
|
98
|
+
"lib/libraries/Stepper/keywords.txt",
|
|
99
|
+
"lib/libraries/Wire/Wire.cpp",
|
|
100
|
+
"lib/libraries/Wire/Wire.h",
|
|
101
|
+
"lib/libraries/Wire/keywords.txt",
|
|
102
|
+
"lib/libraries/Wire/twi.h",
|
|
103
|
+
"lib/libraries/Wire/utility/twi.c",
|
|
104
|
+
"lib/libraries/Wire/utility/twi.h",
|
|
105
|
+
"lib/plugins/basics.rb",
|
|
106
|
+
"lib/plugins/bitwise_ops.rb",
|
|
107
|
+
"lib/plugins/blink.rb",
|
|
108
|
+
"lib/plugins/blink_m.rb",
|
|
109
|
+
"lib/plugins/debounce.rb",
|
|
110
|
+
"lib/plugins/debug_output_to_lcd.rb",
|
|
111
|
+
"lib/plugins/hysteresis.rb",
|
|
112
|
+
"lib/plugins/input_output_state.rb",
|
|
113
|
+
"lib/plugins/lcd_padding.rb",
|
|
114
|
+
"lib/plugins/mem_test.rb",
|
|
115
|
+
"lib/plugins/midi.rb",
|
|
116
|
+
"lib/plugins/parallax_ping.rb",
|
|
117
|
+
"lib/plugins/servo_pulse.rb",
|
|
118
|
+
"lib/plugins/servo_setup.rb",
|
|
119
|
+
"lib/plugins/smoother.rb",
|
|
120
|
+
"lib/plugins/spark_fun_serial_lcd.rb",
|
|
121
|
+
"lib/plugins/spectra_symbol.rb",
|
|
122
|
+
"lib/plugins/twitter_connect.rb",
|
|
123
|
+
"lib/rad.rb",
|
|
124
|
+
"lib/rad/README.rdoc",
|
|
125
|
+
"lib/rad/antiquated_todo.txt",
|
|
126
|
+
"lib/rad/arduino_plugin.rb",
|
|
127
|
+
"lib/rad/arduino_sketch.rb",
|
|
128
|
+
"lib/rad/darwin_installer.rb",
|
|
129
|
+
"lib/rad/generators/makefile/better_makefile.erb",
|
|
130
|
+
"lib/rad/generators/makefile/makefile.erb",
|
|
131
|
+
"lib/rad/generators/makefile/makefile.rb",
|
|
132
|
+
"lib/rad/hardware_library.rb",
|
|
133
|
+
"lib/rad/init.rb",
|
|
134
|
+
"lib/rad/linux_installer.rb",
|
|
135
|
+
"lib/rad/progressbar.rb",
|
|
136
|
+
"lib/rad/rad_processor.rb",
|
|
137
|
+
"lib/rad/rad_rewriter.rb",
|
|
138
|
+
"lib/rad/rad_type_checker.rb",
|
|
139
|
+
"lib/rad/sim/arduino_sketch.rb",
|
|
140
|
+
"lib/rad/sketch_compiler.rb",
|
|
141
|
+
"lib/rad/tasks/build_and_make.rake",
|
|
142
|
+
"lib/rad/tasks/rad.rb",
|
|
143
|
+
"lib/rad/todo.txt",
|
|
144
|
+
"lib/rad/variable_processing.rb",
|
|
145
|
+
"lib/rad/version.rb",
|
|
146
|
+
"madrona-rad.gemspec",
|
|
147
|
+
"project_dev.rake",
|
|
148
|
+
"setup.rb",
|
|
149
|
+
"spec/examples/hello_world.rb",
|
|
150
|
+
"spec/examples/serial_motor.rb",
|
|
151
|
+
"spec/models/arduino_sketch_spec.rb",
|
|
152
|
+
"spec/models/sketch_compiler_spec.rb",
|
|
153
|
+
"spec/models/spec_helper.rb",
|
|
154
|
+
"spec/sim/hello_world_spec.rb",
|
|
155
|
+
"spec/spec.opts",
|
|
156
|
+
"test/fixture.rb",
|
|
157
|
+
"test/hello_world_test/Makefile",
|
|
158
|
+
"test/hello_world_test/hello_world.cpp",
|
|
159
|
+
"test/test_array_processing.rb",
|
|
160
|
+
"test/test_plugin_loading.rb",
|
|
161
|
+
"test/test_translation_post_processing.rb",
|
|
162
|
+
"test/test_variable_processing.rb"
|
|
163
163
|
]
|
|
164
164
|
s.homepage = %q{http://github.com/madrona/madrona-rad}
|
|
165
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
|
166
165
|
s.require_paths = ["lib"]
|
|
167
|
-
s.rubygems_version = %q{1.3.
|
|
166
|
+
s.rubygems_version = %q{1.3.7}
|
|
168
167
|
s.summary = %q{RAD: Ruby Arduino Development - 0.4.1 -- 1.9 Ready!}
|
|
169
|
-
s.test_files = [
|
|
170
|
-
"spec/examples/hello_world.rb",
|
|
171
|
-
"spec/examples/serial_motor.rb",
|
|
172
|
-
"spec/models/arduino_sketch_spec.rb",
|
|
173
|
-
"spec/models/sketch_compiler_spec.rb",
|
|
174
|
-
"spec/models/spec_helper.rb",
|
|
175
|
-
"spec/sim/hello_world_spec.rb",
|
|
176
|
-
"test/fixture.rb",
|
|
177
|
-
"test/test_array_processing.rb",
|
|
178
|
-
"test/test_plugin_loading.rb",
|
|
179
|
-
"test/test_translation_post_processing.rb",
|
|
180
|
-
"test/test_variable_processing.rb"
|
|
181
|
-
]
|
|
182
168
|
|
|
183
169
|
if s.respond_to? :specification_version then
|
|
184
170
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
185
171
|
s.specification_version = 3
|
|
186
172
|
|
|
187
|
-
if Gem::Version.new(Gem::
|
|
173
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
188
174
|
s.add_runtime_dependency(%q<ruby2c>, [">= 1.0.0.7"])
|
|
189
175
|
s.add_runtime_dependency(%q<sexp_processor>, [">= 3.0.2"])
|
|
190
176
|
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
metadata
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: madrona-rad
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
4
|
+
hash: 11
|
|
5
|
+
prerelease: false
|
|
6
|
+
segments:
|
|
7
|
+
- 0
|
|
8
|
+
- 5
|
|
9
|
+
- 0
|
|
10
|
+
version: 0.5.0
|
|
5
11
|
platform: ruby
|
|
6
12
|
authors:
|
|
7
13
|
- JD Barnhart
|
|
@@ -10,39 +16,56 @@ autorequire:
|
|
|
10
16
|
bindir: bin
|
|
11
17
|
cert_chain: []
|
|
12
18
|
|
|
13
|
-
date:
|
|
19
|
+
date: 2011-07-04 00:00:00 -07:00
|
|
14
20
|
default_executable: rad
|
|
15
21
|
dependencies:
|
|
16
22
|
- !ruby/object:Gem::Dependency
|
|
17
23
|
name: ruby2c
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
prerelease: false
|
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
26
|
+
none: false
|
|
21
27
|
requirements:
|
|
22
28
|
- - ">="
|
|
23
29
|
- !ruby/object:Gem::Version
|
|
30
|
+
hash: 81
|
|
31
|
+
segments:
|
|
32
|
+
- 1
|
|
33
|
+
- 0
|
|
34
|
+
- 0
|
|
35
|
+
- 7
|
|
24
36
|
version: 1.0.0.7
|
|
25
|
-
|
|
37
|
+
type: :runtime
|
|
38
|
+
version_requirements: *id001
|
|
26
39
|
- !ruby/object:Gem::Dependency
|
|
27
40
|
name: sexp_processor
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
41
|
+
prerelease: false
|
|
42
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
43
|
+
none: false
|
|
31
44
|
requirements:
|
|
32
45
|
- - ">="
|
|
33
46
|
- !ruby/object:Gem::Version
|
|
47
|
+
hash: 3
|
|
48
|
+
segments:
|
|
49
|
+
- 3
|
|
50
|
+
- 0
|
|
51
|
+
- 2
|
|
34
52
|
version: 3.0.2
|
|
35
|
-
|
|
53
|
+
type: :runtime
|
|
54
|
+
version_requirements: *id002
|
|
36
55
|
- !ruby/object:Gem::Dependency
|
|
37
56
|
name: thoughtbot-shoulda
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
57
|
+
prerelease: false
|
|
58
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
59
|
+
none: false
|
|
41
60
|
requirements:
|
|
42
61
|
- - ">="
|
|
43
62
|
- !ruby/object:Gem::Version
|
|
63
|
+
hash: 3
|
|
64
|
+
segments:
|
|
65
|
+
- 0
|
|
44
66
|
version: "0"
|
|
45
|
-
|
|
67
|
+
type: :development
|
|
68
|
+
version_requirements: *id003
|
|
46
69
|
description: "Ruby Arduino Development: a framework for programming the Arduino physcial computing platform using Ruby"
|
|
47
70
|
email: jd@jdbarnhart.com
|
|
48
71
|
executables:
|
|
@@ -52,7 +75,6 @@ extensions: []
|
|
|
52
75
|
extra_rdoc_files:
|
|
53
76
|
- README.rdoc
|
|
54
77
|
files:
|
|
55
|
-
- .gitignore
|
|
56
78
|
- History.txt
|
|
57
79
|
- License.txt
|
|
58
80
|
- Manifest.txt
|
|
@@ -161,6 +183,7 @@ files:
|
|
|
161
183
|
- lib/rad/arduino_plugin.rb
|
|
162
184
|
- lib/rad/arduino_sketch.rb
|
|
163
185
|
- lib/rad/darwin_installer.rb
|
|
186
|
+
- lib/rad/generators/makefile/better_makefile.erb
|
|
164
187
|
- lib/rad/generators/makefile/makefile.erb
|
|
165
188
|
- lib/rad/generators/makefile/makefile.rb
|
|
166
189
|
- lib/rad/hardware_library.rb
|
|
@@ -199,38 +222,34 @@ homepage: http://github.com/madrona/madrona-rad
|
|
|
199
222
|
licenses: []
|
|
200
223
|
|
|
201
224
|
post_install_message:
|
|
202
|
-
rdoc_options:
|
|
203
|
-
|
|
225
|
+
rdoc_options: []
|
|
226
|
+
|
|
204
227
|
require_paths:
|
|
205
228
|
- lib
|
|
206
229
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
230
|
+
none: false
|
|
207
231
|
requirements:
|
|
208
232
|
- - ">="
|
|
209
233
|
- !ruby/object:Gem::Version
|
|
234
|
+
hash: 3
|
|
235
|
+
segments:
|
|
236
|
+
- 0
|
|
210
237
|
version: "0"
|
|
211
|
-
version:
|
|
212
238
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
239
|
+
none: false
|
|
213
240
|
requirements:
|
|
214
241
|
- - ">="
|
|
215
242
|
- !ruby/object:Gem::Version
|
|
243
|
+
hash: 3
|
|
244
|
+
segments:
|
|
245
|
+
- 0
|
|
216
246
|
version: "0"
|
|
217
|
-
version:
|
|
218
247
|
requirements: []
|
|
219
248
|
|
|
220
249
|
rubyforge_project:
|
|
221
|
-
rubygems_version: 1.3.
|
|
250
|
+
rubygems_version: 1.3.7
|
|
222
251
|
signing_key:
|
|
223
252
|
specification_version: 3
|
|
224
253
|
summary: "RAD: Ruby Arduino Development - 0.4.1 -- 1.9 Ready!"
|
|
225
|
-
test_files:
|
|
226
|
-
|
|
227
|
-
- spec/examples/serial_motor.rb
|
|
228
|
-
- spec/models/arduino_sketch_spec.rb
|
|
229
|
-
- spec/models/sketch_compiler_spec.rb
|
|
230
|
-
- spec/models/spec_helper.rb
|
|
231
|
-
- spec/sim/hello_world_spec.rb
|
|
232
|
-
- test/fixture.rb
|
|
233
|
-
- test/test_array_processing.rb
|
|
234
|
-
- test/test_plugin_loading.rb
|
|
235
|
-
- test/test_translation_post_processing.rb
|
|
236
|
-
- test/test_variable_processing.rb
|
|
254
|
+
test_files: []
|
|
255
|
+
|