I started to play with the STM32CubeF4 hal code, in the context of helping to add support for it in MicroPython. I looked around for an example Makefile which used gcc, and couldn't find one.
So, of course, I created my own.
You can find my Makefile (if you've seen MicroPython's makefile then this will look familiar, since I copied most of the bits and pieces from there) here. It's setup to work with the STM32F4-Discovery board.
The STM32F407VG_FLASH.ld and startup_stm32f407xx.s came from the TrueSTUDIO tree.
The Makefile only works for the GPIO_EXTI example and would need to be modified for other examples. I'll probably only do the one example, since that's enough to get the basics working.