Support Windows build target
diff --git a/.gitignore b/.gitignore
index d1356fa..24f9e66 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,6 @@
 .eunit/
 c_src/*.o
 ebin/
-priv/*.so
+priv/
+.rebar/
+vc110.pdb
diff --git a/c_src/b64url.c b/c_src/b64url.c
index 074d9a0..d9e2e04 100644
--- a/c_src/b64url.c
+++ b/c_src/b64url.c
@@ -15,6 +15,12 @@
 
 #include "erl_nif.h"
 
+#ifdef _WIN32
+#define INLINE __inline
+#else
+#define INLINE inline
+#endif
+
 
 typedef ERL_NIF_TERM ENTERM;
 
@@ -93,7 +99,7 @@
 
 #define BYTES_PER_PERCENT 64
 
-static inline int
+static INLINE int
 do_consume_timeslice(ErlNifEnv* env) {
 #if(ERL_NIF_MAJOR_VERSION >= 2 && ERL_NIF_MINOR_VERSION >= 4)
     return enif_consume_timeslice(env, 1);
@@ -103,7 +109,7 @@
 }
 
 
-static inline ENTERM
+static INLINE ENTERM
 make_atom(ErlNifEnv* env, const char* name)
 {
     ENTERM ret;
@@ -114,21 +120,21 @@
 }
 
 
-static inline ENTERM
+static INLINE ENTERM
 make_ok(ErlNifEnv* env, b64url_priv* priv, ENTERM value)
 {
     return enif_make_tuple2(env, priv->atom_ok, value);
 }
 
 
-static inline ENTERM
+static INLINE ENTERM
 make_error(ErlNifEnv* env, b64url_priv* priv, ENTERM value)
 {
     return enif_make_tuple2(env, priv->atom_error, value);
 }
 
 
-static inline ENTERM
+static INLINE ENTERM
 make_bad_block(ErlNifEnv* env, b64url_priv* priv, size_t pos)
 {
     ENTERM pterm = enif_make_uint64(env, pos);
@@ -136,14 +142,14 @@
 }
 
 
-static inline ENTERM
+static INLINE ENTERM
 make_partial(ErlNifEnv* env, b64url_priv* priv, ENTERM value)
 {
     return enif_make_tuple2(env, priv->atom_partial, value);
 }
 
 
-static inline int
+static INLINE int
 check_pid(ErlNifEnv* env, b64url_st* st)
 {
     ErlNifPid self_pid;
@@ -304,7 +310,7 @@
 }
 
 
-static inline b64url_status
+static INLINE b64url_status
 b64url_encode(ErlNifEnv* env, ErlNifBinary* src, b64url_st* st)
 {
     size_t chunk_start = st->si;
@@ -442,7 +448,7 @@
 }
 
 
-static inline b64url_status
+static INLINE b64url_status
 b64url_decode(ErlNifEnv* env, ErlNifBinary* src, b64url_st* st, ENTERM* ret)
 {
     b64url_priv* priv = (b64url_priv*) enif_priv_data(env);
diff --git a/rebar.config b/rebar.config
index 534c049..4732af8 100644
--- a/rebar.config
+++ b/rebar.config
@@ -9,5 +9,7 @@
     % {".*", "CFLAGS", "$CFLAGS -g -Wall -Werror -fPIC"}
 
     % Production compilation
-    {".*", "CFLAGS", "$CFLAGS -Wall -Werror -DNDEBUG -O3"}
+    {"(linux|solaris|darwin|freebsd)", "CFLAGS", "$CFLAGS -Wall -Werror -DNDEBUG -O3"},
+    {"win32", "CFLAGS", "$CFLAGS /O2 /DNDEBUG /Wall"}
+
 ]}.