aboutsummaryrefslogtreecommitdiff
path: root/make.rules
blob: eeff4f4a41174514c9cfffa9473028945dd1864f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# *****************************************************************************
# * Copyright (c) 2004, 2008 IBM Corporation
# * All rights reserved.
# * This program and the accompanying materials
# * are made available under the terms of the BSD License
# * which accompanies this distribution, and is available at
# * http://www.opensource.org/licenses/bsd-license.php
# *
# * Contributors:
# *     IBM Corporation - initial implementation
# ****************************************************************************/

#############################################################################
# BUILD ENV SETTINGS
#############################################################################

# CROSS is the prefix of your cross-compiler.
# You can override this variable in your environment (export CROSS=...).
ARCH := $(shell uname -p)

# Auto-detect ppc64
ifeq (ppc64,$(findstring ppc64,$(ARCH)))
  ifeq ($(ARCH), ppc64le)
    EXTRA_CC	= -mbig -mabi=elfv1
    EXTRA_LD	= -mbig
  endif
CROSS		?=
else
CROSS		?= powerpc64-linux-
endif

CELLSIZE	?= 64

HOSTCC		?= gcc
HOSTCFLAGS	= -g -Wall -W -O2 -I. -I../include
DD		= dd

ONLY_CC 	= $(CROSS)gcc -m$(CELLSIZE) $(EXTRA_CC)
ONLY_AS 	= $(CROSS)as -m$(CELLSIZE) $(EXTRA_LD)
ONLY_LD 	= $(CROSS)ld -melf$(CELLSIZE)ppc

# Verbose level:
#   V=0 means completely silent
#   V=1 means brief output
#   V=2 means full output
V		?= 1

ifeq ($(V),0)
Q		:= @
MAKEFLAGS	+= --silent
MAKE		+= -s
endif

ifeq ($(V),1)
MAKEFLAGS	+= --silent
MAKE		+= -s
CC		= printf "\t[CC]\t%s\n" `basename "$@"`; $(ONLY_CC)
AS		= printf "\t[AS]\t%s\n" `basename "$@"`; $(ONLY_AS)
LD		= printf "\t[LD]\t%s\n" `basename "$@"`; $(ONLY_LD)
CLEAN		= printf "\t[CLEAN]\t%s\n" "$(DIRECTORY)$$dir"
else
CC		= $(ONLY_CC)
AS		= $(ONLY_AS)
LD		= $(ONLY_LD)
CLEAN		= echo -n
endif

OBJCOPY 	?= $(CROSS)objcopy
OBJDUMP 	?= $(CROSS)objdump
STRIP		?= $(CROSS)strip
AR		?= $(CROSS)ar
RANLIB		?= $(CROSS)ranlib
CPP		?= $(CROSS)cpp

WARNFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -Wformat-security -Wextra -Wno-unused-parameter
CFLAGS ?= -g -O2 -fno-builtin -ffreestanding -nostdinc -msoft-float \
	  -fno-strict-aliasing -mno-altivec -mabi=no-altivec \
	  -fno-stack-protector -fno-asynchronous-unwind-tables $(WARNFLAGS) \
	  -fshort-wchar

export CC AS LD CLEAN OBJCOPY OBJDUMP STRIP AR RANLIB CFLAGS