Various fixes to the tree to get coreboot-v2 to build on Solaris

- Replace $(PWD) with $(CURDIR) in Makefiles. I don't know why
  the Solaris version behaves differently, but CURDIR is a safe
  choice on gnu make (and we require gnu make already)
- Use tail -1 instead of tail -n1 in a file that already relies on
  tail -1 support in another place
- Use tail -1 as alternative to tail -n1 in another place
- Use #define for ulong_t in romcc, as that name is used on Solaris
- Avoid fprinting a null pointer. The standard doesn't mandate that
  this is a special case, and Solaris doesn't implement it that way.

Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4305 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
diff --git a/util/abuild/abuild b/util/abuild/abuild
index f8e8196..5f6120f 100755
--- a/util/abuild/abuild
+++ b/util/abuild/abuild
@@ -36,7 +36,14 @@
 configureonly=0
 
 # One might want to adjust these in case of cross compiling
-MAKE="make"
+for i in make gmake gnumake nonexistant_make; do
+	$i --version 2>/dev/null |grep "GNU Make" >/dev/null && break
+done
+if [ "$i" = "nonexistant_make" ]; then
+	echo No GNU Make found.
+	exit 1
+fi
+MAKE=$i
 PYTHON=python
 
 # this can be changed to xml by -x
@@ -202,10 +209,11 @@
 		LOGLEVEL2=""
 	fi
 
-	if [ "`which lzma`" != "" -a "$PAYLOAD" != /dev/null ]; then
-		COMPRESSION="option CONFIG_COMPRESSED_PAYLOAD_LZMA=1"
-	else
-		COMPRESSION="# no compression"
+	COMPRESSION="# no compression"
+	if which lzma >/dev/null 2>/dev/null; then
+		if [ "$PAYLOAD" != /dev/null ]; then
+			COMPRESSION="option CONFIG_COMPRESSED_PAYLOAD_LZMA=1"
+		fi
 	fi
 
 	cp $TARGET/Config-${VENDOR}_${MAINBOARD}.lb $TARGET/Config-${VENDOR}_${MAINBOARD}.lb.pre
@@ -266,7 +274,7 @@
 		xmlfile $build_dir/config.log
 		xml "  </log>"
 		xml ""
-		tail -n $CONTEXT $build_dir/config.log
+		tail -n $CONTEXT $build_dir/config.log 2> /dev/null || tail -$CONTEXT $build_dir/config.log
 		return 1
 	fi
 }
@@ -315,7 +323,7 @@
 		xml "  </log>"
 
 		printf "FAILED after ${duration}s! Log excerpt:\n"
-		tail -n $CONTEXT make.log
+		tail -n $CONTEXT make.log 2> /dev/null || tail -$CONTEXT make.log
 		cd $CURR
 		return 1
 	fi
diff --git a/util/newconfig/config.g b/util/newconfig/config.g
index f2b8df1..b8b8c16 100644
--- a/util/newconfig/config.g
+++ b/util/newconfig/config.g
@@ -2118,7 +2118,7 @@
 	file.write("# Function to create an item like -Di586 or -DCONFIG_MAX_CPUS='1' or -Ui686\n")
 	file.write("D_item = $(shell echo '$(if $(subst undefined,,$(origin $1)),\\#define $1$(if $($1), $($1),),\\#undef $1)' >> settings.h)\n\n")
 	file.write("# Compute the value of CPUFLAGS here during make's first pass.\n")
-	file.write("CPUFLAGS := $(strip $(shell echo '/* autogenerated */' > settings.h)$(foreach _var_,$(VARIABLES),$(call D_item,$(_var_)))-include $(PWD)/settings.h)\n\n")
+	file.write("CPUFLAGS := $(strip $(shell echo '/* autogenerated */' > settings.h)$(foreach _var_,$(VARIABLES),$(call D_item,$(_var_)))-include $(CURDIR)/settings.h)\n\n")
 
 	for i in image.getuserdefines():
 		file.write("%s\n" %i)
diff --git a/util/romcc/romcc.c b/util/romcc/romcc.c
index bc647fd..5ab94274 100644
--- a/util/romcc/romcc.c
+++ b/util/romcc/romcc.c
@@ -280,7 +280,7 @@
 typedef int32_t  int_t;
 typedef uint32_t uint_t;
 typedef int32_t  long_t;
-typedef uint32_t ulong_t;
+#define ulong_t uint32_t
 
 #define SCHAR_T_MIN (-128)
 #define SCHAR_T_MAX 127
@@ -24819,8 +24819,8 @@
 			last_occurance != ins->occurance) {
 			if (!ins->occurance->parent) {
 				fprintf(fp, "\t/* %s,%s:%d.%d */\n",
-					ins->occurance->function,
-					ins->occurance->filename,
+					ins->occurance->function?ins->occurance->function:"(null)",
+					ins->occurance->filename?ins->occurance->filename:"(null)",
 					ins->occurance->line,
 					ins->occurance->col);
 			}