summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Theodore <tonyt@logyst.com>2011-03-16 18:05:00 (GMT)
committerTony Theodore <tonyt@logyst.com>2011-03-16 18:05:00 (GMT)
commitd9bfa57f735b23a976acb678afe871b954543edc (patch)
treec7f0b36339384dd8f84943577d432edb759719d7
parentf64e4870424c9ed655af82903f23c197d0bd9d34 (diff)
downloadmxe-d9bfa57f735b23a976acb678afe871b954543edc.zip
mxe-d9bfa57f735b23a976acb678afe871b954543edc.tar.gz
mxe-d9bfa57f735b23a976acb678afe871b954543edc.tar.bz2
add cmake toolchain file and simplify build rules of relevant packages
-rw-r--r--Makefile2
-rw-r--r--src/gcc.mk16
-rw-r--r--src/openal.mk15
-rw-r--r--src/openscenegraph.mk25
-rw-r--r--src/physfs.mk23
-rw-r--r--src/taglib.mk15
-rw-r--r--src/vigra.mk23
7 files changed, 41 insertions, 78 deletions
diff --git a/Makefile b/Makefile
index 9654115..088c17e 100644
--- a/Makefile
+++ b/Makefile
@@ -27,6 +27,8 @@ REQUIREMENTS := autoconf automake bash bison bzip2 cmake flex \
$(MAKE) openssl $(PATCH) $(PERL) pkg-config \
scons $(SED) unzip wget xz yasm
+CMAKE_TOOLCHAIN_FILE := $(PREFIX)/$(TARGET)/share/cmake/mingw-cross-env-conf.cmake
+
# unexport any environment variables that might cause trouble
unexport AR CC CFLAGS C_INCLUDE_PATH CPATH CPLUS_INCLUDE_PATH CPP
unexport CPPFLAGS CROSS CXX CXXCPP CXXFLAGS EXEEXT EXTRA_CFLAGS
diff --git a/src/gcc.mk b/src/gcc.mk
index fff5235..b9bbda3 100644
--- a/src/gcc.mk
+++ b/src/gcc.mk
@@ -54,4 +54,20 @@ define $(PKG)_BUILD
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'
+
+ # create the CMake toolchain file
+ [ -d '$(dir $(CMAKE_TOOLCHAIN_FILE))' ] || mkdir -p '$(dir $(CMAKE_TOOLCHAIN_FILE))'
+ (echo 'set(BUILD_SHARED_LIBS OFF)'; \
+ echo 'set(CMAKE_SYSTEM_NAME Windows)'; \
+ 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_RC_COMPILER $(PREFIX)/bin/$(TARGET)-windres)'; \
+ echo 'set(PKG_CONFIG_EXECUTABLE $(PREFIX)/bin/$(TARGET)-pkg-config)'; \
+ 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
diff --git a/src/openal.mk b/src/openal.mk
index 12ca906..3c31553 100644
--- a/src/openal.mk
+++ b/src/openal.mk
@@ -19,19 +19,8 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- cd '$(1)/build' && cmake .. \
- -DCMAKE_SYSTEM_NAME=Windows \
- -DCMAKE_FIND_ROOT_PATH='$(PREFIX)/$(TARGET)' \
- -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
- -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
- -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
- -DCMAKE_C_COMPILER='$(PREFIX)/bin/$(TARGET)-gcc' \
- -DCMAKE_CXX_COMPILER='$(PREFIX)/bin/$(TARGET)-g++' \
- -DCMAKE_INCLUDE_PATH='$(PREFIX)/$(TARGET)/include' \
- -DCMAKE_LIB_PATH='$(PREFIX)/$(TARGET)/lib' \
- -DPKG_CONFIG_EXECUTABLE=$(TARGET)-pkg-config \
- -DCMAKE_INSTALL_PREFIX='$(PREFIX)/$(TARGET)' \
- -DCMAKE_BUILD_TYPE=Release \
+ cd '$(1)/build' && cmake .. \
+ -DCMAKE_TOOLCHAIN_FILE=$(CMAKE_TOOLCHAIN_FILE) \
-DLIBTYPE=STATIC
$(MAKE) -C '$(1)/build' -j '$(JOBS)' install
diff --git a/src/openscenegraph.mk b/src/openscenegraph.mk
index 40171d5..79dd394 100644
--- a/src/openscenegraph.mk
+++ b/src/openscenegraph.mk
@@ -22,24 +22,13 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- cd '$(1)' && cmake . \
- -DCMAKE_SYSTEM_NAME=Windows \
- -DCMAKE_FIND_ROOT_PATH='$(PREFIX)/$(TARGET)' \
- -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
- -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
- -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
- -DCMAKE_C_COMPILER='$(PREFIX)/bin/$(TARGET)-gcc' \
- -DCMAKE_CXX_COMPILER='$(PREFIX)/bin/$(TARGET)-g++' \
- -DCMAKE_CXX_FLAGS=-D__STDC_CONSTANT_MACROS \
- -DCMAKE_INCLUDE_PATH='$(PREFIX)/$(TARGET)/include' \
- -DCMAKE_LIB_PATH='$(PREFIX)/$(TARGET)/lib' \
- -DPKG_CONFIG_EXECUTABLE=$(TARGET)-pkg-config \
- -DCMAKE_INSTALL_PREFIX='$(PREFIX)/$(TARGET)' \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_HAVE_PTHREAD_H=OFF \
- -DDYNAMIC_OPENTHREADS=OFF \
- -DDYNAMIC_OPENSCENEGRAPH=OFF \
- -DBUILD_OSG_APPLICATIONS=OFF \
+ cd '$(1)' && cmake . \
+ -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+ -DCMAKE_CXX_FLAGS=-D__STDC_CONSTANT_MACROS \
+ -DCMAKE_HAVE_PTHREAD_H=OFF \
+ -DDYNAMIC_OPENTHREADS=OFF \
+ -DDYNAMIC_OPENSCENEGRAPH=OFF \
+ -DBUILD_OSG_APPLICATIONS=OFF \
-D_OPENTHREADS_ATOMIC_USE_GCC_BUILTINS_EXITCODE=1
$(MAKE) -C '$(1)' -j '$(JOBS)' install
endef
diff --git a/src/physfs.mk b/src/physfs.mk
index 09c9f77..09ba205 100644
--- a/src/physfs.mk
+++ b/src/physfs.mk
@@ -19,27 +19,16 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- cd '$(1)' && cmake . \
- -DCMAKE_SYSTEM_NAME=Windows \
- -DCMAKE_FIND_ROOT_PATH='$(PREFIX)/$(TARGET)' \
- -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
- -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
- -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
- -DCMAKE_C_COMPILER='$(PREFIX)/bin/$(TARGET)-gcc' \
- -DCMAKE_CXX_COMPILER='$(PREFIX)/bin/$(TARGET)-g++' \
- -DCMAKE_CXX_FLAGS=-D__STDC_CONSTANT_MACROS \
- -DCMAKE_INCLUDE_PATH='$(PREFIX)/$(TARGET)/include' \
- -DCMAKE_LIB_PATH='$(PREFIX)/$(TARGET)/lib' \
- -DCMAKE_INSTALL_PREFIX='$(PREFIX)/$(TARGET)' \
- -DCMAKE_BUILD_TYPE=Release \
- -DPHYSFS_BUILD_SHARED=FALSE \
- -DPHYSFS_INTERNAL_ZLIB=FALSE \
- -DPHYSFS_BUILD_TEST=FALSE \
+ cd '$(1)' && cmake . \
+ -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+ -DPHYSFS_BUILD_SHARED=FALSE \
+ -DPHYSFS_INTERNAL_ZLIB=FALSE \
+ -DPHYSFS_BUILD_TEST=FALSE \
-DPHYSFS_BUILD_WX_TEST=FALSE
$(MAKE) -C '$(1)' -j '$(JOBS)' install
'$(TARGET)-gcc' \
- -W -Wall -Werror -ansi -pedantic -std=c99\
+ -W -Wall -Werror -ansi -pedantic -std=c99 \
'$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-physfs.exe' \
-lphysfs -lz
endef
diff --git a/src/taglib.mk b/src/taglib.mk
index 898b839..d53eda7 100644
--- a/src/taglib.mk
+++ b/src/taglib.mk
@@ -20,19 +20,8 @@ endef
define $(PKG)_BUILD
mkdir '$(1)/build'
- cd '$(1)/build' && cmake .. \
- -DCMAKE_SYSTEM_NAME=Windows \
- -DCMAKE_FIND_ROOT_PATH='$(PREFIX)/$(TARGET)' \
- -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
- -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
- -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
- -DCMAKE_C_COMPILER='$(PREFIX)/bin/$(TARGET)-gcc' \
- -DCMAKE_CXX_COMPILER='$(PREFIX)/bin/$(TARGET)-g++' \
- -DCMAKE_INCLUDE_PATH='$(PREFIX)/$(TARGET)/include' \
- -DCMAKE_LIB_PATH='$(PREFIX)/$(TARGET)/lib' \
- -DPKG_CONFIG_EXECUTABLE=$(TARGET)-pkg-config \
- -DCMAKE_INSTALL_PREFIX='$(PREFIX)/$(TARGET)' \
- -DCMAKE_BUILD_TYPE=Release \
+ cd '$(1)/build' && cmake .. \
+ -DCMAKE_TOOLCHAIN_FILE=$(CMAKE_TOOLCHAIN_FILE) \
-DENABLE_STATIC=ON
$(MAKE) -C '$(1)/build' -j '$(JOBS)' install
endef
diff --git a/src/vigra.mk b/src/vigra.mk
index 17d23d0..0b56e14 100644
--- a/src/vigra.mk
+++ b/src/vigra.mk
@@ -27,23 +27,12 @@ define $(PKG)_BUILD
$(SED) -i 's,\bSHARED\b,STATIC,' '$(1)/config/VIGRA_ADD_NUMPY_MODULE.cmake'
$(SED) -i 's,\bSHARED\b,STATIC,' '$(1)/vigranumpy/test/CMakeLists.txt'
mkdir '$(1)/build'
- cd '$(1)/build' && cmake .. \
- -DCMAKE_SYSTEM_NAME=Windows \
- -DCMAKE_FIND_ROOT_PATH='$(PREFIX)/$(TARGET)' \
- -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
- -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
- -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
- -DCMAKE_C_COMPILER='$(PREFIX)/bin/$(TARGET)-gcc' \
- -DCMAKE_CXX_COMPILER='$(PREFIX)/bin/$(TARGET)-g++' \
- -DCMAKE_INCLUDE_PATH='$(PREFIX)/$(TARGET)/include' \
- -DCMAKE_LIB_PATH='$(PREFIX)/$(TARGET)/lib' \
- -DPKG_CONFIG_EXECUTABLE=$(TARGET)-pkg-config \
- -DCMAKE_INSTALL_PREFIX='$(PREFIX)/$(TARGET)' \
- -DCMAKE_BUILD_TYPE=Release \
- -DLIBTYPE=STATIC \
- -DVIGRA_STATIC_LIB=1 \
- -DWITH_HDF5=OFF \
- -DWITH_VIGRANUMPY=OFF \
+ cd '$(1)/build' && cmake .. \
+ -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+ -DLIBTYPE=STATIC \
+ -DVIGRA_STATIC_LIB=1 \
+ -DWITH_HDF5=OFF \
+ -DWITH_VIGRANUMPY=OFF \
-DWITH_VALGRIND=OFF
$(MAKE) -C '$(1)/build' -j '$(JOBS)' install