There are two parts to cpp_tao_interface: 1) Scripts to create the appropriate code files. 2) The standard Cmake files to create the cpp_tao_interface Normally you should not have to create any code files since: 1) The code files are part of the SVN repository and do not normally have to be regenerated. 2) They only need to be regenerated when there are changes to Bmad or Tao structures or if a new structure is to be added. 3) Code file generation is not meant for the unintiated. So: If you want to generate new code files, please talk to David Sagan first. ---------------------------------------------------- Code Generation Overview: Note: You must have a local copy of bmad, tao, sim_utils and cpp_bmad_interface. And these must be in the same directory as cpp_tao_interface. * Bootstrap script creation. From the cpp_tao_directory run: ./scripts/convert_from_cpp_bmad_to_cpp_tao.py The setup for cpp_tao_interface is derived from the setup in cpp_bmad_interface. The bootstrap step copies files from cpp_bmad_interface and makes appropriate changes. * Run scripts/create_interface.py from the cpp_tao_directory: ./scripts/create_interface.py If the Tao structures are modified then the file scripts/interface_input_params.py must be appropriately updatted. See this file for more instructions. This script generates: A) The include/cpp_tao_classes.h file defining the C++ classes B) .f90 and .cpp translation code files in the code directory. C) .f90 and .cpp test files in the interface_test directory. D) equality_mod.f90 which is placed in the tao/modules directory. This file is placed in tao since it is used by some tao routines. ---------------------------------------------------- Compiling and Linking: The standard "mk" and "mkd" scripts will create both the cpp_tao_interface library and the test program cpp_tao_interfac_test. ---------------------------------------------------- Testing: 1) Go to the tao directory and recompile 2) Return to the cpp_tao_interface directory and run the test program: ../production/bin/cpp_tao_interface_test