Home | History | Annotate | Download | only in src
      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
    151