То, что вы хотите сделать, звучит для меня "javascriptish" :-). Но если вы настаиваете, всегда есть «кошка» (или эквивалент в Windows):
$ cat file1.h file2.h file3.h > my_big_file.h
Или, если вы используете gcc, создайте файл my_decent_lib_header.h со следующим содержимым:
#include "file1.h"
#include "file2.h"
#include "file3.h"
и затем используйте
$ gcc -C -E my_decent_lib_header.h -o my_big_file.h
и таким образом вы даже получаете директивы file / line, которые будут ссылаться на исходные файлы (хотя, если хотите, их можно отключить).
Что касается того, насколько это автоматически для вашего порядка файлов, ну, это совсем не так; Вы должны решить заказ самостоятельно. На самом деле, я был бы удивлен, узнав, что для C / C ++ может быть создан инструмент, который корректно упорядочивает зависимости заголовка во всех случаях.