11da177e4SLinus Torvalds# 21da177e4SLinus Torvalds# parisc/Makefile 31da177e4SLinus Torvalds# 41da177e4SLinus Torvalds# This file is included by the global makefile so that you can add your own 51da177e4SLinus Torvalds# architecture-specific flags and dependencies. Remember to do have actions 61da177e4SLinus Torvalds# for "archclean" and "archdep" for cleaning up and making dependencies for 71da177e4SLinus Torvalds# this architecture 81da177e4SLinus Torvalds# 91da177e4SLinus Torvalds# This file is subject to the terms and conditions of the GNU General Public 101da177e4SLinus Torvalds# License. See the file "COPYING" in the main directory of this archive 111da177e4SLinus Torvalds# for more details. 121da177e4SLinus Torvalds# 131da177e4SLinus Torvalds# Copyright (C) 1994 by Linus Torvalds 141da177e4SLinus Torvalds# Portions Copyright (C) 1999 The Puffin Group 151da177e4SLinus Torvalds# 161da177e4SLinus Torvalds# Modified for PA-RISC Linux by Paul Lahaie, Alex deVries, 171da177e4SLinus Torvalds# Mike Shaver, Helge Deller and Martin K. Petersen 181da177e4SLinus Torvalds# 191da177e4SLinus TorvaldsNM = sh $(srctree)/arch/parisc/nm 201da177e4SLinus TorvaldsCHECKFLAGS += -D__hppa__=1 211da177e4SLinus Torvalds 221da177e4SLinus Torvaldsifdef CONFIG_64BIT 231da177e4SLinus TorvaldsCROSS_COMPILE := hppa64-linux- 241da177e4SLinus TorvaldsUTS_MACHINE := parisc64 251da177e4SLinus TorvaldsCHECKFLAGS += -D__LP64__=1 -m64 261da177e4SLinus Torvaldselse 271da177e4SLinus TorvaldsMACHINE := $(subst 64,,$(shell uname -m)) 281da177e4SLinus Torvaldsifneq ($(MACHINE),parisc) 291da177e4SLinus TorvaldsCROSS_COMPILE := hppa-linux- 301da177e4SLinus Torvaldsendif 311da177e4SLinus Torvaldsendif 321da177e4SLinus Torvalds 331da177e4SLinus TorvaldsFINAL_LD=$(CROSS_COMPILE)ld --warn-common --warn-section-align 341da177e4SLinus Torvalds 351da177e4SLinus TorvaldsOBJCOPY_FLAGS =-O binary -R .note -R .comment -S 361da177e4SLinus Torvalds 371da177e4SLinus Torvaldscflags-y := -pipe 381da177e4SLinus Torvalds 391da177e4SLinus Torvalds# These flags should be implied by an hppa-linux configuration, but they 401da177e4SLinus Torvalds# are not in gcc 3.2. 411da177e4SLinus Torvaldscflags-y += -mno-space-regs -mfast-indirect-calls 421da177e4SLinus Torvalds 431da177e4SLinus Torvalds# Currently we save and restore fpregs on all kernel entry/interruption paths. 441da177e4SLinus Torvalds# If that gets optimized, we might need to disable the use of fpregs in the 451da177e4SLinus Torvalds# kernel. 461da177e4SLinus Torvalds#cflags-y += -mdisable-fpregs 471da177e4SLinus Torvalds 481da177e4SLinus Torvalds# Without this, "ld -r" results in .text sections that are too big 491da177e4SLinus Torvalds# (> 0x40000) for branches to reach stubs. 501da177e4SLinus Torvaldscflags-y += -ffunction-sections 511da177e4SLinus Torvalds 521da177e4SLinus Torvalds# select which processor to optimise for 531da177e4SLinus Torvaldscflags-$(CONFIG_PA7100) += -march=1.1 -mschedule=7100 541da177e4SLinus Torvaldscflags-$(CONFIG_PA7200) += -march=1.1 -mschedule=7200 551da177e4SLinus Torvaldscflags-$(CONFIG_PA7100LC) += -march=1.1 -mschedule=7100LC 561da177e4SLinus Torvaldscflags-$(CONFIG_PA7300LC) += -march=1.1 -mschedule=7300 571da177e4SLinus Torvaldscflags-$(CONFIG_PA8X00) += -march=2.0 -mschedule=8000 581da177e4SLinus Torvalds 591da177e4SLinus Torvaldshead-y := arch/parisc/kernel/head.o 601da177e4SLinus Torvalds 611da177e4SLinus TorvaldsCFLAGS += $(cflags-y) 621da177e4SLinus Torvalds 631da177e4SLinus Torvaldskernel-y := mm/ kernel/ math-emu/ kernel/init_task.o 641da177e4SLinus Torvaldskernel-$(CONFIG_HPUX) += hpux/ 651da177e4SLinus Torvalds 661da177e4SLinus Torvaldscore-y += $(addprefix arch/parisc/, $(kernel-y)) 671da177e4SLinus Torvaldslibs-y += arch/parisc/lib/ `$(CC) -print-libgcc-file-name` 681da177e4SLinus Torvalds 691da177e4SLinus Torvaldsdrivers-$(CONFIG_OPROFILE) += arch/parisc/oprofile/ 701da177e4SLinus Torvalds 711da177e4SLinus TorvaldsPALO := $(shell if which palo; then : ; \ 721da177e4SLinus Torvalds elif [ -x /sbin/palo ]; then echo /sbin/palo; \ 731da177e4SLinus Torvalds fi) 741da177e4SLinus Torvalds 751da177e4SLinus Torvaldspalo: vmlinux 761da177e4SLinus Torvalds @if [ -x $PALO ]; then \ 771da177e4SLinus Torvalds echo 'ERROR: Please install palo first (apt-get install palo)';\ 781da177e4SLinus Torvalds echo 'or build it from source and install it somewhere in your $$PATH';\ 791da177e4SLinus Torvalds false; \ 801da177e4SLinus Torvalds fi 811da177e4SLinus Torvalds @if [ ! -f ./palo.conf ]; then \ 821da177e4SLinus Torvalds cp arch/parisc/defpalo.conf palo.conf; \ 831da177e4SLinus Torvalds echo 'A generic palo config file (./palo.conf) has been created for you.'; \ 841da177e4SLinus Torvalds echo 'You should check it and re-run "make palo".'; \ 851da177e4SLinus Torvalds echo 'WARNING: the "lifimage" file is now placed in this directory by default!'; \ 861da177e4SLinus Torvalds false; \ 871da177e4SLinus Torvalds fi 881da177e4SLinus Torvalds $(PALO) -f ./palo.conf 891da177e4SLinus Torvalds 901da177e4SLinus Torvaldsoldpalo: vmlinux 911da177e4SLinus Torvalds export TOPDIR=`pwd`; \ 921da177e4SLinus Torvalds unset STRIP LDFLAGS CPP CPPFLAGS AFLAGS CFLAGS CC LD; cd ../palo && make lifimage 931da177e4SLinus Torvalds 941da177e4SLinus Torvalds# Shorthands for known targets not supported by parisc, use palo as default 951da177e4SLinus TorvaldsImage zImage bzImage: palo 961da177e4SLinus Torvalds 971da177e4SLinus Torvaldskernel_install: vmlinux 981da177e4SLinus Torvalds sh $(src)/arch/parisc/install.sh \ 991da177e4SLinus Torvalds $(KERNELRELEASE) $< System.map "$(INSTALL_PATH)" 1001da177e4SLinus Torvalds 1011da177e4SLinus Torvaldsinstall: kernel_install modules_install 1021da177e4SLinus Torvalds 1031da177e4SLinus Torvaldsprepare: include/asm-parisc/offsets.h 1041da177e4SLinus Torvalds 1051da177e4SLinus Torvaldsarch/parisc/kernel/asm-offsets.s: include/asm include/linux/version.h \ 1061da177e4SLinus Torvalds include/config/MARKER 1071da177e4SLinus Torvalds 1081da177e4SLinus Torvaldsinclude/asm-parisc/offsets.h: arch/parisc/kernel/asm-offsets.s 1091da177e4SLinus Torvalds $(call filechk,gen-asm-offsets) 1101da177e4SLinus Torvalds 1111da177e4SLinus TorvaldsCLEAN_FILES += lifimage include/asm-parisc/offsets.h 1121da177e4SLinus TorvaldsMRPROPER_FILES += palo.conf 1131da177e4SLinus Torvalds 1141da177e4SLinus Torvaldsdefine archhelp 1151da177e4SLinus Torvalds @echo '* vmlinux - Uncompressed kernel image (./vmlinux)' 1161da177e4SLinus Torvalds @echo ' palo - Bootable image (./lifimage)' 1171da177e4SLinus Torvalds @echo ' install - Install kernel using' 1181da177e4SLinus Torvalds @echo ' (your) ~/bin/installkernel or' 1191da177e4SLinus Torvalds @echo ' (distribution) /sbin/installkernel or' 1201da177e4SLinus Torvalds @echo ' copy to $$(INSTALL_PATH)' 1211da177e4SLinus Torvaldsendef 122