Merge /u/esben/gnu-efi/ branch intptr-t-fix into master
[syslinux-gnu-efi.git] / Makefile
blob01d1a01369ed66f788ce672f55b6f521b530b202
2 # Copyright (C) 1999-2007 Hewlett-Packard Co.
3 # Contributed by David Mosberger <davidm@hpl.hp.com>
4 # Contributed by Stephane Eranian <eranian@hpl.hp.com>
6 # All rights reserved.
8 # Redistribution and use in source and binary forms, with or without
9 # modification, are permitted provided that the following conditions
10 # are met:
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.
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.
37 VERSION = 3.0.9
39 MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
40 SRCDIR = $(dir $(MKFILE_PATH))
42 VPATH = $(SRCDIR)
44 include $(SRCDIR)/Make.defaults
46 SUBDIRS = lib gnuefi inc apps
47 gnuefi: lib
49 all: check_gcc $(SUBDIRS)
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)
78 $(SUBDIRS):
79 mkdir -p $(OBJDIR)/$@
80 $(MAKE) -C $(OBJDIR)/$@ -f $(SRCDIR)/$@/Makefile SRCDIR=$(SRCDIR)/$@ ARCH=$(ARCH)
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
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
95 .PHONY: $(SUBDIRS) clean depend
98 # on both platforms you must use gcc 3.0 or higher
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
106 include $(SRCDIR)/Make.rules
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"
118 tag:
119 git tag $(VERSION) refs/heads/master
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"