Skip to content

Commit

Permalink
Added mingw target for compiling windows exe and dll.
Browse files Browse the repository at this point in the history
They can be compiled on linux; all that is needed is the mingw32
package.
  • Loading branch information
jgm committed Nov 14, 2014
1 parent dafd433 commit ad0d423
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 2 deletions.
12 changes: 10 additions & 2 deletions Makefile
@@ -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))
Expand All @@ -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)
Expand All @@ -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; \
Expand All @@ -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

Expand Down
17 changes: 17 additions & 0 deletions 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)

0 comments on commit ad0d423

Please sign in to comment.