Makefile 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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. PKGCONFIGDIR ?= $(LIBDIR)/pkgconfig
  42. FILES = reloc_$(ARCH)
  43. OBJS = $(FILES:%=%.o)
  44. # on aarch64, avoid jump tables before all relocations have been processed
  45. reloc_aarch64.o: CFLAGS += -fno-jump-tables
  46. TARGETS = crt0-efi-$(ARCH).o libgnuefi.a
  47. all: $(TARGETS) gnu-efi.pc
  48. libgnuefi.a: $(OBJS)
  49. $(AR) $(ARFLAGS) $@ $^
  50. gnu-efi.pc:
  51. sed \
  52. -e 's:@PREFIX@:$(PREFIX):g' \
  53. -e 's:@EXEC_PREFIX@:$(EXEC_PREFIX):g' \
  54. -e 's:@INCLUDEDIR@:$(INCLUDEDIR):g' \
  55. -e 's:@LIBDIR@:$(LIBDIR):g' \
  56. -e 's:@VERSION@:$(VERSION):g' \
  57. $(SRCDIR)/gnu-efi.pc.in > gnu-efi.pc
  58. clean:
  59. rm -f $(TARGETS) *~ *.o $(OBJS)
  60. install:
  61. mkdir -p $(INSTALLROOT)$(LIBDIR)
  62. $(INSTALL) -m 644 $(TARGETS) $(INSTALLROOT)$(LIBDIR)
  63. ifneq (,$(findstring FreeBSD,$(OS)))
  64. ifeq ($(ARCH),x86_64)
  65. $(INSTALL) -m 644 $(SRCDIR)/elf_$(ARCH)_fbsd_efi.lds $(INSTALLROOT)$(LIBDIR)
  66. else
  67. $(INSTALL) -m 644 $(SRCDIR)/elf_$(ARCH)_efi.lds $(INSTALLROOT)$(LIBDIR)
  68. endif
  69. else
  70. $(INSTALL) -m 644 $(SRCDIR)/elf_$(ARCH)_efi.lds $(INSTALLROOT)$(LIBDIR)
  71. endif
  72. $(INSTALL) -d $(INSTALLROOT)$(PKGCONFIGDIR)
  73. $(INSTALL) -m 644 gnu-efi.pc $(INSTALLROOT)$(PKGCONFIGDIR)
  74. include $(SRCDIR)/../Make.rules