LIBRARIES = -lreadline RELEASE_ARGS = -DRELEASEBUILD SOURCES = ./msh.c OUTPUT_DIR = ./bin OUTPUT_BIN = ${OUTPUT_DIR}/PROG OUTPUT = -o ${OUTPUT_BIN} build: output_dir gcc -Wall -std=gnu99 ${RELEASE_ARGS} ${SOURCES} ${OUTPUT:PROG=mash} ${LIBRARIES} debug: output_dir gcc -Wall -std=gnu99 -g ${SOURCES} ${OUTPUT:PROG=mash} ${LIBRARIES} output_dir: mkdir -p ${OUTPUT_DIR} install: mv ${OUTPUT_BIN:PROG=mash} /usr/sbin/blah