昔の自分のコードで #ifdef ARDUINO_AVR_ATTINYX5 とやってるのがあったんでどこで定義されてるのかと小一時間探したがない。
ググったら同じような疑問持ってる人がいて答えがあった。
Arduinoのライブラリでよく見るボード種別に応じてコンパイル内容を変えるマクロ定義文字列の正体 - Qiita
C:\Users\{$USERNAME}\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.4 の (↑AppDataは隠しフォルダ) boards.txtの中に uno.build.board=AVR_UNO
てことで動的に生成してるらしい。言いたくないけどArduinoって変態IDEもそうだけどソフト側いけてないよね(言っちゃった)。