# bootstrap.mk
 bootstrap:
-       $(MAKE) targetprefix $(BUILD_TMP) $(CROSS_BASE) $(HOSTPREFIX)/bin includes-and-libs modules $(TARGETPREFIX)/lib/libc.so.6 $(ARCHIVE)
+       $(MAKE) targetprefix $(BUILD_TMP) $(CROSS_BASE) $(HOSTPREFIX)/bin pkg-config includes-and-libs modules $(TARGETPREFIX)/lib/libc.so.6 $(ARCHIVE)
 includes-and-libs:
        $(MAKE) $(TARGETPREFIX)/lib $(TARGETPREFIX)/lib/firmware
 modules:
 
 $(ARCHIVE)/rtmpdump-$(LIBRTMP_VER).tar.gz:
        $(WGET) http://crux.ster.zone/distfiles/rtmpdump-$(LIBRTMP_VER).tar.gz
 
+$(ARCHIVE)/pkg-config-$(PKGCONFIG_VER).tar.gz:
+       $(WGET) http://pkgconfig.freedesktop.org/releases/pkg-config-$(PKGCONFIG_VER).tar.gz
+
 $(ARCHIVE)/crosstool-1.16.0-downloads.tar.bz2:
        $(WGET) http://www.fhloston-paradise.de/crosstool-ng-1.16.0.tar.bz2
        $(WGET) http://www.fhloston-paradise.de/eglibc-2_13.tar.bz2
 
        @echo ""
        @false
 
+pkg-config-preqs:
+       @PATH=$(subst $(HOSTPREFIX)/bin:,,$(PATH)); \
+               if ! pkg-config --exists glib-2.0; then \
+                       echo "pkg-config and glib2-devel packages are needed for building cross-pkg-config."; false; \
+               fi
+
+pkg-config: $(HOSTPREFIX)/bin/pkg-config
+$(HOSTPREFIX)/bin/pkg-config: $(ARCHIVE)/pkg-config-$(PKGCONFIG_VER).tar.gz | $(HOSTPREFIX)/bin pkg-config-preqs
+       $(UNTAR)/pkg-config-$(PKGCONFIG_VER).tar.gz
+       set -e; cd $(BUILD_TMP)/pkg-config-$(PKGCONFIG_VER); \
+               ./configure --with-pc_path=$(PKG_CONFIG_PATH); \
+               $(MAKE); \
+               cp -a pkg-config $(HOSTPREFIX)/bin; \
+       ln -sf pkg-config $(HOSTPREFIX)/bin/$(TARGET)-pkg-config
+       $(REMOVE)/pkg-config-$(PKGCONFIG_VER)
+
 skeleton: | $(TARGETPREFIX)
        if [ $(PLATFORM) = "apollo" ]; then \
                cp --remove-destination -a skel-root-apollo/* $(TARGETPREFIX)/; \
 
 # including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://. 
 LIBRTMP_VER = 2.4_p20131018
 
+# pkg-config; a helper tool used when compiling applications and libraries to insert the correct compiler options
+PKGCONFIG_VER=0.28
+
 # ushare; uShare is a UPnP (TM) A/V Media Server.
 USHARE_VER = 1.1a