CFLAGS = -O
CC = cc

sml2c-comp:	util/errormsg.sig.o util/errormsg.sml.o util/dynamic.sml.o util/sort.sml.o util/sortedlist.sml.o util/list2.sml.o util/intmap.sig.o util/intmap.sml.o util/intstrmap.sig.o util/intstrmap.sml.o util/intset.sml.o util/strghash.sml.o util/union.sml.o util/arrayext.sml.o util/ascii.sml.o basics/symbol.sig.o basics/symbol.sml.o basics/printutil.sig.o basics/printutil.sml.o basics/primop.sig.o basics/access.sig.o basics/access.sml.o basics/stampset.sig.o basics/stampset.sml.o basics/basics.sig.o basics/basics.sml.o basics/tuples.sml.o basics/basictypes.sig.o basics/basictypes.sml.o basics/typesutil.sig.o basics/typesutil.sml.o basics/eqtypes.sig.o basics/eqtypes.sml.o basics/unify.sig.o basics/unify.sml.o basics/modutil.sig.o basics/modutil.sml.o env/env.sig.o env/env.sml.o env/namespace.sig.o env/namespace.sml.o env/prim.sml.o env/envaccess.sig.o env/envaccess.sml.o env/buildmod.sig.o env/buildmod.sml.o env/coreinfo.sig.o env/coreinfo.sml.o basics/printtype.sml.o basics/printbas.sml.o basics/conrep.sml.o basics/lambda.sml.o absyn/bareabsyn.sig.o absyn/bareabsyn.sml.o absyn/absyn.sml.o absyn/printabsyn.sml.o typing/overload.sig.o typing/overload.sml.o typing/typecheck.sig.o typing/typecheck.sml.o typing/sharing.sig.o typing/sharing.sml.o typing/sigmatch.sig.o typing/sigmatch.sml.o typing/functor.sig.o typing/functor.sml.o print/printval.sig.o print/printval.sml.o print/printdec.sig.o print/printdec.sml.o parse/tyvarset.sml.o parse/misc.sig.o parse/misc.sml.o parse/corelang.sml.o parse/signs.sml.o parse/strs.sml.o parse/base.sml.o parse/ml.grm.sig.o parse/ml.grm.sml.o lex/ml.lex.sml.o parse/parse.sml.o codegen/opt.sml.o translate/mcprint.sml.o translate/mcopt.sml.o translate/mc.sml.o translate/nonrec.sml.o translate/equal.sml.o translate/unboxed.sml.o translate/translate.sml.o cps/cps.sml.o cps/reorder.sml.o build/prof.sml.o cps/convert.sml.o cps/size.sml.o cps/profile.sml.o cps/cpsprint.sml.o cps/freemap.sml.o cps/hoist.sml.o cps/cpsopt.sml.o cps/globalfix.sml.o cps/spill.sml.o cps/closure.sml.o sepcomp/filepaths.sig.o sepcomp/filepaths.sml.o c/cbignum.sml.o c/bitset.sml.o c/integrate.sml.o c/cfreemap.sml.o c/cimporter.sml.o c/codegen.sig.o c/machine.sig.o c/c.sig.o c/control.sig.o c/cprint.sig.o c/used.sig.sml.o c/used.sml.o c/file.sml.o c/machine.sml.o c/cprint.sml.o c/c.sml.o c/control.sml.o c/cpstoc.sml.o c/cpscompc.sml.o c/cprocess.sml.o c/hookup.sml.o c/cglue.sml.o 
	$(CC) $(CFLAGS) -o $@ $> -lsml2c -lm

util/errormsg.sig.o:	util/errormsg.sig.c
	$(CC) $(CFLAGS) -c -o $@ util/errormsg.sig.c

util/errormsg.sml.o:	util/errormsg.sml.c
	$(CC) $(CFLAGS) -c -o $@ util/errormsg.sml.c

util/dynamic.sml.o:	util/dynamic.sml.c
	$(CC) $(CFLAGS) -c -o $@ util/dynamic.sml.c

util/sort.sml.o:	util/sort.sml.c
	$(CC) $(CFLAGS) -c -o $@ util/sort.sml.c

util/sortedlist.sml.o:	util/sortedlist.sml.c
	$(CC) $(CFLAGS) -c -o $@ util/sortedlist.sml.c

util/list2.sml.o:	util/list2.sml.c
	$(CC) $(CFLAGS) -c -o $@ util/list2.sml.c

util/intmap.sig.o:	util/intmap.sig.c
	$(CC) $(CFLAGS) -c -o $@ util/intmap.sig.c

util/intmap.sml.o:	util/intmap.sml.c
	$(CC) $(CFLAGS) -c -o $@ util/intmap.sml.c

util/intstrmap.sig.o:	util/intstrmap.sig.c
	$(CC) $(CFLAGS) -c -o $@ util/intstrmap.sig.c

util/intstrmap.sml.o:	util/intstrmap.sml.c
	$(CC) $(CFLAGS) -c -o $@ util/intstrmap.sml.c

util/intset.sml.o:	util/intset.sml.c
	$(CC) $(CFLAGS) -c -o $@ util/intset.sml.c

util/strghash.sml.o:	util/strghash.sml.c
	$(CC) $(CFLAGS) -c -o $@ util/strghash.sml.c

util/union.sml.o:	util/union.sml.c
	$(CC) $(CFLAGS) -c -o $@ util/union.sml.c

util/arrayext.sml.o:	util/arrayext.sml.c
	$(CC) $(CFLAGS) -c -o $@ util/arrayext.sml.c

util/ascii.sml.o:	util/ascii.sml.c
	$(CC) $(CFLAGS) -c -o $@ util/ascii.sml.c

basics/symbol.sig.o:	basics/symbol.sig.c
	$(CC) $(CFLAGS) -c -o $@ basics/symbol.sig.c

basics/symbol.sml.o:	basics/symbol.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/symbol.sml.c

basics/printutil.sig.o:	basics/printutil.sig.c
	$(CC) $(CFLAGS) -c -o $@ basics/printutil.sig.c

basics/printutil.sml.o:	basics/printutil.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/printutil.sml.c

basics/primop.sig.o:	basics/primop.sig.c
	$(CC) $(CFLAGS) -c -o $@ basics/primop.sig.c

basics/access.sig.o:	basics/access.sig.c
	$(CC) $(CFLAGS) -c -o $@ basics/access.sig.c

basics/access.sml.o:	basics/access.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/access.sml.c

basics/stampset.sig.o:	basics/stampset.sig.c
	$(CC) $(CFLAGS) -c -o $@ basics/stampset.sig.c

basics/stampset.sml.o:	basics/stampset.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/stampset.sml.c

basics/basics.sig.o:	basics/basics.sig.c
	$(CC) $(CFLAGS) -c -o $@ basics/basics.sig.c

basics/basics.sml.o:	basics/basics.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/basics.sml.c

basics/tuples.sml.o:	basics/tuples.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/tuples.sml.c

basics/basictypes.sig.o:	basics/basictypes.sig.c
	$(CC) $(CFLAGS) -c -o $@ basics/basictypes.sig.c

basics/basictypes.sml.o:	basics/basictypes.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/basictypes.sml.c

basics/typesutil.sig.o:	basics/typesutil.sig.c
	$(CC) $(CFLAGS) -c -o $@ basics/typesutil.sig.c

basics/typesutil.sml.o:	basics/typesutil.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/typesutil.sml.c

basics/eqtypes.sig.o:	basics/eqtypes.sig.c
	$(CC) $(CFLAGS) -c -o $@ basics/eqtypes.sig.c

basics/eqtypes.sml.o:	basics/eqtypes.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/eqtypes.sml.c

basics/unify.sig.o:	basics/unify.sig.c
	$(CC) $(CFLAGS) -c -o $@ basics/unify.sig.c

basics/unify.sml.o:	basics/unify.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/unify.sml.c

basics/modutil.sig.o:	basics/modutil.sig.c
	$(CC) $(CFLAGS) -c -o $@ basics/modutil.sig.c

basics/modutil.sml.o:	basics/modutil.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/modutil.sml.c

env/env.sig.o:	env/env.sig.c
	$(CC) $(CFLAGS) -c -o $@ env/env.sig.c

env/env.sml.o:	env/env.sml.c
	$(CC) $(CFLAGS) -c -o $@ env/env.sml.c

env/namespace.sig.o:	env/namespace.sig.c
	$(CC) $(CFLAGS) -c -o $@ env/namespace.sig.c

env/namespace.sml.o:	env/namespace.sml.c
	$(CC) $(CFLAGS) -c -o $@ env/namespace.sml.c

env/prim.sml.o:	env/prim.sml.c
	$(CC) $(CFLAGS) -c -o $@ env/prim.sml.c

env/envaccess.sig.o:	env/envaccess.sig.c
	$(CC) $(CFLAGS) -c -o $@ env/envaccess.sig.c

env/envaccess.sml.o:	env/envaccess.sml.c
	$(CC) $(CFLAGS) -c -o $@ env/envaccess.sml.c

env/buildmod.sig.o:	env/buildmod.sig.c
	$(CC) $(CFLAGS) -c -o $@ env/buildmod.sig.c

env/buildmod.sml.o:	env/buildmod.sml.c
	$(CC) $(CFLAGS) -c -o $@ env/buildmod.sml.c

env/coreinfo.sig.o:	env/coreinfo.sig.c
	$(CC) $(CFLAGS) -c -o $@ env/coreinfo.sig.c

env/coreinfo.sml.o:	env/coreinfo.sml.c
	$(CC) $(CFLAGS) -c -o $@ env/coreinfo.sml.c

basics/printtype.sml.o:	basics/printtype.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/printtype.sml.c

basics/printbas.sml.o:	basics/printbas.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/printbas.sml.c

basics/conrep.sml.o:	basics/conrep.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/conrep.sml.c

basics/lambda.sml.o:	basics/lambda.sml.c
	$(CC) $(CFLAGS) -c -o $@ basics/lambda.sml.c

absyn/bareabsyn.sig.o:	absyn/bareabsyn.sig.c
	$(CC) $(CFLAGS) -c -o $@ absyn/bareabsyn.sig.c

absyn/bareabsyn.sml.o:	absyn/bareabsyn.sml.c
	$(CC) $(CFLAGS) -c -o $@ absyn/bareabsyn.sml.c

absyn/absyn.sml.o:	absyn/absyn.sml.c
	$(CC) $(CFLAGS) -c -o $@ absyn/absyn.sml.c

absyn/printabsyn.sml.o:	absyn/printabsyn.sml.c
	$(CC) $(CFLAGS) -c -o $@ absyn/printabsyn.sml.c

typing/overload.sig.o:	typing/overload.sig.c
	$(CC) $(CFLAGS) -c -o $@ typing/overload.sig.c

typing/overload.sml.o:	typing/overload.sml.c
	$(CC) $(CFLAGS) -c -o $@ typing/overload.sml.c

typing/typecheck.sig.o:	typing/typecheck.sig.c
	$(CC) $(CFLAGS) -c -o $@ typing/typecheck.sig.c

typing/typecheck.sml.o:	typing/typecheck.sml.c
	$(CC) $(CFLAGS) -c -o $@ typing/typecheck.sml.c

typing/sharing.sig.o:	typing/sharing.sig.c
	$(CC) $(CFLAGS) -c -o $@ typing/sharing.sig.c

typing/sharing.sml.o:	typing/sharing.sml.c
	$(CC) $(CFLAGS) -c -o $@ typing/sharing.sml.c

typing/sigmatch.sig.o:	typing/sigmatch.sig.c
	$(CC) $(CFLAGS) -c -o $@ typing/sigmatch.sig.c

typing/sigmatch.sml.o:	typing/sigmatch.sml.c
	$(CC) $(CFLAGS) -c -o $@ typing/sigmatch.sml.c

typing/functor.sig.o:	typing/functor.sig.c
	$(CC) $(CFLAGS) -c -o $@ typing/functor.sig.c

typing/functor.sml.o:	typing/functor.sml.c
	$(CC) $(CFLAGS) -c -o $@ typing/functor.sml.c

print/printval.sig.o:	print/printval.sig.c
	$(CC) $(CFLAGS) -c -o $@ print/printval.sig.c

print/printval.sml.o:	print/printval.sml.c
	$(CC) $(CFLAGS) -c -o $@ print/printval.sml.c

print/printdec.sig.o:	print/printdec.sig.c
	$(CC) $(CFLAGS) -c -o $@ print/printdec.sig.c

print/printdec.sml.o:	print/printdec.sml.c
	$(CC) $(CFLAGS) -c -o $@ print/printdec.sml.c

parse/tyvarset.sml.o:	parse/tyvarset.sml.c
	$(CC) $(CFLAGS) -c -o $@ parse/tyvarset.sml.c

parse/misc.sig.o:	parse/misc.sig.c
	$(CC) $(CFLAGS) -c -o $@ parse/misc.sig.c

parse/misc.sml.o:	parse/misc.sml.c
	$(CC) $(CFLAGS) -c -o $@ parse/misc.sml.c

parse/corelang.sml.o:	parse/corelang.sml.c
	$(CC) $(CFLAGS) -c -o $@ parse/corelang.sml.c

parse/signs.sml.o:	parse/signs.sml.c
	$(CC) $(CFLAGS) -c -o $@ parse/signs.sml.c

parse/strs.sml.o:	parse/strs.sml.c
	$(CC) $(CFLAGS) -c -o $@ parse/strs.sml.c

parse/base.sml.o:	parse/base.sml.c
	$(CC) $(CFLAGS) -c -o $@ parse/base.sml.c

parse/ml.grm.sig.o:	parse/ml.grm.sig.c
	$(CC) $(CFLAGS) -c -o $@ parse/ml.grm.sig.c

parse/ml.grm.sml.o:	parse/ml.grm.sml.c
	$(CC) $(CFLAGS) -c -o $@ parse/ml.grm.sml.c

lex/ml.lex.sml.o:	lex/ml.lex.sml.c
	$(CC) $(CFLAGS) -c -o $@ lex/ml.lex.sml.c

parse/parse.sml.o:	parse/parse.sml.c
	$(CC) $(CFLAGS) -c -o $@ parse/parse.sml.c

codegen/opt.sml.o:	codegen/opt.sml.c
	$(CC) $(CFLAGS) -c -o $@ codegen/opt.sml.c

translate/mcprint.sml.o:	translate/mcprint.sml.c
	$(CC) $(CFLAGS) -c -o $@ translate/mcprint.sml.c

translate/mcopt.sml.o:	translate/mcopt.sml.c
	$(CC) $(CFLAGS) -c -o $@ translate/mcopt.sml.c

translate/mc.sml.o:	translate/mc.sml.c
	$(CC) $(CFLAGS) -c -o $@ translate/mc.sml.c

translate/nonrec.sml.o:	translate/nonrec.sml.c
	$(CC) $(CFLAGS) -c -o $@ translate/nonrec.sml.c

translate/equal.sml.o:	translate/equal.sml.c
	$(CC) $(CFLAGS) -c -o $@ translate/equal.sml.c

translate/unboxed.sml.o:	translate/unboxed.sml.c
	$(CC) $(CFLAGS) -c -o $@ translate/unboxed.sml.c

translate/translate.sml.o:	translate/translate.sml.c
	$(CC) $(CFLAGS) -c -o $@ translate/translate.sml.c

cps/cps.sml.o:	cps/cps.sml.c
	$(CC) $(CFLAGS) -c -o $@ cps/cps.sml.c

cps/reorder.sml.o:	cps/reorder.sml.c
	$(CC) $(CFLAGS) -c -o $@ cps/reorder.sml.c

build/prof.sml.o:	build/prof.sml.c
	$(CC) $(CFLAGS) -c -o $@ build/prof.sml.c

cps/convert.sml.o:	cps/convert.sml.c
	$(CC) $(CFLAGS) -c -o $@ cps/convert.sml.c

cps/size.sml.o:	cps/size.sml.c
	$(CC) $(CFLAGS) -c -o $@ cps/size.sml.c

cps/profile.sml.o:	cps/profile.sml.c
	$(CC) $(CFLAGS) -c -o $@ cps/profile.sml.c

cps/cpsprint.sml.o:	cps/cpsprint.sml.c
	$(CC) $(CFLAGS) -c -o $@ cps/cpsprint.sml.c

cps/freemap.sml.o:	cps/freemap.sml.c
	$(CC) $(CFLAGS) -c -o $@ cps/freemap.sml.c

cps/hoist.sml.o:	cps/hoist.sml.c
	$(CC) $(CFLAGS) -c -o $@ cps/hoist.sml.c

cps/cpsopt.sml.o:	cps/cpsopt.sml.c
	$(CC) $(CFLAGS) -c -o $@ cps/cpsopt.sml.c

cps/globalfix.sml.o:	cps/globalfix.sml.c
	$(CC) $(CFLAGS) -c -o $@ cps/globalfix.sml.c

cps/spill.sml.o:	cps/spill.sml.c
	$(CC) $(CFLAGS) -c -o $@ cps/spill.sml.c

cps/closure.sml.o:	cps/closure.sml.c
	$(CC) $(CFLAGS) -c -o $@ cps/closure.sml.c

sepcomp/filepaths.sig.o:	sepcomp/filepaths.sig.c
	$(CC) $(CFLAGS) -c -o $@ sepcomp/filepaths.sig.c

sepcomp/filepaths.sml.o:	sepcomp/filepaths.sml.c
	$(CC) $(CFLAGS) -c -o $@ sepcomp/filepaths.sml.c

c/cbignum.sml.o:	c/cbignum.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/cbignum.sml.c

c/bitset.sml.o:	c/bitset.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/bitset.sml.c

c/integrate.sml.o:	c/integrate.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/integrate.sml.c

c/cfreemap.sml.o:	c/cfreemap.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/cfreemap.sml.c

c/cimporter.sml.o:	c/cimporter.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/cimporter.sml.c

c/codegen.sig.o:	c/codegen.sig.c
	$(CC) $(CFLAGS) -c -o $@ c/codegen.sig.c

c/machine.sig.o:	c/machine.sig.c
	$(CC) $(CFLAGS) -c -o $@ c/machine.sig.c

c/c.sig.o:	c/c.sig.c
	$(CC) $(CFLAGS) -c -o $@ c/c.sig.c

c/control.sig.o:	c/control.sig.c
	$(CC) $(CFLAGS) -c -o $@ c/control.sig.c

c/cprint.sig.o:	c/cprint.sig.c
	$(CC) $(CFLAGS) -c -o $@ c/cprint.sig.c

c/used.sig.sml.o:	c/used.sig.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/used.sig.sml.c

c/used.sml.o:	c/used.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/used.sml.c

c/file.sml.o:	c/file.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/file.sml.c

c/machine.sml.o:	c/machine.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/machine.sml.c

c/cprint.sml.o:	c/cprint.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/cprint.sml.c

c/c.sml.o:	c/c.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/c.sml.c

c/control.sml.o:	c/control.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/control.sml.c

c/cpstoc.sml.o:	c/cpstoc.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/cpstoc.sml.c

c/cpscompc.sml.o:	c/cpscompc.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/cpscompc.sml.c

c/cprocess.sml.o:	c/cprocess.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/cprocess.sml.c

c/hookup.sml.o:	c/hookup.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/hookup.sml.c

c/cglue.sml.o:	c/cglue.sml.c
	$(CC) $(CFLAGS) -c -o $@ c/cglue.sml.c


