"make" builds many targets even if they're not selected

I'm trying to build ONE firmware image, for RT-N18U.

make menuconfig
Target system = BRCM47xx/53xx (ARM)
Subtarget = Generic
Target profile = ASUS RT-N18U
make

Somehow, all these images get built:

marius95@GRAPHIM /build/openwrt.b0 $ ls bin/targets/bcm53xx/generic/
config.buildinfo
feeds.buildinfo
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-asus_rt-ac56u-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-asus_rt-ac68u-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-asus_rt-ac87u-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-asus_rt-n18u.manifest
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-asus_rt-n18u-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-buffalo_wxr-1900dhp-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-buffalo_wzr-1750dhp-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-buffalo_wzr-600dhp2-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-buffalo_wzr-900dhp-squashfs.factory-DHP2-JP.bin
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-buffalo_wzr-900dhp-squashfs.factory-DHP-EU.bin
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-buffalo_wzr-900dhp-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-dlink_dir-885l-squashfs.bin
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-linksys_ea6300-v1-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-linksys_ea6500-v2-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-linksys_ea9200-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-linksys_ea9500-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-luxul_abr-4500-squashfs.lxl
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-luxul_xap-1610-squashfs.lxl
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-luxul_xbr-4500-squashfs.lxl
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-luxul_xwr-3150-squashfs.lxl
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-meraki_mr32-squashfs.sysupgrade.bin
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-meraki_mr32-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-netgear_r6250-squashfs.chk
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-netgear_r6300-v2-squashfs.chk
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-netgear_r7000-squashfs.chk
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-netgear_r7900-squashfs.chk
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-netgear_r8000-squashfs.chk
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-netgear_r8500-squashfs.chk
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-phicomm_k3-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-smartrg_sr400ac-squashfs.trx
openwrt-snapshot-r18404+1-236c3ea730-bcm53xx-generic-tenda_ac9-squashfs.trx
packages/
profiles.json
sha256sums
version.buildinfo

Is this a bug or is it supposed to work this way?

./scripts/diffconfig.sh before the actual build or config.buildinfo afterwards should tell you a bit more what exactly you configured.

diffconfig matches what was selected in menuconfig.

$ ./scripts/diffconfig.sh
CONFIG_TARGET_bcm53xx=y
CONFIG_TARGET_bcm53xx_generic=y
CONFIG_TARGET_bcm53xx_generic_DEVICE_asus_rt-n18u=y
CONFIG_DEVEL=y
CONFIG_TOOLCHAINOPTS=y
...