diff --git a/build_port_win.bat b/build_port_win.bat index c631ab4..94309d7 100644 --- a/build_port_win.bat +++ b/build_port_win.bat @@ -1,8 +1,4 @@ @echo off call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat" -set ERL_ROOT="F:\ProgLangs\erl" -set ERL_INTERFACE="%ERL_ROOT%\lib\erl_interface-3.7.2" -set ERTS="%ERL_ROOT%\erts-5.8.2" -set SQLITE_SRC="F:\MyProgramming\sqlite-amalgamation" -cl /W4 /wd4100 /wd4204 /I%ERL_INTERFACE%/include /I%ERTS%/include /I%SQLITE_SRC% /Ic_src c_src/*.c /link /dll %ERL_INTERFACE%\lib\ei.lib %SQLITE_SRC%\sqlite3.lib /out:priv\sqlite3_drv.dll +nmake /f msvc.mk compile_c \ No newline at end of file diff --git a/msvc.mk b/msvc.mk new file mode 100644 index 0000000..8f53498 --- /dev/null +++ b/msvc.mk @@ -0,0 +1,37 @@ +REBAR=rebar +REBAR_COMPILE=$(REBAR) get-deps compile +PLT=dialyzer\sqlite3.plt +ERL_INTERFACE=$(ERL_ROOT)\lib\erl_interface-3.7.2 +ERTS=$(ERL_ROOT)\erts-5.8.2 +SQLITE_SRC=F:\MyProgramming\sqlite-amalgamation + +all: compile + +compile: compile_c src\* + erlc -I include -o ebin src\*.erl + +# while rebar doesn't support Windows ports +compile_c: c_src\* + cl /W4 /wd4100 /wd4204 /I$(ERL_INTERFACE)/include /I$(ERTS)/include /I$(SQLITE_SRC) /Ic_src c_src/*.c /link /dll /LIBPATH:$(ERL_INTERFACE)\lib ei.lib $(SQLITE_SRC)\sqlite3.lib /out:priv\sqlite3_drv.dll + +test: compile_c test\* + erlc -DTEST=true -I include -o .eunit src\*.erl test\*.erl + $(REBAR) eunit + +clean: + -rm -rf deps ebin priv doc\* .eunit c_src\*.o + +docs: compile + $(REBAR) doc + +# static: compile +# ifeq ($(wildcard $(PLT)),) +# dialyzer --build_plt --apps kernel stdlib erts --output_plt $(PLT) +# else +# dialyzer --plt $(PLT) -r ebin +# endif + +cross_compile: clean + $(REBAR_COMPILE) -C rebar.cross_compile.config + +.PHONY: all compile test clean docs static diff --git a/rebar b/rebar index c69e0d2..308a1fe 100755 Binary files a/rebar and b/rebar differ diff --git a/rebar.config b/rebar.config index 79183e8..54072d3 100644 --- a/rebar.config +++ b/rebar.config @@ -1,7 +1,10 @@ % -*- mode: erlang -*- {erl_opts, [debug_info]}. %% required for dialyzer -{port_envs, [{"DRV_LDFLAGS", "$DRV_LDFLAGS -lsqlite3"}, - {"DRV_CFLAGS", "$DRV_CFLAGS -Wall -Wextra -Wno-unused-parameter"}]}. +{port_envs, [{"^(?!.*win32)", "DRV_CFLAGS", "$DRV_CFLAGS -Wall -Wextra -Wno-unused-parameter"}, + {"^(?!.*win32)", "DRV_LDFLAGS", "$DRV_LDFLAGS -lsqlite3"}, + {"win32", "CFLAGS", "/IF:/MyProgramming/sqlite-amalgamation /Ic_src"}, +%% {"win32", "CFLAGS", "/IF:/MyProgramming/sqlite-amalgamation /Ic_src /W4 /wd4100 /wd4204"}, + {"win32", "LDFLAGS", "sqlite3.lib"}]}. {cover_enabled, true}. {eunit_opts, [verbose, {report,{eunit_surefire,[{dir,"."}]}}]}. {dialyzer_opts, [{plt, "dialyzer/sqlite3.plt"}]}.