1PROGRAMS = CartConvert \
2	ConicProj \
3	GeoConvert \
4	GeodSolve \
5	GeodesicProj \
6	GeoidEval \
7	Gravity \
8	MagneticField \
9	Planimeter \
10	RhumbSolve \
11	TransverseMercatorProj
12SCRIPTS = geographiclib-get-geoids \
13	geographiclib-get-gravity \
14	geographiclib-get-magnetic
15
16all: $(PROGRAMS) $(SCRIPTS)
17
18LIBSTEM = Geographic
19LIBRARY = lib$(LIBSTEM).a
20
21INCLUDEPATH = ../include
22LIBPATH = ../src
23
24# After installation, use these values of INCLUDEPATH and LIBPATH
25# INCLUDEPATH = $(PREFIX)/include
26# LIBPATH = $(PREFIX)/lib
27
28GEOGRAPHICLIB_DATA = $(PREFIX)/share/GeographicLib
29
30CC = g++ -g
31CXXFLAGS = -g -Wall -Wextra -O3 -std=c++0x
32
33CPPFLAGS = -I$(INCLUDEPATH) -I../man $(DEFINES)
34LDLIBS = -L$(LIBPATH) -l$(LIBSTEM)
35EXTRALIBS =
36
37$(PROGRAMS): $(LIBPATH)/$(LIBRARY)
38	$(CC) $(LDFLAGS) -o $@ $@.o $(LDLIBS) $(EXTRALIBS)
39
40VPATH = ../include/GeographicLib ../man
41
42clean:
43	rm -f *.o $(SCRIPTS)
44
45CartConvert: CartConvert.o
46ConicProj: ConicProj.o
47GeoConvert: GeoConvert.o
48GeodSolve: GeodSolve.o
49GeodesicProj: GeodesicProj.o
50GeoidEval: GeoidEval.o
51Gravity: Gravity.o
52MagneticField: MagneticField.o
53Planimeter: Planimeter.o
54RhumbSolve: RhumbSolve.o
55TransverseMercatorProj: TransverseMercatorProj.o
56
57CartConvert.o: CartConvert.usage Config.h Constants.hpp DMS.hpp \
58	Geocentric.hpp LocalCartesian.hpp Math.hpp Utility.hpp
59ConicProj.o: ConicProj.usage Config.h AlbersEqualArea.hpp Constants.hpp \
60	DMS.hpp LambertConformalConic.hpp Math.hpp Utility.hpp
61GeoConvert.o: GeoConvert.usage Config.h Constants.hpp DMS.hpp GeoCoords.hpp \
62	Math.hpp UTMUPS.hpp Utility.hpp
63GeodSolve.o: GeodSolve.usage Config.h Constants.hpp DMS.hpp Geodesic.hpp \
64	GeodesicExact.hpp GeodesicLine.hpp GeodesicLineExact.hpp Math.hpp \
65	Utility.hpp
66GeodesicProj.o: GeodesicProj.usage Config.h AzimuthalEquidistant.hpp \
67	CassiniSoldner.hpp Constants.hpp DMS.hpp Geodesic.hpp \
68	GeodesicLine.hpp Gnomonic.hpp Math.hpp Utility.hpp
69GeoidEval.o: GeoidEval.usage Config.h Constants.hpp DMS.hpp GeoCoords.hpp \
70	Geoid.hpp Math.hpp UTMUPS.hpp Utility.hpp
71Gravity.o: Gravity.usage Config.h CircularEngine.hpp Constants.hpp DMS.hpp \
72	Geocentric.hpp GravityCircle.hpp GravityModel.hpp Math.hpp \
73	NormalGravity.hpp SphericalEngine.hpp SphericalHarmonic.hpp \
74	SphericalHarmonic1.hpp Utility.hpp
75MagneticField.o: MagneticField.usage Config.h CircularEngine.hpp \
76	Constants.hpp DMS.hpp Geocentric.hpp MagneticCircle.hpp \
77	MagneticModel.hpp Math.hpp SphericalEngine.hpp SphericalHarmonic.hpp \
78	Utility.hpp
79Planimeter.o: Planimeter.usage Config.h Accumulator.hpp Constants.hpp DMS.hpp \
80	Ellipsoid.hpp GeoCoords.hpp Geodesic.hpp Math.hpp PolygonArea.hpp \
81	UTMUPS.hpp Utility.hpp
82RhumbSolve.o: RhumbSolve.usage Config.h Constants.hpp DMS.hpp Ellipsoid.hpp \
83	Math.hpp Utility.hpp
84TransverseMercatorProj.o: TransverseMercatorProj.usage Config.h Constants.hpp \
85	DMS.hpp EllipticFunction.hpp Math.hpp TransverseMercator.hpp \
86	TransverseMercatorExact.hpp Utility.hpp
87
88%: %.sh
89	sed -e "s%@GEOGRAPHICLIB_DATA@%$(GEOGRAPHICLIB_DATA)%" $< > $@
90	chmod +x $@
91
92INSTALL = install -b
93DEST = $(PREFIX)/bin
94SDEST = $(PREFIX)/sbin
95
96install: $(PROGRAMS) $(SCRIPTS)
97	test -f $(DEST) || mkdir -p $(DEST)
98	$(INSTALL) $(PROGRAMS) $(DEST)
99	test -f $(SDEST) || mkdir -p $(SDEST)
100	$(INSTALL) $(SCRIPTS) $(SDEST)
101