Makefile 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #
  2. # Copyright (C) 1999-2001 Hewlett-Packard Co.
  3. # Contributed by David Mosberger <[email protected]>
  4. # Contributed by Stephane Eranian <[email protected]>
  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. SRCDIR = .
  37. VPATH = $(SRCDIR)
  38. include $(SRCDIR)/../Make.defaults
  39. TOPDIR = $(SRCDIR)/..
  40. CDIR = $(TOPDIR)/..
  41. FILES = boxdraw smbios console crc data debug dpath \
  42. entry error event exit guid hand hw init lock \
  43. misc pause print sread str cmdline\
  44. runtime/rtlock runtime/efirtlib runtime/rtstr runtime/vm runtime/rtdata \
  45. $(ARCH)/initplat $(ARCH)/math $(ARCH)/setjmp
  46. ifeq ($(ARCH),ia64)
  47. FILES += $(ARCH)/salpal $(ARCH)/palproc
  48. endif
  49. ifeq ($(ARCH),x86_64)
  50. FILES += $(ARCH)/callwrap $(ARCH)/efi_stub
  51. endif
  52. ifeq ($(ARCH),arm)
  53. FILES += $(ARCH)/uldiv $(ARCH)/ldivmod $(ARCH)/div $(ARCH)/llsl $(ARCH)/llsr \
  54. $(ARCH)/mullu
  55. endif
  56. OBJS = $(FILES:%=%.o) ctors.o
  57. SUBDIRS = ia32 x86_64 ia64 aarch64 arm mips64el riscv64 loongarch64 runtime
  58. LIBDIRINSTALL = $(INSTALLROOT)$(LIBDIR)
  59. all: libsubdirs libefi.a
  60. .PHONY: libsubdirs
  61. libsubdirs:
  62. @set -e ; for sdir in $(SUBDIRS); do mkdir -p $$sdir; done
  63. $(OBJS): libsubdirs
  64. libefi.a: $(OBJS)
  65. $(AR) $(ARFLAGS) $@ $^
  66. clean:
  67. rm -f libefi.a *~ $(OBJS) */*.o
  68. $(LIBDIRINSTALL):
  69. mkdir -p $@
  70. $(LIBDIRINSTALL)/libefi.a: libefi.a | $(LIBDIRINSTALL)
  71. $(INSTALL) -m 644 $< $(dir $@)
  72. install: $(LIBDIRINSTALL)/libefi.a
  73. include $(SRCDIR)/../Make.rules