Fixed makefiles for autoconf.g include.
Fixed build output look in several Makefiles
Fixed code to include autoconf.h
Fixed code to use ROCKBOX_*_ENDIAN instead of previous attempts.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6421 a1c6a512-1295-4272-9138-f99709370657
diff --git a/apps/Makefile b/apps/Makefile
index 69b1fba..b8db408 100644
--- a/apps/Makefile
+++ b/apps/Makefile
@@ -7,7 +7,8 @@
 # $Id$
 #
 
-INCLUDES= -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I. -I$(OBJDIR)
+INCLUDES= -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I. -I$(BUILDDIR)	\
+ -I$(OBJDIR)
 
 DEPFILE = $(OBJDIR)/dep-apps
 LDS := $(FIRMDIR)/app.lds
@@ -43,29 +44,26 @@
 
 ifdef SIMVER
 # this is a sim build
-COMMONLIB = $(ROOTDIR)/uisimulator/common/libcomsim.a
+COMMONLIB = $(BUILDDIR)/comsim/libcomsim.a
 
-all: $(COMMONLIB) $(OBJDIR)/$(BINARY) $(CODECS) $(ROCKS)
+all: $(COMMONLIB) $(BUILDDIR)/$(BINARY) $(CODECS) $(ROCKS)
 	@$(MAKE) -C $(SIMDIR)
 
 $(COMMONLIB):
 	@$(MAKE) -C $(ROOTDIR)/uisimulator/common
 else
 # regular target build
-all: $(OBJDIR)/$(BINARY) $(FLASHFILE) $(CODECS) $(ROCKS) $(ARCHOSROM)
+all: $(BUILDDIR)/$(BINARY) $(FLASHFILE) $(CODECS) $(ROCKS) $(ARCHOSROM)
 endif
 
 dep: $(DEPFILE)
 
 build-codecs:
-	@$(MAKE) -C codecs
+	@$(MAKE) -C codecs OBJDIR=$(OBJDIR)/codecs
 
 rocks:
-	@$(MAKE) -C plugins/lib
-	@$(MAKE) -C plugins
-
-$(OBJDIR)/librockbox.a:
-	@$(MAKE) -C $(FIRMDIR)
+	@$(MAKE) -C plugins/lib OBJDIR=$(OBJDIR)/plugins/lib
+	@$(MAKE) -C plugins  OBJDIR=$(OBJDIR)/plugins
 
 $(LINKFILE): $(LDS)
 	@echo "Build LDS file"
@@ -81,28 +79,28 @@
 	@cat $(MAXINFILE) | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) $(DEFINES) -E -P $(ROMBUILD) - > $(MAXOUTFILE)
 	@rm $(MAXINFILE)
 
-$(OBJDIR)/rombox.elf : $(OBJS) $(LINKROM) $(OBJDIR)/librockbox.a $(DEPFILE)
+$(OBJDIR)/rombox.elf : $(OBJS) $(LINKROM) $(DEPFILE)
 	@echo "LD rombox.elf"
-	@$(CC) $(GCCOPTS) -Os -nostdlib -o $@ $(OBJS) -L$(OBJDIR) -lrockbox -lgcc -L$(FIRMDIR) -T$(LINKROM) -Wl,-Map,$(OBJDIR)/rombox.map
+	@$(CC) $(GCCOPTS) -Os -nostdlib -o $@ $(OBJS) -L$(BUILDDIR) -lrockbox -lgcc -L$(BUILDDIR)/firmware -T$(LINKROM) -Wl,-Map,$(OBJDIR)/rombox.map
 
 ifndef SIMVER
 
-$(OBJDIR)/rockbox.elf : $(OBJS) $(LINKFILE) $(OBJDIR)/librockbox.a $(DEPFILE)
+$(OBJDIR)/rockbox.elf : $(OBJS) $(LINKFILE) $(DEPFILE)
 	@echo "LD rockbox.elf"
-	$(CC) $(GCCOPTS) -Os -nostdlib -o $@ $(OBJS) -L$(OBJDIR) -lrockbox -lgcc -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/rockbox.map
+	@$(CC) $(GCCOPTS) -Os -nostdlib -o $@ $(OBJS)  -L$(BUILDDIR)/firmware -L$(BUILDDIR) -lrockbox -lgcc -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/rockbox.map
 
 $(OBJDIR)/rockbox.bin : $(OBJDIR)/rockbox.elf
-	@echo "OBJCOPY $<"
+	@echo "OBJCOPY "`basename $@`
 	@$(OC) -O binary $< $@
 
 $(OBJDIR)/rombox.bin : $(OBJDIR)/rombox.elf
-	@echo "OBJCOPY $<"
+	@echo "OBJCOPY "`basename $@`
 	@$(OC) -O binary $< $@
 
 $(OBJDIR)/rockbox.asm: $(OBJDIR)/rockbox.bin
 	$(TOOLSDIR)/sh2d -sh1 $< > $@
 
-$(OBJDIR)/$(BINARY) : $(OBJDIR)/rockbox.bin
+$(BUILDDIR)/$(BINARY) : $(OBJDIR)/rockbox.bin
 	@echo "Build firmware file"
 	@$(MKFIRMWARE) $< $@
 
@@ -111,22 +109,23 @@
 
 ifeq ($(SIMVER), win32)
 # OK, this is ugly but we need it on the link line to make it do right
-EXTRAOBJ = $(OBJDIR)/uisw32-res.o
+EXTRAOBJ = $(BUILDDIR)/sim/uisw32-res.o
 endif
 
 
-$(OBJDIR)/$(BINARY) : $(OBJS) $(OBJDIR)/librockbox.a $(DEPFILE) $(OBJDIR)/libsim.a $(OBJDIR)/libcomsim.a
+$(BUILDDIR)/$(BINARY) : $(OBJS) $(DEPFILE) $(BUILDDIR)/libsim.a \
+	$(BUILDDIR)/libcomsim.a
 	@echo "LD $(BINARY)"
-	$(CC) $(GCCOPTS) -o $@ $(OBJS) -L$(OBJDIR) -lrockbox -lsim -lcomsim $(LDOPTS) $(EXTRAOBJ) -Wl,-Map,$(OBJDIR)/rockbox.map
+	@$(CC) $(GCCOPTS) -o $@ $(OBJS) -L$(BUILDDIR) -lrockbox -lsim -lcomsim $(LDOPTS) $(EXTRAOBJ) -Wl,-Map,$(OBJDIR)/rockbox.map
 
-$(OBJDIR)/libsim.a:
-	@$(MAKE) -C $(SIMDIR)
+$(BUILDDIR)/libsim.a:
+	@$(MAKE) -C $(SIMDIR) OBJDIR=$(BUILDDIR)/sim
 
-$(OBJDIR)/libcomsim.a:
-	@$(MAKE) -C $(ROOTDIR)/uisimulator/common
+$(BUILDDIR)/libcomsim.a:
+	@$(MAKE) -C $(ROOTDIR)/uisimulator/common OBJDIR=$(BUILDDIR)/comsim
 endif
 
-$(OBJDIR)/rockbox.ucl: $(OBJDIR)/rockbox.bin
+$(BUILDDIR)/rockbox.ucl: $(OBJDIR)/rockbox.bin
 	@a=`uclpack -h 2>/dev/null`; \
 	if test -n "$$a"; then \
 	  echo "UCLPACK rockbox" ; \
@@ -136,7 +135,7 @@
 	  echo "fake" > $@; \
 	fi
 
-$(OBJDIR)/rombox.ucl: $(OBJDIR)/rombox.bin $(MAXOUTFILE)
+$(BUILDDIR)/rombox.ucl: $(OBJDIR)/rombox.bin $(MAXOUTFILE)
 	@a=`uclpack -h 2>/dev/null`; \
 	if test -n "$$a"; then \
 	  echo "UCLPACK rombox" ; \
@@ -157,7 +156,8 @@
 	fi
 
 $(OBJDIR)/credits.raw: $(DOCSDIR)/CREDITS
-	perl credits.pl < $< > $@
+	@echo "create credits.raw"
+	@perl credits.pl < $< > $@
 
 $(OBJDIR)/credits.o: credits.c credits.h $(OBJDIR)/credits.raw
 	@mkdir -p `dirname $@`
@@ -168,24 +168,26 @@
 
 $(OBJDIR)/build.lang: lang/$(LANGUAGE).lang $(TOOLSDIR)/uplang
 	@echo "UPLANG"
+	@mkdir -p `dirname $@`
 	@perl $(TOOLSDIR)/uplang lang/english.lang $< > $@
 
 $(OBJDIR)/lang.o: $(OBJDIR)/build.lang $(TOOLSDIR)/genlang
 	@echo "GENLANG"
-	@perl -s $(TOOLSDIR)/genlang -p=$(OBJDIR)/lang $<
+	@mkdir -p `dirname $@`
+	@perl -s $(TOOLSDIR)/genlang -p=$(BUILDDIR)/lang $<
 	@echo "CC lang.c"
-	@$(CC) $(CFLAGS) -c $(OBJDIR)/lang.c -o $@
+	@$(CC) $(CFLAGS) -c $(BUILDDIR)/lang.c -o $@
 
 clean:
 	@echo "cleaning apps"
-	@-rm -f $(OBJS) $(OBJDIR)/$(BINARY) $(OBJDIR)/rockbox.asm	\
-	$(OBJDIR)/rockbox.bin $(OBJDIR)/rockbox.elf $(OBJDIR)/*.map	\
-	$(OBJDIR)/lang.o $(OBJDIR)/build.lang $(OBJDIR)/lang.[ch]	\
-	$(OBJDIR)/credits.raw $(LINKFILE) $(OBJDIR)/rockbox.ucl		\
-	$(LINKROM) $(OBJDIR)/rombox.ucl $(OBJDIR)/rombox.bin		\
-	$(OBJDIR)/rombox.elf $(MAXOUTFILE) $(DEPFILE)
-	@$(MAKE) -C plugins clean
-	@$(MAKE) -C codecs clean
+	@-rm -f $(OBJS) $(BUILDDIR)/$(BINARY) $(OBJDIR)/rockbox.asm	     \
+	$(OBJDIR)/rockbox.bin $(OBJDIR)/rockbox.elf $(OBJDIR)/*.map	     \
+	$(OBJDIR)/lang.o $(OBJDIR)/build.lang $(BUILDDIR)/lang.[ch]	     \
+	$(OBJDIR)/credits.raw $(LINKFILE) $(BUILDDIR)/rockbox.ucl $(LINKROM) \
+	$(BUILDDIR)/rombox.ucl $(OBJDIR)/rombox.bin $(OBJDIR)/rombox.elf     \
+	$(MAXOUTFILE) $(DEPFILE)
+	@$(MAKE) -C plugins clean OBJDIR=$(OBJDIR)/plugins
+	@$(MAKE) -C codecs clean OBJDIR=$(OBJDIR)/codecs
 	@rm -rf $(OBJDIR)/recorder $(OBJDIR)/player
 ifdef SIMVER
 	@$(MAKE) -C $(SIMDIR) clean
diff --git a/apps/codecs/Makefile b/apps/codecs/Makefile
index 341e0e6..ffd8eab 100644
--- a/apps/codecs/Makefile
+++ b/apps/codecs/Makefile
@@ -8,7 +8,7 @@
 #
 
 INCLUDES = -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I$(FIRMDIR)/common \
- -I$(FIRMDIR)/drivers -I$(APPSDIR) -Ilib
+ -I$(FIRMDIR)/drivers -I$(APPSDIR) -Ilib -I$(BUILDDIR)
 CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
  -DMEM=${MEMORYSIZE}
 
@@ -28,44 +28,45 @@
 libmad:
 	@echo "MAKE in libmad"
 	@mkdir -p $(OBJDIR)/libmad
-	@$(MAKE) -C libmad TARGET=$(TARGET) DEBUG=$(DEBUG) OBJDIR=$(OBJDIR)/libmad VERSION=$(VERSION) EXTRA_DEFINES="$(EXTRA_DEFINES)" MEM=${MEMORYSIZE} OUTPUT=$(OBJDIR)/libmad.a
+	@$(MAKE) -C libmad OBJDIR=$(OBJDIR)/libmad OUTPUT=$(BUILDDIR)/libmad.a
 
 liba52:
 	@echo "MAKE in liba52"
 	@mkdir -p $(OBJDIR)/liba52
-	@$(MAKE) -C liba52 TARGET=$(TARGET) DEBUG=$(DEBUG) OBJDIR=$(OBJDIR)/liba52 VERSION=$(VERSION) EXTRA_DEFINES="$(EXTRA_DEFINES)" MEM=${MEMORYSIZE} OUTPUT=$(OBJDIR)/liba52.a
+	@$(MAKE) -C liba52 OBJDIR=$(OBJDIR)/liba52 OUTPUT=$(BUILDDIR)/liba52.a
 
 libFLAC:
 	@echo "MAKE in libFLAC"
 	@mkdir -p $(OBJDIR)/libFLAC
-	@$(MAKE) -C libFLAC TARGET=$(TARGET) DEBUG=$(DEBUG) OBJDIR=$(OBJDIR)/libFLAC VERSION=$(VERSION) EXTRA_DEFINES="$(EXTRA_DEFINES)" MEM=${MEMORYSIZE} OUTPUT=$(OBJDIR)/libFLAC.a
+	@$(MAKE) -C libFLAC OBJDIR=$(OBJDIR)/libFLAC OUTPUT=$(BUILDDIR)/libFLAC.a
 
 libTremor:
 	@echo "MAKE in Tremor"
 	@mkdir -p $(OBJDIR)/Tremor
-	@$(MAKE) -C Tremor TARGET=$(TARGET) DEBUG=$(DEBUG) OBJDIR=$(OBJDIR)/Tremor VERSION=$(VERSION) EXTRA_DEFINES="$(EXTRA_DEFINES)" MEM=${MEMORYSIZE} OUTPUT=$(OBJDIR)/libTremor.a
+	@$(MAKE) -C Tremor OBJDIR=$(OBJDIR)/Tremor OUTPUT=$(BUILDDIR)/libTremor.a
 
 libwavpack:
 	@echo "MAKE in libwavpack"
 	@mkdir -p $(OBJDIR)/libwavpack
-	@$(MAKE) -C libwavpack TARGET=$(TARGET) DEBUG=$(DEBUG) OBJDIR=$(OBJDIR)/libwavpack VERSION=$(VERSION) EXTRA_DEFINES="$(EXTRA_DEFINES)" MEM=${MEMORYSIZE} OUTPUT=$(OBJDIR)/libwavpack.a
+	@$(MAKE) -C libwavpack OBJDIR=$(OBJDIR)/libwavpack OUTPUT=$(BUILDDIR)/libwavpack.a
 
 dumb:
 	@echo "MAKE in dumb"
 	@mkdir -p $(OBJDIR)/dumb
-	@$(MAKE) -C dumb TARGET=$(TARGET) DEBUG=$(DEBUG) OBJDIR=$(OBJDIR)/dumb VERSION=$(VERSION) EXTRA_DEFINES="$(EXTRA_DEFINES)" MEM=${MEMORYSIZE} LIBDIR=$(OBJDIR) OFLAGS="$(CFLAGS)"
+	@$(MAKE) -C dumb OBJDIR=$(OBJDIR)/dumb LIBDIR=$(BUILDDIR) OFLAGS="$(CFLAGS)"
 
 libmusepack:
 	@echo "MAKE in libmusepack"
 	@mkdir -p $(OBJDIR)/libmusepack
-	@$(MAKE) -C libmusepack TARGET=$(TARGET) DEBUG=$(DEBUG) OBJDIR=$(OBJDIR)/libmusepack VERSION=$(VERSION) EXTRA_DEFINES="$(EXTRA_DEFINES)" MEM=${MEMORYSIZE} OUTPUT=$(OBJDIR)/libmusepack.a
+	@$(MAKE) -C libmusepack OBJDIR=$(OBJDIR)/libmusepack OUTPUT=$(BUILDDIR)/libmusepack.a
 
 clean:
 	@echo "cleaning codecs"
-	@rm -fr $(OBJDIR)/libmad $(OBJDIR)/libmad.a $(OBJDIR)/liba52 $(OBJDIR)/libFLAC $(OBJDIR)/Tremor $(OBJDIR)/libwavpack $(OBJDIR)/dumb $(OBJDIR)/libdumb.a $(OBJDIR)/libdumbd.a $(OBJDIR)/libmusepack $(OBJDIR)/libmusepack.a
-	@$(MAKE) -C libmad clean
-	@$(MAKE) -C liba52 clean
-	@$(MAKE) -C libFLAC clean
-	@$(MAKE) -C Tremor clean
-	@$(MAKE) -C libwavpack clean
-	@$(MAKE) -C libmusepack clean
+	$(SILENT)rm -fr $(OBJDIR)/libmad $(BUILDDIR)/libmad.a $(OBJDIR)/liba52 $(OBJDIR)/libFLAC $(OBJDIR)/Tremor $(OBJDIR)/libwavpack $(OBJDIR)/dumb $(BUILDDIR)/libdumb.a $(BUILDDIR)/libdumbd.a $(OBJDIR)/libmusepack $(BUILDDIR)/libmusepack.a
+	@$(MAKE) -C libmad clean OBJDIR=$(OBJDIR)/libmad
+	@$(MAKE) -C liba52 clean OBJDIR=$(OBJDIR)/liba52
+	@$(MAKE) -C libFLAC clean OBJDIR=$(OBJDIR)/libFLAC
+	@$(MAKE) -C Tremor clean OBJDIR=$(OBJDIR)/Tremor
+	@$(MAKE) -C libwavpack clean OBJDIR=$(OBJDIR)/libwavpack
+	@$(MAKE) -C libmusepack clean OBJDIR=$(OBJDIR)/libmusepack
+	@$(MAKE) -C dumb clean OBJDIR=$(OBJDIR)/dumb
diff --git a/apps/codecs/Tremor/Makefile b/apps/codecs/Tremor/Makefile
index 5e97c60..20e30bb 100644
--- a/apps/codecs/Tremor/Makefile
+++ b/apps/codecs/Tremor/Makefile
@@ -8,14 +8,15 @@
 #
 
 INCLUDES=-I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export	\
- -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers
+ -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(BUILDDIR)
 
 ifdef APPEXTRA
 INCLUDES += -I$(APPSDIR)/$(APPEXTRA)
 endif
 
 TREMOROPTS =
-CFLAGS = $(GCCOPTS) $(TREMOROPTS) $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE}
+CFLAGS = $(GCCOPTS) $(TREMOROPTS) $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
+-DMEM=${MEMORYSIZE}
 
 # This sets up 'SRC' based on the files mentioned in SOURCES
 include $(TOOLSDIR)/makesrc.inc
@@ -26,7 +27,7 @@
 DEPFILE = $(OBJDIR)/dep-Tremor
 DIRS = 
 
-OUTPUT = $(OBJDIR)/libTremor.a
+OUTPUT = $(BUILDDIR)/libTremor.a
 
 all: $(OUTPUT)
 
@@ -35,7 +36,7 @@
 	@$(AR) ruv $@ $+ >/dev/null 2>&1
 
 $(OBJDIR)/Tremor/%.o: $(APPSDIR)/codecs/Tremor/%.c
-	@echo "CC $<"
+	@echo "(Tremor) CC $<"
 	@$(CC) -c -O2 $(CFLAGS) -I$(APPSDIR)/codecs/Tremor/ $< -o $@
 
 include $(TOOLSDIR)/make.inc
diff --git a/apps/codecs/Tremor/config-tremor.h b/apps/codecs/Tremor/config-tremor.h
index e53c048..81aa5bf 100644
--- a/apps/codecs/Tremor/config-tremor.h
+++ b/apps/codecs/Tremor/config-tremor.h
@@ -1,11 +1,12 @@
 #include "../codec.h"
 
+#ifdef ROCKBOX_BIG_ENDIAN
 #define BIG_ENDIAN 1
 #define LITTLE_ENDIAN 0
-#define _LOW_ACCURACY_
-
-#ifdef SIMULATOR
-  #define BYTE_ORDER LITTLE_ENDIAN
+#define BYTE_ORDER BIG_ENDIAN
 #else
-  #define BYTE_ORDER BIG_ENDIAN
+#define BYTE_ORDER LITTLE_ENDIAN
+#define LITTLE_ENDIAN 1
+#define BIG_ENDIAN 0
 #endif
+#define _LOW_ACCURACY_
diff --git a/apps/codecs/libFLAC/Makefile b/apps/codecs/libFLAC/Makefile
index 1c8b068..9da55ba 100644
--- a/apps/codecs/libFLAC/Makefile
+++ b/apps/codecs/libFLAC/Makefile
@@ -7,8 +7,9 @@
 # $Id$
 #
 
-INCLUDES=-I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export	\
- -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(APPSDIR)/codecs/libFLAC/include
+INCLUDES=-I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export	      \
+ -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(APPSDIR)/codecs/libFLAC/include \
+ -I$(BUILDDIR)
 
 ifdef APPEXTRA
 INCLUDES += -I$(APPSDIR)/$(APPEXTRA)
@@ -16,9 +17,10 @@
 
 NEWGCC=$(shell expr $(GCCNUM) ">" 303)
 
-FLACOPTS = -DFLAC__NO_ASM -DFLAC__ALIGN_MALLOC_DATA			      \
--DFLAC__INTEGER_ONLY_LIBRARY -DVERSION=\"1.1.2\" -fomit-frame-pointer	      \
--funroll-loops -finline-functions -Wall -W -Winline -DFLaC__INLINE=__inline__
+FLACOPTS = -DFLAC__NO_ASM -DFLAC__ALIGN_MALLOC_DATA			\
+-DFLAC__INTEGER_ONLY_LIBRARY -DVERSION=\"1.1.2\" -fomit-frame-pointer	\
+-funroll-loops -finline-functions -Wall -W -Wno-inline			\
+-DFLaC__INLINE=__inline__
 
 ifeq ($(NEWGCC), 1)
   # this is 3.4.X options:
@@ -37,7 +39,7 @@
 DEPFILE = $(OBJDIR)/dep-libFLAC
 DIRS = 
 
-OUTPUT = $(OBJDIR)/libFLAC.a
+OUTPUT = $(BUILDDIR)/libFLAC.a
 
 all: $(OUTPUT)
 
@@ -47,7 +49,7 @@
 
 $(OBJDIR)/libFLAC/%.o: $(APPSDIR)/codecs/libFLAC/%.c
 	@mkdir -p $(OBJDIR)/libFLAC
-	@echo "CC $<"
+	@echo "(libFLAC) CC $<"
 	@$(CC) -c -O2 $(CFLAGS) -I$(APPSDIR)/codecs/libFLAC/include/FLAC $< -o $@
 
 include $(TOOLSDIR)/make.inc
diff --git a/apps/codecs/liba52/Makefile b/apps/codecs/liba52/Makefile
index 7baa71f..b31903f 100644
--- a/apps/codecs/liba52/Makefile
+++ b/apps/codecs/liba52/Makefile
@@ -8,7 +8,7 @@
 #
 
 INCLUDES=-I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export	\
- -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers
+ -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(BUILDDIR)
 
 ifdef APPEXTRA
 INCLUDES += -I$(APPSDIR)/$(APPEXTRA)
@@ -26,7 +26,7 @@
 DEPFILE = $(OBJDIR)/dep-liba52
 DIRS = 
 
-OUTPUT = $(OBJDIR)/liba52.a
+OUTPUT = $(BUILDDIR)/liba52.a
 
 all: $(OUTPUT)
 
@@ -35,7 +35,7 @@
 	@$(AR) ruv $@ $+ >/dev/null 2>&1
 
 $(OBJDIR)/liba52/%.o: $(APPSDIR)/codecs/liba52/%.c
-	@echo "CC $<"
+	@echo "(liba52) CC $<"
 	@$(CC) -c -O2 $(CFLAGS) -I$(APPSDIR)/codecs/liba52/ $< -o $@
 
 include $(TOOLSDIR)/make.inc
diff --git a/apps/codecs/liba52/config-a52.h b/apps/codecs/liba52/config-a52.h
index 1aec4cd..9e38034 100644
--- a/apps/codecs/liba52/config-a52.h
+++ b/apps/codecs/liba52/config-a52.h
@@ -20,7 +20,7 @@
 
 /* Used in bitstream.h */
 
-#ifndef SIMULATOR
+#ifdef ROCKBOX_BIG_ENDIAN
 #define WORDS_BIGENDIAN 1
 #endif
 
diff --git a/apps/codecs/libmad/Makefile b/apps/codecs/libmad/Makefile
index 74c7260..1228cce 100644
--- a/apps/codecs/libmad/Makefile
+++ b/apps/codecs/libmad/Makefile
@@ -8,7 +8,7 @@
 #
 
 INCLUDES=-I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export	\
- -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers
+ -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(BUILDDIR)
 
 ifdef APPEXTRA
 INCLUDES += -I$(APPSDIR)/$(APPEXTRA)
@@ -34,7 +34,7 @@
 	$(AR) ruv $@ $+ >/dev/null 2>&1
 
 $(OBJDIR)/%.o: $(APPSDIR)/codecs/libmad/%.c
-	@echo "CC $<"
+	@echo "(libmad) CC "`basename $<`
 	@$(CC) -c -O2 $(CFLAGS) -I$(APPSDIR)/codecs/libmad/ $< -o $@
 
 include $(TOOLSDIR)/make.inc
diff --git a/apps/codecs/libwavpack/Makefile b/apps/codecs/libwavpack/Makefile
index 54d95be..df26559 100644
--- a/apps/codecs/libwavpack/Makefile
+++ b/apps/codecs/libwavpack/Makefile
@@ -8,7 +8,7 @@
 #
 
 INCLUDES=-I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export	\
- -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers
+ -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(BUILDDIR)
 
 ifdef APPEXTRA
 INCLUDES += -I$(APPSDIR)/$(APPEXTRA)
@@ -26,7 +26,7 @@
 DEPFILE = $(OBJDIR)/dep-libwavpack
 DIRS = 
 
-OUTPUT = $(OBJDIR)/libwavpack.a
+OUTPUT = $(BUILDDIR)/libwavpack.a
 
 all: $(OUTPUT)
 
@@ -35,7 +35,7 @@
 	@$(AR) ruv $@ $+ >/dev/null 2>&1
 
 $(OBJDIR)/libwavpack/%.o: $(APPSDIR)/codecs/libwavpack/%.c
-	@echo "CC $<"
+	@echo "(libwavpack) CC $<"
 	@$(CC) -c -O2 $(CFLAGS) -I$(APPSDIR)/codecs/libwavpack/ $< -o $@
 
 include $(TOOLSDIR)/make.inc
diff --git a/apps/database.c b/apps/database.c
index 615403d..c753362 100644
--- a/apps/database.c
+++ b/apps/database.c
@@ -42,6 +42,7 @@
 #include "lang.h"
 #include "keyboard.h"
 #include "database.h"
+#include "autoconf.h"
 
 #undef NEW_DB_CODE
 
@@ -58,7 +59,7 @@
 int tagdb_init(void)
 {
     unsigned char* ptr = (char*)&tagdbheader.version;
-#ifdef LITTLE_ENDIAN
+#ifdef ROCKBOX_LITTLE_ENDIAN
     int i, *p;
 #endif
 
@@ -76,7 +77,7 @@
         splash(HZ,true,"Not a rockbox ID3 database!");
         return -1;
     }
-#ifdef LITTLE_ENDIAN
+#ifdef ROCKBOX_LITTLE_ENDIAN
     p=(int *)&tagdbheader;
     for(i=0;i<17;i++) {
         *p=BE32(*p);
diff --git a/apps/dbtree.c b/apps/dbtree.c
index 61879e3..0dc4112 100644
--- a/apps/dbtree.c
+++ b/apps/dbtree.c
@@ -42,6 +42,7 @@
 #include "icons.h"
 #include "lang.h"
 #include "keyboard.h"
+#include "autoconf.h"
 
 static int db_play_folder(struct tree_context* c);
 static int db_search(struct tree_context* c, char* string);
@@ -167,7 +168,7 @@
             if (rc < safeplacelen)
                 return -1;
 
-#ifdef LITTLE_ENDIAN
+#ifdef ROCKBOX_LITTLE_ENDIAN
             for (i=0; i<tagdbheader.albumarraylen; i++)
                 safeplace[i] = BE32(safeplace[i]);
 #endif
@@ -186,7 +187,7 @@
             if (rc < safeplacelen)
                 return -1;
 
-#ifdef LITTLE_ENDIAN
+#ifdef ROCKBOX_LITTLE_ENDIAN
             for (i=0; i<tagdbheader.songarraylen; i++) {
                 safeplace[i] = BE32(safeplace[i]);
                 DEBUGF("db_load songs4album song %d: 0x%x\n",i,safeplace[i]);
diff --git a/apps/plugins/Makefile b/apps/plugins/Makefile
index 38cd723..23bc12d 100644
--- a/apps/plugins/Makefile
+++ b/apps/plugins/Makefile
@@ -8,7 +8,7 @@
 #
 
 INCLUDES = -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I$(FIRMDIR)/common \
- -I$(FIRMDIR)/drivers -I$(APPSDIR) -Ilib
+ -I$(FIRMDIR)/drivers -I$(APPSDIR) -Ilib -I$(BUILDDIR)
 CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(EXTRA_DEFINES)	\
  -DMEM=${MEMORYSIZE} -DPLUGIN
 
@@ -48,15 +48,15 @@
 
 
 .PHONY: $(SUBDIRS)
-all: $(OBJDIR)/libplugin.a $(ROCKS) $(SUBDIRS) $(DEPFILE)
+all: $(BUILDDIR)/libplugin.a $(ROCKS) $(SUBDIRS) $(DEPFILE)
 
 ifndef SIMVER
-$(OBJDIR)/%.elf: $(OBJDIR)/%.o $(LINKFILE) $(OBJDIR)/libplugin.a
-	@echo "LD $@"
-	@$(CC) $(GCCOPTS) -O -nostdlib -o $@ $< -L$(OBJDIR) $(CODECLIBS) -lplugin -lgcc -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/$*.map
+$(OBJDIR)/%.elf: $(OBJDIR)/%.o $(LINKFILE) $(BUILDDIR)/libplugin.a
+	@echo "LD "`basename $@`
+	@$(CC) $(GCCOPTS) -O -nostdlib -o $@ $< -L$(BUILDDIR) $(CODECLIBS) -lplugin -lgcc -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/$*.map
 
 $(OBJDIR)/%.rock : $(OBJDIR)/%.elf
-	@echo "OBJCOPY $<"
+	@echo "OBJCOPY "`basename $@`
 	@$(OC) -O binary $< $@
 else
 
@@ -64,9 +64,9 @@
 ###################################################
 # This is the X11 simulator version
 
-$(OBJDIR)/%.rock : $(OBJDIR)/%.o  $(OBJDIR)/libplugin.a
-	@echo "LD $@"
-	@$(CC) $(CFLAGS) -shared $< -L$(OBJDIR)  $(CODECLIBS) -lplugin -o $@
+$(OBJDIR)/%.rock : $(OBJDIR)/%.o  $(BUILDDIR)/libplugin.a
+	@echo "LD "`basename $@`
+	@$(CC) $(CFLAGS) -shared $< -L$(BUILDDIR)  $(CODECLIBS) -lplugin -o $@
 ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)
 # 'x' must be kept or you'll have "Win32 error 5"
 #     $ fgrep 5 /usr/include/w32api/winerror.h | head -1
@@ -81,11 +81,11 @@
 DLLTOOLFLAGS = --export-all
 DLLWRAPFLAGS = -s --entry _DllMain@12 --target=i386-mingw32 -mno-cygwin
 
-$(OBJDIR)/%.rock : $(OBJDIR)/%.o  $(OBJDIR)/libplugin.a
-	@echo "DLL $@"
+$(OBJDIR)/%.rock : $(OBJDIR)/%.o  $(BUILDDIR)/libplugin.a
+	@echo "DLL "`basename $@`
 	@$(DLLTOOL) $(DLLTOOLFLAGS) -z $(OBJDIR)/$*.def $<
-	@$(DLLWRAP) $(DLLWRAPFLAGS) --def $(OBJDIR)/$*.def $< $(OBJDIR)/libplugin.a \
-                $(patsubst -l%,$(OBJDIR)/lib%.a,$(CODECLIBS)) -o $@
+	@$(DLLWRAP) $(DLLWRAPFLAGS) --def $(OBJDIR)/$*.def $< $(BUILDDIR)/libplugin.a \
+                $(patsubst -l%,$(BUILDDIR)/lib%.a,$(CODECLIBS)) -o $@
 ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)
 # 'x' must be kept or you'll have "Win32 error 5"
 #     $ fgrep 5 /usr/include/w32api/winerror.h | head -1
@@ -99,9 +99,10 @@
 
 include $(TOOLSDIR)/make.inc
 
-$(OBJDIR)/libplugin.a:
+$(BUILDDIR)/libplugin.a:
 	@echo "MAKE in lib"
-	@$(MAKE) -C lib TARGET=$(TARGET) DEBUG=$(DEBUG) OBJDIR=$(OBJDIR) VERSION=$(VERSION) EXTRA_DEFINES="$(EXTRA_DEFINES)" MEM=${MEMORYSIZE}
+	@mkdir -p $(OBJDIR)/lib
+	@$(MAKE) -C lib OBJDIR=$(OBJDIR)/lib
 
 # MEM should be passed on to this makefile with the chosen memory size given
 # in number of MB
@@ -112,14 +113,14 @@
 $(SUBDIRS):
 	@echo "MAKE in $@"
 	@mkdir -p $(OBJDIR)/$@
-	@$(MAKE) -C $@ TARGET=$(TARGET) DEBUG=$(DEBUG) OUTDIR=$(OBJDIR) OBJDIR=$(OBJDIR)/$@ VERSION=$(VERSION) EXTRA_DEFINES="$(EXTRA_DEFINES)" MEM=${MEMORYSIZE}
+	@$(MAKE) -C $@ OUTDIR=$(OBJDIR) OBJDIR=$(OBJDIR)/$@
 
 clean:
 	@echo "cleaning plugins"
 	@rm -f $(ROCKS) $(LINKFILE) $(OBJDIR)/*.rock $(DEPFILE) $(ELFS) \
 	$(OBJS) $(DEFS)
-	@$(MAKE) -C lib clean
-	@$(MAKE) -C rockboy clean
-	@$(MAKE) -C searchengine clean
+	@$(MAKE) -C lib clean OBJDIR=$(OBJDIR)/lib
+	@$(MAKE) -C rockboy clean OBJDIR=$(OBJDIR)/rockboy
+	@$(MAKE) -C searchengine clean OBJDIR=$(OBJDIR)/searchengine
 
 -include $(DEPFILE)
diff --git a/apps/plugins/a52towav.c b/apps/plugins/a52towav.c
index 7bec8f2..32353d8 100644
--- a/apps/plugins/a52towav.c
+++ b/apps/plugins/a52towav.c
@@ -31,17 +31,10 @@
 
 static struct plugin_api* rb;
 
-/* FIX: We can remove this warning when the build system has a
-   mechanism for auto-detecting the endianness of the target CPU -
-   WORDS_BIGENDIAN is defined in liba52/config.h and is also used
-   internally by liba52.
- */
-
 #ifdef WORDS_BIGENDIAN
-  #warning ************************************* BIG ENDIAN
-  #define LE_S16(x) ( (uint16_t) ( ((uint16_t)(x) >> 8) | ((uint16_t)(x) << 8) ) )
+#define LE_S16(x) ( (uint16_t) ( ((uint16_t)(x) >> 8) | ((uint16_t)(x) << 8) ) )
 #else
-  #define LE_S16(x) (x)
+#define LE_S16(x) (x)
 #endif
 
 
diff --git a/apps/plugins/lib/Makefile b/apps/plugins/lib/Makefile
index fbd4cef..21dea57 100644
--- a/apps/plugins/lib/Makefile
+++ b/apps/plugins/lib/Makefile
@@ -11,7 +11,7 @@
 # .. for stuff in the plugins dir
 # . for stuff in the pluginlib dir
 INCLUDES=-I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export	\
- -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers
+ -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(BUILDDIR)
 
 ifdef APPEXTRA
 INCLUDES += -I$(APPSDIR)/$(APPEXTRA)
@@ -28,7 +28,7 @@
 DEPFILE = $(OBJDIR)/dep-pluginlib
 DIRS = .
 
-OUTPUT = $(OBJDIR)/libplugin.a
+OUTPUT = $(BUILDDIR)/libplugin.a
 
 all: $(OUTPUT)
 
diff --git a/apps/plugins/mpc2wav.c b/apps/plugins/mpc2wav.c
index 747fbdc..b1478ba 100644
--- a/apps/plugins/mpc2wav.c
+++ b/apps/plugins/mpc2wav.c
@@ -77,8 +77,8 @@
 bool
 canseek_impl(void *data)
 {
-  file_info_struct *f = (file_info_struct *)data;
-  return true;
+    (void)data;
+    return true;
 }
 
 static int
@@ -110,7 +110,7 @@
   file_info_struct file_info;
   unsigned short Sample;
   unsigned status = 1;
-  int i;
+  unsigned int i;
   mpc_reader reader;
 
   /* Generic plugin inititialisation */
diff --git a/apps/plugins/rockboy/Makefile b/apps/plugins/rockboy/Makefile
index 020d67b..dab4aa8 100644
--- a/apps/plugins/rockboy/Makefile
+++ b/apps/plugins/rockboy/Makefile
@@ -7,8 +7,8 @@
 # $Id$
 #
 
-INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export	\
- -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers
+INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
+ -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(BUILDDIR)
 CFLAGS = $(GCCOPTS) -O3 $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
  -DMEM=${MEMORYSIZE} -DPLUGIN
 
@@ -46,13 +46,13 @@
 all: $(OUTPUT)
 
 ifndef SIMVER
-$(OBJDIR)/rockboy.elf: $(OBJS) $(LINKFILE) $(OUTDIR)/libplugin.a
-	@echo "LD $@"
-	@$(CC) $(GCCOPTS) -O -nostdlib -o $@ $(OBJS) -L$(OUTDIR) -lplugin -lgcc \
+$(OBJDIR)/rockboy.elf: $(OBJS) $(LINKFILE)
+	@echo "LD "`basename $@`
+	@$(CC) $(GCCOPTS) -O -nostdlib -o $@ $(OBJS) -L$(BUILDDIR) -lplugin -lgcc \
            -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/rockboy.map
 
 $(OUTPUT): $(OBJDIR)/rockboy.elf
-	@echo "OBJCOPY $<"
+	@echo "OBJCOPY "`basename $@`
 	@$(OC) -O binary $< $@
 else
 
@@ -60,9 +60,9 @@
 ###################################################
 # This is the X11 simulator version
 
-$(OUTPUT): $(OBJS) $(OUTDIR)/libplugin.a
+$(OUTPUT): $(OBJS)
 	@echo "LD $@"
-	@$(CC) $(CFLAGS) -shared $(OBJS) -L$(OUTDIR) -lplugin -o $@
+	@$(CC) $(CFLAGS) -shared $(OBJS) -L$(BUILDDIR) -lplugin -o $@
 ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)
 # 'x' must be kept or you'll have "Win32 error 5"
 #     $ fgrep 5 /usr/include/w32api/winerror.h | head -1
@@ -77,11 +77,11 @@
 DLLTOOLFLAGS = --export-all
 DLLWRAPFLAGS = -s --entry _DllMain@12 --target=i386-mingw32 -mno-cygwin
 
-$(OUTPUT): $(OBJS) $(OUTDIR)/libplugin.a
+$(OUTPUT): $(OBJS)
 	@echo "DLL $@"
 	@$(DLLTOOL) $(DLLTOOLFLAGS) -z $(OBJDIR)/$*.def $(OBJS)
 	@$(DLLWRAP) $(DLLWRAPFLAGS) --def $(OBJDIR)/$*.def $(OBJS) \
-                $(OUTDIR)/libplugin.a -o $@
+                $(BUILDDIR)/libplugin.a -o $@
 ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)
 # 'x' must be kept or you'll have "Win32 error 5"
 #     $ fgrep 5 /usr/include/w32api/winerror.h | head -1
@@ -96,10 +96,10 @@
 
 include $(TOOLSDIR)/make.inc
 
-# MEM should be passed on to this makefile with the chosen memory size given
-# in number of MB
+# MEMORYSIZE should be passed on to this makefile with the chosen memory size
+# given in number of MB
 $(LINKFILE): $(LDS)
-	@echo "build $@"
+	@echo "build "`basename $@`
 	@cat $< | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) $(DEFINES) \
          -E -P - >$@
 
diff --git a/apps/plugins/rockboy/defs.h b/apps/plugins/rockboy/defs.h
index 4c520ef..fc92963 100644
--- a/apps/plugins/rockboy/defs.h
+++ b/apps/plugins/rockboy/defs.h
@@ -6,7 +6,7 @@
 
 #include "rockmacros.h"
 
-#ifdef LITTLE_ENDIAN
+#ifdef ROCKBOX_LITTLE_ENDIAN
 #define LO 0
 #define HI 1
 #else
diff --git a/apps/plugins/rockboy/fastmem.c b/apps/plugins/rockboy/fastmem.c
index ffb0ed5..d883438 100644
--- a/apps/plugins/rockboy/fastmem.c
+++ b/apps/plugins/rockboy/fastmem.c
@@ -69,7 +69,7 @@
 		byte *p = mbc.rmap[a>>12];
 		if (p)
 		{
-#ifdef LITTLE_ENDIAN
+#ifdef ROCKBOX_LITTLE_ENDIAN
 #ifndef ALLOW_UNALIGNED_IO
 			if (a&1) return p[a] | (p[a+1]<<8);
 #endif
@@ -89,7 +89,7 @@
 		byte *p = mbc.wmap[a>>12];
 		if (p)
 		{
-#ifdef LITTLE_ENDIAN
+#ifdef ROCKBOX_LITTLE_ENDIAN
 #ifndef ALLOW_UNALIGNED_IO
 			if (a&1)
 			{
diff --git a/apps/plugins/rockboy/rockmacros.h b/apps/plugins/rockboy/rockmacros.h
index a6ca0f7..03a6810 100644
--- a/apps/plugins/rockboy/rockmacros.h
+++ b/apps/plugins/rockboy/rockmacros.h
@@ -19,10 +19,7 @@
 
 #include <plugin.h>
 
-/* workaround for cygwin not defining endian macros */
-#if !defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN) && defined(_X86_)
-#define LITTLE_ENDIAN
-#endif
+#include "autoconf.h"
 
 #define malloc(a) my_malloc(a)
 void *my_malloc(size_t size);
diff --git a/apps/plugins/rockboy/save.c b/apps/plugins/rockboy/save.c
index dc94ce6..f14a719 100644
--- a/apps/plugins/rockboy/save.c
+++ b/apps/plugins/rockboy/save.c
@@ -15,7 +15,7 @@
 
 
 
-#ifdef LITTLE_ENDIAN
+#ifdef ROCKBOX_LITTLE_ENDIAN
 #define LIL(x) (x)
 #else
 #define LIL(x) ((x<<24)|((x&0xff00)<<8)|((x>>8)&0xff00)|(x>>24))
diff --git a/apps/plugins/searchengine/Makefile b/apps/plugins/searchengine/Makefile
index e6e980b..e59bd8f 100644
--- a/apps/plugins/searchengine/Makefile
+++ b/apps/plugins/searchengine/Makefile
@@ -7,8 +7,8 @@
 # $Id$
 #
 
-INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export	\
- -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR)
+INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
+ -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
 CFLAGS = $(GCCOPTS) -O3 $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
  -DMEM=${MEMORYSIZE} -DPLUGIN
 
@@ -30,13 +30,13 @@
 all: $(OUTPUT)
 
 ifndef SIMVER
-$(OBJDIR)/searchengine.elf: $(OBJS) $(LINKFILE) $(OUTDIR)/libplugin.a
-	@echo "LD $@"
-	@$(CC) $(GCCOPTS) -O -nostdlib -o $@ $(OBJS) -L$(OUTDIR) -lplugin -lgcc \
+$(OBJDIR)/searchengine.elf: $(OBJS) $(LINKFILE)
+	@echo "LD "`basename $@`
+	@$(CC) $(GCCOPTS) -O -nostdlib -o $@ $(OBJS) -L$(BUILDDIR) -lplugin -lgcc \
            -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/searchengine.map
 
 $(OUTPUT): $(OBJDIR)/searchengine.elf
-	@echo "OBJCOPY $<"
+	@echo "OBJCOPY "`basename $@`
 	@$(OC) -O binary $< $@
 else
 
@@ -44,9 +44,9 @@
 ###################################################
 # This is the X11 simulator version
 
-$(OUTPUT): $(OBJS) $(OUTDIR)/libplugin.a
-	@echo "LD $@"
-	@$(CC) $(CFLAGS) -shared $(OBJS) -L$(OUTDIR) -lplugin -o $@
+$(OUTPUT): $(OBJS)
+	@echo "LD $<"
+	@$(CC) $(CFLAGS) -shared $(OBJS) -L$(BUILDDIR) -lplugin -o $@
 ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)
 # 'x' must be kept or you'll have "Win32 error 5"
 #     $ fgrep 5 /usr/include/w32api/winerror.h | head -1
@@ -61,11 +61,11 @@
 DLLTOOLFLAGS = --export-all
 DLLWRAPFLAGS = -s --entry _DllMain@12 --target=i386-mingw32 -mno-cygwin
 
-$(OUTPUT): $(OBJS) $(OUTDIR)/libplugin.a
+$(OUTPUT): $(OBJS)
 	@echo "DLL $@"
 	@$(DLLTOOL) $(DLLTOOLFLAGS) -z $(OBJDIR)/$*.def $(OBJS)
 	@$(DLLWRAP) $(DLLWRAPFLAGS) --def $(OBJDIR)/$*.def $(OBJS) \
-                $(OUTDIR)/libplugin.a -o $@
+                $(BUILDDIR)/libplugin.a -o $@
 ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)
 # 'x' must be kept or you'll have "Win32 error 5"
 #     $ fgrep 5 /usr/include/w32api/winerror.h | head -1
@@ -80,12 +80,12 @@
 
 include $(TOOLSDIR)/make.inc
 
-# MEM should be passed on to this makefile with the chosen memory size given
-# in number of MB
+# MEMORYSIZE should be passed on to this makefile with the chosen memory size
+# given in number of MB
 $(LINKFILE): $(LDS)
-	@echo "build $@"
-	@cat $< | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) $(DEFINES) \
-         -E -P - >$@
+	@echo "build "`basename $@`
+	@cat $< | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) \
+	$(DEFINES) -E -P - >$@
 
 clean:
 	@echo "cleaning searchengine"
diff --git a/apps/recorder/bmp.c b/apps/recorder/bmp.c
index 0512f37..8412440 100644
--- a/apps/recorder/bmp.c
+++ b/apps/recorder/bmp.c
@@ -59,10 +59,9 @@
 } STRUCT_PACKED;
 
 
-#ifdef LITTLE_ENDIAN
+#ifdef ROCKBOX_LITTLE_ENDIAN
 #define readshort(x) x
 #define readlong(x) x
-
 #else
 
 /* Endian functions */
diff --git a/firmware/Makefile b/firmware/Makefile
index a858edf..7211b37 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -7,7 +7,7 @@
 # $Id$
 #
 
-INCLUDES=-Iinclude -I$(FIRMDIR) -Iexport -Icommon -Idrivers
+INCLUDES=-Iinclude -I$(FIRMDIR) -Iexport -Icommon -Idrivers -I$(BUILDDIR)
 
 CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE}
 
@@ -18,18 +18,15 @@
 OBJS2 := $(patsubst %.c, $(OBJDIR)/%.o, $(SRC)) $(OBJDIR)/sysfont.o
 OBJS = $(patsubst %.S, $(OBJDIR)/%.o, $(OBJS2))
 DIRS:=. drivers common
-OUTPUT = $(OBJDIR)/librockbox.a
+OUTPUT = $(BUILDDIR)/librockbox.a
 DEPFILE = $(OBJDIR)/dep-firmware
 
-all: $(TOOLSDIR)/convbdf $(OUTPUT) $(EXTRA_TARGETS)
+all: $(OUTPUT) $(EXTRA_TARGETS)
 
 dep: $(DEPFILE)
 
-$(TOOLSDIR)/convbdf:
-	$(MAKE) CC=gcc LD=ld -C $(TOOLSDIR)
-
 $(OUTPUT): $(OBJS) $(DEPFILE)
-	@echo "AR $@"
+	@echo "AR+RANLIB $@"
 	@$(AR) ruv $@ $(OBJS) >/dev/null 2>&1
 	@$(RANLIB) $@
 
@@ -42,13 +39,13 @@
 
 # Special targets
 $(OBJDIR)/thread.o: thread.c export/thread.h
-	@echo "CC thread.c"
-	@$(CC) -c -O -fomit-frame-pointer $(CFLAGS) $< -o $@
+	$(SILENT)echo "CC thread.c"
+	$(SILENT)$(CC) -c -O -fomit-frame-pointer $(CFLAGS) $< -o $@
 
 $(OBJDIR)/sysfont.o: fonts/clR6x8.bdf
 	@echo "CONVBDF"
-	@$(TOOLSDIR)/convbdf -c -o $(OBJDIR)/sysfont.c $<
+	$(SILENT)$(TOOLSDIR)/convbdf -c -o $(OBJDIR)/sysfont.c $<
 	@echo "CC sysfont.c"
-	@$(CC) $(CFLAGS) -c $(OBJDIR)/sysfont.c -o $@
+	$(SILENT)$(CC) $(CFLAGS) -c $(OBJDIR)/sysfont.c -o $@
 
 -include $(DEPFILE)
diff --git a/firmware/export/config.h b/firmware/export/config.h
index a47581a..a7ef70f 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -20,6 +20,8 @@
 #ifndef __CONFIG_H__
 #define __CONFIG_H__
 
+#include "autoconf.h"
+
 /* symbolic names for multiple choice configurations: */
 
 /* CONFIG_TUNER (note these are combineable bit-flags) */
diff --git a/firmware/export/system.h b/firmware/export/system.h
index 1876bc3..bc54be3 100644
--- a/firmware/export/system.h
+++ b/firmware/export/system.h
@@ -51,7 +51,7 @@
 #define MAX(a, b) (((a)>(b))?(a):(b))
 #endif
 
-#ifdef LITTLE_ENDIAN
+#ifdef ROCKBOX_LITTLE_ENDIAN
 #define SWAB16(x) (x)
 #define SWAB32(x) (x)
 #endif
diff --git a/tools/configure b/tools/configure
index aecdda4..34d8032 100755
--- a/tools/configure
+++ b/tools/configure
@@ -589,8 +589,14 @@
 sed > autoconf.h \
  -e "s,@ENDIAN@,${defendian},g" \
 <<EOF
+/* This header was made by configure */
+#ifndef __BUILD_AUTOCONF_H
+#define __BUILD_AUTOCONF_H
+
 /* Define endianess for the target or simulator platform */
 #define @ENDIAN@ 1
+
+#endif /* __BUILD_AUTOCONF_H */
 EOF
 
 sed > Makefile \
@@ -641,7 +647,7 @@
 export FLASHFILE=@FLASHFILE@
 export TARGET=@TARGET@
 export OBJDIR=@PWD@
-export BUILDDIR=\$(OBJDIR)
+export BUILDDIR=@PWD@
 export LANGUAGE=@LANGUAGE@
 export MEMORYSIZE=@MEMORY@
 export VERSION=\$(shell date +%y%m%d-%H%M)
@@ -675,13 +681,13 @@
 .PHONY: all clean tags zip
 
 all:
-	@\$(MAKE) -C \$(FIRMDIR)
-	@\$(MAKE) -C \$(APPSDIR)
+	@\$(MAKE) -C \$(FIRMDIR) OBJDIR=\$(BUILDDIR)/firmware
+	@\$(MAKE) -C \$(APPSDIR) OBJDIR=\$(BUILDDIR)/apps
 
 clean:
-	@\$(MAKE) -C \$(FIRMDIR) clean
-	@\$(MAKE) -C \$(APPSDIR) clean
-	@rm -f rockbox.zip TAGS
+	@\$(MAKE) -C \$(FIRMDIR) clean OBJDIR=\$(BUILDDIR)/firmware
+	@\$(MAKE) -C \$(APPSDIR) clean OBJDIR=\$(BUILDDIR)/apps
+	@rm -rf rockbox.zip TAGS apps firmware comsim sim
 
 tags:
 	@rm -f TAGS
diff --git a/tools/make.inc b/tools/make.inc
index 9e6600f..ea9815b 100644
--- a/tools/make.inc
+++ b/tools/make.inc
@@ -17,6 +17,7 @@
 # the lame echo stuff down here is to prevent any compiler errors/warnings
 # to cause an error code to get returned and thus stop the build
 $(DEPFILE): $(SOURCES)
+	$(SILENT)mkdir -p `dirname $(DEPFILE)`
 	$(SILENT)rm -f $(DEPFILE)
 	$(SILENT)(for each in $(SOURCES) x; do \
           if test "x" != "$$each"; then \
diff --git a/uisimulator/common/Makefile b/uisimulator/common/Makefile
index 62a124a..e4f3dd9 100644
--- a/uisimulator/common/Makefile
+++ b/uisimulator/common/Makefile
@@ -23,7 +23,8 @@
 DEBUG = -g
 
 # Use this for simulator-only files
-INCLUDES = -I. -I$(OBJDIR) -I$(FIRMDIR)/export -I$(APPSDIR) -I$(ROOTDIR)/uisimulator/$(SIMVER)
+INCLUDES = -I. -I$(OBJDIR) -I$(FIRMDIR)/export -I$(APPSDIR)	\
+-I$(ROOTDIR)/uisimulator/$(SIMVER) -I$(BUILDDIR)
 
 # This sets up 'SRC' based on the files mentioned in SOURCES
 include $(TOOLSDIR)/makesrc.inc
@@ -39,7 +40,7 @@
 
 CFLAGS = $(DEBUG) $(DEFINES) $(INCLUDES) $(GCCOPTS)
 
-OUTFILE = $(OBJDIR)/libcomsim.a
+OUTFILE = $(BUILDDIR)/libcomsim.a
 
 all: $(OUTFILE)
 
diff --git a/uisimulator/win32/Makefile b/uisimulator/win32/Makefile
index f04a54b..1921e54 100644
--- a/uisimulator/win32/Makefile
+++ b/uisimulator/win32/Makefile
@@ -24,7 +24,8 @@
 RM = rm -f
 DEBUG = -g
 
-INCLUDES = -I. -I$(SIMCOMMON) -I$(OBJDIR) -I$(FIRMDIR)/export -I$(APPSDIR)
+INCLUDES = -I. -I$(SIMCOMMON) -I$(OBJDIR) -I$(FIRMDIR)/export -I$(APPSDIR) \
+ -I$(BUILDDIR)
 
 DEFINES = -DHAVE_CONFIG_H -DGETTIMEOFDAY_TWO_ARGS -DSIMULATOR \
 $(TARGET) -DAPPSVERSION=\"$(VERSION)\" -DMEM=${MEMORYSIZE} $(EXTRA_DEFINES)
@@ -39,7 +40,7 @@
 
 CFLAGS = $(DEBUG) $(DEFINES) $(INCLUDES) -W -Wall -mno-cygwin
 
-OUTFILE = $(OBJDIR)/libsim.a
+OUTFILE = $(BUILDDIR)/libsim.a
 
 all: $(OUTFILE)
 	@echo "MAKE in common sim"
@@ -62,7 +63,8 @@
 	@cp $< $@
 
 $(OBJDIR)/uisw32-res.o: uisw32.rc $(OBJDIR)/UI256.bmp
-	$(WINDRES) --include-dir $(OBJDIR) -i $< -o $@
+	@echo "WINDRES"
+	@$(WINDRES) --include-dir $(OBJDIR) -i $< -o $@
 
 include $(TOOLSDIR)/make.inc
 
diff --git a/uisimulator/x11/Makefile b/uisimulator/x11/Makefile
index f032c66..4d3e1e7 100644
--- a/uisimulator/x11/Makefile
+++ b/uisimulator/x11/Makefile
@@ -25,7 +25,8 @@
 DEBUG = -g
 
 # Use this for simulator-only files
-INCLUDES = -I. -I$(SIMCOMMON) -I$(OBJDIR) -I$(FIRMDIR)/export -I$(APPSDIR)
+INCLUDES = -I. -I$(SIMCOMMON) -I$(OBJDIR) -I$(FIRMDIR)/export -I$(APPSDIR) \
+ -I$(BUILDDIR)
 
 # This sets up 'SRC' based on the files mentioned in SOURCES
 include $(TOOLSDIR)/makesrc.inc
@@ -41,7 +42,7 @@
 
 CFLAGS = $(DEBUG) $(DEFINES) $(INCLUDES) $(GCCOPTS)
 
-OUTFILE = $(OBJDIR)/libsim.a
+OUTFILE = $(BUILDDIR)/libsim.a
 
 all: $(OUTFILE)
 	@$(MAKE) -C $(SIMCOMMON)