1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-04 01:48:54 +00:00
freebsd-ports/math/ann/files/patch-Makefile
Wen Heping 06613f3ac6 ANN is a library written in C++, which supports data structures
and algorithms for both exact and approximate nearest neighbor
neighbor searching in arbitrarily high dimensions.

WWW:    http://www.cs.umd.edu/~mount/ANN/

PR:		ports/145996
Submitted by:	Tz-Huan Huang <tzhuan@csie.org>
2010-05-06 08:14:51 +00:00

150 lines
5.4 KiB
Plaintext

--- Makefile.orig 2010-01-28 12:40:01.000000000 +0800
+++ Makefile 2010-04-23 20:57:18.091096908 +0800
@@ -1,115 +1,32 @@
-#-----------------------------------------------------------------------------
-# Top-level Makefile for ANN.
-#
-# ANN: Approximate Nearest Neighbors
-# Version: 1.1 05/03/05
-#-----------------------------------------------------------------------------
-# Copyright (c) 1997-2005 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). This software is provided under
-# the provisions of the Lesser GNU Public License (LGPL). See the
-# file ../ReadMe.txt for further information.
-#
-# The University of Maryland (U.M.) 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
-#-----------------------------------------------------------------------------
+CXXFLAGS+=-Iinclude -Isrc -fPIC
+LDFLAGS+=
+VPATH=src
+SRCS=ANN.cpp \
+ bd_fix_rad_search.cpp bd_pr_search.cpp bd_search.cpp bd_tree.cpp \
+ brute.cpp perf.cpp kd_tree.cpp kd_util.cpp \
+ kd_dump.cpp kd_fix_rad_search.cpp kd_pr_search.cpp kd_search.cpp kd_split.cpp
+OBJS=$(SRCS:.cpp=.o)
+LIBDIR=lib
+
+ANN_SO=libann.so
+ANN_A=libann.a
+ANN_SONAME=$(ANN_SO).0
+LIBANN_SO=$(LIBDIR)/$(ANN_SONAME)
+LIBANN_A=$(LIBDIR)/$(ANN_A)
+TARGETS=$(LIBANN_SO) $(LIBANN_A)
+
+all: $(TARGETS)
+
+install: all
+
+%.o: %.cpp
+ $(CXX) $(CXXFLAGS) -c $< -o $@
+
+$(LIBANN_SO): $(OBJS)
+ $(CXX) $^ -o $@ -shared -Wl,-soname,$(ANN_SONAME) $(LDFLAGS)
+
+$(LIBANN_A): $(OBJS)
+ $(AR) rcs $@ $^
+
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.2
-
-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
+ rm -f $(TARGETS) $(OBJS)