What is the best way to embed Firebird Installation in the Installer for my app?
My app has its own installer but I have to guide my users to install Firebird on their own.
I'd like to install it automatically.
You can download Firebird source code. It contains InnoSetup script that actually installs firebird on windows targets. You can then modify it to suit your needs.
As a side advice, maybe you should consider Inno Setup yourself.
InterBase and hence Firebird provide an API you can use in your installer script to automate installation.
See documentation for this API in the document "InterBase 5.5 Embedded Installation Guide" http://dn.codegear.com/article/26386
The InterBase Express (IBX) components provide a Delphi binding for the installation API. This is documented in the InterBase 6.0 "Developer's Guide".
@mghie and @TOndrej have made comments about my mistake. I was the Product Manager for InterBase once upon a time, when InterBase did provide an installation API. But this answer is outdated, by literally ten years now.
Here's another resource which is more up to date:
This has step-by-step instructions for creating your own Inno Setup installer for Firebird, to accompany your own application installer. No doubt you could use a different installer technology for your application, and simply call the Inno Setup installer as an external program from your installer. But it would probably be more seamless if you also use the Inno Setup for your own product.
If you don't need standalone Firebird server, you could also just include required files in your setup and use Firebird as a embedded SQL server.
Create a bootstrapper, for your product and the prerequisites that your product needs.
Other products might be a good model to follow. For example, Pidgin relies on a specific version of GTK and guides you through running the GTK installer. Being open source, one option would be to look through the source for their NSIS installer package to see how they're doing it.