Maybe my previous post here can shed some light :)

Here is a ficticious example: A package may need tools like "cmake" and "pkg-config" to run through its build-process and the "qt" library is needed to build and execute it. These would be the different dependencies:

hostmakedepends: cmake, pkg-config
Installed and executed on the host in its architecture to run through the build process

makedepends: qt-devel
For compiling purposes the -devel variant of a library is needed. These dependencies are automatically installed seperately for each target architecture

depends: qt
Needed to run the program on the target system. This is automatically detected in many cases so you probably will not need to specify it at all.