Yes, I have read the error, but I haven't coded anything yet. I just unzipped the library and typed make to rebuild it. I would have thought in a library there would be no errors, so I assume I'm doing something else wrong but not sure what.

Your right, I'm on a mac. There is no immediate need for me to recompile the library, though if there was a need to recompile in the future (adding support for hardware) it would be nice to know I could.

Joe,

I'm new to the avr (not to programming in general). In my quest to getting a working toolchain I was following the compile option listed here http://www.ladyada.net/learn/avr/setup-mac.html and there are not patched mentioned. I have read about gcc patches in other forums but no links to the patches as far as I could find. So at the moment I've got a gcc-4.6.2 stock compile for the avr.

The WinAvr release I'm using using is from Jan 2010 so will be way before 4.6.2. I'm guessing your later version has better/stricter type checking. I can look at the source to see if there is anything obviously wrong - but hard for me to check as it compiles fine in WinAvr ie - if I can't reproduce then its hard to fix. Equally its hard for me to upgrade since WinAvr wraps up lots of other stuff like CygWin etc for the Win platform.

However: since WebbotLib is open source, and you aren't new to development, then I also encourage you to have a look - and see if we can can come up with a solution that compiles on both platforms. If its just the the Text2speech thats giving the problem then try knocking it out of the build and lets see if there are other problems.

First on the mac these 3 lines need to be added to libdefs.h, I added them right under your #if defined(_WINDOWS_) block. That allows for a large part of the library to compile. I tried to check for a define I could use but __APPLE__ isn't defined in my version of avr-gcc for some reason - still looking into why its not.

#undef PROGMEM#define PROGMEM#define prog_char

It is a little odd though as I need the #undef line or I get libdefs.h:101:0: warning: "PROGMEM" redefined [enabled by default] from it being defined in avrchain/include/avr/pgmspace.h but without those 2 lines or even just the #undef line the webbot wont compile.

The second issue thats going to be harder to fix is that I'm using a newer avr-libc than you. This mean that SIG_2WIRE_SERIAL has been poisoned and can no longer be used. I'm running into this with:

i2c_slave.c:106:5: error: attempt to use poisoned "SIG_2WIRE_SERIAL"

This forum post may or may not help: http://arduino.cc/forum/index.php?action=printpage;topic=92364.0 but I'm not knowledgeable enough about avr yet to attempt to fix this. I am using avr-libc-1.8.0, I'm assuming your version is from early 2010 as well. I'm not sure if at compile time this can be #ifdefed to allow both versions of avr-libc to compile; but like I said I don't know enough yet to attempt to fix this.

My next step is going to be to skip over i2c and see if I can get the lib to complete the compile but that will have to wait till tomorrow.

We'll its a lot closer, I was able to get a full compile without errors. I did a fresh download and modified the makeone file with the two -D options. I still have to add the #define PROGMEM line though. Without it it still wouldn't compile. I did not have to add the #define prog_char line. I'm trying to google what PROGMEM is and see if there is a -D I can use to get it to compile without adding the line.

Are you using the Version 1 or Version 2 codestream of WebbotLib. Reason for asking is that the PROGMEM issue may be caused by using it in typedefs which Version 1 does - but Version 2 doesn't coz the C++ compiler didn't like it. NB You can still use Version 2 with C as well.So try the Version 2 code stream, along with the makeone changes shown previously.