diff options
author | John MacFarlane <jgm@berkeley.edu> | 2014-11-14 08:28:53 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2014-11-14 08:28:53 -0800 |
commit | ad0d423bd57d2ac261ef921a9784dbfe666a89d2 (patch) | |
tree | 068d585980815ff6c2935b78a8080baed0edd9b6 | |
parent | dafd433b61f9f1df7a4294a8b0a86ddc66d7d3f4 (diff) |
Added mingw target for compiling windows exe and dll.
They can be compiled on linux; all that is needed is the mingw32
package.
-rw-r--r-- | Makefile | 12 | ||||
-rw-r--r-- | toolchain-mingw32.cmake | 17 |
2 files changed, 27 insertions, 2 deletions
@@ -1,6 +1,8 @@ SRCDIR?=src DATADIR?=data BUILDDIR?=build +MINGW_BUILDDIR?=build-mingw +MINGW_INSTALLDIR?=windows SPEC=spec.txt SITE=_site SPECVERSION=$(shell perl -ne 'print $$1 if /^version: *([0-9.]+)/' $(SPEC)) @@ -11,7 +13,7 @@ PROG?=$(BUILDDIR)/src/cmark BENCHINP?=README.md JSMODULES=$(wildcard js/lib/*.js) -.PHONY: all spec leakcheck clean fuzztest dingus upload jshint test testjs benchjs update-site upload-site check npm debug tarball +.PHONY: all spec leakcheck clean fuzztest dingus upload jshint test testjs benchjs update-site upload-site check npm debug mingw tarball all: $(BUILDDIR) @make -C $(BUILDDIR) @@ -33,6 +35,12 @@ debug: cmake .. -DCMAKE_BUILD_TYPE=Debug; \ make +mingw: + mkdir -p $(MINGW_BUILDDIR); \ + cd $(MINGW_BUILDDIR); \ + cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw32.cmake -DCMAKE_INSTALL_PREFIX=$(MINGW_INSTALLDIR) ;\ + make && make install + tarball: spec.html $(SRCDIR)/scanners.c rm -rf $(PKGDIR); \ mkdir -p $(PKGDIR)/man/man1; \ @@ -49,7 +57,7 @@ tarball: spec.html $(SRCDIR)/scanners.c rm -rf $(PKGDIR) clean: - rm -rf $(BUILDDIR) + rm -rf $(BUILDDIR) $(MINGW_BUILDDIR) $(MINGW_INSTALLDIR) $(PROG): all diff --git a/toolchain-mingw32.cmake b/toolchain-mingw32.cmake new file mode 100644 index 0000000..61c62a8 --- /dev/null +++ b/toolchain-mingw32.cmake @@ -0,0 +1,17 @@ +# the name of the target operating system +SET(CMAKE_SYSTEM_NAME Windows) + +# which compilers to use for C and C++ +SET(CMAKE_C_COMPILER i586-mingw32msvc-gcc) +SET(CMAKE_CXX_COMPILER i586-mingw32msvc-g++) +SET(CMAKE_RC_COMPILER i586-mingw32msvc-windres) + +# here is the target environment located +SET(CMAKE_FIND_ROOT_PATH /usr/i586-mingw32msvc "${CMAKE_SOURCE_DIR}/windows") + +# adjust the default behaviour of the FIND_XXX() commands: +# search headers and libraries in the target environment, search +# programs in the host environment +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) |