Давно хотел написать Makefile, который бы создавал рабочую директорию для cmake и выполнял все необходимые приготовления.

Данный Makefile создает рабочую директорию, вызывает cmake для создания / обновления проекта и собирает его. Теперь проект можно собирать прямо из vim и бегать по ошибкам / предупреждениям компилятора.

BUILD_DIR=.build

all:
    $(shell [[ ! -d $(BUILD_DIR) ]] && mkdir $(BUILD_DIR) )
    cd $(BUILD_DIR) ; cmake .. ; make ; cd ..

clean:
    rm -fr $(BUILD_DIR)