copy the existing webserver to webserver.PROGMEM
this is the base set of code files which I will apply my changes which allow the webserver to store it's web pages in flash.

Currently the webserver stores it's pages in ram due to the way the atmel (ATMega328p) works
Other chips may not copy the data into ram.
Change the default chip to the ATMega 328p as the webserver.PROGMEM needs 19K+
Also, the TuxGraphics boards all come with the 328p by default now

Check in a version of the webserver which stores all page data in PROGMEM

Next step on this work is to also move http-strings to PROGMEM in order to save more RAM

current size and ram / flash usages

avr-size ./obj/test.out
text    data     bss     dec     hex filename
18962      796     634   20392    4fa8 ./obj/test.out

18962 bytes of Program ROM allocated
18654 bytes of Program ROM used
  308 bytes of Program ROM wasted

796 bytes of Constants RAM allocated
720 bytes of Constants RAM used
 76 bytes of Constants RAM wasted

634 bytes of Heap RAM allocated
634 bytes of Heap RAM used
  0 bytes of Heap RAM wasted

finding the 76 bytes of wasted ram + moving the http-strings should cut the RAM usage down by 686 bytes so the total ram usage when finished should be about 744 bytes.  Granted all of the ram savings will move to flash usage.
move all of the http-strings to PROGMEM space

Still need to remove some of the old commented out code.
Checking in working code as is for the moment
remove a few defs not used in the code base.
add comment out support to the makestrings script
Make a whitespace change in order to record the ram / rom usage as of this rev

Running on a TuxGraphics board with the ATMega328p and including the webserver.PROGMEM app.

avr-size ./obj/test.out
   text	   data	    bss	    dec	    hex	filename
  19596	    210	    634	  20440	   4fd8	./obj/test.out

19596 bytes of Program ROM allocated
19287 bytes of Program ROM used
  309 bytes of Program ROM wasted

210 bytes of Constants RAM allocated
134 bytes of Constants RAM used
 76 bytes of Constants RAM wasted

634 bytes of Heap RAM allocated
634 bytes of Heap RAM used
  0 bytes of Heap RAM wasted
sort the object files to remove dups to prevent linker errors
allow the makefsdata script to use an alternate webpages dir
Mod the makefsdata script to generate a new file: httpd-cgi-conf.h

Add httpd-cgi-conf.h
  this is a generated file which is used to compile in only the cgi code which is used in the webpages.

httpd-cgi.c - add ifdefs to compile only the code we need
add content length support
correct case of content type
change headers to point to this project instead of the orig uip project
add the POST def
 check in code to convert cgi names with dash to underscore in order to generate valid #defines
 check in copy of existing project as the base for port to the TuxGraphics board based on the atmega644p chip
comment out the defines from the drivers area for now as they conflict with the global project settings.  These are more of a per project setting anyhow.

correct the port settings for the Tuxgraphics 644 board
update the makefile for the boad to contain the proper cpu type
check in change to allow TuxGraphics 644p based board to boot and run the webserver
add a tool from TinyOS
check in change to TuxGraphics.644 project
finish dhcp in the project area.
hard code dhcp renew to be 5 minutes for now.
mod the uip-conf.h to allow dhcp to work.

The EEPROM code was taken a LOT from the uhttpd-avr project :-)
  http://uhttpd-avr.googlecode.com/svn
read settings from eeprom if they exist and perform a basic check on them
  fall back to defaults when they seem off...
make change per bug noted on uip site in uip version 1.0
enable BOTH the old and new arp table code.
They both seem to be needed.  I have not looked at the code enough to figure out why arp stops working without the old method also enabled... odd needs more looking at.
add function dhcpc_renew to make the process simple.
add a check to the app_call so we only call the dhcp packet handler IF we have not aquired a dhcp lease. ... need to double check this for static ip...

Bring over change / fixed that the uhttpd-avr project found for the dhcp client
  THANK YOU AGAIN....
Fix the case where the device is getting LOTS of UDP packets while trying to aquire an IP via DHCP.
On my home network two of my home network routers and a few other devices have upnp and even with it turned off on these devices the network still gets a flood of SSDP packets every few seconds (5-8).flood being 50+ packets.

The change I made is to skip the timer adjust if we receive a packet.
The issue was that the we send out a Discover packet and while waiting for the Offer packet we get 50+ UDP packets which are NOT an Offer :-)  the timer is kicket up well over the 60 second limit and back around.  So, we totally miss the Offer packet.  With luck we get the process to work in a few hours of letting everything sit :-p

Anyhow, the change I made seems to fix the issue 95+% of my uses now.
add my avrdude notes... for now while I'm still working on the eeprom
fix issue 2 from web

What steps will reproduce the problem?
1. use an existing project, tuxgraphics will do
2. create a subfolder for the project.
mkdir -p projects/TuxGraphics/test
3. put a source file into it and include this source file into the makefile:
$(NAME)_SOURCES = main.c clock-arch.c test/test.c

What is the expected output? What do you see instead?
expected output would be that it compiles flawlessly. but make produces an error:
Assembler messages:
Fatal error: can't create obj/test/test.o: No such file or directory

What version of the product are you using? On what operating system?
current svn. ubuntu 10.04.1 lts

Please provide any additional information below.
A Workaround is to create these folder per hand like:
cd projects/TuxGraphics
make
# error here
mkdir -p obj/test
make
# builds fine
prevent calling the handle_dhcp funcation when we are in static mode.  The app is getting called in some regular polling interval.  Since we only have a UDP connection if we run dhcp_init we can use it to test if that value of the state should be checked.