summaryrefslogtreecommitdiff
path: root/Make-config
blob: aab7bfd345269ade83deac77bdf95b54920cc914 (plain)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
#-----------------------------------------------------------------------
# Makefile variations depending on different configurations
#
# ANN: Approximate Nearest Neighbors
# Version: 1.1 05/03/05
#
# (This Make-config structure is based on the one used by Mesa by Brian
# Paul.  If you succeed in porting ANN to your favorite system, please
# send email to mount@cs.umd.edu, and I'll try to include it in this
# list.)
#
#----------------------------------------------------------------------
# The following configuration-dependent variables are passed to each
# the Makefile in subdirectories:
#
# ANNLIB	The name of the ANN library file (usually libANN.a)
# C++		The C compiler (usually CC or g++)
# MAKELIB	The command and flags to make a library file (usually
#			"ar ...")
# CFLAGS	Flags to C++ compiler
# RANLIB	For "ranlib" = use ranlib, "true" = don't use ranlib
#----------------------------------------------------------------------
# Revision 0.1  09/06/97
#	Initial release
# Revision 0.2  06/24/98
#	Minor changes to fix compilation errors on SGI systems.
# Revision 1.0  04/01/05
#	Modifications for alpha with cxx
#	Removed CFLAGS2 options (just write your own)
#	Removed -DUSING...  (Compilers are pretty consistent these days)
#	Added linux-g++ target
# Revision 1.1  05/03/05
#	Added macosx-g++ target
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
# Compilation options (add these, as desired, to the CFLAGS variable
# in the desired compilation target below).  For example,
#
#	"CFLAGS = -O3 -Wall -DANN_PERF"
#
#	-g			Debugging.
#	-O?			Run-time optimization.
#	-Wall		Be verbose about warnings.
#
#	-DANN_PERF	Enable performance evaluation. (This may slow execution
#				slightly.)
#
#	-DANN_NO_LIMITS_H
#				Use this if limits.h or float.h does not exist on your
#				system. (Also see include/ANN/ANN.h for other changes
#				needed.)
#
#	-DANN_NO_RANDOM
#				Use this option if srandom()/random() are not available
#				on your system. Pseudo-random number generation is used
#				in the utility program test/ann_test. The combination
#				srandom()/random() is considered the best pseudo-random
#				number generator, but is not available on all systems.
#				If they are not available on your system (for example,
#				Visual C++) then srand()/rand() will be used instead by
#				setting this parameter.
#
#	-DWIN32
#				This is used only for compilation under windows systems
#				(but instead of using this, use the various .vcproj
#				files in the MS_WIN32 directory).
#-----------------------------------------------------------------------------

#					Linux using g++
linux-g++:
	$(MAKE) targets \
	"ANNLIB = libANN.a" \
	"C++ = g++" \
	"CFLAGS = -O3" \
	"MAKELIB = ar ruv" \
	"RANLIB = true"

#					Mac OS X using g++
macosx-g++:
	$(MAKE) targets \
	"ANNLIB = libANN.a" \
	"C++ = g++" \
	"CFLAGS = -O3" \
	"MAKELIB = libtool -static -o " \
	"RANLIB = true"

#					SunOS5
sunos5:
	$(MAKE) targets \
	"ANNLIB = libANN.a" \
	"C++ = CC" \
	"CFLAGS = -O" \
	"MAKELIB = ar ruv" \
	"RANLIB = true"

#					SunOS5 with shared libraries
sunos5-sl:
	$(MAKE) targets \
	"ANNLIB = libANN.a" \
	"C++ = CC" \
	"CFLAGS = -Kpic -O" \
	"MAKELIB = ld -G -o" \
	"RANLIB = true"

#					SunOS5 with g++
sunos5-g++:
	$(MAKE) targets \
	"ANNLIB = libANN.a" \
	"C++ = g++" \
	"CFLAGS = -O3" \
	"MAKELIB = ar ruv" \
	"RANLIB = true"

#					SunOS5 with g++ and shared libraries
sunos5-g++-sl:
	$(MAKE) targets \
	"ANNLIB = libANN.so" \
	"C++ = g++" \
	"CFLAGS = -fpic -O3" \
	"MAKELIB = ld -G -o" \
	"RANLIB = true"

#-----------------------------------------------------------------------
# Used for the author's testing and debugging only
#-----------------------------------------------------------------------

#					debugging version for authors
authors-debug:
	$(MAKE) targets \
	"ANNLIB = libANN.a" \
	"C++ = g++" \
	"CFLAGS = -g -DANN_PERF -Wall" \
	"MAKELIB = ar ruv" \
	"RANLIB = true"

#					performance testing version for authors
authors-perf:
	$(MAKE) targets \
	"ANNLIB = libANN.a" \
	"C++ = g++" \
	"CFLAGS = -O3 -DANN_PERF -Wall" \
	"MAKELIB = ar ruv" \
	"RANLIB = true"

#-----------------------------------------------------------------------
# Some older ones that I have not tested with the latest version.
#-----------------------------------------------------------------------

sgi:
	$(MAKE) targets \
	"ANNLIB = libANN.a" \
	"C++ = CC -ansi" \
	"CFLAGS = -O2" \
	"MAKELIB = ar ruv" \
	"RANLIB = true"

#					DEC Alpha with g++
alpha-g++:
	$(MAKE) targets \
	"ANNLIB = libANN.a" \
	"C++ = g++" \
	"CFLAGS = -O3" \
	"MAKELIB = ar ruv" \
	"RANLIB = ranlib"

#					SunOS4
sunos4:
	$(MAKE) targets \
	"ANNLIB = libANN.a" \
	"C++ = CC" \
	"CFLAGS = -O" \
	"MAKELIB = ar ruv" \
	"RANLIB = ranlib"

#					SunOS4 with g++
sunos4-g++:
	$(MAKE) targets \
	"ANNLIB = libANN.a" \
	"C++ = g++" \
	"CFLAGS = -O3" \
	"MAKELIB = ar ruv" \
	"RANLIB = ranlib"

#					SunOS4 with g++ and shared libraries
sunos4-g++-sl:
	$(MAKE) targets \
	"ANNLIB = libANN.so" \
	"C++ = g++" \
	"CC = g++" \
	"CFLAGS = -fPIC -O3" \
	"MAKELIB = ld -assert pure-text -o" \
	"RANLIB = true"