Author: stefanct Date: Mon Jan 26 23:03:35 2015 New Revision: 1876 URL: http://flashrom.org/trac/flashrom/changeset/1876
Log: Let pkg-config work with cross-compilers.
In cross-compiler setups pkg-config often needs some help to determine the correct libraries. This can be done for example by setting PKG_CONFIG_LIBDIR to point to the directory where the cross-compile .pc files are located. If PKG_CONFIG_LIBDIR was not set already outside of the Makefile we set it according to LIBS_BASE and add the respective path to the linker's rpath. This makes it possible to easily cross-compile by only setting CC and LIBS_BASE on the command line.
This patch also removes the explicit default for LIBS_BASE again because it does not play well with this change and was a bad idea to begin with.
Signed-off-by: Stefan Tauner stefan.tauner@alumni.tuwien.ac.at Acked-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Modified: trunk/Makefile
Modified: trunk/Makefile ============================================================================== --- trunk/Makefile Mon Jan 26 00:57:08 2015 (r1875) +++ trunk/Makefile Mon Jan 26 23:03:35 2015 (r1876) @@ -37,7 +37,6 @@ CFLAGS ?= -Os -Wall -Wshadow EXPORTDIR ?= . RANLIB ?= ranlib -LIBS_BASE ?= ..
# The following parameter changes the default programmer that will be used if there is no -p/--programmer # argument given when running flashrom. The predefined setting does not enable any default so that every @@ -65,8 +64,11 @@ CFLAGS += -Werror endif
+ifdef LIBS_BASE CPPFLAGS += -I$(LIBS_BASE)/include -LDFLAGS += -L$(LIBS_BASE)/lib +LDFLAGS += -L$(LIBS_BASE)/lib -Wl,-rpath -Wl,$(LIBS_BASE)/lib +PKG_CONFIG_LIBDIR ?= $(LIBS_BASE)/lib/pkgconfig +endif
############################################################################### # General OS-specific settings. @@ -613,7 +615,7 @@ endif
ifeq ($(NEED_FTDI), yes) -FTDILIBS := $(shell pkg-config --libs libftdi 2>/dev/null || printf "%s" "-lftdi -lusb") +FTDILIBS := $(shell ([ -n "$(PKG_CONFIG_LIBDIR)" ] && export PKG_CONFIG_LIBDIR="$(PKG_CONFIG_LIBDIR)" ); pkg-config --libs libftdi || printf "%s" "-lftdi -lusb") FEATURE_CFLAGS += $(shell LC_ALL=C grep -q "FT232H := yes" .features && printf "%s" "-D'HAVE_FT232H=1'") FEATURE_LIBS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "$(FTDILIBS)") # We can't set NEED_USB here because that would transform libftdi auto-enabling @@ -736,7 +738,7 @@ ifeq ($(NEED_USB), yes) CHECK_LIBUSB0 = yes FEATURE_CFLAGS += -D'NEED_USB=1' -USBLIBS := $(shell pkg-config --libs libusb 2>/dev/null || printf "%s" "-lusb") +USBLIBS := $(shell ([ -n "$(PKG_CONFIG_LIBDIR)" ] && export PKG_CONFIG_LIBDIR="$(PKG_CONFIG_LIBDIR)" ); pkg-config --libs libusb || printf "%s" "-lusb") endif
ifeq ($(CONFIG_PRINT_WIKI), yes)