Что делает эта команда: gcc -I my_dts -E -nostdinc -undef -D__DTS__ -x assembler-with-cpp -o system.dts system-top.dts?
my_dts - подкаталог в текущем каталоге, там gcc будет искать дополнительные файлы, которые используются в директиве #include, компилируемого файла, т.к. my_dts это параметр ключа -I. Если такого каталога нет - gcc никак об этом не сообщит, но возможно будут какие-то ошибки при сборке.
Опция -E заставляет прервать компиляцию после обработки препроцессором.
Т.е. в данном случае просто используют препроцессор Си для файлов dts. DTS - device treee source. В DTS файлах описывают железо на котором загружается ОС. Они используются, например, в u-boot, в ядре линукс и  т.п.
Выходной файл задается опцией -o.
Открываете man gcc https://www.opennet.ru/man.shtml?topic=gcc&categor...
и читаете про его ключи. 
Если что-то не находите, гуглите конкретные ключи.