-INSTALL ?= install
-libdir ?= /usr/lib64/
-mandir ?= /usr/share/man/
-includedir ?= /usr/include/
-bindir ?= /usr/bin/
+prefix ?= /usr/
+libdir ?= $(prefix)/lib64/
+datadir ?= $(prefix)/share/
+mandir ?= $(datadir)/man/
+includedir ?= $(prefix)/include/
+bindir ?= $(prefix)/bin/
PCDIR ?= $(libdir)/pkgconfig/
-CC := $(if $(filter default,$(origin CC)),gcc,$(CC))
+DESTDIR ?=
+
+INSTALL ?= install
+CROSS_COMPILE ?=
+COMPILER ?= gcc
+PKG_CONFIG = $(shell if [ -e "$$(env $(CROSS_COMPILE)pkg-config 2>&1)" ]; then echo $(CROSS_COMPILE)pkg-config ; else echo pkg-config ; fi)
+CC := $(if $(filter default,$(origin CC)),$(CROSS_COMPILE)$(COMPILER),$(CC))
CCLD := $(if $(filter undefined,$(origin CCLD)),$(CC),$(CCLD))
-CFLAGS ?= -O0 -g
+OPTIMIZE ?= -O2 -flto
+CFLAGS ?= $(OPTIMIZE) -g3
+CFLAGS := $(CFLAGS)
+LDFLAGS ?=
+LDFLAGS := $(LDFLAGS)
+AR := $(CROSS_COMPILE)$(COMPILER)-ar
+NM := $(CROSS_COMPILE)$(COMPILER)-nm
+RANLIB := $(CROSS_COMPILE)$(COMPILER)-ranlib
+ABIDW := abidw
+ABIDIFF := abidiff
-ARCH = $(shell uname -m)
-clang_cflags =
-gcc_cflags = -Wmaybe-uninitialized
-cflags := $(CFLAGS) \
- -Wall -Wsign-compare -std=gnu11 -fshort-wchar -fPIC \
- -D_GNU_SOURCE -I${TOPDIR}/src/ \
- $(if $(filter $(CC),clang),$(clang_cflags),) \
- $(if $(filter $(CC),gcc),$(gcc_cflags),)
+PKGS =
+
+clang_cflags = -D_GNU_SOURCE -std=gnu11 -Wno-address-of-packed-member
+gcc_cflags = -specs=$(TOPDIR)/gcc.specs
+cflags = $(CFLAGS) -I${TOPDIR}/src/include/ \
+ $(if $(findstring clang,$(CC)),$(clang_cflags),) \
+ $(if $(findstring gcc,$(CC)),$(gcc_cflags),) \
+ $(call pkg-config-cflags)
clang_ccldflags =
-gcc_ccldflags = -fno-merge-constants
-ccldflags := $(cflags) $(CCLDFLAGS) $(LDFLAGS) \
- $(if $(filter $(CCLD),clang),$(clang_ccldflags),) \
- $(if $(filter $(CCLD),gcc),$(gcc_ccldflags),)
-LIBFLAGS += -shared
+gcc_ccldflags =
+ccldflags = $(cflags) -L. $(CCLDFLAGS) $(LDFLAGS) \
+ -Wl,-z,muldefs \
+ $(if $(findstring clang,$(CCLD)),$(clang_ccldflags),) \
+ $(if $(findstring gcc,$(CCLD)),$(gcc_ccldflags),) \
+ $(call pkg-config-ccldflags)
+SOFLAGS=-shared
+LDLIBS=$(foreach lib,$(LIBS),-l$(lib)) $(call pkg-config-ldlibs)
+
+COMMIT_ID=$(shell git log -1 --pretty=%H 2>/dev/null || echo master)
-SONAME_VERSION := 0
+NAME=efivar