switched to using uclibc SVN snapshots
[kvm-coreboot.git] / packages / gpxe / gpxe.mk
blob016c3dac5332dbb9cfacd5ac8747864eb508cce7
1 GPXE_URL=git://git.etherboot.org/scm/gpxe.git
2 GPXE_DIR=$(BUILD_DIR)/gpxe
3 GPXE_TAG=master
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
9 ifeq ($(GPXE_ARCH),)
10 GPXE_ARCH=i386
11 endif
13 GPXE_PATCHES =
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
23 else
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
27 endif
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)
38 @ touch $@
40 $(GPXE_STAMP_DIR)/.patched: $(GPXE_STAMP_DIR)/.unpacked
41 @ echo "Patching GPXE..."
42 @ $(BIN_DIR)/doquilt.sh $(GPXE_SRC_DIR)/.. $(GPXE_PATCHES)
43 @ touch $@
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
50 @ touch $@
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)"; \
56 unset LDFLAGS; \
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):
61 @ mkdir -p $@
63 gpxe: $(GPXE_STAMP_DIR) $(GPXE_LOG_DIR) $(GPXE_OUTPUT)
64 @ mkdir -p $(OUTPUT_DIR)
65 @ cp $(GPXE_OUTPUT) $(PAYLOAD_ELF)
67 gpxe-clean:
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
72 endif
74 gpxe-distclean:
75 @ rm -rf $(GPXE_DIR)/*