1 GPXE_URL
=git
://git.etherboot.org
/scm
/gpxe.git
2 GPXE_DIR
=$(BUILD_DIR
)/gpxe
4 GPXE_SRC_DIR
=$(GPXE_DIR
)/gpxe-
$(GPXE_TAG
)/src
5 GPXE_SOURCE
=gpxe-
$(GPXE_TAG
).
tar.bz2
6 GPXE_STAMP_DIR
=$(GPXE_DIR
)/stamps
7 GPXE_LOG_DIR
=$(GPXE_DIR
)/logs
15 # Filter the quotes off the config string
16 GPXE_DRIVER
:= $(shell echo
$(CONFIG_GPXE_DRIVER
) | sed
-e s
:\"::g
)
17 GPXE_OUTPUT
=$(GPXE_SRC_DIR
)/bin
/$(GPXE_DRIVER
).elf
19 ifeq ($(CONFIG_VERBOSE
),y
)
20 GPXE_FETCH_LOG
=/dev
/stdout
21 GPXE_BUILD_LOG
=/dev
/stdout
22 GPXE_INSTALL_LOG
=/dev
/stdout
24 GPXE_FETCH_LOG
=$(GPXE_LOG_DIR
)/fetch.log
25 GPXE_BUILD_LOG
=$(GPXE_LOG_DIR
)/build.log
26 GPXE_INSTALL_LOG
=$(GPXE_LOG_DIR
)/install.log
29 $(SOURCE_DIR
)/$(GPXE_SOURCE
):
30 @ echo
"Fetching the GPXE source..."
31 $(BIN_DIR
)/fetchgit.sh
$(GPXE_URL
) $(SOURCE_DIR
)/gpxe \
32 $(GPXE_TAG
) $(SOURCE_DIR
)/$(GPXE_SOURCE
) gpxe \
33 > $(GPXE_FETCH_LOG
) 2>&1
35 $(GPXE_STAMP_DIR
)/.unpacked
: $(SOURCE_DIR
)/$(GPXE_SOURCE
)
36 @ echo
"Unpacking GPXE..."
37 @
tar -C
$(GPXE_DIR
) -jxf
$(SOURCE_DIR
)/$(GPXE_SOURCE
)
40 $(GPXE_STAMP_DIR
)/.patched
: $(GPXE_STAMP_DIR
)/.unpacked
41 @ echo
"Patching GPXE..."
42 @
$(BIN_DIR
)/doquilt.sh
$(GPXE_SRC_DIR
)/..
$(GPXE_PATCHES
)
45 $(GPXE_STAMP_DIR
)/.configured
: $(GPXE_STAMP_DIR
)/.patched
46 @ cp
$(PACKAGE_DIR
)/gpxe
/conf
/Config.main \
47 $(GPXE_SRC_DIR
)/Config
48 @ cp
$(PACKAGE_DIR
)/gpxe
/conf
/Config.
$(GPXE_ARCH
) \
49 $(GPXE_SRC_DIR
)/arch
/$(GPXE_ARCH
)/Config
52 $(GPXE_OUTPUT
): $(GPXE_STAMP_DIR
)/.configured
53 @ echo
"Building GPXE..."
54 @
( unset CFLAGS
; export EXTRA_CFLAGS
="$(CFLAGS)"; \
55 unset ASFLAGS
; export EXTRA_ASFLAGS
="$(ASFLAGS)"; \
57 $(MAKE
) -C
$(GPXE_SRC_DIR
) ARCH
=$(GPXE_ARCH
) \
58 bin
/$(GPXE_DRIVER
).elf
> $(GPXE_BUILD_LOG
) 2>&1)
60 $(GPXE_STAMP_DIR
) $(GPXE_LOG_DIR
):
63 gpxe
: $(GPXE_STAMP_DIR
) $(GPXE_LOG_DIR
) $(GPXE_OUTPUT
)
64 @ mkdir
-p
$(OUTPUT_DIR
)
65 @ cp
$(GPXE_OUTPUT
) $(PAYLOAD_ELF
)
68 @ echo
"Cleaning GPXE..."
69 @
rm -f
$(GPXE_STAMP_DIR
)/.configured
70 ifneq ($(wildcard $(GPXE_SRC_DIR
)/Makefile
),)
71 @
$(MAKE
) -C
$(GPXE_SRC_DIR
) clean > /dev
/null
2>&1
75 @
rm -rf
$(GPXE_DIR
)/*