The source translator/compiler for aesop is called aecc. Once you run "make install" in the aesop build tree you will be able to find aecc in <prefix>/bin/aecc. The default operating mode of aecc is to translate a .ae file into a .o file (similar to using gcc to translate a .c file into a .o file). The best way to illustrate this is with an example. In this case we will copy a test program from the aesop source tree to an external directory, and then compile, link, and run the test program:
mkdir aesop-test cp <aesop_src_dir>/src/aefile/test/aefile-example.ae aesop-test cd aesop-test <aesop_prefix>/bin/aecc -o aefile-example.o aefile-example.ae $CC -L<aesop_prefix/lib aefile-example.o -o aefile-example -laesop -lc-utils -lpthread -lm ./aefile-example
Notes:
- <aesop_src_dir> refers to the Aesop source tree. In this case we are only using it to provide an example test program.
- <aesop_prefix> refers to the path that Aesop has been installed to. This would have been specified with the --prefix argument at configure time
- aecc automatically sets necessary include paths for Aesop run-time headers
- If you need to specify additional CFLAGS to aecc, provide them after a -- delimiter. For example: "aecc -o aefile-example.o aefile-example.ae -- -g -Wall"
- Linking can be performed with your normal C compiler or linker. However, you must use the -L argument to specify the path to the installed aesop run-time libraries, and you must explicitly link in libaesop, libc-utils, libpthread, and libm.
In future work we will improve the aecc translator so that it has more conventional arguments (matching standard C compilers) and can perform the linking step so that aesop users do not have to manually specify all of the libraries.