Improved Makefile for Windows

This commit is contained in:
Alexey Romanov
2010-12-22 16:38:21 +03:00
parent e0dabec964
commit 38299010b5
4 changed files with 45 additions and 54 deletions

30
GNUmakefile Normal file
View File

@@ -0,0 +1,30 @@
REBAR=./rebar
REBAR_COMPILE=$(REBAR) get-deps compile
PLT=dialyzer/sqlite3.plt
all: compile
compile:
$(REBAR_COMPILE)
test:
$(REBAR_COMPILE) eunit
clean:
-rm -rf deps ebin priv doc/* .eunit c_src/*.o
docs:
$(REBAR_COMPILE) doc
static:
$(REBAR_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

View File

@@ -1,30 +1,29 @@
REBAR=./rebar
REBAR=rebar
REBAR_COMPILE=$(REBAR) get-deps compile
PLT=dialyzer/sqlite3.plt
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:
$(REBAR_COMPILE)
test:
$(REBAR_COMPILE) eunit
tests:
$(REBAR) eunit
clean:
-rm -rf deps ebin priv doc/* .eunit c_src/*.o
-rm -rf deps ebin priv doc\* .eunit c_src\*.o
docs:
$(REBAR_COMPILE) doc
static:
$(REBAR_COMPILE)
ifeq ($(wildcard $(PLT)),)
dialyzer --build_plt --apps kernel stdlib erts --output_plt $(PLT)
else
dialyzer --plt $(PLT) -r ebin
endif
static: compile
@if not exist $(PLT) \
(mkdir dialyzer & dialyzer --build_plt --apps kernel stdlib erts --output_plt $(PLT)); \
else \
(dialyzer --plt $(PLT) -r ebin)
cross_compile: clean
$(REBAR_COMPILE) -C rebar.cross_compile.config
.PHONY: all compile test clean docs static

37
msvc.mk
View File

@@ -1,37 +0,0 @@
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

View File

@@ -2,8 +2,7 @@
{erl_opts, [debug_info]}. %% required for dialyzer
{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", "CFLAGS", "/IF:/MyProgramming/sqlite-amalgamation /Ic_src /W4 /wd4100 /wd4204"},
{"win32", "LDFLAGS", "sqlite3.lib"}]}.
{cover_enabled, true}.
{eunit_opts, [verbose, {report,{eunit_surefire,[{dir,"."}]}}]}.