-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
89 lines (67 loc) · 2.49 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
CXX = $(shell which clang++)
ifneq ($(CXX),)
#$(warning Using clang: "$(CXX)")
ARCH = -D__extern_always_inline=inline
else
CXX = g++
#$(warning Using g++)
ARCH = $(shell test `g++ -v 2>&1 | tail -1 | cut -d ' ' -f 3 | cut -d '.' -f 1,2` \< 4.3 && echo -march=nocona || echo -march=native)
endif
ifeq ($(CXX),)
$(warning No compiler found)
exit 1
endif
UNAME := $(shell uname)
LIBS = -l boost_program_options -l pthread -l z
BOOST_INCLUDE = /usr/include
BOOST_LIBRARY = /usr/lib
ifeq ($(UNAME), FreeBSD)
LIBS = -l boost_program_options -l pthread -l z -l compat
BOOST_INCLUDE = /usr/local/include
endif
ifeq "CYGWIN" "$(findstring CYGWIN,$(UNAME))"
LIBS = -l boost_program_options-mt -l pthread -l z
BOOST_INCLUDE = /usr/include
endif
ifeq ($(UNAME), Darwin)
LIBS = -lboost_program_options-mt -lboost_serialization-mt -l pthread -l z
BOOST_INCLUDE = /opt/local/include
BOOST_LIBRARY = /opt/local/lib
endif
#LIBS = -l boost_program_options-gcc34 -l pthread -l z
OPTIM_FLAGS = -O3 -fomit-frame-pointer -fno-strict-aliasing -ffast-math #uncomment for speed, comment for testability
ifeq ($(UNAME), FreeBSD)
WARN_FLAGS = -Wall
else
WARN_FLAGS = -Wall -pedantic
endif
# for normal fast execution.
#FLAGS = $(ARCH) $(WARN_FLAGS) $(OPTIM_FLAGS) -D_FILE_OFFSET_BITS=64 -DNDEBUG -I $(BOOST_INCLUDE) #-DVW_LDA_NO_SSE
# for profiling
#FLAGS = $(ARCH) $(WARN_FLAGS) -O3 -fno-strict-aliasing -ffast-math -D_FILE_OFFSET_BITS=64 -I $(BOOST_INCLUDE) -pg #-DVW_LDA_NO_SSE
# for valgrind / gdb debugging
FLAGS = $(ARCH) $(WARN_FLAGS) -ffast-math -D_FILE_OFFSET_BITS=64 -I $(BOOST_INCLUDE) -g -O0
# for valgrind profiling: run 'valgrind --tool=callgrind PROGRAM' then 'callgrind_annotate --tree=both --inclusive=yes'
#FLAGS = -Wall $(ARCH) -ffast-math -D_FILE_OFFSET_BITS=64 -I $(BOOST_INCLUDE) -g -O3 -fomit-frame-pointer -ffast-math -fno-strict-aliasing
BINARIES = vw active_interactor
MANPAGES = vw.1
all: vw spanning_tree library_example
%.1: %
help2man --no-info --name="Vowpal Wabbit -- fast online learning tool" ./$< > $@
export
spanning_tree:
cd cluster; $(MAKE)
vw:
cd vowpalwabbit; $(MAKE) -j 8 things
active_interactor:
cd vowpalwabbit; $(MAKE)
library_example: vw
cd library; $(MAKE) -j 8
.FORCE:
test: .FORCE
@echo "vw running test-suite..."
(cd test && ./RunTests -d -fe -E 0.001 ../vowpalwabbit/vw ../vowpalwabbit/vw)
install: $(BINARIES)
cd vowpalwabbit; cp $(BINARIES) /usr/local/bin; cd ../cluster; $(MAKE) install
clean:
cd vowpalwabbit; $(MAKE) clean; cd ../cluster; $(MAKE) clean