# Makefile for basic compilation of proj software
# SCCSID--- @(#)Makefile	4.6	93/10/07	GIE	REL"
#
#  The following is a site dependent, edittable section

# edit to reflect directory where system defaults and inits are located
LIB = /usr/local/lib

# the following defines the name of proj info directory in LIB
LIB_NAME = proj

# if hypot not part of local math library add:
#HYPOT = $L(hypot.o)
# else
HYPOT =

# if brain damaged strtod use:
#STRTOD = $L(strtod.o)
# else
STRTOD =

# ignore
DOS =

# use -g if doing debugging work
COMP = -O
#COMP = -g

# select local compiler to use
CC = cc

# normally set on runline when debugging or testing file
T =

#------------- end of editables ----------------------------

L = libproj.a

HOME_LIB = -DHOME_LIB=\"$(LIB)/$(LIB_NAME)\"

.PRECIOUS: $L

CFLAGS = -I./ $(COMP) $(HOME_LIB) $(DOS)

# projections
PLIB = \
	$L(PJ_aea.o) $L(PJ_aeqd.o) $L(PJ_airy.o) $L(PJ_aitoff.o) \
	$L(PJ_august.o) $L(PJ_bacon.o) $L(PJ_bipc.o) $L(PJ_boggs.o) \
	$L(PJ_bonne.o) $L(PJ_cass.o) $L(PJ_cc.o) $L(PJ_cea.o) \
	$L(PJ_collg.o) $L(PJ_dense.o) $L(PJ_eck1.o) $L(PJ_eck2.o) \
	$L(PJ_eck3.o) $L(PJ_eck4.o) $L(PJ_eck5.o) $L(PJ_eck6.o) \
	$L(PJ_eisen.o) $L(PJ_eqc.o) $L(PJ_eqdc.o) $L(PJ_fourn.o) \
	$L(PJ_gall.o) $L(PJ_gnom.o) $L(PJ_hammer.o) $L(PJ_hataea.o) \
	$L(PJ_laea.o) $L(PJ_lagrng.o) $L(PJ_lcc.o) $L(PJ_loxim.o) \
	$L(PJ_mbtfpp.o) $L(PJ_mbtfpq.o) $L(PJ_mbtfps.o) $L(PJ_merc.o) \
	$L(PJ_mill.o) $L(PJ_moll.o) $L(PJ_nocol.o) $L(PJ_nsper.o) \
	$L(PJ_ocea.o) $L(PJ_omerc.o) $L(PJ_ortho.o) $L(PJ_parab.o) \
	$L(PJ_pconic.o) $L(PJ_poly.o) $L(PJ_putp2.o) $L(PJ_putp5.o) \
	$L(PJ_quau.o) $L(PJ_robin.o) $L(PJ_rpoly.o) $L(PJ_sinu.o) \
	$L(PJ_stere.o) $L(PJ_tcc.o) $L(PJ_tcea.o) $L(PJ_tmerc.o) \
	$L(PJ_vandg.o) $L(PJ_vandg2.o) $L(PJ_vandg4.o) $L(PJ_wag7.o) \
	$L(PJ_wink1.o) $L(PJ_goode.o) $L(PJ_chamb.o) $L(PJ_lsat.o) \
	$L(PJ_mod_ster.o) $L(PJ_tpeqd.o) $L(PJ_nzmg.o) $L(PJ_labrd.o) \
	$L(PJ_ob_tran.o)

# projection and access support
SLIB = \
	$L(pj_auth.o) $L(pj_fwd.o) $L(pj_init.o) $L(pj_inv.o) \
	$L(pj_msfn.o) $L(pj_mlfn.o) $L(pj_phi2.o) $L(pj_qsfn.o) \
	$L(pj_tsfn.o) $L(mk_cheby.o) $L(pj_list.o) $L(vector1.o) \
	$L(bchgen.o) $L(bch2bps.o) $L(biveval.o) $L(pj_open_lib.o) \
	$L(pj_ellps.o) $L(pj_factors.o) $L(pj_deriv.o) $L(aasincos.o) \
	$L(pj_param.o) $L(pj_ell_set.o) $L(pj_units.o) $L(pj_pr_list.o) \
	$L(pj_zpoly1.o) $L(pj_malloc.o) $L(pj_strerrno.o) $L(nad_cvt.o) \
	$L(nad_init.o) $L(nad_interp.o)

# general procedures
MLIB = \
	$L(adjlon.o) $L(dmstor.o) $L(rtodms.o) $(HYPOT) $(STRTOD) \
	$L(pj_errno.o)

PROJ = proj.o gen_cheby.o pr_series.o emess.o

proj:	$(PROJ) $T $L
	$(CC) -o proj $(PROJ) $T $L -lm

NAD2NAD = nad2nad.o emess.o

nad2nad:	$(NAD2NAD) $T $L
	$(CC) -o nad2nad $(NAD2NAD) $T $L -lm

nad2bin:	nad2bin.o $T
	$(CC) -o nad2bin nad2bin.o $T -lm

libproj:	$(SLIB) $(MLIB) $(PLIB)
	- if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then ranlib $L ; fi

GEOD = geod.o geod_setup.o geod_forwd.o geod_invrs.o emess.o

geod:	$(GEOD) $T $L
	$(CC) -o geod $(GEOD) $T $L -lm

install: libproj proj geod nad2nad nad2bin

clean:
	/bin/rm -f core *.o

$(SLIB) $(MLIB) $(PLIB): projects.h

$(GEOD): geodesic.h

nad2nad.o geod.o proj.o: emess.h projects.h

nad2bin.o: projects.h
