OSDN Git Service

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