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 |
---|