build: separate configuration and rules