#
# Copyright 1997-2003 Sun Microsystems, Inc.  All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#

FILES_c = \
	attrmgr.c \
	auxpt.c \
	calc.c \
	calcgtbl.c \
	calcitbl.c \
	calcmtbl.c \
	calcotbl.c \
	chainsu.c \
	chnrules.c \
	cmpsatt.c \
	cmpsattf.c \
	cmyklin.c \
	combine.c \
	compilut.c \
	compitbl.c \
	compose.c \
	compotbl.c \
	convert1.c \
	copy.c \
	crc32.c \
	dispatch.c \
	doevalsw.c \
	eval.c \
	evalth13.c \
	evalth14.c \
	evalth1c.c \
	evalth1g.c \
	f4lex.c \
	filemap.c \
	fmtdata.c \
	futiomem.c \
	futiotbl.c \
	futmft2.c \
	fwdmono.c \
	fwdxform.c \
	fxnull.c \
	invmono.c \
	invxform.c \
	io.c \
	io_swab.c \
	ioencode.c \
	iomf.c \
	iotable.c \
	kcms_io.c \
	kcpmgr.c \
	kcpmgru.c \
	kpfile.c \
	kplib.c \
	kpmd5.c \
	lab2uvl.c \
	lab2xyz.c \
	lensity.c \
	linlab.c \
	logrgb.c \
	loguvl.c \
	malloc.c \
	mat2fut.c \
	matrix.c \
	memory.c \
	moncurv.c \
	new.c \
	outmat.c \
	profile.c \
	profilem.c \
	ptchain.c \
	pteval.c \
	ptinvert.c \
	ptiomem.c \
	pttmgr.c \
	rel2abs.c \
	resize.c \
	share.c \
	solvemat.c \
	spattpr.c \
	spattr.c \
	spattrio.c \
	spcvrt.c \
	speval.c \
	splink.c \
	splut.c \
	sprofile.c \
	sprofpr.c \
	spsave.c \
	spsearch.c \
	spsys.c \
	spsystem.c \
	sptagio.c \
	sptagmgr.c \
	sputilpr.c \
	spxf_gen.c \
	spxfcvrt.c \
	spxfgpr.c \
	spxfmtag.c \
	spxform.c \
	spxfprv.c \
	spxfromr.c \
	sync.c \
	systime.c \
	thread.c \
	thredmem.c \
	ukcpmgr.c \
	unixmem.c \
	util.c \
	uvl2lab.c \
	xfers.c \
	xyz2lab.c \
	xyzmap.c \
	CMM.c
