Blame view

config.mk 4.69 KB
e22117437   wdenk   Initial revision
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  #
  # (C) Copyright 2000
  # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  #
  # See file CREDITS for list of people who contributed to this
  # project.
  #
  # This program is free software; you can redistribute it and/or
  # modify it under the terms of the GNU General Public License as
  # published by the Free Software Foundation; either version 2 of
  # the License, or (at your option) any later version.
  #
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU General Public License for more details.
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
  # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  # MA 02111-1307 USA
  #
  
  #########################################################################
592c5cabe   wdenk   Patch by Murray J...
25
26
27
28
  # clean the slate ...
  PLATFORM_RELFLAGS =
  PLATFORM_CPPFLAGS =
  PLATFORM_LDFLAGS =
e22117437   wdenk   Initial revision
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
  #
  # When cross-compiling on NetBSD, we have to define __PPC__ or else we
  # will pick up a va_list declaration that is incompatible with the
  # actual argument lists emitted by the compiler.
  #
  # [Tested on NetBSD/i386 1.5 + cross-powerpc-netbsd-1.3]
  
  ifeq ($(ARCH),ppc)
  ifeq ($(CROSS_COMPILE),powerpc-netbsd-)
  PLATFORM_CPPFLAGS+= -D__PPC__
  endif
  ifeq ($(CROSS_COMPILE),powerpc-openbsd-)
  PLATFORM_CPPFLAGS+= -D__PPC__
  endif
  endif
  
  ifeq ($(ARCH),arm)
  ifeq ($(CROSS_COMPILE),powerpc-netbsd-)
  PLATFORM_CPPFLAGS+= -D__ARM__
  endif
  ifeq ($(CROSS_COMPILE),powerpc-openbsd-)
  PLATFORM_CPPFLAGS+= -D__ARM__
  endif
  endif
  
  ifdef	ARCH
  sinclude $(TOPDIR)/$(ARCH)_config.mk	# include architecture dependend rules
  endif
  ifdef	CPU
  sinclude $(TOPDIR)/cpu/$(CPU)/config.mk	# include  CPU	specific rules
  endif
  ifdef	VENDOR
  BOARDDIR = $(VENDOR)/$(BOARD)
  else
  BOARDDIR = $(BOARD)
  endif
  ifdef	BOARD
  sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk	# include board specific rules
  endif
  
  #########################################################################
  
  CONFIG_SHELL	:= $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
  		    else if [ -x /bin/bash ]; then echo /bin/bash; \
  		    else echo sh; fi ; fi)
  
  ifeq ($(HOSTOS)-$(HOSTARCH),darwin-ppc)
  HOSTCC		= cc
  else
  HOSTCC		= gcc
  endif
  HOSTCFLAGS	= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
  HOSTSTRIP	= strip
  
  #########################################################################
  
  #
  # Include the make variables (CC, etc...)
  #
  AS	= $(CROSS_COMPILE)as
  LD	= $(CROSS_COMPILE)ld
  CC	= $(CROSS_COMPILE)gcc
  CPP	= $(CC) -E
  AR	= $(CROSS_COMPILE)ar
  NM	= $(CROSS_COMPILE)nm
  STRIP	= $(CROSS_COMPILE)strip
  OBJCOPY = $(CROSS_COMPILE)objcopy
  OBJDUMP = $(CROSS_COMPILE)objdump
  RANLIB	= $(CROSS_COMPILE)RANLIB
  
  RELFLAGS= $(PLATFORM_RELFLAGS)
  DBGFLAGS= -g #-DDEBUG
  OPTFLAGS= -Os #-fomit-frame-pointer
6dd652fa4   wdenk   Patches by Murray...
102
  ifndef LDSCRIPT
e22117437   wdenk   Initial revision
103
104
  #LDSCRIPT := board/$(BOARDDIR)/u-boot.lds.debug
  LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
6dd652fa4   wdenk   Patches by Murray...
105
106
  endif
  OBJCFLAGS += --gap-fill=0xff
e22117437   wdenk   Initial revision
107

b783edaee   wdenk   * Header file cle...
108
  gccincdir := $(shell $(CC) -print-file-name=include)
e22117437   wdenk   Initial revision
109
110
111
  CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS)		\
  	-D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE)		\
  	-I$(TOPDIR)/include				\
b783edaee   wdenk   * Header file cle...
112
  	-fno-builtin -nostdinc -isystem $(gccincdir)	\
e22117437   wdenk   Initial revision
113
114
115
116
117
118
119
120
121
122
123
  	-pipe $(PLATFORM_CPPFLAGS)
  
  ifdef BUILD_TAG
  CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes \
  	-DBUILD_TAG='"$(BUILD_TAG)"'
  else
  CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes
  endif
  
  AFLAGS_DEBUG := -Wa,-gstabs
  AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS)
7f6c2cbc2   wdenk   * Vince Husovsky,...
124
  LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
e22117437   wdenk   Initial revision
125
126
127
128
129
130
131
132
133
134
135
136
137
138
  
  # Location of a usable BFD library, where we define "usable" as
  # "built for ${HOST}, supports ${TARGET}".  Sensible values are
  # - When cross-compiling: the root of the cross-environment
  # - Linux/ppc (native): /usr
  # - NetBSD/ppc (native): you lose ... (must extract these from the
  #   binutils build directory, plus the native and U-Boot include
  #   files don't like each other)
  #
  # So far, this is used only by tools/gdb/Makefile.
  
  ifeq ($(HOSTOS)-$(HOSTARCH),darwin-ppc)
  BFD_ROOT_DIR =		/usr/local/tools
  else
ea909b760   wdenk   * Added support f...
139
140
141
142
  ifeq ($(HOSTARCH),$(ARCH))
  # native
  BFD_ROOT_DIR =		/usr
  else
e22117437   wdenk   Initial revision
143
144
  #BFD_ROOT_DIR =		/LinuxPPC/CDK		# Linux/i386
  #BFD_ROOT_DIR =		/usr/pkg/cross		# NetBSD/i386
e22117437   wdenk   Initial revision
145
146
  BFD_ROOT_DIR =		/opt/powerpc
  endif
ea909b760   wdenk   * Added support f...
147
  endif
e22117437   wdenk   Initial revision
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
  
  #########################################################################
  
  export	CONFIG_SHELL HPATH HOSTCC HOSTCFLAGS CROSS_COMPILE \
  	AS LD CC CPP AR NM STRIP OBJCOPY OBJDUMP \
  	MAKE
  export	TEXT_BASE PLATFORM_CPPFLAGS PLATFORM_RELFLAGS CPPFLAGS CFLAGS AFLAGS
  
  #########################################################################
  
  %.s:	%.S
  	$(CPP) $(AFLAGS) -o $@ $(CURDIR)/$<
  %.o:	%.S
  	$(CC) $(AFLAGS) -c -o $@ $(CURDIR)/$<
  %.o:	%.c
  	$(CC) $(CFLAGS) -c -o $@ $<
  
  #########################################################################