o add gnususb as reference bootloader
o refactor boot loader cpde o
This commit is contained in:
BIN
tools/gnusb/maxmsp/Contents/MacOS/libusb.dylib
Normal file
BIN
tools/gnusb/maxmsp/Contents/MacOS/libusb.dylib
Normal file
Binary file not shown.
24
tools/gnusb/maxmsp/Info.plist
Normal file
24
tools/gnusb/maxmsp/Info.plist
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>gnusb</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>ch.anyma.gnusb</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>iLaX</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
3
tools/gnusb/maxmsp/Makefile
Normal file
3
tools/gnusb/maxmsp/Makefile
Normal file
@@ -0,0 +1,3 @@
|
||||
all:
|
||||
/usr/bin/xcodebuild -project gnusb.xcodeproj
|
||||
# cp -f -r build/Default/gnusb.mxo /Applications/MaxMSP\ 4.5/
|
||||
509
tools/gnusb/maxmsp/gnusb.c
Normal file
509
tools/gnusb/maxmsp/gnusb.c
Normal file
@@ -0,0 +1,509 @@
|
||||
// ==============================================================================
|
||||
// gnusb.c
|
||||
//
|
||||
// Max-Interface to the [ a n y m a | gnusb - Open Source USB Sensor Box ]
|
||||
//
|
||||
// Authors: Michael Egger
|
||||
// Copyright: 2007 [ a n y m a ]
|
||||
// Website: www.anyma.ch
|
||||
//
|
||||
// License: GNU GPL 2.0 www.gnu.org
|
||||
//
|
||||
// Version: 2007-11-12
|
||||
// ==============================================================================
|
||||
|
||||
|
||||
|
||||
#include "ext.h" // you must include this - it contains the external object's link to available Max functions
|
||||
#include "ext_common.h"
|
||||
|
||||
#include "../common/gnusb_cmds.h" // codes used between gnusb client and host software, eg. between the max external and the gnusb firmware
|
||||
#include </usr/local/include/usb.h> // this is libusb, see http://libusb.sourceforge.net/ */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
// ==============================================================================
|
||||
// Constants
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
#define USBDEV_SHARED_VENDOR 0x16C0 /* VOTI */
|
||||
#define USBDEV_SHARED_PRODUCT 0x05DC /* Obdev's free shared PID */
|
||||
#define OUTLETS 10
|
||||
#define DEFAULT_CLOCK_INTERVAL 40 // default interval for polling the gnusb: 40ms
|
||||
|
||||
// ==============================================================================
|
||||
// Our External's Memory structure
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
typedef struct _gnusb // defines our object's internal variables for each instance in a patch
|
||||
{
|
||||
t_object p_ob; // object header - ALL max external MUST begin with this...
|
||||
usb_dev_handle *dev_handle; // handle to the gnusb usb device
|
||||
void *m_clock; // handle to our clock
|
||||
double m_interval; // clock interval for polling the gnusb
|
||||
double m_interval_bak; // backup clock interval for polling the gnusb
|
||||
int is_running; // is our clock ticking?
|
||||
int do_10_bit; // output analog values with 8bit or 10bit resolution?
|
||||
int debug_flag;
|
||||
void *outlets[OUTLETS]; // handle to the objects outlets
|
||||
int values[10]; // stored values from last poll
|
||||
} t_gnusb;
|
||||
|
||||
void *gnusb_class; // global pointer to the object class - so max can reference the object
|
||||
|
||||
|
||||
// ==============================================================================
|
||||
// Function Prototypes
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
void *gnusb_new(t_symbol *s);
|
||||
void gnusb_assist(t_gnusb *x, void *b, long m, long a, char *s);
|
||||
void gnusb_bang(t_gnusb *x);
|
||||
void gnusb_close(t_gnusb *x);
|
||||
void gnusb_debug(t_gnusb *x, long n);
|
||||
void gnusb_int(t_gnusb *x,long n);
|
||||
void gnusb_output(t_gnusb *x, t_symbol *s, long n);
|
||||
void gnusb_input(t_gnusb *x, t_symbol *s);
|
||||
void gnusb_precision(t_gnusb *x, t_symbol *s);
|
||||
void gnusb_open(t_gnusb *x);
|
||||
void gnusb_poll(t_gnusb *x, long n);
|
||||
void gnusb_smooth(t_gnusb *x, long n);
|
||||
void gnusb_start(t_gnusb *x);
|
||||
void gnusb_stop(t_gnusb *x);
|
||||
|
||||
// functions used to find the USB device
|
||||
static int usbGetStringAscii(usb_dev_handle *dev, int index, int langid, char *buf, int buflen);
|
||||
void find_device(t_gnusb *x);
|
||||
|
||||
|
||||
|
||||
// ==============================================================================
|
||||
// Implementation
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Message: output -> output a byte on port B or C
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_output(t_gnusb *x, t_symbol *s, long n)
|
||||
{
|
||||
int cmd;
|
||||
int nBytes;
|
||||
unsigned char buffer[8];
|
||||
|
||||
cmd = 0;
|
||||
if (s == gensym("b")) cmd = GNUSB_CMD_SET_PORTB;
|
||||
else if (s == gensym("c")) cmd = GNUSB_CMD_SET_PORTC;
|
||||
else {
|
||||
post ("gnusb: unknown port\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (n < 0) n = 0;
|
||||
if (n > 255) n = 255;
|
||||
|
||||
if (!(x->dev_handle)) find_device(x);
|
||||
else {
|
||||
nBytes = usb_control_msg(x->dev_handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
|
||||
cmd, n, 0, (char *)buffer, sizeof(buffer), 10);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Message: input -> sets port to be an input
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_input(t_gnusb *x, t_symbol *s)
|
||||
{
|
||||
int cmd;
|
||||
int nBytes;
|
||||
unsigned char buffer[8];
|
||||
|
||||
cmd = 0;
|
||||
if (s == gensym("b")) cmd = GNUSB_CMD_INPUT_PORTB;
|
||||
else if (s == gensym("c")) cmd = GNUSB_CMD_INPUT_PORTC;
|
||||
else {
|
||||
post ("gnusb: unknown port\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(x->dev_handle)) find_device(x);
|
||||
else {
|
||||
nBytes = usb_control_msg(x->dev_handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
|
||||
cmd, 0, 0, (char *)buffer, sizeof(buffer), 10);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Message: precision -> 8 or 10 bit
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_precision(t_gnusb *x, t_symbol *s)
|
||||
{
|
||||
if (s == gensym("10bit")) x->do_10_bit = 1;
|
||||
else x->do_10_bit = 0;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Message: debug
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_debug(t_gnusb *x, long n) // x = the instance of the object; n = the int received in the left inlet
|
||||
{
|
||||
if (n) x->debug_flag = 1;
|
||||
else x->debug_flag = 0;
|
||||
}
|
||||
//--------------------------------------------------------------------------
|
||||
// - Message: bang -> poll the gnusb
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_bang(t_gnusb *x) // poll the gnusb
|
||||
{
|
||||
int nBytes,i,n;
|
||||
int replymask,replyshift,replybyte;
|
||||
int temp;
|
||||
unsigned char buffer[12];
|
||||
|
||||
if (!(x->dev_handle)) find_device(x);
|
||||
else {
|
||||
// ask the gnusb to send us data
|
||||
nBytes = usb_control_msg(x->dev_handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
|
||||
GNUSB_CMD_POLL, 0, 0, (char *)buffer, sizeof(buffer), 10);
|
||||
// let's see what has come back...
|
||||
if(nBytes < sizeof(buffer)){
|
||||
if (x->debug_flag) {
|
||||
if(nBytes < 0)
|
||||
post( "USB error: %s\n", usb_strerror());
|
||||
post( "only %d bytes status received\n", nBytes);
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < OUTLETS; i++) {
|
||||
n = OUTLETS - i - 1;
|
||||
temp = buffer[n];
|
||||
|
||||
|
||||
// add 2 stuffed bits from end of buffer if we're doing 10bit precision
|
||||
if (n < 8) {
|
||||
if (x->do_10_bit) {
|
||||
|
||||
if (n < 4) replybyte = buffer[10];
|
||||
else replybyte = buffer[11];
|
||||
|
||||
replyshift = ((n % 4) * 2); // how much to shift the bits
|
||||
replymask = (3 << replyshift);
|
||||
|
||||
temp = temp * 4 + ((replybyte & replymask) >> replyshift); // add 2 LSB
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (x->values[i] != temp) { // output if value has changed
|
||||
outlet_int(x->outlets[i], temp);
|
||||
x->values[i] = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Message: open -> open connection to gnusb
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_open(t_gnusb *x)
|
||||
{
|
||||
if (x->dev_handle) {
|
||||
post("gnusb: There is already a connection to www.anyma.ch/gnusb",0);
|
||||
} else find_device(x);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Message: close -> close connection to gnusb
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_close(t_gnusb *x)
|
||||
{
|
||||
if (x->dev_handle) {
|
||||
usb_close(x->dev_handle);
|
||||
x->dev_handle = NULL;
|
||||
post("gnusb: Closed connection to www.anyma.ch/gnusb",0);
|
||||
} else
|
||||
post("gnusb: There was no open connection to www.anyma.ch/gnusb",0);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Message: poll -> set polling interval
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_poll(t_gnusb *x, long n){
|
||||
if (n > 0) {
|
||||
x->m_interval = n;
|
||||
x->m_interval_bak = n;
|
||||
gnusb_start(x);
|
||||
} else {
|
||||
gnusb_stop(x);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Message: smooth -> set smoothing on analog inputs
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_smooth(t_gnusb *x, long n) {
|
||||
int nBytes;
|
||||
unsigned char buffer[8];
|
||||
|
||||
if (n < 0) n = 0;
|
||||
if (n > 15) n = 15;
|
||||
|
||||
if (!(x->dev_handle)) find_device(x);
|
||||
else {
|
||||
nBytes = usb_control_msg(x->dev_handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
|
||||
GNUSB_CMD_SET_SMOOTHING, n, 0, (char *)buffer, sizeof(buffer), 10);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Message: int -> zero stops / nonzero starts
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_int(t_gnusb *x,long n) {
|
||||
if (n) {
|
||||
if (!x->is_running) gnusb_start(x);
|
||||
} else {
|
||||
if (x->is_running) gnusb_stop(x);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Message: start -> start automatic polling
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_start (t_gnusb *x) {
|
||||
if (!x->is_running) {
|
||||
clock_fdelay(x->m_clock,0.);
|
||||
x->is_running = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Message: stop -> stop automatic polling
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_stop (t_gnusb *x) {
|
||||
if (x->is_running) {
|
||||
x->is_running = 0;
|
||||
clock_unset(x->m_clock);
|
||||
gnusb_close(x);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - The clock is ticking, tic, tac...
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_tick(t_gnusb *x) {
|
||||
clock_fdelay(x->m_clock, x->m_interval); // schedule another tick
|
||||
gnusb_bang(x); // poll the gnusb
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Object creation and setup
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
int main(void)
|
||||
{
|
||||
setup((t_messlist **)&gnusb_class, (method)gnusb_new, 0L, (short)sizeof(t_gnusb), 0L, A_DEFSYM, 0);
|
||||
// setup() loads our external into Max's memory so it can be used in a patch
|
||||
// gnusb_new = object creation method defined below, A_DEFLONG = its (optional) arguement is a long (32-bit) int
|
||||
|
||||
// Add message handlers
|
||||
addbang((method)gnusb_bang);
|
||||
addint((method)gnusb_int);
|
||||
addmess((method)gnusb_debug,"debug", A_DEFLONG, 0);
|
||||
addmess((method)gnusb_open, "open", 0);
|
||||
addmess((method)gnusb_close, "close", 0);
|
||||
addmess((method)gnusb_poll, "poll", A_DEFLONG,0);
|
||||
addmess((method)gnusb_output, "output", A_SYM,A_DEFLONG,0);
|
||||
addmess((method)gnusb_input, "input", A_SYM,0);
|
||||
addmess((method)gnusb_precision, "precision", A_SYM,0);
|
||||
addmess((method)gnusb_smooth, "smooth", A_DEFLONG,0);
|
||||
addmess((method)gnusb_start, "start", 0);
|
||||
addmess((method)gnusb_stop, "stop", 0);
|
||||
addmess((method)gnusb_assist,"assist",A_CANT,0);
|
||||
|
||||
post("gnusb version 1.0 - (c) 2007 [ a n y m a ]",0); // post any important info to the max window when our object is laoded
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void *gnusb_new(t_symbol *s) // s = optional argument typed into object box (A_SYM) -- defaults to 0 if no args are typed
|
||||
{
|
||||
t_gnusb *x; // local variable (pointer to a t_gnusb data structure)
|
||||
|
||||
x = (t_gnusb *)newobject(gnusb_class); // create a new instance of this object
|
||||
x->m_clock = clock_new(x,(method)gnusb_tick); // make new clock for polling and attach gnsub_tick function to it
|
||||
|
||||
if (s == gensym("10bit")) x->do_10_bit = 1;
|
||||
else x->do_10_bit = 0;
|
||||
|
||||
x->m_interval = DEFAULT_CLOCK_INTERVAL;
|
||||
x->m_interval_bak = DEFAULT_CLOCK_INTERVAL;
|
||||
|
||||
x->debug_flag = 0;
|
||||
x->dev_handle = NULL;
|
||||
int i;
|
||||
// create outlets and assign it to our outlet variable in the instance's data structure
|
||||
for (i=0; i < OUTLETS; i++) {
|
||||
x->outlets[i] = intout(x);
|
||||
}
|
||||
|
||||
return x; // return a reference to the object instance
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Assist messages
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_assist(t_gnusb *x, void *b, long m, long a, char *s)
|
||||
{
|
||||
if (m==ASSIST_INLET) {
|
||||
switch (a) {
|
||||
case 0: sprintf(s,"Messages to the gnusb out there"); break;
|
||||
}
|
||||
} else {
|
||||
switch (a) {
|
||||
case 0: sprintf(s,"A 0"); break;
|
||||
case 1: sprintf(s,"A 1"); break;
|
||||
case 2: sprintf(s,"A 2"); break;
|
||||
case 3: sprintf(s,"A 3"); break;
|
||||
case 4: sprintf(s,"A 4"); break;
|
||||
case 5: sprintf(s,"A 5"); break;
|
||||
case 6: sprintf(s,"A 6"); break;
|
||||
case 7: sprintf(s,"A 7"); break;
|
||||
case 8: sprintf(s,"PORT B"); break;
|
||||
case 9: sprintf(s,"PORT C"); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - Object destruction
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
void gnusb_free(t_gnusb *x)
|
||||
{
|
||||
if (x->dev_handle) usb_close(x->dev_handle);
|
||||
freeobject((t_object *)x->m_clock); // free the clock
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// - USB Utility Functions
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
|
||||
static int usbGetStringAscii(usb_dev_handle *dev, int index, int langid, char *buf, int buflen)
|
||||
{
|
||||
char buffer[256];
|
||||
int rval, i;
|
||||
|
||||
if((rval = usb_control_msg(dev, USB_ENDPOINT_IN, USB_REQ_GET_DESCRIPTOR, (USB_DT_STRING << 8) + index, langid, buffer, sizeof(buffer), 1000)) < 0)
|
||||
return rval;
|
||||
if(buffer[1] != USB_DT_STRING)
|
||||
return 0;
|
||||
if((unsigned char)buffer[0] < rval)
|
||||
rval = (unsigned char)buffer[0];
|
||||
rval /= 2;
|
||||
/* lossy conversion to ISO Latin1 */
|
||||
for(i=1;i<rval;i++){
|
||||
if(i > buflen) /* destination buffer overflow */
|
||||
break;
|
||||
buf[i-1] = buffer[2 * i];
|
||||
if(buffer[2 * i + 1] != 0) /* outside of ISO Latin1 range */
|
||||
buf[i-1] = '?';
|
||||
}
|
||||
buf[i-1] = 0;
|
||||
return i-1;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
|
||||
void find_device(t_gnusb *x)
|
||||
{
|
||||
usb_dev_handle *handle = NULL;
|
||||
struct usb_bus *bus;
|
||||
struct usb_device *dev;
|
||||
|
||||
usb_find_busses();
|
||||
usb_find_devices();
|
||||
for(bus=usb_busses; bus; bus=bus->next){
|
||||
for(dev=bus->devices; dev; dev=dev->next){
|
||||
if(dev->descriptor.idVendor == USBDEV_SHARED_VENDOR && dev->descriptor.idProduct == USBDEV_SHARED_PRODUCT){
|
||||
char string[256];
|
||||
int len;
|
||||
handle = usb_open(dev); /* we need to open the device in order to query strings */
|
||||
if(!handle){
|
||||
error ("Warning: cannot open USB device: %s", usb_strerror());
|
||||
continue;
|
||||
}
|
||||
/* now find out whether the device actually is gnusb */
|
||||
len = usbGetStringAscii(handle, dev->descriptor.iManufacturer, 0x0409, string, sizeof(string));
|
||||
if(len < 0){
|
||||
post("gnusb: warning: cannot query manufacturer for device: %s", usb_strerror());
|
||||
goto skipDevice;
|
||||
}
|
||||
|
||||
// post("gnusb: seen device from vendor ->%s<-", string);
|
||||
if(strcmp(string, "www.anyma.ch") != 0)
|
||||
goto skipDevice;
|
||||
len = usbGetStringAscii(handle, dev->descriptor.iProduct, 0x0409, string, sizeof(string));
|
||||
if(len < 0){
|
||||
post("gnusb: warning: cannot query product for device: %s", usb_strerror());
|
||||
goto skipDevice;
|
||||
}
|
||||
// post("gnusb: seen product ->%s<-", string);
|
||||
if(strcmp(string, "gnusb") == 0)
|
||||
break;
|
||||
skipDevice:
|
||||
usb_close(handle);
|
||||
handle = NULL;
|
||||
}
|
||||
}
|
||||
if(handle)
|
||||
break;
|
||||
}
|
||||
|
||||
if(!handle){
|
||||
post("gnusb: Could not find USB device www.anyma.ch/gnusb");
|
||||
x->dev_handle = NULL;
|
||||
if (x->m_interval < 10000) x->m_interval *=2; // throttle polling down to max 20s if we can't find a gnusb
|
||||
} else {
|
||||
x->dev_handle = handle;
|
||||
post("gnusb: Found USB device www.anyma.ch/gnusb");
|
||||
x->m_interval = x->m_interval_bak; // restore original polling interval
|
||||
if (x->is_running) gnusb_tick(x);
|
||||
else gnusb_bang(x);
|
||||
}
|
||||
}
|
||||
1
tools/gnusb/maxmsp/gnusb.help
Normal file
1
tools/gnusb/maxmsp/gnusb.help
Normal file
File diff suppressed because one or more lines are too long
1324
tools/gnusb/maxmsp/gnusb.xcodeproj/anyma.mode1
Normal file
1324
tools/gnusb/maxmsp/gnusb.xcodeproj/anyma.mode1
Normal file
File diff suppressed because it is too large
Load Diff
60
tools/gnusb/maxmsp/gnusb.xcodeproj/anyma.pbxuser
Normal file
60
tools/gnusb/maxmsp/gnusb.xcodeproj/anyma.pbxuser
Normal file
@@ -0,0 +1,60 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Development;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* gnusb */;
|
||||
codeSenseManager = C75D360C0C2A5BB100D4E379 /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
243,
|
||||
20,
|
||||
48.1626,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 204102547;
|
||||
PBXWorkspaceStateSaveDate = 204102547;
|
||||
};
|
||||
sourceControlManager = C75D360B0C2A5BB100D4E379 /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8C76827B0AC579580055918D /* gnusb.c */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {920, 3696}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRect = "{{0, 0}, {711, 429}}";
|
||||
sepNavWindowFrame = "{{15, 439}, {750, 558}}";
|
||||
};
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* gnusb */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
C75D360B0C2A5BB100D4E379 /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
};
|
||||
scmType = "";
|
||||
};
|
||||
C75D360C0C2A5BB100D4E379 /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
}
|
||||
1391
tools/gnusb/maxmsp/gnusb.xcodeproj/me.mode1
Normal file
1391
tools/gnusb/maxmsp/gnusb.xcodeproj/me.mode1
Normal file
File diff suppressed because it is too large
Load Diff
221
tools/gnusb/maxmsp/gnusb.xcodeproj/me.pbxuser
Normal file
221
tools/gnusb/maxmsp/gnusb.xcodeproj/me.pbxuser
Normal file
@@ -0,0 +1,221 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Deployment;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* gnusb */;
|
||||
addToTargets = (
|
||||
8D01CCC60486CAD60068D4B7 /* gnusb */,
|
||||
);
|
||||
breakpoints = (
|
||||
);
|
||||
breakpointsGroup = 8C51C38E0ADA64E900EC8537 /* XCBreakpointsBucket */;
|
||||
codeSenseManager = 8C7682670AC575F00055918D /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXErrorsWarningsDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXErrorsWarningsDataSource_LocationID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
300,
|
||||
133.2085,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXErrorsWarningsDataSource_TypeID,
|
||||
PBXErrorsWarningsDataSource_MessageID,
|
||||
PBXErrorsWarningsDataSource_LocationID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
22,
|
||||
300,
|
||||
130.5835,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXExecutablesDataSource_ActiveFlagID,
|
||||
PBXExecutablesDataSource_NameID,
|
||||
PBXExecutablesDataSource_CommentsID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
243,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
200,
|
||||
63,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 216729659;
|
||||
PBXWorkspaceStateSaveDate = 216729659;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8CD0DDA30CEA0F8800D609F6 = 8CD0DDA30CEA0F8800D609F6 /* PBXTextBookmark */;
|
||||
8CD0DDAA0CEA18A700D609F6 = 8CD0DDAA0CEA18A700D609F6 /* PBXTextBookmark */;
|
||||
8CD3D9210CEB0856009C300E /* PBXTextBookmark */ = 8CD3D9210CEB0856009C300E /* PBXTextBookmark */;
|
||||
8CD3D9240CEB08B2009C300E /* PBXTextBookmark */ = 8CD3D9240CEB08B2009C300E /* PBXTextBookmark */;
|
||||
8CD3D9250CEB08D2009C300E /* PBXTextBookmark */ = 8CD3D9250CEB08D2009C300E /* PBXTextBookmark */;
|
||||
8CD3D9270CEB08EF009C300E /* PBXTextBookmark */ = 8CD3D9270CEB08EF009C300E /* PBXTextBookmark */;
|
||||
8CD3D9290CEB1865009C300E /* PBXTextBookmark */ = 8CD3D9290CEB1865009C300E /* PBXTextBookmark */;
|
||||
8CD3D92B0CEB1957009C300E /* PBXTextBookmark */ = 8CD3D92B0CEB1957009C300E /* PBXTextBookmark */;
|
||||
8CD3D92D0CEB1A26009C300E /* PBXTextBookmark */ = 8CD3D92D0CEB1A26009C300E /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8C7682660AC575F00055918D /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8C51C38E0ADA64E900EC8537 /* XCBreakpointsBucket */ = {
|
||||
isa = XCBreakpointsBucket;
|
||||
name = "Project Breakpoints";
|
||||
objects = (
|
||||
);
|
||||
};
|
||||
8C7682660AC575F00055918D /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
};
|
||||
scmType = "";
|
||||
};
|
||||
8C7682670AC575F00055918D /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8C76827B0AC579580055918D /* gnusb.c */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {920, 7126}}";
|
||||
sepNavSelRange = "{16603, 0}";
|
||||
sepNavVisRect = "{{0, 0}, {828, 686}}";
|
||||
sepNavWindowFrame = "{{351, 17}, {873, 815}}";
|
||||
};
|
||||
};
|
||||
8CD0DDA30CEA0F8800D609F6 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
comments = "error: 'n' undeclared (first use in this function)";
|
||||
fRef = 8C76827B0AC579580055918D /* gnusb.c */;
|
||||
rLen = 1;
|
||||
rLoc = 135;
|
||||
rType = 1;
|
||||
};
|
||||
8CD0DDAA0CEA18A700D609F6 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8C76827B0AC579580055918D /* gnusb.c */;
|
||||
name = "gnusb.c: 136";
|
||||
rLen = 0;
|
||||
rLoc = 4546;
|
||||
rType = 0;
|
||||
vrLen = 1372;
|
||||
vrLoc = 3908;
|
||||
};
|
||||
8CD3D9210CEB0856009C300E /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8C76827B0AC579580055918D /* gnusb.c */;
|
||||
name = "gnusb.c: 137";
|
||||
rLen = 0;
|
||||
rLoc = 4546;
|
||||
rType = 0;
|
||||
vrLen = 1337;
|
||||
vrLoc = 3849;
|
||||
};
|
||||
8CD3D9240CEB08B2009C300E /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8C76827B0AC579580055918D /* gnusb.c */;
|
||||
name = "gnusb.c: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 2024;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8CD3D9250CEB08D2009C300E /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8C76827B0AC579580055918D /* gnusb.c */;
|
||||
name = "gnusb.c: find_device";
|
||||
rLen = 0;
|
||||
rLoc = 16297;
|
||||
rType = 0;
|
||||
vrLen = 2024;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8CD3D9270CEB08EF009C300E /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8C76827B0AC579580055918D /* gnusb.c */;
|
||||
name = "gnusb.c: find_device";
|
||||
rLen = 0;
|
||||
rLoc = 16302;
|
||||
rType = 0;
|
||||
vrLen = 2024;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8CD3D9290CEB1865009C300E /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8C76827B0AC579580055918D /* gnusb.c */;
|
||||
name = "gnusb.c: 508";
|
||||
rLen = 0;
|
||||
rLoc = 16480;
|
||||
rType = 0;
|
||||
vrLen = 2038;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8CD3D92B0CEB1957009C300E /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8C76827B0AC579580055918D /* gnusb.c */;
|
||||
name = "gnusb.c: find_device";
|
||||
rLen = 0;
|
||||
rLoc = 16561;
|
||||
rType = 0;
|
||||
vrLen = 2038;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8CD3D92D0CEB1A26009C300E /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8C76827B0AC579580055918D /* gnusb.c */;
|
||||
name = "gnusb.c: 509";
|
||||
rLen = 0;
|
||||
rLoc = 16603;
|
||||
rType = 0;
|
||||
vrLen = 2038;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* gnusb */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
339
tools/gnusb/maxmsp/gnusb.xcodeproj/project.pbxproj
Normal file
339
tools/gnusb/maxmsp/gnusb.xcodeproj/project.pbxproj
Normal file
@@ -0,0 +1,339 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 42;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
0F5B62030919440900A62EB9 /* MaxAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F5B62020919440900A62EB9 /* MaxAPI.framework */; };
|
||||
8C76827C0AC579580055918D /* gnusb.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C76827B0AC579580055918D /* gnusb.c */; };
|
||||
8CE44F350AC58F2600D71D18 /* libusb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8CE44F340AC58F2600D71D18 /* libusb.dylib */; };
|
||||
8D01CCCE0486CAD60068D4B7 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
|
||||
0F5B62020919440900A62EB9 /* MaxAPI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MaxAPI.framework; path = /Library/Frameworks/MaxAPI.framework; sourceTree = "<absolute>"; };
|
||||
8C76827B0AC579580055918D /* gnusb.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = gnusb.c; sourceTree = "<group>"; };
|
||||
8CE44F340AC58F2600D71D18 /* libusb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libusb.dylib; path = Contents/MacOS/libusb.dylib; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* gnusb.mxo */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = gnusb.mxo; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D01CCCE0486CAD60068D4B7 /* Carbon.framework in Frameworks */,
|
||||
0F5B62030919440900A62EB9 /* MaxAPI.framework in Frameworks */,
|
||||
8CE44F350AC58F2600D71D18 /* libusb.dylib in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
089C166AFE841209C02AAC07 /* maximum */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = maximum;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8CE44F340AC58F2600D71D18 /* libusb.dylib */,
|
||||
0F5B62020919440900A62EB9 /* MaxAPI.framework */,
|
||||
08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */,
|
||||
);
|
||||
name = "External Frameworks and Libraries";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C167CFE841241C02AAC07 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB77ADFE841716C02AAC07 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8C76827B0AC579580055918D /* gnusb.c */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* gnusb.mxo */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* gnusb */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 0FF6670A096B494E00E9E0B4 /* Build configuration list for PBXNativeTarget "gnusb" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = gnusb;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = MaxExternal;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* gnusb.mxo */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = 0FF6670E096B494E00E9E0B4 /* Build configuration list for PBXProject "gnusb" */;
|
||||
hasScannedForEncodings = 1;
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* maximum */;
|
||||
projectDirPath = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* gnusb */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXRezBuildPhase section */
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */ = {
|
||||
isa = PBXRezBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8C76827C0AC579580055918D /* gnusb.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
0FF6670B096B494E00E9E0B4 /* Development */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUGGING_SYMBOLS = YES;
|
||||
DEPLOYMENT_LOCATION = NO;
|
||||
DSTROOT = "$(PROJECT_DIR)";
|
||||
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||
GCC_ENABLE_TRIGRAPHS = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "../../c74support/max-includes/macho-prefix.h";
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
||||
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
|
||||
GCC_WARN_UNKNOWN_PRAGMAS = NO;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
HEADER_SEARCH_PATHS = "../../c74support/max-includes";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "/../../../sysbuild/$(CONFIGURATION)/Cycling '74/externals";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
|
||||
"$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)\"";
|
||||
LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/Contents/MacOS\"";
|
||||
LIBRARY_STYLE = Bundle;
|
||||
OPTIMIZATION_CFLAGS = "-O0";
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PRODUCT_NAME = gnusb;
|
||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
WRAPPER_EXTENSION = mxo;
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
name = Development;
|
||||
};
|
||||
0FF6670C096B494E00E9E0B4 /* Deployment */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
);
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEPLOYMENT_LOCATION = NO;
|
||||
DSTROOT = "$(PROJECT_DIR)";
|
||||
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||
GCC_ENABLE_TRIGRAPHS = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "../../c74support/max-includes/macho-prefix.h";
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
||||
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
|
||||
GCC_WARN_UNKNOWN_PRAGMAS = NO;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
HEADER_SEARCH_PATHS = "../../c74support/max-includes";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "/../../../sysbuild/$(CONFIGURATION)/Cycling '74/externals";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
|
||||
"$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)\"";
|
||||
LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/Contents/MacOS\"";
|
||||
LIBRARY_STYLE = Bundle;
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PRODUCT_NAME = gnusb;
|
||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
WRAPPER_EXTENSION = mxo;
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
name = Deployment;
|
||||
};
|
||||
0FF6670D096B494E00E9E0B4 /* Default */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
DEPLOYMENT_LOCATION = NO;
|
||||
DSTROOT = "$(PROJECT_DIR)";
|
||||
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
|
||||
GCC_ENABLE_TRIGRAPHS = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "../../c74support/max-includes/macho-prefix.h";
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
||||
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
|
||||
GCC_WARN_UNKNOWN_PRAGMAS = NO;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
HEADER_SEARCH_PATHS = "../../c74support/max-includes";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "/../../../sysbuild/$(CONFIGURATION)/Cycling '74/externals";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
|
||||
"$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)\"";
|
||||
LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/Contents/MacOS\"";
|
||||
LIBRARY_STYLE = Bundle;
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PRODUCT_NAME = gnusb;
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
WRAPPER_EXTENSION = mxo;
|
||||
};
|
||||
name = Default;
|
||||
};
|
||||
0FF6670F096B494E00E9E0B4 /* Development */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Development;
|
||||
};
|
||||
0FF66710096B494E00E9E0B4 /* Deployment */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Deployment;
|
||||
};
|
||||
0FF66711096B494E00E9E0B4 /* Default */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Default;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
0FF6670A096B494E00E9E0B4 /* Build configuration list for PBXNativeTarget "gnusb" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
0FF6670B096B494E00E9E0B4 /* Development */,
|
||||
0FF6670C096B494E00E9E0B4 /* Deployment */,
|
||||
0FF6670D096B494E00E9E0B4 /* Default */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Default;
|
||||
};
|
||||
0FF6670E096B494E00E9E0B4 /* Build configuration list for PBXProject "gnusb" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
0FF6670F096B494E00E9E0B4 /* Development */,
|
||||
0FF66710096B494E00E9E0B4 /* Deployment */,
|
||||
0FF66711096B494E00E9E0B4 /* Default */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Default;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
Reference in New Issue
Block a user