changeset 1504:dfa937baa17b

improved pkg-config wrapper and its documentation
author Volker Grabsch <vog@notjusthosting.com>
date Mon, 13 Dec 2010 14:41:32 +0100
parents 0fc1e472efd1
children 586ad5c14f8b
files Makefile doc/index.html src/gcc.mk
diffstat 3 files changed, 18 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Mon Dec 13 03:18:09 2010 +1100
+++ b/Makefile	Mon Dec 13 14:41:32 2010 +0100
@@ -31,8 +31,7 @@
 unexport AR CC CFLAGS C_INCLUDE_PATH CPATH CPLUS_INCLUDE_PATH CPP
 unexport CPPFLAGS CROSS CXX CXXCPP CXXFLAGS EXEEXT EXTRA_CFLAGS
 unexport EXTRA_LDFLAGS LD LDFLAGS LIBRARY_PATH LIBS NM
-unexport OBJC_INCLUDE_PATH PKG_CONFIG PKG_CONFIG_PATH QMAKESPEC
-unexport RANLIB STRIP
+unexport OBJC_INCLUDE_PATH PKG_CONFIG QMAKESPEC RANLIB STRIP
 
 SHORT_PKG_VERSION = \
     $(word 1,$(subst ., ,$($(1)_VERSION))).$(word 2,$(subst ., ,$($(1)_VERSION)))
@@ -237,6 +236,7 @@
 	) \
 	| $(SED) 's,\(<span class="version">\)[^<]*\(</span>\),\1$(VERSION)\2,g' \
 	| $(SED) 's,\(<span class="target">\)[^<]*\(</span>\),\1$(TARGET)\2,g' \
+	| $(SED) 's,\(<span class="target-underscore">\)[^<]*\(</span>\),\1$(subst -,_,$(TARGET))\2,g' \
 	>'$(DIST_DIR)/mingw-cross-env-$(VERSION)/doc/index.html'
 	cp -p '$(TOP_DIR)/doc'/screenshot-* '$(DIST_DIR)/mingw-cross-env-$(VERSION)/doc/'
 	cp -p '$(DIST_DIR)/mingw-cross-env-$(VERSION)/doc'/* '$(DIST_DIR)/web/'
--- a/doc/index.html	Mon Dec 13 03:18:09 2010 +1100
+++ b/doc/index.html	Mon Dec 13 14:41:32 2010 +0100
@@ -304,7 +304,19 @@
     <pre>export PATH=/<em>where mingw-cross-env is installed</em>/usr/bin:$PATH</pre>
 
     <p>
-    Note that any compiler related environment variables
+    In case you are using custom $PKG_CONFIG_PATH entries,
+    you can add separate entries for MinGW cross builds:
+    </p>
+    <pre>export PKG_CONFIG_PATH="<em>entries for native builds</em>"</pre>
+    <pre>export PKG_CONFIG_PATH_<span class="target-underscore">i686_pc_mingw32</span>="<em>entries for mingw-cross-env builds</em>"</pre>
+    <p>
+    Remember to use <span class="target">i686-pc-mingw32</span>-pkg-config
+    instead of pkg-config for cross builds.
+    The Autotools do that automatically for you.
+    </p>
+
+    <p>
+    Note that any other compiler related environment variables
     (like $CC, $LDFLAGS, etc.)
     may spoil your compiling pleasure,
     so be sure to delete or disable those.
@@ -363,7 +375,8 @@
     </p>
     <pre>CC=$(CROSS)gcc
 LD=$(CROSS)ld
-AR=$(CROSS)ar</pre>
+AR=$(CROSS)ar
+PKG_CONFIG=$(CROSS)pkg-config</pre>
     <p>
     You may have to add a few others, depending on your project.
     </p>
--- a/src/gcc.mk	Mon Dec 13 03:18:09 2010 +1100
+++ b/src/gcc.mk	Mon Dec 13 14:41:32 2010 +0100
@@ -58,7 +58,7 @@
 
     # create pkg-config script
     (echo '#!/bin/sh'; \
-     echo 'PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR='\''$(PREFIX)/$(TARGET)/lib/pkgconfig'\'' exec pkg-config --static "$$@"') \
+     echo 'PKG_CONFIG_PATH="$$PKG_CONFIG_PATH_$(subst -,_,$(TARGET))" PKG_CONFIG_LIBDIR='\''$(PREFIX)/$(TARGET)/lib/pkgconfig'\'' exec pkg-config --static "$$@"') \
              > '$(PREFIX)/bin/$(TARGET)-pkg-config'
     chmod 0755 '$(PREFIX)/bin/$(TARGET)-pkg-config'
 endef