๋ค์ดํฐ๋ธ WIN32๋ก ๊น๋ํ๊ฒ ์ด์ํ๋ ค๋ฉด ์๋นํ ์์ ์์ ์ด ํ์ํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ํ ๋๋์ ์ป๊ธฐ ์ํด ๋ช ์คํ๋ฅผ ๋ณด๋๋ค. Cygwin์์ ๋น๋ํ๋ค๊ณ ์๊ฐํฉ๋๋ค ...
mingw๋ฅผ ์ฌ์ฉํ์ฌ libh2o๋ฅผ ์ค์ํ๋ ค๊ณ ํฉ๋๋ค. ํ์ง๋ง gnulib-tool์ cmake๋ฅผ ์ง์ํ ์ ์์ต๋๋ค. ๊ฐ์ ธ์ค์ง ๋ชปํ์ต๋๋ค.
๋ฐฉ๊ธ CYGWIN์ ํตํด libh2o๋ฅผ ๋น๋ํ์ต๋๋ค. ์ฝ๊ฐ์ ๋ณ๊ฒฝ๋ง ํ์ํฉ๋๋ค.
$ cmake . -G"Unix Makefiles" -DWITH_BUNDLED_SSL=0 -DWITH_MRUBY=0 -DLIBUV_LIBRARIES=~/git/libuv/.libs/libuv.a -DLIBUV_INCLUDE_DIR=~/git/libuv/include -DLIBUV_VERSION=1.11.0
$ make examples-simple
$ git diff
diff --git a/deps/libyrmcds/yrmcds_portability.h b/deps/libyrmcds/yrmcds_portability.h
index c9fd4d91..b1f151d4 100644
--- a/deps/libyrmcds/yrmcds_portability.h
+++ b/deps/libyrmcds/yrmcds_portability.h
@@ -27,7 +27,7 @@
# define htole64(x) OSSwapHostToLittleInt64(x)
# define be64toh(x) OSSwapBigToHostInt64(x)
# define le64toh(x) OSSwapLittleToHostInt64(x)
-#elif defined(__linux__)
+#elif defined(__linux__) || defined (__CYGWIN__)
# include <endian.h>
#elif defined(sun) // Solaris
# include <sys/byteorder.h>
์ค๋ ์์ ํ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๋ ค๊ณ ์๋ํ์ต๋๋ค. ์๋ํ์ต๋๋ค. ์ด์ Windows์์ h2o๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ฒ์ pull request๋ก ์ ์ถํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด ์ค๋ ๋๋ ์ด์ 3๋
์ด ๋์์ต๋๋ค. ๊ทธ ์ดํ๋ก h2o๊ฐ ๋ณ๊ฒฝ๋์์ผ๋ฉฐ ํ์ฌ ์์ค๋ ๋ ์ด์ MingW์์ ๋น๋๋๊ฑฐ๋ ๊ทธ๋๋ก ์๋ํ์ง ์์ต๋๋ค(๋ง์ฝ ๊ทธ๋ฌ๋ค๋ฉด). h2o ํ๋ก์ ํธ๊ฐ ๊ด์ฌ์ ๊ฐ์ง ๋งํ Urbit ๋ฅผ Windows๋ก ์ด์ํ๋ ๋์ h2o์ฉ ํจ์น๋ฅผ ๋ง๋ค์์ต๋๋ค. ๊ทธ ๋ฒ์๋ Urbit์ ํ์ํ ๊ฒ์ผ๋ก ์ ํ๋ฉ๋๋ค. libuv ๋ณํ๋ง ๋น๋๋๊ณ fastcgi ๋๋ memcached ์ง์์ ์์ต๋๋ค. ์ค ์์ ๋ฐ๋ฅธ ๊ฐ์ฅ ํฐ ๋ณํ๋ libuv uv_buf_t
๋ฐ h2o h2o_iovec_t
๊ฐ ๋ ํ๋๋ฅผ ์ญ์์ผ๋ก ์ ์ธํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํฉ๋๋ค. MingW์์ libuv๋ ์ถ๊ฐ ๋ณต์ฌ๋ฅผ ํผํ๊ธฐ ์ํด WinSock ์์๋ฅผ ์ฌ์ฉํ๋ ๋ฐ๋ฉด h2o๋ POSIX๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฃผ๋ฌธํ๋ค. ํจ์น๋ MingW์์ ๋น๋๋ ๊ฒฝ์ฐ h2o_iovec_t
์ ํ๋๋ฅผ ๋ฐ๊ฟ๋๋ค.
/cc @kazuho
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ฐฉ๊ธ CYGWIN์ ํตํด libh2o๋ฅผ ๋น๋ํ์ต๋๋ค. ์ฝ๊ฐ์ ๋ณ๊ฒฝ๋ง ํ์ํฉ๋๋ค.