xref: /DragonStub/Makefile (revision f412fd2a1a248b546b7085648dece8d908077fab)
1530d68baSNigel Croxon#
2530d68baSNigel Croxon#  Copyright (C) 1999-2007 Hewlett-Packard Co.
3530d68baSNigel Croxon#	Contributed by David Mosberger <davidm@hpl.hp.com>
4530d68baSNigel Croxon#	Contributed by Stephane Eranian <eranian@hpl.hp.com>
5530d68baSNigel Croxon#
6530d68baSNigel Croxon#    All rights reserved.
7530d68baSNigel Croxon#
8530d68baSNigel Croxon#    Redistribution and use in source and binary forms, with or without
9530d68baSNigel Croxon#    modification, are permitted provided that the following conditions
10530d68baSNigel Croxon#    are met:
11530d68baSNigel Croxon#
12530d68baSNigel Croxon#    * Redistributions of source code must retain the above copyright
13530d68baSNigel Croxon#      notice, this list of conditions and the following disclaimer.
14530d68baSNigel Croxon#    * Redistributions in binary form must reproduce the above
15530d68baSNigel Croxon#      copyright notice, this list of conditions and the following
16530d68baSNigel Croxon#      disclaimer in the documentation and/or other materials
17530d68baSNigel Croxon#      provided with the distribution.
18530d68baSNigel Croxon#    * Neither the name of Hewlett-Packard Co. nor the names of its
19530d68baSNigel Croxon#      contributors may be used to endorse or promote products derived
20530d68baSNigel Croxon#      from this software without specific prior written permission.
21530d68baSNigel Croxon#
22530d68baSNigel Croxon#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
23530d68baSNigel Croxon#    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
24530d68baSNigel Croxon#    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
25530d68baSNigel Croxon#    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26530d68baSNigel Croxon#    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
27530d68baSNigel Croxon#    BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
28530d68baSNigel Croxon#    OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
29530d68baSNigel Croxon#    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30530d68baSNigel Croxon#    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31530d68baSNigel Croxon#    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
32530d68baSNigel Croxon#    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
33530d68baSNigel Croxon#    THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34530d68baSNigel Croxon#    SUCH DAMAGE.
35530d68baSNigel Croxon#
36530d68baSNigel Croxon
375c0de15dSLoGininclude env.mk
385c0de15dSLoGin
395c0de15dSLoGin
4024c80efcSNigel Croxonexport VERSION = 3.0.17
41b868aa75SNigel Croxon
4215bcddc9SNigel CroxonMKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
4315bcddc9SNigel CroxonSRCDIR = $(dir $(MKFILE_PATH))
44530d68baSNigel Croxon
45530d68baSNigel CroxonVPATH = $(SRCDIR)
46530d68baSNigel Croxon
47530d68baSNigel Croxoninclude $(SRCDIR)/Make.defaults
48530d68baSNigel Croxon
49530d68baSNigel CroxonSUBDIRS = lib gnuefi inc apps
50530d68baSNigel Croxon
51*f412fd2aSLoGinall_stagge2: check_gcc $(SUBDIRS)
52*f412fd2aSLoGin
53*f412fd2aSLoGinensure_dirs:
54*f412fd2aSLoGin	@mkdir -p $(OBJDIR)/apps/lib
55*f412fd2aSLoGin	@$(MAKE) all_stagge2
56*f412fd2aSLoGin
57*f412fd2aSLoGinall: ensure_dirs
585c0de15dSLoGinifeq ($(ARCH), riscv64)
595c0de15dSLoGin	@mkdir -p output
605c0de15dSLoGin	cp riscv64/apps/dragon_stub.efi ./output/dragon_stub-riscv64.efi
615c0de15dSLoGinendif
625c0de15dSLoGin
635c0de15dSLoGin.PHONY:
645c0de15dSLoGinrun:
655c0de15dSLoGin	@$(MAKE) all -j $(shell nproc)
665c0de15dSLoGin	@$(MAKE) qemu
675c0de15dSLoGin
685c0de15dSLoGinqemu:
695c0de15dSLoGin	cd tools && ./run-qemu.sh && cd ..
70530d68baSNigel Croxon
71c2627518SLetu Rengnuefi: lib
723f9a6569SCallum Farmerapps:	gnuefi
73c2627518SLetu Ren
74530d68baSNigel Croxonmkvars:
75530d68baSNigel Croxon	@echo AR=$(AR)
76530d68baSNigel Croxon	@echo ARCH=$(ARCH)
77530d68baSNigel Croxon	@echo ARCH3264=$(ARCH3264)
78530d68baSNigel Croxon	@echo AS=$(AS)
79530d68baSNigel Croxon	@echo ASFLAGS=$(ASFLAGS)
80530d68baSNigel Croxon	@echo CC=$(CC)
81530d68baSNigel Croxon	@echo CFLAGS=$(CFLAGS)
82530d68baSNigel Croxon	@echo CPPFLAGS=$(CPPFLAGS)
83530d68baSNigel Croxon	@echo GCCMINOR=$(GCCMINOR)
84530d68baSNigel Croxon	@echo GCCNEWENOUGH=$(GCCNEWENOUGH)
85530d68baSNigel Croxon	@echo GCCVERSION=$(GCCVERSION)
86530d68baSNigel Croxon	@echo HOSTARCH=$(HOSTARCH)
87530d68baSNigel Croxon	@echo INCDIR=$(INCDIR)
88530d68baSNigel Croxon	@echo INSTALL=$(INSTALL)
89530d68baSNigel Croxon	@echo INSTALLROOT=$(INSTALLROOT)
90530d68baSNigel Croxon	@echo LD=$(LD)
91530d68baSNigel Croxon	@echo LDFLAGS=$(LDFLAGS)
92530d68baSNigel Croxon	@echo LIBDIR=$(LIBDIR)
93530d68baSNigel Croxon	@echo OBJCOPY=$(OBJCOPY)
94530d68baSNigel Croxon	@echo OS=$(OS)
95530d68baSNigel Croxon	@echo prefix=$(prefix)
96530d68baSNigel Croxon	@echo PREFIX=$(PREFIX)
97530d68baSNigel Croxon	@echo RANLIB=$(RANLIB)
98530d68baSNigel Croxon	@echo SRCDIR=$(SRCDIR)
99530d68baSNigel Croxon	@echo TOPDIR=$(TOPDIR)
100*f412fd2aSLoGin	@echo OBJDIR=$(OBJDIR)
101530d68baSNigel Croxon
102530d68baSNigel Croxon$(SUBDIRS):
103ce7098fbSNigel Croxon	mkdir -p $(OBJDIR)/$@
104ce7098fbSNigel Croxon	$(MAKE) -C $(OBJDIR)/$@ -f $(SRCDIR)/$@/Makefile SRCDIR=$(SRCDIR)/$@ ARCH=$(ARCH)
105530d68baSNigel Croxon
106530d68baSNigel Croxonclean:
107530d68baSNigel Croxon	rm -f *~
1087c89273dSRichard Hughes	@set -e ; for d in $(SUBDIRS); do \
109ce7098fbSNigel Croxon		if [ -d $(OBJDIR)/$$d ]; then \
110ce7098fbSNigel Croxon			$(MAKE) -C $(OBJDIR)/$$d -f $(SRCDIR)/$$d/Makefile SRCDIR=$(SRCDIR)/$$d clean; \
111530d68baSNigel Croxon		fi; \
112530d68baSNigel Croxon	done
113530d68baSNigel Croxon
114530d68baSNigel Croxoninstall:
1157c89273dSRichard Hughes	@set -e ; for d in $(SUBDIRS); do \
116ce7098fbSNigel Croxon		mkdir -p $(OBJDIR)/$$d; \
117ce7098fbSNigel Croxon		$(MAKE) -C $(OBJDIR)/$$d -f $(SRCDIR)/$$d/Makefile SRCDIR=$(SRCDIR)/$$d install; done
118530d68baSNigel Croxon
119530d68baSNigel Croxon.PHONY:	$(SUBDIRS) clean depend
120530d68baSNigel Croxon
121530d68baSNigel Croxon#
122530d68baSNigel Croxon# on both platforms you must use gcc 3.0 or higher
123530d68baSNigel Croxon#
124530d68baSNigel Croxoncheck_gcc:
125530d68baSNigel Croxonifeq ($(GCC_VERSION),2)
126530d68baSNigel Croxon	@echo "you need to use a version of gcc >= 3.0, you are using `$(CC) --version`"
127530d68baSNigel Croxon	@exit 1
128530d68baSNigel Croxonendif
129530d68baSNigel Croxon
130530d68baSNigel Croxoninclude $(SRCDIR)/Make.rules
131b868aa75SNigel Croxon
132b868aa75SNigel Croxontest-archive:
133b868aa75SNigel Croxon	@rm -rf /tmp/gnu-efi-$(VERSION) /tmp/gnu-efi-$(VERSION)-tmp
134b868aa75SNigel Croxon	@mkdir -p /tmp/gnu-efi-$(VERSION)-tmp
135b868aa75SNigel Croxon	@git archive --format=tar $(shell git branch | awk '/^*/ { print $$2 }') | ( cd /tmp/gnu-efi-$(VERSION)-tmp/ ; tar x )
136b868aa75SNigel Croxon	@git diff | ( cd /tmp/gnu-efi-$(VERSION)-tmp/ ; patch -s -p1 -b -z .gitdiff )
137b868aa75SNigel Croxon	@mv /tmp/gnu-efi-$(VERSION)-tmp/ /tmp/gnu-efi-$(VERSION)/
138b868aa75SNigel Croxon	@dir=$$PWD; cd /tmp; tar -c --bzip2 -f $$dir/gnu-efi-$(VERSION).tar.bz2 gnu-efi-$(VERSION)
139b868aa75SNigel Croxon	@rm -rf /tmp/gnu-efi-$(VERSION)
140b868aa75SNigel Croxon	@echo "The archive is in gnu-efi-$(VERSION).tar.bz2"
141b868aa75SNigel Croxon
142b868aa75SNigel Croxontag:
143b868aa75SNigel Croxon	git tag $(VERSION) refs/heads/master
144b868aa75SNigel Croxon
145b868aa75SNigel Croxonarchive: tag
146b868aa75SNigel Croxon	@rm -rf /tmp/gnu-efi-$(VERSION) /tmp/gnu-efi-$(VERSION)-tmp
147b868aa75SNigel Croxon	@mkdir -p /tmp/gnu-efi-$(VERSION)-tmp
148b868aa75SNigel Croxon	@git archive --format=tar $(VERSION) | ( cd /tmp/gnu-efi-$(VERSION)-tmp/ ; tar x )
149b868aa75SNigel Croxon	@mv /tmp/gnu-efi-$(VERSION)-tmp/ /tmp/gnu-efi-$(VERSION)/
150b868aa75SNigel Croxon	@dir=$$PWD; cd /tmp; tar -c --bzip2 -f $$dir/gnu-efi-$(VERSION).tar.bz2 gnu-efi-$(VERSION)
151b868aa75SNigel Croxon	@rm -rf /tmp/gnu-efi-$(VERSION)
152b868aa75SNigel Croxon	@echo "The archive is in gnu-efi-$(VERSION).tar.bz2"
153b868aa75SNigel Croxon
154