Home | History | Annotate | Line # | Download | only in dist
      1 #
      2 #  Copyright (C) 1999-2007 Hewlett-Packard Co.
      3 #	Contributed by David Mosberger <davidm (at] hpl.hp.com>
      4 #	Contributed by Stephane Eranian <eranian (at] hpl.hp.com>
      5 #
      6 #    All rights reserved.
      7 #
      8 #    Redistribution and use in source and binary forms, with or without
      9 #    modification, are permitted provided that the following conditions
     10 #    are met:
     11 #
     12 #    * Redistributions of source code must retain the above copyright
     13 #      notice, this list of conditions and the following disclaimer.
     14 #    * Redistributions in binary form must reproduce the above
     15 #      copyright notice, this list of conditions and the following
     16 #      disclaimer in the documentation and/or other materials
     17 #      provided with the distribution.
     18 #    * Neither the name of Hewlett-Packard Co. nor the names of its
     19 #      contributors may be used to endorse or promote products derived
     20 #      from this software without specific prior written permission.
     21 #
     22 #    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
     23 #    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
     24 #    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     25 #    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     26 #    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
     27 #    BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
     28 #    OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     29 #    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     30 #    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     31 #    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
     32 #    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
     33 #    THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     34 #    SUCH DAMAGE.
     35 #
     36 
     37 VERSION = 3.0.14
     38 
     39 MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
     40 SRCDIR = $(dir $(MKFILE_PATH))
     41 
     42 VPATH = $(SRCDIR)
     43 
     44 include $(SRCDIR)/Make.defaults
     45 
     46 SUBDIRS = lib gnuefi inc apps
     47 gnuefi: lib
     48 
     49 all:	check_gcc $(SUBDIRS)
     50 
     51 mkvars:
     52 	@echo AR=$(AR)
     53 	@echo ARCH=$(ARCH)
     54 	@echo ARCH3264=$(ARCH3264)
     55 	@echo AS=$(AS)
     56 	@echo ASFLAGS=$(ASFLAGS)
     57 	@echo CC=$(CC)
     58 	@echo CFLAGS=$(CFLAGS)
     59 	@echo CPPFLAGS=$(CPPFLAGS)
     60 	@echo GCCMINOR=$(GCCMINOR)
     61 	@echo GCCNEWENOUGH=$(GCCNEWENOUGH)
     62 	@echo GCCVERSION=$(GCCVERSION)
     63 	@echo HOSTARCH=$(HOSTARCH)
     64 	@echo INCDIR=$(INCDIR)
     65 	@echo INSTALL=$(INSTALL)
     66 	@echo INSTALLROOT=$(INSTALLROOT)
     67 	@echo LD=$(LD)
     68 	@echo LDFLAGS=$(LDFLAGS)
     69 	@echo LIBDIR=$(LIBDIR)
     70 	@echo OBJCOPY=$(OBJCOPY)
     71 	@echo OS=$(OS)
     72 	@echo prefix=$(prefix)
     73 	@echo PREFIX=$(PREFIX)
     74 	@echo RANLIB=$(RANLIB)
     75 	@echo SRCDIR=$(SRCDIR)
     76 	@echo TOPDIR=$(TOPDIR)
     77 
     78 $(SUBDIRS):
     79 	mkdir -p $(OBJDIR)/$@
     80 	$(MAKE) -C $(OBJDIR)/$@ -f $(SRCDIR)/$@/Makefile SRCDIR=$(SRCDIR)/$@ ARCH=$(ARCH)
     81 
     82 clean:
     83 	rm -f *~
     84 	@for d in $(SUBDIRS); do \
     85 		if [ -d $(OBJDIR)/$$d ]; then \
     86 			$(MAKE) -C $(OBJDIR)/$$d -f $(SRCDIR)/$$d/Makefile SRCDIR=$(SRCDIR)/$$d clean; \
     87 		fi; \
     88 	done
     89 
     90 install:
     91 	@for d in $(SUBDIRS); do \
     92 		mkdir -p $(OBJDIR)/$$d; \
     93 		$(MAKE) -C $(OBJDIR)/$$d -f $(SRCDIR)/$$d/Makefile SRCDIR=$(SRCDIR)/$$d install; done
     94 
     95 .PHONY:	$(SUBDIRS) clean depend
     96 
     97 #
     98 # on both platforms you must use gcc 3.0 or higher 
     99 #
    100 check_gcc:
    101 ifeq ($(GCC_VERSION),2)
    102 	@echo "you need to use a version of gcc >= 3.0, you are using `$(CC) --version`"
    103 	@exit 1
    104 endif
    105 
    106 include $(SRCDIR)/Make.rules
    107 
    108 test-archive:
    109 	@rm -rf /tmp/gnu-efi-$(VERSION) /tmp/gnu-efi-$(VERSION)-tmp
    110 	@mkdir -p /tmp/gnu-efi-$(VERSION)-tmp
    111 	@git archive --format=tar $(shell git branch | awk '/^*/ { print $$2 }') | ( cd /tmp/gnu-efi-$(VERSION)-tmp/ ; tar x )
    112 	@git diff | ( cd /tmp/gnu-efi-$(VERSION)-tmp/ ; patch -s -p1 -b -z .gitdiff )
    113 	@mv /tmp/gnu-efi-$(VERSION)-tmp/ /tmp/gnu-efi-$(VERSION)/
    114 	@dir=$$PWD; cd /tmp; tar -c --bzip2 -f $$dir/gnu-efi-$(VERSION).tar.bz2 gnu-efi-$(VERSION)
    115 	@rm -rf /tmp/gnu-efi-$(VERSION)
    116 	@echo "The archive is in gnu-efi-$(VERSION).tar.bz2"
    117 
    118 tag:
    119 	git tag $(VERSION) refs/heads/master
    120 
    121 archive: tag
    122 	@rm -rf /tmp/gnu-efi-$(VERSION) /tmp/gnu-efi-$(VERSION)-tmp
    123 	@mkdir -p /tmp/gnu-efi-$(VERSION)-tmp
    124 	@git archive --format=tar $(VERSION) | ( cd /tmp/gnu-efi-$(VERSION)-tmp/ ; tar x )
    125 	@mv /tmp/gnu-efi-$(VERSION)-tmp/ /tmp/gnu-efi-$(VERSION)/
    126 	@dir=$$PWD; cd /tmp; tar -c --bzip2 -f $$dir/gnu-efi-$(VERSION).tar.bz2 gnu-efi-$(VERSION)
    127 	@rm -rf /tmp/gnu-efi-$(VERSION)
    128 	@echo "The archive is in gnu-efi-$(VERSION).tar.bz2"
    129 
    130