toolbox/gcd/Makefile

45 lines
799 B
Makefile

CXX := g++
CFLAGS := -std=c++11 -Wall -Werror -Wextra -O3
.PHONY: all
all: bin/gcd
bin:
@mkdir -v bin
bin/gcd: src/gcd.cpp | check-cxx-works bin
@echo Compiling $<
@${CXX} ${CFLAGS} $^ -o $@
bin/gcd_test: src/gcd_test.cpp | check-cxx-works bin
@echo Compiling $^
@${CXX} ${CFLAGS} $^ -o $@
.PHONY: install
install: bin/gcd
@cp -v $^ /usr/bin
.PHONY: uninstall
uninstall: /usr/bin/gcd
@rm -v $^
.PHONY: test
test: bin/gcd_test
@./$^
.PHONY: clean
clean:
@rm -rfv bin
.PHONY: mrproper
mrproper: clean
.PHONY: cross_test
cross_test:
make -s mrproper && make -s CXX=x86_64-pc-linux-gnu-g++
make -s mrproper && make -s CXX=aarch64-unknown-linux-gnu-g++
.PHONY: check-cxx-works
check-cxx-works:
@${CXX} --version >/dev/null 2>&1 || (echo 'Please install a C++ compiler.' && exit 1)