If possible, opt for not requiring an installer but using a simple extract-and-run approach. This will allow the user to put the file(s) anywhere they want and run it.
But, you do have other options, such as:
- Using autoconf,
- Using CMake,
- Using a Java installer like IZPack
- etc