summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Theodore <tonyt@logyst.com>2014-02-08 16:34:35 (GMT)
committerTony Theodore <tonyt@logyst.com>2014-02-08 16:34:35 (GMT)
commitb5449a4a2616140c30b1b66816bc839b16e82b4b (patch)
tree861d9f1c6f3c6170ad6c23a1eb8c86e5d313ec85
parent5fd5e9bbecb20f7f8d06b557111630325bcf85e0 (diff)
parent1a9ad29fe676d8d16cdaf3a4fb025733425390fd (diff)
downloadmxe-b5449a4a2616140c30b1b66816bc839b16e82b4b.zip
mxe-b5449a4a2616140c30b1b66816bc839b16e82b4b.tar.gz
mxe-b5449a4a2616140c30b1b66816bc839b16e82b4b.tar.bz2
Merge pull request #319 from tonytheodore/mxe-configury
mxe configury: build native pkgconf and centralise various conf files
-rw-r--r--Makefile4
-rw-r--r--src/binutils.mk8
-rw-r--r--src/gcc.mk54
-rw-r--r--src/pkgconf.mk62
4 files changed, 63 insertions, 65 deletions
diff --git a/Makefile b/Makefile
index 5e8b5ad..5f8e99b 100644
--- a/Makefile
+++ b/Makefile
@@ -46,10 +46,6 @@ BUILD := $(shell '$(TOP_DIR)/tools/config.guess')
BUILD_PKGS := $(shell grep -l 'BUILD_$$(BUILD)' '$(TOP_DIR)/src/'*.mk | $(SED) -n 's,.*src/\(.*\)\.mk,\1,p')
PATH := $(PREFIX)/$(BUILD)/bin:$(PREFIX)/bin:$(PATH)
-# install config.guess for general use
-$(shell $(INSTALL) -d '$(PREFIX)/bin')
-$(shell $(INSTALL) -m755 '$(TOP_DIR)/tools/config.guess' '$(PREFIX)/bin/')
-
# use a minimal whitelist of safe environment variables
ENV_WHITELIST := PATH LANG MAKE% MXE% %PROXY %proxy
unexport $(filter-out $(ENV_WHITELIST),$(shell env | cut -d '=' -f1))
diff --git a/src/binutils.mk b/src/binutils.mk
index 0424254..a768cae 100644
--- a/src/binutils.mk
+++ b/src/binutils.mk
@@ -9,7 +9,7 @@ $(PKG)_SUBDIR := binutils-$($(PKG)_VERSION)
$(PKG)_FILE := binutils-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/binutils/$($(PKG)_FILE)
$(PKG)_URL_2 := ftp://ftp.cs.tu-berlin.de/pub/gnu/binutils/$($(PKG)_FILE)
-$(PKG)_DEPS :=
+$(PKG)_DEPS := pkgconf
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://ftp.gnu.org/gnu/binutils/?C=M;O=D' | \
@@ -19,13 +19,9 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- # install target-specific autotools config file
- $(INSTALL) -d '$(PREFIX)/$(TARGET)/share'
- echo "ac_cv_build=`$(1)/config.guess`" > '$(PREFIX)/$(TARGET)/share/config.site'
-
cd '$(1)' && ./configure \
--target='$(TARGET)' \
- --build="`config.guess`" \
+ --build='$(BUILD)' \
--prefix='$(PREFIX)' \
--disable-multilib \
--with-gcc \
diff --git a/src/gcc.mk b/src/gcc.mk
index e5f2166..3b6a23a 100644
--- a/src/gcc.mk
+++ b/src/gcc.mk
@@ -27,7 +27,7 @@ define $(PKG)_CONFIGURE
mkdir '$(1).build'
cd '$(1).build' && '$(1)/configure' \
--target='$(TARGET)' \
- --build="`config.guess`" \
+ --build='$(BUILD)' \
--prefix='$(PREFIX)' \
--libdir='$(PREFIX)/lib' \
--enable-languages='c,c++,objc,fortran' \
@@ -51,60 +51,12 @@ define $(PKG)_CONFIGURE
$(shell [ `uname -s` == Darwin ] && echo "LDFLAGS='-Wl,-no_pie'")
endef
-define $(PKG)_POST_BUILD
- # create pkg-config script
- (echo '#!/bin/sh'; \
- echo 'PKG_CONFIG_PATH="$(PREFIX)/$(TARGET)/qt5/lib/pkgconfig":"$$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'
-
- # create the CMake toolchain file
- [ -d '$(dir $(CMAKE_TOOLCHAIN_FILE))' ] || mkdir -p '$(dir $(CMAKE_TOOLCHAIN_FILE))'
- (echo 'set(CMAKE_SYSTEM_NAME Windows)'; \
- echo 'set(MSYS 1)'; \
- echo 'set(BUILD_SHARED_LIBS OFF)'; \
- echo 'set(CMAKE_BUILD_TYPE Release)'; \
- echo 'set(CMAKE_FIND_ROOT_PATH $(PREFIX)/$(TARGET))'; \
- echo 'set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)'; \
- echo 'set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)'; \
- echo 'set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)'; \
- echo 'set(CMAKE_C_COMPILER $(PREFIX)/bin/$(TARGET)-gcc)'; \
- echo 'set(CMAKE_CXX_COMPILER $(PREFIX)/bin/$(TARGET)-g++)'; \
- echo 'set(CMAKE_Fortran_COMPILER $(PREFIX)/bin/$(TARGET)-gfortran)'; \
- echo 'set(CMAKE_RC_COMPILER $(PREFIX)/bin/$(TARGET)-windres)'; \
- echo 'set(HDF5_C_COMPILER_EXECUTABLE $(PREFIX)/bin/$(TARGET)-h5cc)'; \
- echo 'set(HDF5_CXX_COMPILER_EXECUTABLE $(PREFIX)/bin/$(TARGET)-h5c++)'; \
- echo 'set(PKG_CONFIG_EXECUTABLE $(PREFIX)/bin/$(TARGET)-pkg-config)'; \
- echo 'set(QT_QMAKE_EXECUTABLE $(PREFIX)/$(TARGET)/qt/bin/qmake)'; \
- echo 'set(CMAKE_INSTALL_PREFIX $(PREFIX)/$(TARGET) CACHE PATH "Installation Prefix")'; \
- echo 'set(CMAKE_BUILD_TYPE Release CACHE STRING "Debug|Release|RelWithDebInfo|MinSizeRel")') \
- > '$(CMAKE_TOOLCHAIN_FILE)'
-endef
-
-define $(PKG)_POST_BUILD_mingw32
- # create pkg-config files
- $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
- (echo 'Name: gl'; \
- echo 'Version: 0'; \
- echo 'Description: OpenGL'; \
- echo 'Libs: -lopengl32';) \
- > '$(PREFIX)/$(TARGET)/lib/pkgconfig/gl.pc'
-
- (echo 'Name: glu'; \
- echo 'Version: 0'; \
- echo 'Description: OpenGL'; \
- echo 'Libs: -lglu32';) \
- > '$(PREFIX)/$(TARGET)/lib/pkgconfig/glu.pc'
-endef
-
define $(PKG)_BUILD_i686-pc-mingw32
# build full cross gcc
$($(PKG)_CONFIGURE) \
--disable-sjlj-exceptions
$(MAKE) -C '$(1).build' -j '$(JOBS)'
$(MAKE) -C '$(1).build' -j 1 install
- $($(PKG)_POST_BUILD)
- $($(PKG)_POST_BUILD_mingw32)
endef
define $(PKG)_BUILD_mingw-w64
@@ -127,9 +79,6 @@ define $(PKG)_BUILD_mingw-w64
cd '$(1).build'
$(MAKE) -C '$(1).build' -j '$(JOBS)'
$(MAKE) -C '$(1).build' -j 1 install
-
- $($(PKG)_POST_BUILD)
- $($(PKG)_POST_BUILD_mingw32)
endef
$(PKG)_BUILD_x86_64-w64-mingw32 = $(subst mxe-config-opts,--disable-lib32,$($(PKG)_BUILD_mingw-w64))
@@ -139,5 +88,4 @@ define $(PKG)_BUILD_$(BUILD)
for f in c++ cpp g++ gcc gcov; do \
ln -sf "`which $$f`" '$(PREFIX)/bin/$(TARGET)'-$$f ; \
done
- $($(PKG)_POST_BUILD)
endef
diff --git a/src/pkgconf.mk b/src/pkgconf.mk
index 00cc2ab..cca6855 100644
--- a/src/pkgconf.mk
+++ b/src/pkgconf.mk
@@ -8,7 +8,9 @@ $(PKG)_CHECKSUM := 1e7b5ffe35ca4580a9b801307c3bc919fd77a4fd
$(PKG)_SUBDIR := $(PKG)-$(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://github.com/$(PKG)/$(PKG)/tarball/$($(PKG)_VERSION)/$($(PKG)_FILE)
-$(PKG)_DEPS := automake
+$(PKG)_DEPS :=
+
+$(PKG)_DEPS_$(BUILD) := automake
define $(PKG)_UPDATE_
$(WGET) -q -O- 'https://github.com/pkgconf/pkgconf/commits/master' | \
@@ -21,11 +23,67 @@ define $(PKG)_UPDATE
echo $(pkgconf_VERSION)
endef
-define $(PKG)_BUILD_$(BUILD)
+define $(PKG)_BUILD_COMMON
cd '$(1)' && ./autogen.sh
cd '$(1)' && ./configure \
--prefix='$(PREFIX)/$(TARGET)'
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
ln -sf '$(PREFIX)/$(TARGET)/bin/pkgconf' '$(PREFIX)/$(TARGET)/bin/pkg-config'
+
+ # install target-specific autotools config file
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/share'
+ echo "ac_cv_build=$(BUILD)" > '$(PREFIX)/$(TARGET)/share/config.site'
+
+ # install config.guess for general use
+ $(INSTALL) -d '$(PREFIX)/bin'
+ $(INSTALL) -m755 '$(TOP_DIR)/tools/config.guess' '$(PREFIX)/bin/'
+
+ # create pkg-config script
+ (echo '#!/bin/sh'; \
+ echo 'PKG_CONFIG_PATH="$(PREFIX)/$(TARGET)/qt5/lib/pkgconfig":"$$PKG_CONFIG_PATH_$(subst -,_,$(TARGET))" PKG_CONFIG_LIBDIR='\''$(PREFIX)/$(TARGET)/lib/pkgconfig'\'' exec '$(PREFIX)/$(TARGET)/bin/pkg-config' --static "$$@"') \
+ > '$(PREFIX)/bin/$(TARGET)-pkg-config'
+ chmod 0755 '$(PREFIX)/bin/$(TARGET)-pkg-config'
+
+ # create the CMake toolchain file
+ [ -d '$(dir $(CMAKE_TOOLCHAIN_FILE))' ] || mkdir -p '$(dir $(CMAKE_TOOLCHAIN_FILE))'
+ (echo 'set(CMAKE_SYSTEM_NAME Windows)'; \
+ echo 'set(MSYS 1)'; \
+ echo 'set(BUILD_SHARED_LIBS OFF)'; \
+ echo 'set(CMAKE_BUILD_TYPE Release)'; \
+ echo 'set(CMAKE_FIND_ROOT_PATH $(PREFIX)/$(TARGET))'; \
+ echo 'set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)'; \
+ echo 'set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)'; \
+ echo 'set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)'; \
+ echo 'set(CMAKE_C_COMPILER $(PREFIX)/bin/$(TARGET)-gcc)'; \
+ echo 'set(CMAKE_CXX_COMPILER $(PREFIX)/bin/$(TARGET)-g++)'; \
+ echo 'set(CMAKE_Fortran_COMPILER $(PREFIX)/bin/$(TARGET)-gfortran)'; \
+ echo 'set(CMAKE_RC_COMPILER $(PREFIX)/bin/$(TARGET)-windres)'; \
+ echo 'set(HDF5_C_COMPILER_EXECUTABLE $(PREFIX)/bin/$(TARGET)-h5cc)'; \
+ echo 'set(HDF5_CXX_COMPILER_EXECUTABLE $(PREFIX)/bin/$(TARGET)-h5c++)'; \
+ echo 'set(PKG_CONFIG_EXECUTABLE $(PREFIX)/bin/$(TARGET)-pkg-config)'; \
+ echo 'set(QT_QMAKE_EXECUTABLE $(PREFIX)/$(TARGET)/qt/bin/qmake)'; \
+ echo 'set(CMAKE_INSTALL_PREFIX $(PREFIX)/$(TARGET) CACHE PATH "Installation Prefix")'; \
+ echo 'set(CMAKE_BUILD_TYPE Release CACHE STRING "Debug|Release|RelWithDebInfo|MinSizeRel")') \
+ > '$(CMAKE_TOOLCHAIN_FILE)'
endef
+
+define $(PKG)_BUILD
+ $($(PKG)_BUILD_COMMON)
+
+ # create pkg-config files for OpenGL/GLU
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
+ (echo 'Name: gl'; \
+ echo 'Version: 0'; \
+ echo 'Description: OpenGL'; \
+ echo 'Libs: -lopengl32';) \
+ > '$(PREFIX)/$(TARGET)/lib/pkgconfig/gl.pc'
+
+ (echo 'Name: glu'; \
+ echo 'Version: 0'; \
+ echo 'Description: OpenGL'; \
+ echo 'Libs: -lglu32';) \
+ > '$(PREFIX)/$(TARGET)/lib/pkgconfig/glu.pc'
+endef
+
+$(PKG)_BUILD_$(BUILD) = $($(PKG)_BUILD_COMMON)