# RCSid $Id: Rmakefile,v 2.33 2008/06/24 02:01:19 greg Exp $
#
# Makefile for conversion programs
#

OPT = -O

MACH = -DBSD

CFLAGS = -I../common -L../lib $(OPT) $(MACH)
METACFLAGS = -I../meta

CC = cc

MLIB = -lm

INSTDIR = /usr/local/bin

LIBDIR = /usr/local/lib/ray

MGF_LIB = ../lib/libmgf.a

PROGS = ies2rad arch2rad nff2rad lampcolor tmesh2rad obj2rad \
mgf2rad rad2mgf mgf2meta mgfilt mgf2inv 3ds2mgf

LIBFILES = source.cal tilt.cal lamp.tab window.cal

all:	$(PROGS)

install:	$(PROGS) $(LIBFILES) optics2rad.csh
	cp $(PROGS) $(INSTDIR)
	cp optics2rad.csh $(INSTDIR)/optics2rad
	chmod 755 $(INSTDIR)/optics2rad
	cd $(LIBDIR) && rm -f $(LIBFILES)
	cp $(LIBFILES) $(LIBDIR)

clean:
	set nonomatch; rm -f $(PROGS) *.o core
	cd mgflib ; make clean

ies2rad:	ies2rad.o
	$(CC) $(CFLAGS) -o ies2rad ies2rad.o -lrtrad $(MLIB)

arch2rad:	arch2rad.o trans.o
	$(CC) $(CFLAGS) -o arch2rad arch2rad.o trans.o -lrtrad

nff2rad:	nff2rad.o
	$(CC) $(CFLAGS) -o nff2rad nff2rad.o

lampcolor:	lampcolor.o
	$(CC) $(CFLAGS) -o lampcolor lampcolor.o -lrtrad

tmesh2rad:	tmesh2rad.o
	$(CC) $(CFLAGS) -o tmesh2rad tmesh2rad.o -lrtrad $(MLIB)

obj2rad:	obj2rad.o trans.o
	$(CC) $(CFLAGS) -o obj2rad obj2rad.o trans.o -lrtrad $(MLIB)

mgf2rad:	$(MGF_LIB) mgf2rad.o
	$(CC) $(CFLAGS) -o mgf2rad mgf2rad.o -lmgf -lrtrad $(MLIB)

rad2mgf:	rad2mgf.o
	$(CC) $(CFLAGS) -o rad2mgf rad2mgf.o -lrtrad $(MLIB)

mgf2meta:	$(MGF_LIB) mgf2meta.o
	$(CC) $(CFLAGS) -o mgf2meta mgf2meta.o -lmgf -lmeta -lrtrad $(MLIB)

mgfilt:
	cd mgflib ; rm -f mgfilt ; \
	make mgfilt CC="$(CC)" \
		CFLAGS="$(OPT) $(MACH)" ; \
	mv mgfilt ..

mgf2inv:
	cd mgflib ; rm -f mgf2inv ; \
	make mgf2inv CC="$(CC)" \
		CFLAGS="$(OPT) $(MACH)" ; \
	mv mgf2inv ..

3ds2mgf:
	cd mgflib ; rm -f 3ds2mgf ; \
	make 3ds2mgf CC="$(CC)" \
		CFLAGS="$(OPT) $(MACH)" ; \
	mv 3ds2mgf ..

$(MGF_LIB):
	cd mgflib ; rm -f libmgf.a ; \
	make libmgf.a CC="$(CC)" \
		CFLAGS="$(OPT) $(MACH)" ; \
	mv libmgf.a ../../lib

mgf2rad.o:	mgf2rad.c mgflib/parser.h ../common/tmesh.h ../common/color.h
	$(CC) $(CFLAGS) -c mgf2rad.c

mgf2meta.o:	mgf2meta.c mgflib/parser.h
	$(CC) $(CFLAGS) $(METACFLAGS) -c mgf2meta.c

arch2rad.o trans.o:	trans.h

ies2rad.o lampcolor.o:	../common/color.h

ies2rad.o:	../common/paths.h

obj2rad.o tmesh2rad.o:	../common/tmesh.h \
../common/standard.h ../common/rtmisc.h ../common/rtio.h \
../common/rtmath.h ../common/rterror.h ../common/mat4.h \
../common/fvect.h

obj2rad.o:	trans.h

rad2mgf.o:	../common/standard.h ../common/mat4.h ../common/fvect.h \
../common/object.h ../common/color.h ../common/lookup.h
