OSDN Git Service

Update abixml for newer libabigail
[android-x86/external-efivar.git] / src / Makefile
1 SRCDIR = $(realpath .)
2 TOPDIR = $(realpath ..)
3
4 include $(TOPDIR)/Make.deprecated
5 include $(TOPDIR)/Make.version
6 include $(TOPDIR)/Make.rules
7 include $(TOPDIR)/Make.defaults
8
9 LIBTARGETS=libefivar.so libefiboot.so
10 STATICLIBTARGETS=libefivar.a libefiboot.a
11 BINTARGETS=efivar
12 STATICBINTARGETS=efivar-static
13 PCTARGETS=efivar.pc efiboot.pc
14 TARGETS=$(LIBTARGETS) $(BINTARGETS) $(PCTARGETS)
15 STATICTARGETS=$(STATICLIBTARGETS) $(STATICBINTARGETS)
16
17 LIBEFIBOOT_SOURCES = crc32.c creator.c disk.c gpt.c loadopt.c path-helpers.c \
18                      linux.c $(wildcard linux-*.c)
19 LIBEFIBOOT_OBJECTS = $(patsubst %.c,%.o,$(LIBEFIBOOT_SOURCES))
20 LIBEFIVAR_SOURCES = dp.c dp-acpi.c dp-hw.c dp-media.c dp-message.c \
21         efivarfs.c error.c export.c guid.c guids.S guid-symbols.c \
22         lib.c vars.c
23 LIBEFIVAR_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(LIBEFIVAR_SOURCES)))
24 EFIVAR_SOURCES = efivar.c
25 GENERATED_SOURCES = include/efivar/efivar-guids.h guid-symbols.c
26 MAKEGUIDS_SOURCES = makeguids.c guid.c
27 ALL_SOURCES=$(LIBEFIBOOT_SOURCES) $(LIBEFIVAR_SOURCES) $(MAKEGUIDS_SOURCES) \
28         $(wildcard include/efivar/*.h) $(GENERATED_SOURCES) $(EFIVAR_SOURCES)
29
30 $(call deps-of,$(ALL_SOURCES)) : | deps
31 -include $(call deps-of,$(ALL_SOURCES))
32
33 all : $(TARGETS)
34
35 static : $(STATICTARGETS)
36
37 abiclean :
38         @rm -vf $(patsubst %.so,%.abixml,$@)
39
40 abixml : | $(LIBTARGETS)
41 abixml : $(patsubst %.so,%.abixml,$(LIBTARGETS))
42
43 abidw : $(patsubst %.so,%.abixml,$(LIBTARGETS))
44         git commit -s --amend $^
45
46 abicheck : $(patsubst %.so,%.abicheck,$(LIBTARGETS))
47
48 ./guid-symbols.c : include/efivar/efivar-guids.h
49 ./guids.bin : include/efivar/efivar-guids.h
50 ./names.bin : include/efivar/efivar-guids.h
51 include/efivar/efivar-guids.h : makeguids guids.txt
52         ./makeguids guids.txt guids.bin names.bin \
53                 guid-symbols.c include/efivar/efivar-guids.h
54
55 makeguids : CPPFLAGS+=-DEFIVAR_BUILD_ENVIRONMENT
56 makeguids : LIBS=dl
57 makeguids : $(MAKEGUIDS_SOURCES)
58 makeguids : CCLD=$(CCLD_FOR_BUILD)
59
60 guids.o : guids.S | guids.bin names.bin
61
62 $(LIBEFIVAR_OBJECTS) $(LIBEFIBOOT_OBJECTS) : | $(GENERATED_SOURCES)
63
64 libefivar.a : | $(GENERATED_SOURCES)
65 libefivar.a : $(patsubst %.o,%.static.o,$(LIBEFIVAR_OBJECTS))
66
67 libefivar.so : $(LIBEFIVAR_OBJECTS)
68 libefivar.so : | $(GENERATED_SOURCES) libefivar.map
69 libefivar.so : LIBS=dl
70 libefivar.so : MAP=libefivar.map
71
72 efivar : efivar.c | libefivar.so
73 efivar : LIBS=efivar dl
74
75 efivar-static : efivar.c $(patsubst %.o,%.static.o,$(LIBEFIVAR_OBJECTS))
76 efivar-static : | $(GENERATED_SOURCES)
77 efivar-static : LIBS=dl
78
79 libefiboot.a : $(patsubst %.o,%.static.o,$(LIBEFIBOOT_OBJECTS))
80
81 libefiboot.so : $(LIBEFIBOOT_OBJECTS)
82 libefiboot.so : | libefiboot.map libefivar.so
83 libefiboot.so : LIBS=efivar
84 libefiboot.so : MAP=libefiboot.map
85
86 deps : $(ALL_SOURCES)
87         $(MAKE) -f $(SRCDIR)/Make.deps deps SOURCES="$(ALL_SOURCES)"
88
89 clean : 
90         @rm -rfv *~ *.o *.a *.E *.so *.so.* *.pc *.bin .*.d *.map \
91                 makeguids guid-symbols.c include/efivar/efivar-guids.h \
92                 $(TARGETS) $(STATICTARGETS)
93         @# remove the deps files we used to create, as well.
94         @rm -rfv .*.P .*.h.P *.S.P include/efivar/.*.h.P
95
96 install : all
97         $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)
98         $(foreach x,$(LIBTARGETS), \
99                 $(INSTALL) -m 755 $(x) $(DESTDIR)$(LIBDIR)/$(x).1.$(VERSION) ;\
100                 ln -fs $(x).1.$(VERSION) $(DESTDIR)$(LIBDIR)/$(x).1 ;\
101                 ln -fs $(x).1.$(VERSION) $(DESTDIR)$(LIBDIR)/$(x) ;\
102                 )
103         $(INSTALL) -d -m 755 $(DESTDIR)$(PCDIR)
104         $(foreach x, $(PCTARGETS), $(INSTALL) -m 644 $(x) $(DESTDIR)$(PCDIR) ;)
105         $(INSTALL) -d -m 755 $(DESTDIR)$(INCLUDEDIR)/efivar
106         $(foreach x, $(wildcard $(TOPDIR)/src/include/efivar/*.h), $(INSTALL) -m 644 $(x) $(DESTDIR)$(INCLUDEDIR)/efivar/$(notdir $(x));)
107         $(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR)
108         $(foreach x, $(BINTARGETS), $(INSTALL) -m 755 $(x) $(DESTDIR)$(BINDIR);)
109
110 test : all
111         $(MAKE) -C test $@
112
113 .PHONY: test deps abiclean abixml
114 .SECONDARY : libefivar.so.1.$(VERSION) libefivar.so.1
115 .SECONDARY : libefiboot.so.1.$(VERSION) libefivar.so.1
116 .SECONDARY : include/efivar/efivar-guids.h guid-symbols.c
117 .INTERMEDIATE : guids.bin names.bin
118 .PRECIOUS : guid-symbols.o makeguids