project(aldor)

set(srcdir aldor/lib/libfoamlib)
set(aldor aldor.sh)

set(AXL0Srcs ${srcdir}/lang.as ${srcdir}/machine.as ${srcdir}/basic.as ${srcdir}/foamcat.as ${srcdir}/tuple.as ${srcdir}/gener.as ${srcdir}/boolean.as ${srcdir}/segment.as ${srcdir}/sinteger.as ${srcdir}/sfloat.as ${srcdir}/pointer.as ${srcdir}/char.as ${srcdir}/parray.as ${srcdir}/array.as ${srcdir}/list.as ${srcdir}/langx.as ${srcdir}/string.as)
set(AXL0Aos ${srcdir}/lang.ao ${srcdir}/machine.ao ${srcdir}/basic.ao ${srcdir}/foamcat.ao ${srcdir}/tuple.ao ${srcdir}/gener.ao ${srcdir}/boolean.ao ${srcdir}/segment.ao ${srcdir}/sinteger.ao ${srcdir}/sfloat.ao ${srcdir}/pointer.ao ${srcdir}/char.ao ${srcdir}/parray.ao ${srcdir}/array.ao ${srcdir}/list.ao ${srcdir}/langx.ao ${srcdir}/string.ao)

set(AXL1Srcs ${srcdir}/format.as ${srcdir}/partial.as ${srcdir}/oslow.as ${srcdir}/fname.as ${srcdir}/file.as ${srcdir}/opsys.as ${srcdir}/textwrit.as)
set(AXL1Srcs ${srcdir}/format.ao ${srcdir}/partial.ao ${srcdir}/oslow.ao ${srcdir}/fname.ao ${srcdir}/file.ao ${srcdir}/opsys.ao ${srcdir}/textwrit.ao)

set(AOBJS ${AXL0Aos} ${AXL1Aos})

add_custom_command(OUTPUT ${srcdir}/libfoam.al
	COMMAND $ENV{ALDORROOT}/bin/uniar r ${srcdir}/libfoam.al ${AOBJS}
	DEPENDS ${AOBJS})


add_custom_command(OUTPUT ${srcdir}/lang.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/lang.as
	DEPENDS ${srcdir}/lang.as)

add_custom_command(OUTPUT ${srcdir}/machine.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/machine.as
	DEPENDS ${srcdir}/machine.as ${srcdir}/lang.ao)

add_custom_command(OUTPUT ${srcdir}/basic.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/basic.as
	DEPENDS ${srcdir}/basic.as)

add_custom_command(OUTPUT ${srcdir}/foamcat.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/foamcat.as
	DEPENDS ${srcdir}/foamcat.as)

add_custom_command(OUTPUT ${srcdir}/tuple.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/tuple.as
	DEPENDS ${srcdir}/tuple.as)

add_custom_command(OUTPUT ${srcdir}/gener.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/gener.as
	DEPENDS ${srcdir}/gener.as)

add_custom_command(OUTPUT ${srcdir}/boolean.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/boolean.as ${srcdir}/lang.ao ${srcdir}/machine.ao ${srcdir}/basic.ao
	DEPENDS ${srcdir}/boolean.as ${srcdir}/lang.ao ${srcdir}/machine.ao ${srcdir}/basic.ao)

add_custom_command(OUTPUT ${srcdir}/segment.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/segment.as
	DEPENDS ${srcdir}/segment.as)

add_custom_command(OUTPUT ${srcdir}/sinteger.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/sinteger.as
	DEPENDS ${srcdir}/sinteger.as)

add_custom_command(OUTPUT ${srcdir}/sfloat.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/sfloat.as
	DEPENDS ${srcdir}/sfloat.as)

add_custom_command(OUTPUT ${srcdir}/pointer.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/pointer.as
	DEPENDS ${srcdir}/pointer.as)

add_custom_command(OUTPUT ${srcdir}/char.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/char.as
	DEPENDS ${srcdir}/char.as)

add_custom_command(OUTPUT ${srcdir}/parray.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/parray.as
	DEPENDS ${srcdir}/parray.as)

add_custom_command(OUTPUT ${srcdir}/array.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/array.as
	DEPENDS ${srcdir}/array.as)

add_custom_command(OUTPUT ${srcdir}/list.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/list.as
	DEPENDS ${srcdir}/list.as)

add_custom_command(OUTPUT ${srcdir}/langx.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/langx.as
	DEPENDS ${srcdir}/langx.as)

add_custom_command(OUTPUT ${srcdir}/string.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/string.as
	DEPENDS ${srcdir}/string.as ${srcdir}/boolean.ao)

add_custom_command(OUTPUT ${srcdir}/format.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/format.as
	DEPENDS ${srcdir}/format.as)

add_custom_command(OUTPUT ${srcdir}/partial.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/partial.as
	DEPENDS ${srcdir}/partial.as)

add_custom_command(OUTPUT ${srcdir}/oslow.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/oslow.as
	DEPENDS ${srcdir}/oslow.as)

add_custom_command(OUTPUT ${srcdir}/fname.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/fname.as
	DEPENDS ${srcdir}/fname.as)

add_custom_command(OUTPUT ${srcdir}/file.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/file.as
	DEPENDS ${srcdir}/file.as)

add_custom_command(OUTPUT ${srcdir}/opsys.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/opsys.as
	DEPENDS ${srcdir}/opsys.as)

add_custom_command(OUTPUT ${srcdir}/textwrit.ao
	COMMAND $ENV{ALDORROOT}/bin/${aldor} -fao -y${srcdir} -r${srcdir} ${srcdir}/textwrit.as
	DEPENDS ${srcdir}/textwrit.as)

add_custom_target(libfoam
	DEPENDS ${srcdir}/libfoam.al)
