Makefile 3.73 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)
43
cflags-$(CONFIG_MARCH_Z196) += $(call cc-option,-march=z196)
44
cflags-$(CONFIG_MARCH_ZEC12) += $(call cc-option,-march=zEC12)
Linus Torvalds's avatar
Linus Torvalds committed
45

46 47 48
#KBUILD_IMAGE is necessary for make rpm
KBUILD_IMAGE	:=arch/s390/boot/image

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

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

ifeq ($(call cc-option-yn,-mwarn-dynamicstack),y)
84
cflags-$(CONFIG_WARN_DYNAMIC_STACK) += -mwarn-dynamicstack
Linus Torvalds's avatar
Linus Torvalds committed
85 86
endif

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

OBJCOPYFLAGS	:= -O binary

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

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

99
libs-y		+= arch/s390/lib/
Linus Torvalds's avatar
Linus Torvalds committed
100 101 102 103 104
drivers-y	+= drivers/s390/

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

105
boot		:= arch/s390/boot
Linus Torvalds's avatar
Linus Torvalds committed
106

107
all: image bzImage
Linus Torvalds's avatar
Linus Torvalds committed
108 109 110 111

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

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

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

118 119 120 121 122 123
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
124 125 126 127 128 129
archclean:
	$(Q)$(MAKE) $(clean)=$(boot)

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