-
Notifications
You must be signed in to change notification settings - Fork 10
/
Makefile
118 lines (112 loc) · 4.62 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
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
#-----------------------------------------------------------------------------
# Top-level Makefile for ANN.
#
# ANN: Approximate Nearest Neighbors
# Version: 1.1 05/03/05
#-----------------------------------------------------------------------------
# Copyright (c) 1997 University of Maryland and Sunil Arya and David Mount
# All Rights Reserved.
#
# This software and related documentation is part of the
# Approximate Nearest Neighbor Library (ANN).
#
# Permission to use, copy, and distribute this software and its
# documentation is hereby granted free of charge, provided that
# (1) it is not a component of a commercial product, and
# (2) this notice appears in all copies of the software and
# related documentation.
#
# The University of Maryland and the authors make no representations
# about the suitability or fitness of this software for any purpose.
# It is provided "as is" without express or implied warranty.
#-----------------------------------------------------------------------------
# Revision 0.1 09/06/97
# alpha release
# Revision 0.2 06/26/98
# Minor changes to fix compilation errors on SGI systems.
# Revision 1.0 04/01/05
# Initial release (finally!)
# Added linux-g++ target
# Revision 1.1 05/03/05
# Added macosx-g++ target
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# default: list the options
# The following legacy targets are also available.
# make sunos4 for Sun with SunOS 4.x
# make sunos4-g++ for Sun with SunOS 4.x and g++
# make alpha-g++ for DEC Alpha and g++
# The following targets are used for internal development only
# make authors-debug author's debugging
# make authors-perf author's performance evaluations
# make distribution author's generation of distribution file
#-----------------------------------------------------------------------------
default:
@echo "Enter one of the following:"
@echo " make linux-g++ for Linux and g++"
@echo " make macosx-g++ for Mac OS X and g++"
@echo " make sunos5 for Sun with SunOS 5.x"
@echo " make sunos5-sl for Sun with SunOS 5.x, make shared libs"
@echo " make sunos5-g++ for Sun with SunOS 5.x and g++"
@echo " make sunos5-g++-sl for Sun with SunOS 5.x, g++, make shared libs"
@echo " make clean remove .o files"
@echo " make realclean remove .o, library and executable files"
@echo " "
@echo "See file Makefile for other compilation options, such as disabling"
@echo "performance measurement code."
#-----------------------------------------------------------------------------
# main make entry point
#-----------------------------------------------------------------------------
alpha-g++ macosx-g++ linux-g++ sgi sunos4 sunos4-g++ sunos5 sunos5-g++ sunos5-g++-sl authors-debug authors-perf:
cd src ; $(MAKE) $@
cd test ; $(MAKE) $@
cd sample ; $(MAKE) $@
cd ann2fig ; $(MAKE) $@
#-----------------------------------------------------------------------------
# Remove .o files and core files
#-----------------------------------------------------------------------------
clean:
cd src ; $(MAKE) clean
cd test ; $(MAKE) clean
cd sample ; $(MAKE) clean
cd ann2fig ; $(MAKE) clean
cd doc ; $(MAKE) clean
cd MS_Win32; $(MAKE) clean
cd validate ; $(MAKE) clean
#-----------------------------------------------------------------------------
# Remove everthing that can be remade
#-----------------------------------------------------------------------------
realclean:
-rm -f lib/*
-rm -f bin/*
cd src ; $(MAKE) realclean
cd test ; $(MAKE) realclean
cd sample ; $(MAKE) realclean
cd ann2fig ; $(MAKE) realclean
cd doc ; $(MAKE) realclean
cd MS_Win32; $(MAKE) realclean
cd validate ; $(MAKE) realclean
#-----------------------------------------------------------------------------
# Make distribution package (for use by authors only)
#-----------------------------------------------------------------------------
DISTR = ann_1.1
distribution: realclean
cd .. ; mv -f $(DISTR) $(DISTR)-old; mkdir $(DISTR)
cp Copyright.txt ../$(DISTR)
cp License.txt ../$(DISTR)
cp Make-config ../$(DISTR)
cp Makefile ../$(DISTR)
cp ReadMe.txt ../$(DISTR)
cp -r MS_Win32 ../$(DISTR)
cd ..; mv -f $(DISTR)_MS_Win32_bin $(DISTR)_MS_Win32_bin-old
cp -r MS_Win32_bin ../$(DISTR)_MS_Win32_bin
cp -r bin ../$(DISTR)
cp -r include ../$(DISTR)
cp -r lib ../$(DISTR)
cp -r src ../$(DISTR)
cp -r test ../$(DISTR)
cp -r sample ../$(DISTR)
cp -r ann2fig ../$(DISTR)
cd ../$(DISTR); mkdir doc
cp doc/*.pdf ../$(DISTR)/doc
# cd .. ; tar -cfv $(DISTR).tar $(DISTR) ; gzip $(DISTR).tar