[parisc-linux] [PATCH][PARISC] Introduce cc-cross-prefix and clean up Makefile a bit

Sam Ravnborg sam at ravnborg.org
Sun Oct 21 12:34:30 MDT 2007


Introduce cc-cross-prefix to improve compatibility
with diverse cross compile environments.

In the same process arch/parisc/Makefile was
beautified a little - with no functional changes.

In my setup I now avoid the error message from
"which palo" because I have no palo installed.

Signed-off-by: Sam Ravnborg <sam at ravnborg.org>
---
partly tested. My hppa toolchain is busted but
I could test most of the changes.

IMHO the end-result is much easier to read.
I had to compromise on the indent where I did the CROSS_COMPILE
stuff - 3x8 was too much.

Please review my selected set of possible cross compile
prefixes. It is not a direct 1:1 from the original Makefile.

	Sam

 Makefile |   65 +++++++++++++++++++++++++++------------------------------------
 1 file changed, 28 insertions(+), 37 deletions(-)


diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile
index ae4a9b3..516a60f 100644
--- a/arch/parisc/Makefile
+++ b/arch/parisc/Makefile
@@ -18,28 +18,24 @@
 #
 NM		= sh $(srctree)/arch/parisc/nm
 CHECKFLAGS	+= -D__hppa__=1
-
-MACHINE		:= $(shell uname -m)
-ifeq ($(MACHINE),parisc*)
-NATIVE		:= 1
-endif
+OBJCOPY_FLAGS =-O binary -R .note -R .comment -S
 
 ifdef CONFIG_64BIT
 UTS_MACHINE	:= parisc64
 CHECKFLAGS	+= -D__LP64__=1 -m64
-WIDTH		:= 64
-CROSS_COMPILE	:= hppa64-linux-gnu-
+ifneq ($(SUBARCH),$(ARCH))
+        ifeq ($(CROSS_COMPILE),)
+                CROSS_COMPILE := $(call cc-cross-prefix, hppa64-linux-gnu- hppa64-linux-)
+        endif
+endif
 else # 32-bit
-WIDTH		:=
+ifneq ($(SUBARCH),$(ARCH))
+        ifeq ($(CROSS_COMPILE),)
+                CROSS_COMPILE := $(call cc-cross-prefix, hppa-linux-gnu- hppa-linux-)
+        endif
 endif
-
-# attempt to help out folks who are cross-compiling
-ifeq ($(NATIVE),1)
-CROSS_COMPILE	:= hppa$(WIDTH)-linux-
 endif
 
-OBJCOPY_FLAGS =-O binary -R .note -R .comment -S
-
 cflags-y	:= -pipe
 
 # These flags should be implied by an hppa-linux configuration, but they
@@ -62,46 +58,43 @@ cflags-$(CONFIG_PA7100LC)	+= -march=1.1 -mschedule=7100LC
 cflags-$(CONFIG_PA7300LC)	+= -march=1.1 -mschedule=7300
 cflags-$(CONFIG_PA8X00)		+= -march=2.0 -mschedule=8000
 
-head-y			:= arch/parisc/kernel/head.o 
-
 KBUILD_CFLAGS	+= $(cflags-y)
 
-kernel-y			:= mm/ kernel/ math-emu/ kernel/init_task.o
+head-y				:= arch/parisc/kernel/head.o 
+kernel-y			:= arch/parisc/mm/
+kernel-y			+= arch/parisc/kernel/
+kernel-y			+= arch/parisc/math-emu/
+kernel-y			+= arch/parisc/kernel/init_task.o
 kernel-$(CONFIG_HPUX)		+= hpux/
+libs-y				+= arch/parisc/lib/
+drivers-$(CONFIG_OPROFILE)	+= arch/parisc/oprofile/
 
-core-y	+= $(addprefix arch/parisc/, $(kernel-y))
-libs-y	+= arch/parisc/lib/
-
-drivers-$(CONFIG_OPROFILE)		+= arch/parisc/oprofile/
-
-PALO := $(shell if which palo; then : ; \
-	elif [ -x /sbin/palo ]; then echo /sbin/palo; \
-	fi)
-
-PALOCONF := $(shell if [ -f $(src)/palo.conf ]; then echo $(src)/palo.conf; \
-	else echo $(obj)/palo.conf; \
+PALO := $(shell                         \
+	if (which palo)  2>&1 ; then : ; \
+	elif [ -x /sbin/palo ]; then     \
+		echo /sbin/palo;         \
 	fi)
 
 palo: vmlinux
-	@if test ! -x "$(PALO)"; then \
+	$(Q)if test ! -x "$(PALO)"; then \
 		echo 'ERROR: Please install palo first (apt-get install palo)';\
 		echo 'or build it from source and install it somewhere in your $$PATH';\
 		false; \
 	fi
-	@if test ! -f "$(PALOCONF)"; then \
+	$(Q)if test ! -f "$(obj)/palo.conf"; then \
 		cp $(src)/arch/parisc/defpalo.conf $(obj)/palo.conf; \
 		echo 'A generic palo config file ($(obj)/palo.conf) has been created for you.'; \
 		echo 'You should check it and re-run "make palo".'; \
 		echo 'WARNING: the "lifimage" file is now placed in this directory by default!'; \
 		false; \
 	fi
-	$(PALO) -f $(PALOCONF)
+	$(PALO) -f $(obj)/palo.conf
 
 # Shorthands for known targets not supported by parisc, use vmlinux as default
 Image zImage bzImage: vmlinux
 
 kernel_install: vmlinux
-	sh $(src)/arch/parisc/install.sh \
+	sh $(srctree)/$(src)/arch/parisc/install.sh \
 			$(KERNELRELEASE) $< System.map "$(INSTALL_PATH)"
 
 install: kernel_install modules_install
@@ -119,10 +112,8 @@ define archhelp
 endef
 
 # we require gcc 3.3 or above to compile the kernel
-archprepare: checkbin
-checkbin:
-	@if test "$(call cc-version)" -lt "0303"; then \
-		echo -n "Sorry, GCC v3.3 or above is required to build " ; \
-		echo "the kernel." ; \
+archprepare:
+	$(Q)if test "$(call cc-version)" -lt "0303"; then \
+		echo "Sorry, GCC v3.3 or above is required to build the kernel." ; \
 		false ; \
 	fi



More information about the parisc-linux mailing list