Skip to content

Instantly share code, notes, and snippets.

@Anime4000
Created February 3, 2018 19:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Anime4000/03bb3d18b0cfdfa9e2439e3dc045d0c2 to your computer and use it in GitHub Desktop.
Save Anime4000/03bb3d18b0cfdfa9e2439e3dc045d0c2 to your computer and use it in GitHub Desktop.
cross-compile
  1. Using msys2
  2. Update msys2 by typing pacman -Syu, close terminal (no type exit)
  3. Open MSYS2 MSYS at Start Menu and run pacman -Su
  4. Install package pacman -S base-devel git mingw-w64-x86_64-toolchain zlib-devel yasm cmake
Hatoko@Hatoko-VM MSYS ~
$ cd iodine-master/

Hatoko@Hatoko-VM MSYS ~/iodine-master
$ autoreconf --install
aclocal-1.15: warning: couldn't open directory 'autotools': No such file or directory
configure.ac:68: installing 'autotools/compile'
configure.ac:23: installing 'autotools/config.guess'
configure.ac:23: installing 'autotools/config.sub'
configure.ac:11: installing 'autotools/install-sh'
configure.ac:11: installing 'autotools/missing'
Makefile.am: installing 'autotools/depcomp'
parallel-tests: installing 'autotools/test-driver'

Hatoko@Hatoko-VM MSYS ~/iodine-master
$ ./configure
configure: loading site script /etc/config.site
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking environment to compile for... checking build system type... x86_64-pc-msys
checking host system type... x86_64-pc-msys
configure: host_os: msys
configure: uname_os: MSYS_NT-6.1
configure: adjusted OS: MSYS
fatal: Not a git repository (or any of the parent directories): .git
checking whether configure should try to set CFLAGS... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for gcc option to accept ISO C99... none needed
checking for gcc option to accept ISO Standard C... (cached) none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
./configure: line 4852: AX_CFLAGS_WARN_ALL: command not found
checking for library containing uncompress... -lz
checking systemd... checking for library containing sd_listen_fds... no
checking for sd_listen_fds... no
disabled: systemd
checking for library containing setcon... no
checking for setcon... no
disabled: selinux
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for check... no
disabled: unit testing
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking for unistd.h... (cached) yes
checking systemd/sd-daemon.h usability... no
checking systemd/sd-daemon.h presence... no
checking for systemd/sd-daemon.h... no
checking selinux/selinux.h usability... no
checking selinux/selinux.h presence... no
checking for selinux/selinux.h... no
checking for socklen_t... yes
checking for uid_t in sys/types.h... yes
checking for inline... inline
checking for size_t... yes
checking for ssize_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint8_t... yes
checking for pid_t... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for alarm... yes
checking for dup2... yes
checking for inet_ntoa... yes
checking for memset... yes
checking for select... yes
checking for socket... yes
checking for strcasecmp... yes
checking for strchr... yes
checking for strdup... yes
checking for strerror... yes
checking for strrchr... yes
checking for strstr... yes
checking for bzero... yes
checking for strtol... yes
checking for gettimeofday... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands

Hatoko@Hatoko-VM MSYS ~/iodine-master
$ make
Making src/base64u.c
sed -e 's/\([Bb][Aa][Ss][Ee]64\)/\1u/g ; s/\([Bb]64\)/\1u/g ; s/0123456789+/0123456789_/' < src/base64.c >> src/base64u.c
Making src/base64u.h
sed -e 's/\([Bb][Aa][Ss][Ee]64\)/\1u/g ; s/\([Bb]64\)/\1u/g ; s/0123456789+/0123456789_/' < src/base64.h >> src/base64u.h
make  all-am
make[1]: Entering directory '/home/Hatoko/iodine-master'
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-base32.o -MD -MP -MF src/.deps/iodine-base32.Tpo -c -o src/iodine-base32.o `test -f 'src/base32.c' || echo './'`src/base32.c
mv -f src/.deps/iodine-base32.Tpo src/.deps/iodine-base32.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-base64.o -MD -MP -MF src/.deps/iodine-base64.Tpo -c -o src/iodine-base64.o `test -f 'src/base64.c' || echo './'`src/base64.c
mv -f src/.deps/iodine-base64.Tpo src/.deps/iodine-base64.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-common.o -MD -MP -MF src/.deps/iodine-common.Tpo -c -o src/iodine-common.o `test -f 'src/common.c' || echo './'`src/common.c
mv -f src/.deps/iodine-common.Tpo src/.deps/iodine-common.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-dns.o -MD -MP -MF src/.deps/iodine-dns.Tpo -c -o src/iodine-dns.o `test -f 'src/dns.c' || echo './'`src/dns.c
mv -f src/.deps/iodine-dns.Tpo src/.deps/iodine-dns.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-encoding.o -MD -MP -MF src/.deps/iodine-encoding.Tpo -c -o src/iodine-encoding.o `test -f 'src/encoding.c' || echo './'`src/encoding.c
mv -f src/.deps/iodine-encoding.Tpo src/.deps/iodine-encoding.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-login.o -MD -MP -MF src/.deps/iodine-login.Tpo -c -o src/iodine-login.o `test -f 'src/login.c' || echo './'`src/login.c
mv -f src/.deps/iodine-login.Tpo src/.deps/iodine-login.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-md5.o -MD -MP -MF src/.deps/iodine-md5.Tpo -c -o src/iodine-md5.o `test -f 'src/md5.c' || echo './'`src/md5.c
mv -f src/.deps/iodine-md5.Tpo src/.deps/iodine-md5.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-read.o -MD -MP -MF src/.deps/iodine-read.Tpo -c -o src/iodine-read.o `test -f 'src/read.c' || echo './'`src/read.c
mv -f src/.deps/iodine-read.Tpo src/.deps/iodine-read.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-window.o -MD -MP -MF src/.deps/iodine-window.Tpo -c -o src/iodine-window.o `test -f 'src/window.c' || echo './'`src/window.c
mv -f src/.deps/iodine-window.Tpo src/.deps/iodine-window.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-util.o -MD -MP -MF src/.deps/iodine-util.Tpo -c -o src/iodine-util.o `test -f 'src/util.c' || echo './'`src/util.c
mv -f src/.deps/iodine-util.Tpo src/.deps/iodine-util.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-base128.o -MD -MP -MF src/.deps/iodine-base128.Tpo -c -o src/iodine-base128.o `test -f 'src/base128.c' || echo './'`src/base128.c
mv -f src/.deps/iodine-base128.Tpo src/.deps/iodine-base128.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-tun.o -MD -MP -MF src/.deps/iodine-tun.Tpo -c -o src/iodine-tun.o `test -f 'src/tun.c' || echo './'`src/tun.c
mv -f src/.deps/iodine-tun.Tpo src/.deps/iodine-tun.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-base64u.o -MD -MP -MF src/.deps/iodine-base64u.Tpo -c -o src/iodine-base64u.o `test -f 'src/base64u.c' || echo './'`src/base64u.c
mv -f src/.deps/iodine-base64u.Tpo src/.deps/iodine-base64u.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-iodine.o -MD -MP -MF src/.deps/iodine-iodine.Tpo -c -o src/iodine-iodine.o `test -f 'src/iodine.c' || echo './'`src/iodine.c
mv -f src/.deps/iodine-iodine.Tpo src/.deps/iodine-iodine.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodine-client.o -MD -MP -MF src/.deps/iodine-client.Tpo -c -o src/iodine-client.o `test -f 'src/client.c' || echo './'`src/client.c
mv -f src/.deps/iodine-client.Tpo src/.deps/iodine-client.Po
gcc -pedantic -O3 -fno-strict-aliasing    -o iodine.exe src/iodine-base32.o src/iodine-base64.o src/iodine-common.o src/iodine-dns.o src/iodine-encoding.o src/iodine-login.o src/iodine-md5.o src/iodine-read.o src/iodine-window.o src/iodine-util.o src/iodine-base128.o src/iodine-tun.o src/iodine-base64u.o src/iodine-iodine.o src/iodine-client.o  -lz
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-base32.o -MD -MP -MF src/.deps/iodined-base32.Tpo -c -o src/iodined-base32.o `test -f 'src/base32.c' || echo './'`src/base32.c
mv -f src/.deps/iodined-base32.Tpo src/.deps/iodined-base32.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-base64.o -MD -MP -MF src/.deps/iodined-base64.Tpo -c -o src/iodined-base64.o `test -f 'src/base64.c' || echo './'`src/base64.c
mv -f src/.deps/iodined-base64.Tpo src/.deps/iodined-base64.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-common.o -MD -MP -MF src/.deps/iodined-common.Tpo -c -o src/iodined-common.o `test -f 'src/common.c' || echo './'`src/common.c
mv -f src/.deps/iodined-common.Tpo src/.deps/iodined-common.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-dns.o -MD -MP -MF src/.deps/iodined-dns.Tpo -c -o src/iodined-dns.o `test -f 'src/dns.c' || echo './'`src/dns.c
mv -f src/.deps/iodined-dns.Tpo src/.deps/iodined-dns.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-encoding.o -MD -MP -MF src/.deps/iodined-encoding.Tpo -c -o src/iodined-encoding.o `test -f 'src/encoding.c' || echo './'`src/encoding.c
mv -f src/.deps/iodined-encoding.Tpo src/.deps/iodined-encoding.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-login.o -MD -MP -MF src/.deps/iodined-login.Tpo -c -o src/iodined-login.o `test -f 'src/login.c' || echo './'`src/login.c
mv -f src/.deps/iodined-login.Tpo src/.deps/iodined-login.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-md5.o -MD -MP -MF src/.deps/iodined-md5.Tpo -c -o src/iodined-md5.o `test -f 'src/md5.c' || echo './'`src/md5.c
mv -f src/.deps/iodined-md5.Tpo src/.deps/iodined-md5.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-read.o -MD -MP -MF src/.deps/iodined-read.Tpo -c -o src/iodined-read.o `test -f 'src/read.c' || echo './'`src/read.c
mv -f src/.deps/iodined-read.Tpo src/.deps/iodined-read.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-window.o -MD -MP -MF src/.deps/iodined-window.Tpo -c -o src/iodined-window.o `test -f 'src/window.c' || echo './'`src/window.c
mv -f src/.deps/iodined-window.Tpo src/.deps/iodined-window.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-util.o -MD -MP -MF src/.deps/iodined-util.Tpo -c -o src/iodined-util.o `test -f 'src/util.c' || echo './'`src/util.c
mv -f src/.deps/iodined-util.Tpo src/.deps/iodined-util.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-base128.o -MD -MP -MF src/.deps/iodined-base128.Tpo -c -o src/iodined-base128.o `test -f 'src/base128.c' || echo './'`src/base128.c
mv -f src/.deps/iodined-base128.Tpo src/.deps/iodined-base128.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-tun.o -MD -MP -MF src/.deps/iodined-tun.Tpo -c -o src/iodined-tun.o `test -f 'src/tun.c' || echo './'`src/tun.c
mv -f src/.deps/iodined-tun.Tpo src/.deps/iodined-tun.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-base64u.o -MD -MP -MF src/.deps/iodined-base64u.Tpo -c -o src/iodined-base64u.o `test -f 'src/base64u.c' || echo './'`src/base64u.c
mv -f src/.deps/iodined-base64u.Tpo src/.deps/iodined-base64u.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-iodined.o -MD -MP -MF src/.deps/iodined-iodined.Tpo -c -o src/iodined-iodined.o `test -f 'src/iodined.c' || echo './'`src/iodined.c
mv -f src/.deps/iodined-iodined.Tpo src/.deps/iodined-iodined.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-server.o -MD -MP -MF src/.deps/iodined-server.Tpo -c -o src/iodined-server.o `test -f 'src/server.c' || echo './'`src/server.c
mv -f src/.deps/iodined-server.Tpo src/.deps/iodined-server.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-user.o -MD -MP -MF src/.deps/iodined-user.Tpo -c -o src/iodined-user.o `test -f 'src/user.c' || echo './'`src/user.c
mv -f src/.deps/iodined-user.Tpo src/.deps/iodined-user.Po
gcc -DHAVE_CONFIG_H -I.  -DMSYS  -pedantic -O3 -fno-strict-aliasing  -MT src/iodined-fw_query.o -MD -MP -MF src/.deps/iodined-fw_query.Tpo -c -o src/iodined-fw_query.o `test -f 'src/fw_query.c' || echo './'`src/fw_query.c
mv -f src/.deps/iodined-fw_query.Tpo src/.deps/iodined-fw_query.Po
gcc -pedantic -O3 -fno-strict-aliasing    -o iodined.exe src/iodined-base32.o src/iodined-base64.o src/iodined-common.o src/iodined-dns.o src/iodined-encoding.o src/iodined-login.o src/iodined-md5.o src/iodined-read.o src/iodined-window.o src/iodined-util.o src/iodined-base128.o src/iodined-tun.o src/iodined-base64u.o src/iodined-iodined.o src/iodined-server.o src/iodined-user.o src/iodined-fw_query.o  -lz
make[1]: Leaving directory '/home/Hatoko/iodine-master'

Hatoko@Hatoko-VM MSYS ~/iodine-master
$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment