As you can see from the sections above, there are many ways to package an application to suit your requirements, using executable files in proprietary and system formats.
Perhaps the best way of packaging an application is, therefore, to create a system executable that is linked with shared libraries and calls callable shared object files: