[e16e8f2] | 1 | ############################################################################### |
---|
| 2 | # |
---|
| 3 | # Initialise various variables |
---|
| 4 | # |
---|
| 5 | |
---|
| 6 | CLEANUP := |
---|
| 7 | CFLAGS := |
---|
| 8 | ASFLAGS := |
---|
| 9 | LDFLAGS := |
---|
| 10 | MAKEDEPS := Makefile |
---|
| 11 | |
---|
| 12 | ############################################################################### |
---|
| 13 | # |
---|
| 14 | # Locations of tools |
---|
| 15 | # |
---|
| 16 | HOST_CC := gcc |
---|
| 17 | RM := rm -f |
---|
| 18 | TOUCH := touch |
---|
| 19 | MKDIR := mkdir |
---|
| 20 | CP := cp |
---|
| 21 | ECHO := echo |
---|
| 22 | PRINTF := printf |
---|
| 23 | PERL := /usr/bin/perl |
---|
| 24 | CC := $(CROSS_COMPILE)gcc |
---|
| 25 | CPP := $(CC) -E |
---|
| 26 | AS := $(CROSS_COMPILE)as |
---|
| 27 | LD := $(CROSS_COMPILE)ld |
---|
| 28 | SIZE := $(CROSS_COMPILE)size |
---|
| 29 | AR := $(CROSS_COMPILE)ar |
---|
| 30 | RANLIB := $(CROSS_COMPILE)ranlib |
---|
| 31 | OBJCOPY := $(CROSS_COMPILE)objcopy |
---|
| 32 | NM := $(CROSS_COMPILE)nm |
---|
| 33 | OBJDUMP := $(CROSS_COMPILE)objdump |
---|
| 34 | PARSEROM := $(PERL) ./util/parserom.pl |
---|
| 35 | MAKEROM := $(PERL) ./util/makerom.pl |
---|
| 36 | SYMCHECK := $(PERL) ./util/symcheck.pl |
---|
| 37 | SORTOBJDUMP := $(PERL) ./util/sortobjdump.pl |
---|
| 38 | PADIMG := $(PERL) ./util/padimg.pl |
---|
| 39 | LICENCE := $(PERL) ./util/licence.pl |
---|
| 40 | NRV2B := ./util/nrv2b |
---|
| 41 | ZBIN := ./util/zbin |
---|
| 42 | ELF2EFI32 := ./util/elf2efi32 |
---|
| 43 | ELF2EFI64 := ./util/elf2efi64 |
---|
| 44 | EFIROM := ./util/efirom |
---|
| 45 | ICCFIX := ./util/iccfix |
---|
| 46 | DOXYGEN := doxygen |
---|
| 47 | BINUTILS_DIR := /usr |
---|
| 48 | BFD_DIR := $(BINUTILS_DIR) |
---|
| 49 | |
---|
| 50 | ############################################################################### |
---|
| 51 | # |
---|
| 52 | # SRCDIRS lists all directories containing source files. |
---|
| 53 | # |
---|
| 54 | SRCDIRS := |
---|
| 55 | SRCDIRS += libgcc |
---|
| 56 | SRCDIRS += core |
---|
| 57 | SRCDIRS += net net/tcp net/udp net/infiniband net/80211 |
---|
| 58 | SRCDIRS += image |
---|
| 59 | SRCDIRS += drivers/bus |
---|
| 60 | SRCDIRS += drivers/net |
---|
| 61 | SRCDIRS += drivers/net/e1000 |
---|
| 62 | SRCDIRS += drivers/net/phantom |
---|
| 63 | SRCDIRS += drivers/net/rtl818x |
---|
| 64 | SRCDIRS += drivers/net/ath5k |
---|
| 65 | SRCDIRS += drivers/block |
---|
| 66 | SRCDIRS += drivers/nvs |
---|
| 67 | SRCDIRS += drivers/bitbash |
---|
| 68 | SRCDIRS += drivers/infiniband |
---|
| 69 | SRCDIRS += interface/pxe interface/efi interface/smbios |
---|
| 70 | SRCDIRS += tests |
---|
| 71 | SRCDIRS += crypto crypto/axtls crypto/matrixssl |
---|
| 72 | SRCDIRS += hci hci/commands hci/tui |
---|
| 73 | SRCDIRS += hci/mucurses hci/mucurses/widgets |
---|
| 74 | SRCDIRS += usr |
---|
| 75 | SRCDIRS += config |
---|
| 76 | |
---|
| 77 | # NON_AUTO_SRCS lists files that are excluded from the normal |
---|
| 78 | # automatic build system. |
---|
| 79 | # |
---|
| 80 | NON_AUTO_SRCS := |
---|
| 81 | NON_AUTO_SRCS += drivers/net/prism2.c |
---|
| 82 | |
---|
| 83 | # INCDIRS lists the include path |
---|
| 84 | # |
---|
| 85 | INCDIRS := |
---|
| 86 | INCDIRS += include . |
---|
| 87 | |
---|
| 88 | ############################################################################### |
---|
| 89 | # |
---|
| 90 | # Default build target: build the most common targets and print out a |
---|
| 91 | # helpfully suggestive message |
---|
| 92 | # |
---|
| 93 | all : bin/blib.a bin/gpxe.dsk bin/gpxe.iso bin/gpxe.usb bin/undionly.kpxe |
---|
| 94 | @$(ECHO) '===========================================================' |
---|
| 95 | @$(ECHO) |
---|
| 96 | @$(ECHO) 'To create a bootable floppy, type' |
---|
| 97 | @$(ECHO) ' cat bin/gpxe.dsk > /dev/fd0' |
---|
| 98 | @$(ECHO) 'where /dev/fd0 is your floppy drive. This will erase any' |
---|
| 99 | @$(ECHO) 'data already on the disk.' |
---|
| 100 | @$(ECHO) |
---|
| 101 | @$(ECHO) 'To create a bootable USB key, type' |
---|
| 102 | @$(ECHO) ' cat bin/gpxe.usb > /dev/sdX' |
---|
| 103 | @$(ECHO) 'where /dev/sdX is your USB key, and is *not* a real hard' |
---|
| 104 | @$(ECHO) 'disk on your system. This will erase any data already on' |
---|
| 105 | @$(ECHO) 'the USB key.' |
---|
| 106 | @$(ECHO) |
---|
| 107 | @$(ECHO) 'To create a bootable CD-ROM, burn the ISO image ' |
---|
| 108 | @$(ECHO) 'bin/gpxe.iso to a blank CD-ROM.' |
---|
| 109 | @$(ECHO) |
---|
| 110 | @$(ECHO) 'These images contain drivers for all supported cards. You' |
---|
| 111 | @$(ECHO) 'can build more customised images, and ROM images, using' |
---|
| 112 | @$(ECHO) ' make bin/<rom-name>.<output-format>' |
---|
| 113 | @$(ECHO) |
---|
| 114 | @$(ECHO) '===========================================================' |
---|
| 115 | |
---|
| 116 | ############################################################################### |
---|
| 117 | # |
---|
| 118 | # Build targets that do nothing but might be tried by users |
---|
| 119 | # |
---|
| 120 | configure : |
---|
| 121 | @$(ECHO) "No configuration needed." |
---|
| 122 | |
---|
| 123 | install : |
---|
| 124 | @$(ECHO) "No installation required." |
---|
| 125 | |
---|
| 126 | ############################################################################### |
---|
| 127 | # |
---|
| 128 | # Version number calculations |
---|
| 129 | # |
---|
| 130 | VERSION_MAJOR = 1 |
---|
| 131 | VERSION_MINOR = 0 |
---|
| 132 | VERSION_PATCH = 0 |
---|
| 133 | EXTRAVERSION = |
---|
| 134 | MM_VERSION = $(VERSION_MAJOR).$(VERSION_MINOR) |
---|
| 135 | VERSION = $(MM_VERSION).$(VERSION_PATCH)$(EXTRAVERSION) |
---|
| 136 | CFLAGS += -DVERSION_MAJOR=$(VERSION_MAJOR) \ |
---|
| 137 | -DVERSION_MINOR=$(VERSION_MINOR) \ |
---|
| 138 | -DVERSION_PATCH=$(VERSION_PATCH) \ |
---|
| 139 | -DVERSION=\"$(VERSION)\" |
---|
| 140 | IDENT = '$(@F) $(VERSION) (GPL) etherboot.org' |
---|
| 141 | version : |
---|
| 142 | @$(ECHO) $(VERSION) |
---|
| 143 | |
---|
| 144 | ############################################################################### |
---|
| 145 | # |
---|
| 146 | # Drag in the bulk of the build system |
---|
| 147 | # |
---|
| 148 | |
---|
| 149 | MAKEDEPS += Makefile.housekeeping |
---|
| 150 | include Makefile.housekeeping |
---|