You can use the :lcd
command in each tab to change the working directory. If you do this as long as the tab page contains a single window, any future split buffers will inherit the (window-local) setting, and you effectively have tab-local working directories.
Alternatively, :set autochdir
will always switch the working directory to the current buffer's. As long as you have flat projects (where the Makefile is in the same directory as the sources you're editing), that would be a solution, too.