OSDN Git Service

Update abidw for newer tools.
[android-x86/external-efivar.git] / Make.rules
index 314cf09..042585b 100644 (file)
@@ -1,23 +1,50 @@
+default : all
+
+.PHONY: default all clean install test
+
+include $(TOPDIR)/Make.version
+
 %.a :
        $(AR) -cvqs $@ $^
 
-% : %.o
-       $(CCLD) $(ccldflags) -o $@ $^ $(foreach lib,$(LIBS),-l$(lib))
+% : %.c
+
+% : %.c
+       $(CCLD) $(ccldflags) $(CPPFLAGS) -o $@ $^ $(LDLIBS)
+
+%-static : ccldflags+=-static
+%-static : %.c
+       $(CCLD) $(ccldflags) $(CPPFLAGS) -o $@ $^ $(LDLIBS)
+
+%.so :
+       $(CCLD) $(ccldflags) $(CPPFLAGS) $(SOFLAGS) \
+         -Wl,-soname,$@.1 \
+         -Wl,--version-script=$(MAP) \
+         -o $@ $^ $(LDLIBS)
+       ln -vfs $@ $@.1
+
+%.abixml : %.so
+       $(ABIDW) --headers-dir $(TOPDIR)/src/include/efivar/ --out-file $@ $^
+       @sed -i -s 's,$(TOPDIR)/,,g' $@
 
-%.so.$(SONAME_VERSION) : 
-       $(CCLD) $(cflags) -Wl,-soname,$(SONAME) $(ccldflags) $(LIBFLAGS) $^ -o $@ $(foreach lib,$(LIBS),-l$(lib))
+%.abicheck : %.so
+       $(ABIDIFF) \
+               --suppr abignore \
+               --headers-dir2 $(TOPDIR)/src/include/efivar/ \
+               $(patsubst %.so,%.abixml,$<) \
+               $<
 
-%.so : %.so.$(SONAME_VERSION)
-       ln -sf $^ $@
+%.o : %.c
+       $(CC) $(cflags) -fPIC $(CPPFLAGS) -c -o $@ $(filter %.c %.o %.S,$^)
 
-%.o: %.c
-       $(CC) $(cflags) $(CPPFLAGS) -c -o $@ $<
+%.static.o : %.c
+       $(CC) $(cflags) -fPIE $(CPPFLAGS) -c -o $@ $(filter %.c %.o %.S,$^)
 
-.%.c.P : %.c
-       $(CC) $(cflags) $(CPPFLAGS) -DEFIVAR_BUILD_ENVIRONMENT -M -MM -MF $@ $^
+%.o : %.S
+       $(CC) $(cflags) -fPIC $(CPPFLAGS) -c -o $@ $(filter %.c %.o %.S,$^)
 
-.%.h.P : %.h
-       $(CC) $(cflags) $(CPPFLAGS) -DEFIVAR_BUILD_ENVIRONMENT -M -MM -MF $@ $^
+%.static.o : %.S
+       $(CC) $(cflags) -fPIE $(CPPFLAGS) -c -o $@ $(filter %.c %.o %.S,$^)
 
 %.S: %.c
        $(CC) $(cflags) $(CPPFLAGS) -S $< -o $@
        $(CC) $(cflags) $(CPPFLAGS) -E $< -o $@
 
 %.c : %.h
+
+define substitute-version
+       sed                                             \
+               -e "s,@@VERSION@@,$(VERSION),g"         \
+               -e "s,@@LIBDIR@@,$(LIBDIR),g"           \
+               -e "s,@@PREFIX@@,$(PREFIX),g"           \
+               -e "s,@@EXEC_PREFIX@@,$(EXEC_PREFIX),g"         \
+               -e "s,@@INCLUDEDIR@@,$(INCLUDEDIR),g"           \
+               $(1) > $(2)
+endef
+
+%.pc : %.pc.in
+       @$(call substitute-version,$<,$@)
+%.spec : %.spec.in
+       @$(call substitute-version,$<,$@)
+%.map : %.map.in
+       @$(call substitute-version,$<,$@)
+
+pkg-config-cflags = \
+       $(shell if [ -n "$(PKGS)" ]; then $(PKG_CONFIG) --cflags $(PKGS); fi)
+pkg-config-ldflags = \
+       $(shell if [ -n "$(PKGS)" ]; then $(PKG_CONFIG) --libs-only-L --libs-only-other $(PKGS) ; fi)
+pkg-config-ldlibs = \
+       $(shell if [ -n "$(PKGS)" ]; then $(PKG_CONFIG) --libs-only-l $(PKGS) ; fi)
+
+define deps-of
+       $(foreach src,$(filter %.c,$(1)),$(patsubst %.c,.%.d,$(src))) \
+       $(foreach src,$(filter %.S,$(1)),$(patsubst %.S,.%.d,$(src)))
+endef
+
+define get-config
+$(shell git config --local --get "efivar.$(1)")
+endef
+
+# vim:ft=make