Merge branch 'windows_support'
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"}
+
]}.