How to create new partition on flash when create firmware

We know the openwrt flash layout is divided into several partition—uboot 、kernel、rootfs、art. How to change the default setting when create firmware.For example,if I want to resize the size of these partition and create a new partition ,what should I do?