Skip to content

Commit 19ddf19

Browse files
committed
fix build process for mingw32 gems
1 parent 286b72a commit 19ddf19

3 files changed

Lines changed: 45 additions & 63 deletions

File tree

Dockerfile

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,47 @@ FROM ubuntu:14.04
22
MAINTAINER TAGOMORI Satoshi <tagomoris@gmail.com>
33
LABEL Description="Host image to cross-compile msgpack.gem for mingw32" Vendor="MessagePack Organization" Version="1.0"
44

5+
RUN apt-get update -y
6+
RUN apt-get install -y git curl
7+
RUN apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
8+
RUN apt-get install -y mingw-w64 gcc-mingw-w64-i686 gcc-mingw-w64-x86-64
9+
10+
RUN useradd ubuntu -d /home/ubuntu -m -U
11+
RUN chown -R ubuntu:ubuntu /home/ubuntu
12+
513
USER ubuntu
614

7-
RUN apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
8-
RUN apt-get install gcc-mingw32 mingw-w64
9-
# RUN git?
10-
RUN git clone https://github.com/tagomoris/xbuild.git /home/ubuntu/.xbuild
11-
RUN /home/ubuntu/.xbuild/ruby-install 2.2.2 /home/ubuntu/local/ruby-2.2
12-
RUN PATH=/home/ubuntu/local/ruby-2.2/bin:$PATH /home/ubuntu/local/ruby-2.2/bin/gem install rake-compiler
13-
RUN PATH=/home/ubuntu/local/ruby-2.2/bin:$PATH rake-compiler cross-ruby VERSION=2.2.2 EXTS=--without-extensions
14-
RUN /home/ubuntu/.xbuild/ruby-install 2.1.5 /home/ubuntu/local/ruby-2.1
15-
RUN PATH=/home/ubuntu/local/ruby-2.1/bin:$PATH /home/ubuntu/local/ruby-2.1/bin/gem install rake-compiler
16-
RUN PATH=/home/ubuntu/local/ruby-2.1/bin:$PATH rake-compiler cross-ruby VERSION=2.1.5 EXTS=--without-extensions
17-
RUN /home/ubuntu/.xbuild/ruby-install 2.0.0-p643 /home/ubuntu/local/ruby-2.0
18-
RUN PATH=/home/ubuntu/local/ruby-2.0/bin:$PATH /home/ubuntu/local/ruby-2.0/bin/gem install rake-compiler
19-
RUN PATH=/home/ubuntu/local/ruby-2.0/bin:$PATH rake-compiler cross-ruby VERSION=2.0.0-p643 EXTS=--without-extensions
20-
21-
RUN git clone https://github.com/msgpack/msgpack-ruby.git /home/ubuntu/msgpack-ruby
15+
WORKDIR /home/ubuntu
16+
17+
RUN git clone https://github.com/tagomoris/xbuild.git
18+
RUN git clone https://github.com/msgpack/msgpack-ruby.git
19+
20+
RUN /home/ubuntu/xbuild/ruby-install 2.0.0-p643 /home/ubuntu/local/ruby-2.0
21+
22+
ENV PATH /home/ubuntu/local/ruby-2.0/bin:$PATH
23+
RUN gem install rake-compiler
24+
RUN rake-compiler cross-ruby VERSION=2.0.0-p643 HOST=i686-w64-mingw32 EXTS=--without-extensions
25+
RUN rake-compiler cross-ruby VERSION=2.0.0-p643 HOST=x86_64-w64-mingw32 EXTS=--without-extensions
26+
27+
RUN /home/ubuntu/xbuild/ruby-install 2.1.5 /home/ubuntu/local/ruby-2.1
28+
29+
ENV PATH /home/ubuntu/local/ruby-2.1/bin:$PATH
30+
RUN gem install rake-compiler
31+
RUN rake-compiler cross-ruby VERSION=2.1.5 HOST=i686-w64-mingw32 EXTS=--without-extensions
32+
RUN rake-compiler cross-ruby VERSION=2.1.5 HOST=x86_64-w64-mingw32 EXTS=--without-extensions
33+
34+
RUN /home/ubuntu/xbuild/ruby-install 2.2.2 /home/ubuntu/local/ruby-2.2
35+
36+
ENV PATH /home/ubuntu/local/ruby-2.2/bin:$PATH
37+
RUN gem install rake-compiler
38+
RUN rake-compiler cross-ruby VERSION=2.2.2 HOST=i686-w64-mingw32 EXTS=--without-extensions
39+
RUN rake-compiler cross-ruby VERSION=2.2.2 HOST=x86_64-w64-mingw32 EXTS=--without-extensions
2240

2341
WORKDIR /home/ubuntu/msgpack-ruby
2442

2543
ENV MSGPACK_REPO https://github.com/msgpack/msgpack-ruby.git
2644
ENV BUILD_BRANCH master
2745
ENV BUILD_POSITION HEAD
2846

29-
ENTRYPOINT ["/home/ubuntu/msgpack-ruby/cross-build.sh", "/home/ubuntu/local/ruby-2.2", "2.0.0-p643:2.1.5:2.2.2"]
30-
47+
### docker run -v `pwd`/pkg:/home/ubuntu/msgpack-ruby/pkg IMAGENAME
48+
CMD ["bash", "-c", "git pull $MSGPACK_REPO $BUILD_BRANCH && git reset --hard HEAD && bundle && rake cross native gem"]

README.rdoc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,16 @@ Then, you can run the tasks as follows:
121121

122122
bundle exec rake doc
123123

124+
== How to build -mingw32 rubygems
125+
126+
MessagePack mingw32 rubygems build process uses {Docker}[https://docs.docker.com/].
127+
128+
Set up docker environment at first, and then run docker container to build gems, with shared directory "pkg".
129+
130+
docker run -it --rm -v `pwd`/pkg:/home/ubuntu/msgpack-ruby/pkg msgpack/msgpack-rubygem-cross01
131+
132+
Once this step successes, target gems exist in pkg/msgpack-*-{x86,x64}-mingw32.gem.
133+
124134
= Copyright
125135

126136
Author:: Sadayuki Furuhashi <frsyuki@gmail.com>

Rakefile

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -66,49 +66,3 @@ end
6666
CLEAN.include('lib/msgpack/msgpack.*')
6767

6868
task :default => [:spec, :build, :doc]
69-
70-
71-
###
72-
## Cross compile memo
73-
##
74-
## Ubuntu Ubuntu 10.04.1 LTS
75-
##
76-
#
77-
### install mingw32 cross compiler with w64 support
78-
# sudo apt-get install gcc-mingw32
79-
# sudo apt-get install mingw-w64
80-
#
81-
### install rbenv
82-
# git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
83-
# echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
84-
# echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
85-
# exec $SHELL -l
86-
#
87-
### install cross-compiled ruby 2.0.0
88-
# rbenv install 2.0.0-p247
89-
# rbenv shell 2.0.0-p247
90-
# gem update --system
91-
# gem install rake-compiler
92-
# rake-compiler cross-ruby VERSION=2.0.0-p247
93-
#
94-
### install cross-compiled ruby 1.9.3
95-
# rbenv install 1.9.3-p327
96-
# rbenv shell 1.9.3-p327
97-
# gem update --system
98-
# gem install rake-compiler
99-
# rake-compiler cross-ruby VERSION=1.9.3-p327
100-
#
101-
### install cross-compiled ruby 1.8.7
102-
# rbenv install 1.8.7-p374
103-
# rbenv shell 1.8.7-p374
104-
# gem update --system
105-
# gem install rake-compiler
106-
# rake-compiler cross-ruby VERSION=1.8.7-p374
107-
#
108-
### build gem
109-
# rbenv shell 1.8.7-p374
110-
# gem install bundler
111-
# bundle
112-
# rake cross native gem RUBY_CC_VERSION=1.8.7:1.9.3:2.0.0
113-
#
114-

0 commit comments

Comments
 (0)