Makefile 3.4 KB
Newer Older
Linus Torvalds's avatar
Linus Torvalds committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#
# s390/Makefile
#
# This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies. Remember to do have actions
# for "archclean" and "archdep" for cleaning up and making dependencies for
# this architecture
#
# This file is subject to the terms and conditions of the GNU General Public
# License.  See the file "COPYING" in the main directory of this archive
# for more details.
#
# Copyright (C) 1994 by Linus Torvalds
#

16
ifndef CONFIG_64BIT
Linus Torvalds's avatar
Linus Torvalds committed
17
LDFLAGS		:= -m elf_s390
18
KBUILD_CFLAGS	+= -m31
19
KBUILD_AFLAGS	+= -m31
Linus Torvalds's avatar
Linus Torvalds committed
20 21
UTS_MACHINE	:= s390
STACK_SIZE	:= 8192
Al Viro's avatar
Al Viro committed
22
CHECKFLAGS	+= -D__s390__ -msize-long
23
else
Linus Torvalds's avatar
Linus Torvalds committed
24 25
LDFLAGS		:= -m elf64_s390
MODFLAGS	+= -fpic -D__PIC__
26
KBUILD_CFLAGS	+= -m64
27
KBUILD_AFLAGS	+= -m64
Linus Torvalds's avatar
Linus Torvalds committed
28 29
UTS_MACHINE	:= s390x
STACK_SIZE	:= 16384
30
CHECKFLAGS	+= -D__s390__ -D__s390x__
Linus Torvalds's avatar
Linus Torvalds committed
31 32 33 34 35
endif

cflags-$(CONFIG_MARCH_G5)   += $(call cc-option,-march=g5)
cflags-$(CONFIG_MARCH_Z900) += $(call cc-option,-march=z900)
cflags-$(CONFIG_MARCH_Z990) += $(call cc-option,-march=z990)
36
cflags-$(CONFIG_MARCH_Z9_109) += $(call cc-option,-march=z9-109)
37
cflags-$(CONFIG_MARCH_Z10) += $(call cc-option,-march=z10)
Linus Torvalds's avatar
Linus Torvalds committed
38

39 40 41
#KBUILD_IMAGE is necessary for make rpm
KBUILD_IMAGE	:=arch/s390/boot/image

42 43 44 45 46
#
# Prevent tail-call optimizations, to get clearer backtraces:
#
cflags-$(CONFIG_FRAME_POINTER) += -fno-optimize-sibling-calls

Linus Torvalds's avatar
Linus Torvalds committed
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
# old style option for packed stacks
ifeq ($(call cc-option-yn,-mkernel-backchain),y)
cflags-$(CONFIG_PACK_STACK)  += -mkernel-backchain -D__PACK_STACK
aflags-$(CONFIG_PACK_STACK)  += -D__PACK_STACK
cflags-$(CONFIG_SMALL_STACK) += -D__SMALL_STACK
aflags-$(CONFIG_SMALL_STACK) += -D__SMALL_STACK
ifdef CONFIG_SMALL_STACK
STACK_SIZE := $(shell echo $$(($(STACK_SIZE)/2)) )
endif
endif

# new style option for packed stacks
ifeq ($(call cc-option-yn,-mpacked-stack),y)
cflags-$(CONFIG_PACK_STACK)  += -mpacked-stack -D__PACK_STACK
aflags-$(CONFIG_PACK_STACK)  += -D__PACK_STACK
cflags-$(CONFIG_SMALL_STACK) += -D__SMALL_STACK
aflags-$(CONFIG_SMALL_STACK) += -D__SMALL_STACK
ifdef CONFIG_SMALL_STACK
STACK_SIZE := $(shell echo $$(($(STACK_SIZE)/2)) )
endif
endif

ifeq ($(call cc-option-yn,-mstack-size=8192 -mstack-guard=128),y)
cflags-$(CONFIG_CHECK_STACK) += -mstack-size=$(STACK_SIZE)
71
ifneq ($(call cc-option-yn,-mstack-size=8192),y)
Linus Torvalds's avatar
Linus Torvalds committed
72 73
cflags-$(CONFIG_CHECK_STACK) += -mstack-guard=$(CONFIG_STACK_GUARD)
endif
74
endif
Linus Torvalds's avatar
Linus Torvalds committed
75 76 77 78 79 80

ifeq ($(call cc-option-yn,-mwarn-dynamicstack),y)
cflags-$(CONFIG_WARN_STACK) += -mwarn-dynamicstack
cflags-$(CONFIG_WARN_STACK) += -mwarn-framesize=$(CONFIG_WARN_STACK_SIZE)
endif

81 82
KBUILD_CFLAGS	+= -mbackchain -msoft-float $(cflags-y)
KBUILD_CFLAGS	+= -pipe -fno-strength-reduce -Wno-sign-compare
83
KBUILD_AFLAGS	+= $(aflags-y)
Linus Torvalds's avatar
Linus Torvalds committed
84 85 86 87

OBJCOPYFLAGS	:= -O binary
LDFLAGS_vmlinux := -e start

88
head-y		:= arch/s390/kernel/head.o arch/s390/kernel/init_task.o
Linus Torvalds's avatar
Linus Torvalds committed
89

90
core-y		+= arch/s390/mm/ arch/s390/kernel/ arch/s390/crypto/ \
91
		   arch/s390/appldata/ arch/s390/hypfs/ arch/s390/kvm/
92
libs-y		+= arch/s390/lib/
Linus Torvalds's avatar
Linus Torvalds committed
93
drivers-y	+= drivers/s390/
94
drivers-$(CONFIG_MATHEMU) += arch/s390/math-emu/
Linus Torvalds's avatar
Linus Torvalds committed
95 96 97 98

# must be linked after kernel
drivers-$(CONFIG_OPROFILE)	+= arch/s390/oprofile/

99
boot		:= arch/s390/boot
Linus Torvalds's avatar
Linus Torvalds committed
100 101 102 103 104 105 106 107 108

all: image

install: vmlinux
	$(Q)$(MAKE) $(build)=$(boot) $@

image: vmlinux
	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@

Michael Holzheu's avatar
Michael Holzheu committed
109 110 111
zfcpdump:
	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@

Linus Torvalds's avatar
Linus Torvalds committed
112 113 114 115 116 117 118
archclean:
	$(Q)$(MAKE) $(clean)=$(boot)

# Don't use tabs in echo arguments
define archhelp
  echo  '* image           - Kernel image for IPL ($(boot)/image)'
endef