#
# Makefile to produce "hcon"  (heightfield converter), "composit" etc.
#   
# -c means compile, don't link.  -g means add debugging code
# type "make big" for IEEE big-endian machines (most types, eg SPARC, SGI)
# type "make little" for IEEE little-endian (Linux, DEC Ultrix)

CC = gcc
SRCFLAGS= -ansi -pedantic -O2 -Wall ${F_DEFINES}
LIBS    = -L./gdsource -lgd -lm
INCS    = -I./gdsource
OBJH    = gwrite.o gread.o pot_io.o tga_io.o hf_io.o
SRC1	= gwrite.c gread.c pot_io.c tga_io.c hf_io.c
SRC2	= hcon.c composit.c orb.c double.c remap.c cyl.c copyx.c
COMMON  =  hcon.h
RANLIB  = ranlib

all:    advisory

advisory: 
	@echo ------------- Makefile for HF Utils 0.1a ----------------- 
	@echo
	@echo Please do a  make big  or  make little  depending on your
	@echo system architecture.  Try  big if you arent sure.
	@echo
	@echo make big      if your machine is IEEE Big-Endian
	@echo               eg Sun SPARC Motorola SGI etc
	@echo
	@echo make little   if your machine is IEEE Little-Endian
	@echo               eg Linux  Intel 80x86  DEC Ultrix
	@echo

utils:    libs.flg hcon composit copyx remap orb double cyl

little:
	make utils F_DEFINES=""
big:    
	make utils F_DEFINES=-DBIG_FLOAT

libs.flg:
	(cd gdsource; make RANLIB=$(RANLIB) )
	(touch libs.flg)

.c.o:	
	$(CC) -c $*.c ${SRCFLAGS} ${INCS}


hcon:   hcon.o ${OBJH}
	$(CC) -o hcon hcon.o ${OBJH} ${LIBS}
	
composit:   composit.o ${OBJH}
	$(CC) -o composit composit.o ${OBJH} ${LIBS}
	
hfill:  hfill.o 
	$(CC) -o hfill hfill.o ${LIBS}

copyx:   copyx.o ${OBJH}
	$(CC) -o copyx copyx.o ${OBJH} ${LIBS}

remap:   remap.o ${OBJH}
	$(CC) -o remap remap.o ${OBJH} ${LIBS}

double: double.o ${OBJH}
	$(CC) -o double double.o ${OBJH} ${LIBS}

orb:	orb.o gsphere.o ${OBJH}
	$(CC) -o orb orb.o gsphere.o ${OBJH} ${LIBS}

cyl:	cyl.o ${OBJH}
	$(CC) -o cyl cyl.o ${OBJH} ${LIBS}

lint: 
	$(CC) -ansi -pedantic -Wall -fsyntax-only hcon.c

clean:
	(cd gdsource; make clean)
	rm -f *.o *~ copyx remap hcon composit orb double libs.flg

exe:
	coff2exe hcon
