How to make a simple universal binary; and other things learned about gcc

Although this is not my first time around the block regarding gcc, I have never gone much further than editing makefiles, and use flags under gentoo. Here is what I learned today; I am writing it down in the hopes that I will not have to learn these things again.

1. gcc, the Free Software Foundation’s C compiler, does not comply with the ISO/ANSI standard unless you include the -pedantic command line switch. (-ansi just turns off various GNU extensions.)

2. To get the full effect of the built-in error-checking, you need to use -O along with -Wwhatever. I recommend using -Wall -O until you feel you know C, then you should use whatever additional -W switches you feel are appropriate. The -O switch has to do with optimizing code but it also enables checking for uninitialized variables.

3. To make a universal binary that will run on my laptop + my home ppc based macs I have to use “-arch i386 -arch ppc”

Final: I am compiling now using “gcc -pedantic -Wall -O -arch i386 -arch ppc filename.c -o filename” -Peace-

gnu gcc logo

Two things; openstreetmap.org, and learning C.

I discovered opensetreetmap.org a few days ago while reading a post in the openmoko mailing list. and to quote the project page “OpenStreetMap is a project aimed squarely at creating and providing free geographic data such as street maps to anyone who wants them. The project was started because most maps you think of as free actually have legal or technical restrictions on their use, holding back people from using them in creative, productive or unexpected ways.” I am sure I could come up with something using self gathered data and maybe the google maps api. That leads me to my second point. Its about time that I learned C, so this weekend I am doing nothing but that. I am going to read and go through every online example I can find, and post my progress here so I can tell the world what I have learned.

A real open source cell phone

Neo1979 press image
Finally a real open source cell phone. No more of that well our phone runs linux, but you can’t touch anything crap. The FIC manufactured Neo1973 runs linux and uses the apt style ipkg package manager.
Hardware specs include…

  • 120.7 x 62 x 18.5 (mm)
  • 2.8″ VGA (480×640) TFT Screen
  • Samsung s3c2410 SoC
  • Global Locate AGPS chip
  • Ti GPRS (2.5G not EDGE)
  • Unpowered USB 1.1
  • Touchscreen
  • micro-sd slot
  • 2.5mm audio jack
  • 2 buttons
  • 1200 mAh battery (charged over USB)
  • 128 MB SDRAM
  • 64 MB NAND Flash
  • bluetooth – yeah…

and software includes

  • Dialer
  • Contacts
  • Application Manager
  • Calendar

Thats just the basics for now but I for one am all over this. There is information at openembedded.org on porting your apps. I for one am thinking softphone/ SIP client. Something lightweight that has already been proven to work on another embedded platform like minisip perhaps. If anyone wants to help I will provide a free SIP account for testing. How does agps work? Will I be able to develop a google maps/ agps mashup as a navigational system solution? Will batman be juiced by the joker and his squad of jolly henchmen?

Akimbo STB -> MythTV Frontend Part 1

akimbo

This project is done. I got one on ebay and opened her up. I removed the hard drive, took it to another machine, the immediatly blew out the existing xp embedded install and applications with cfdisk. After I finished a fedora core 6 install on the drive I re installed it into the akimbo case. I had to edit /etc/fstab to fix some paths but afterward it boots.

Continue reading Akimbo STB -> MythTV Frontend Part 1

Review of the Meraki Mini.

Meraki Mini

The meraki mini is a compact, low power, and above all low cost 802.11b/g compatible solution with a twist.
Traditional wireless networks work by having each client associate itself with a wireless access point. The wireless access point is then usually hard wired to some type of internet connection. All traffic to the internet passes directly from the client to the access point, thus creating a series of point to point connections, and a single point of failure. The meraki nodes operate under a different network architecture called a mesh network.

Continue reading Review of the Meraki Mini.

Integrating asterisk with the rest of the house; part 1. (OS X Address Book + Asterisk)

Last weekend I decided to try my own hand at using asterisk to create a click to call integration with the os x address book, and I am going to tell you how I got everything working. These instructions assume that you already have both an asterisk, and apache install up and running (on the same machine), and that you are using the asterisk install to power the phone system at your location.

Continue reading Integrating asterisk with the rest of the house; part 1. (OS X Address Book + Asterisk)