Makefile 3.79 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
17
LD_BFD		:= elf32-s390
Linus Torvalds's avatar
Linus Torvalds committed
18
LDFLAGS		:= -m elf_s390
19
KBUILD_CFLAGS	+= -m31
20
KBUILD_AFLAGS	+= -m31
Linus Torvalds's avatar
Linus Torvalds committed
21 22
UTS_MACHINE	:= s390
STACK_SIZE	:= 8192
Al Viro's avatar
Al Viro committed
23
CHECKFLAGS	+= -D__s390__ -msize-long
24
else
25
LD_BFD		:= elf64-s390
Linus Torvalds's avatar
Linus Torvalds committed
26
LDFLAGS		:= -m elf64_s390
27 28
KBUILD_AFLAGS_MODULE += -fpic -D__PIC__
KBUILD_CFLAGS_MODULE += -fpic -D__PIC__
29
KBUILD_CFLAGS	+= -m64
30
KBUILD_AFLAGS	+= -m64
Linus Torvalds's avatar
Linus Torvalds committed
31 32
UTS_MACHINE	:= s390x
STACK_SIZE	:= 16384
33
CHECKFLAGS	+= -D__s390__ -D__s390x__
Linus Torvalds's avatar
Linus Torvalds committed
34 35
endif

36 37
export LD_BFD

Linus Torvalds's avatar
Linus Torvalds committed
38 39 40
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)
41
cflags-$(CONFIG_MARCH_Z9_109) += $(call cc-option,-march=z9-109)
42
cflags-$(CONFIG_MARCH_Z10) += $(call cc-option,-march=z10)
Linus Torvalds's avatar
Linus Torvalds committed
43

44 45 46
#KBUILD_IMAGE is necessary for make rpm
KBUILD_IMAGE	:=arch/s390/boot/image

47 48 49 50 51
#
# Prevent tail-call optimizations, to get clearer backtraces:
#
cflags-$(CONFIG_FRAME_POINTER) += -fno-optimize-sibling-calls

Linus Torvalds's avatar
Linus Torvalds committed
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
# 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)
76
ifneq ($(call cc-option-yn,-mstack-size=8192),y)
Linus Torvalds's avatar
Linus Torvalds committed
77 78
cflags-$(CONFIG_CHECK_STACK) += -mstack-guard=$(CONFIG_STACK_GUARD)
endif
79
endif
Linus Torvalds's avatar
Linus Torvalds committed
80 81 82 83 84 85

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

86 87
KBUILD_CFLAGS	+= -mbackchain -msoft-float $(cflags-y)
KBUILD_CFLAGS	+= -pipe -fno-strength-reduce -Wno-sign-compare
88
KBUILD_AFLAGS	+= $(aflags-y)
Linus Torvalds's avatar
Linus Torvalds committed
89 90 91 92

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

93 94 95
head-y		:= arch/s390/kernel/head.o
head-y		+= arch/s390/kernel/$(if $(CONFIG_64BIT),head64.o,head31.o)
head-y		+= arch/s390/kernel/init_task.o
Linus Torvalds's avatar
Linus Torvalds committed
96

97 98
# See arch/s390/Kbuild for content of core part of the kernel
core-y		+= arch/s390/
99

100
libs-y		+= arch/s390/lib/
Linus Torvalds's avatar
Linus Torvalds committed
101
drivers-y	+= drivers/s390/
102
drivers-$(CONFIG_MATHEMU) += arch/s390/math-emu/
Linus Torvalds's avatar
Linus Torvalds committed
103 104 105 106

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

107
boot		:= arch/s390/boot
Linus Torvalds's avatar
Linus Torvalds committed
108

109
all: image bzImage
Linus Torvalds's avatar
Linus Torvalds committed
110 111 112 113

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

114
image bzImage: vmlinux
Linus Torvalds's avatar
Linus Torvalds committed
115 116
	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@

Michael Holzheu's avatar
Michael Holzheu committed
117 118 119
zfcpdump:
	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@

120 121 122 123 124 125
vdso_install:
ifeq ($(CONFIG_64BIT),y)
	$(Q)$(MAKE) $(build)=arch/$(ARCH)/kernel/vdso64 $@
endif
	$(Q)$(MAKE) $(build)=arch/$(ARCH)/kernel/vdso32 $@

Linus Torvalds's avatar
Linus Torvalds committed
126 127 128 129 130 131
archclean:
	$(Q)$(MAKE) $(clean)=$(boot)

# Don't use tabs in echo arguments
define archhelp
  echo  '* image           - Kernel image for IPL ($(boot)/image)'
132
  echo	'* bzImage         - Compressed kernel image for IPL ($(boot)/bzImage)'
Linus Torvalds's avatar
Linus Torvalds committed
133
endef