Makefile 3.22 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 18 19 20 21
LDFLAGS		:= -m elf_s390
CFLAGS		+= -m31
AFLAGS		+= -m31
UTS_MACHINE	:= s390
STACK_SIZE	:= 8192
22
CHECKFLAGS	+= -D__s390__
23
else
Linus Torvalds's avatar
Linus Torvalds committed
24 25 26 27 28 29
LDFLAGS		:= -m elf64_s390
MODFLAGS	+= -fpic -D__PIC__
CFLAGS		+= -m64
AFLAGS		+= -m64
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)
Linus Torvalds's avatar
Linus Torvalds committed
37

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

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

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

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

CFLAGS		+= -mbackchain -msoft-float $(cflags-y)
CFLAGS 		+= -pipe -fno-strength-reduce -Wno-sign-compare 
AFLAGS		+= $(aflags-y)

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

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

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

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

98
boot		:= arch/s390/boot
Linus Torvalds's avatar
Linus Torvalds committed
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114

all: image

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

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

archclean:
	$(Q)$(MAKE) $(clean)=$(boot)

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