~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/ipxe/src/Makefile

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
###############################################################################
 
2
#
 
3
# Initialise various variables
 
4
#
 
5
 
 
6
CLEANUP         :=
 
7
CFLAGS          :=
 
8
ASFLAGS         :=
 
9
LDFLAGS         :=
 
10
HOST_CFLAGS     :=
 
11
MAKEDEPS        := Makefile
 
12
CROSS_COMPILE   ?= $(CROSS)
 
13
 
 
14
###############################################################################
 
15
#
 
16
# Locations of tools
 
17
#
 
18
HOST_CC         := gcc
 
19
RM              := rm -f
 
20
TOUCH           := touch
 
21
MKDIR           := mkdir
 
22
CP              := cp
 
23
ECHO            := echo
 
24
PRINTF          := printf
 
25
PERL            := perl
 
26
TRUE            := true
 
27
CC              := $(CROSS_COMPILE)gcc
 
28
CPP             := $(CC) -E
 
29
AS              := $(CROSS_COMPILE)as
 
30
LD              := $(CROSS_COMPILE)ld
 
31
SIZE            := $(CROSS_COMPILE)size
 
32
AR              := $(CROSS_COMPILE)ar
 
33
RANLIB          := $(CROSS_COMPILE)ranlib
 
34
OBJCOPY         := $(CROSS_COMPILE)objcopy
 
35
NM              := $(CROSS_COMPILE)nm
 
36
OBJDUMP         := $(CROSS_COMPILE)objdump
 
37
OPENSSL         := openssl
 
38
CSPLIT          := csplit
 
39
PARSEROM        := ./util/parserom.pl
 
40
FIXROM          := ./util/fixrom.pl
 
41
SYMCHECK        := ./util/symcheck.pl
 
42
SORTOBJDUMP     := ./util/sortobjdump.pl
 
43
PADIMG          := ./util/padimg.pl
 
44
LICENCE         := ./util/licence.pl
 
45
NRV2B           := ./util/nrv2b
 
46
ZBIN            := ./util/zbin
 
47
ELF2EFI32       := ./util/elf2efi32
 
48
ELF2EFI64       := ./util/elf2efi64
 
49
EFIROM          := ./util/efirom
 
50
EFIFATBIN       := ./util/efifatbin
 
51
ICCFIX          := ./util/iccfix
 
52
EINFO           := ./util/einfo
 
53
GENKEYMAP       := ./util/genkeymap.pl
 
54
DOXYGEN         := doxygen
 
55
LCAB            := lcab
 
56
 
 
57
###############################################################################
 
58
#
 
59
# SRCDIRS lists all directories containing source files.
 
60
#
 
61
SRCDIRS         :=
 
62
SRCDIRS         += libgcc
 
63
SRCDIRS         += core
 
64
SRCDIRS         += net net/oncrpc net/tcp net/udp net/infiniband net/80211
 
65
SRCDIRS         += image
 
66
SRCDIRS         += drivers/bus
 
67
SRCDIRS         += drivers/net
 
68
SRCDIRS         += drivers/net/e1000
 
69
SRCDIRS         += drivers/net/e1000e
 
70
SRCDIRS         += drivers/net/igb
 
71
SRCDIRS         += drivers/net/igbvf
 
72
SRCDIRS         += drivers/net/phantom
 
73
SRCDIRS         += drivers/net/rtl818x
 
74
SRCDIRS         += drivers/net/ath
 
75
SRCDIRS         += drivers/net/ath/ath5k
 
76
SRCDIRS         += drivers/net/ath/ath9k
 
77
SRCDIRS         += drivers/net/vxge
 
78
SRCDIRS         += drivers/net/efi
 
79
SRCDIRS         += drivers/net/tg3
 
80
SRCDIRS         += drivers/block
 
81
SRCDIRS         += drivers/nvs
 
82
SRCDIRS         += drivers/bitbash
 
83
SRCDIRS         += drivers/infiniband
 
84
SRCDIRS         += drivers/infiniband/mlx_utils_flexboot/src
 
85
SRCDIRS         += drivers/infiniband/mlx_utils/src/public
 
86
SRCDIRS         += drivers/infiniband/mlx_utils/mlx_lib/mlx_reg_access
 
87
SRCDIRS         += drivers/infiniband/mlx_utils/mlx_lib/mlx_nvconfig
 
88
SRCDIRS         += drivers/infiniband/mlx_utils/mlx_lib/mlx_vmac
 
89
SRCDIRS         += drivers/infiniband/mlx_utils/mlx_lib/mlx_blink_leds
 
90
SRCDIRS         += drivers/infiniband/mlx_utils/mlx_lib/mlx_link_speed
 
91
SRCDIRS         += drivers/infiniband/mlx_nodnic/src
 
92
SRCDIRS         += drivers/usb
 
93
SRCDIRS         += interface/pxe interface/efi interface/smbios
 
94
SRCDIRS         += interface/bofm
 
95
SRCDIRS         += interface/xen
 
96
SRCDIRS         += interface/hyperv
 
97
SRCDIRS         += tests
 
98
SRCDIRS         += crypto crypto/mishmash
 
99
SRCDIRS         += hci hci/commands hci/tui
 
100
SRCDIRS         += hci/mucurses hci/mucurses/widgets
 
101
SRCDIRS         += hci/keymap
 
102
SRCDIRS         += usr
 
103
SRCDIRS         += config
 
104
 
 
105
# NON_AUTO_SRCS lists files that are excluded from the normal
 
106
# automatic build system.
 
107
#
 
108
NON_AUTO_SRCS   :=
 
109
NON_AUTO_SRCS   += core/version.c
 
110
NON_AUTO_SRCS   += drivers/net/prism2.c
 
111
 
 
112
# INCDIRS lists the include path
 
113
#
 
114
INCDIRS         :=
 
115
INCDIRS         += include .
 
116
 
 
117
###############################################################################
 
118
#
 
119
# Default build target: build the most common targets and print out a
 
120
# helpfully suggestive message
 
121
#
 
122
ALL             := bin/blib.a bin/ipxe.dsk bin/ipxe.lkrn bin/ipxe.iso \
 
123
                   bin/ipxe.usb bin/ipxe.pxe bin/undionly.kpxe bin/rtl8139.rom \
 
124
                   bin/8086100e.mrom bin/80861209.rom bin/10500940.rom \
 
125
                   bin/10222000.rom bin/10ec8139.rom bin/1af41000.rom \
 
126
                   bin/8086100f.mrom bin/808610d3.mrom bin/15ad07b0.rom
 
127
 
 
128
all : $(ALL)
 
129
        @$(ECHO) '==========================================================='
 
130
        @$(ECHO)
 
131
        @$(ECHO) 'To create a bootable floppy, type'
 
132
        @$(ECHO) '    cat bin/ipxe.dsk > /dev/fd0'
 
133
        @$(ECHO) 'where /dev/fd0 is your floppy drive.  This will erase any'
 
134
        @$(ECHO) 'data already on the disk.'
 
135
        @$(ECHO)
 
136
        @$(ECHO) 'To create a bootable USB key, type'
 
137
        @$(ECHO) '    cat bin/ipxe.usb > /dev/sdX'
 
138
        @$(ECHO) 'where /dev/sdX is your USB key, and is *not* a real hard'
 
139
        @$(ECHO) 'disk on your system.  This will erase any data already on'
 
140
        @$(ECHO) 'the USB key.'
 
141
        @$(ECHO)
 
142
        @$(ECHO) 'To create a bootable CD-ROM, burn the ISO image '
 
143
        @$(ECHO) 'bin/ipxe.iso to a blank CD-ROM.'
 
144
        @$(ECHO)
 
145
        @$(ECHO) 'These images contain drivers for all supported cards.  You'
 
146
        @$(ECHO) 'can build more customised images, and ROM images, using'
 
147
        @$(ECHO) '    make bin/<rom-name>.<output-format>'
 
148
        @$(ECHO)
 
149
        @$(ECHO) '==========================================================='
 
150
 
 
151
###############################################################################
 
152
#
 
153
# Comprehensive build target: build a selection of cross-platform
 
154
# targets to expose potential build errors that show up only on
 
155
# certain platforms
 
156
#
 
157
everything :
 
158
        $(Q)$(MAKE) --no-print-directory $(ALL) \
 
159
                bin/3c509.rom bin/intel.rom bin/intel.mrom \
 
160
                bin-x86_64-pcbios/8086100e.mrom bin-x86_64-pcbios/intel.rom \
 
161
                bin-x86_64-pcbios/ipxe.usb bin-x86_64-pcbios/ipxe.pxe \
 
162
                bin-x86_64-pcbios/undionly.kpxe \
 
163
                bin-i386-efi/ipxe.efi bin-i386-efi/ipxe.efidrv \
 
164
                bin-i386-efi/ipxe.efirom \
 
165
                bin-x86_64-efi/ipxe.efi bin-x86_64-efi/ipxe.efidrv \
 
166
                bin-x86_64-efi/ipxe.efirom \
 
167
                bin-i386-linux/tap.linux bin-x86_64-linux/tap.linux \
 
168
                bin-i386-linux/tests.linux bin-x86_64-linux/tests.linux
 
169
 
 
170
###############################################################################
 
171
#
 
172
# VMware build target: all ROMs used with VMware
 
173
#
 
174
vmware : bin/8086100f.mrom bin/808610d3.mrom bin/10222000.rom bin/15ad07b0.rom
 
175
        @$(ECHO) '==========================================================='
 
176
        @$(ECHO) 
 
177
        @$(ECHO) 'Available ROMs:'
 
178
        @$(ECHO) '    bin/8086100f.mrom -- intel/e1000'
 
179
        @$(ECHO) '    bin/808610d3.mrom -- intel/e1000e'
 
180
        @$(ECHO) '    bin/10222000.rom  -- vlance/pcnet32'
 
181
        @$(ECHO) '    bin/15ad07b0.rom  -- vmxnet3'
 
182
        @$(ECHO) 
 
183
        @$(ECHO) 'For more information, see http://ipxe.org/howto/vmware'
 
184
        @$(ECHO)
 
185
        @$(ECHO) '==========================================================='
 
186
 
 
187
###############################################################################
 
188
#
 
189
# Build targets that do nothing but might be tried by users
 
190
#
 
191
configure :
 
192
        @$(ECHO) "No configuration needed."
 
193
 
 
194
install :
 
195
        @$(ECHO) "No installation required."
 
196
 
 
197
###############################################################################
 
198
#
 
199
# Version number calculations
 
200
#
 
201
VERSION_MAJOR   = 1
 
202
VERSION_MINOR   = 0
 
203
VERSION_PATCH   = 0
 
204
EXTRAVERSION    = +
 
205
MM_VERSION      = $(VERSION_MAJOR).$(VERSION_MINOR)
 
206
VERSION         = $(MM_VERSION).$(VERSION_PATCH)$(EXTRAVERSION)
 
207
ifneq ($(wildcard ../.git),)
 
208
GITVERSION := $(shell git describe --always --abbrev=1 --match "" 2>/dev/null)
 
209
VERSION         += ($(GITVERSION))
 
210
endif
 
211
version :
 
212
        @$(ECHO) "$(VERSION)"
 
213
 
 
214
###############################################################################
 
215
#
 
216
# Drag in the bulk of the build system
 
217
#
 
218
 
 
219
MAKEDEPS        += Makefile.housekeeping
 
220
include Makefile.housekeeping