Makefile (579B)
1 NAME:=$(shell basename ${PWD}) 2 UNAME_S:=$(shell uname -s) 3 SRC:=$(wildcard *.cpp) 4 DEPS:=$(wildcard *.hpp) 5 OBJ:=$(SRC:.cpp=.o) 6 CXXSTD:=c++23 7 ifeq (${UNAME_S},OpenBSD) 8 CXXSTD=c++2b 9 endif 10 $(info Using ${CXXSTD} on ${UNAME_S}) 11 CXXFLAGS=-O2 -std=${CXXSTD} -Werror -Wall -Wextra -I. -I../include 12 LDFLAGS=-lstdc++ 13 14 all: $(NAME) 15 16 .PHONY: clean run 17 18 clean: 19 rm -f $(OBJ) $(NAME) 20 21 %.o : %.c $(DEPS) 22 @$(CC) $(CFLAGS) -c $< -o $@ 23 24 $(NAME): $(OBJ) 25 @$(CC) $(OBJ) -o $@ $(LDFLAGS) 26 27 run: $(NAME) 28 @./$(NAME) input.txt 29 30 test1: $(NAME) 31 @./$(NAME) test1.txt 32 33 test2: $(NAME) 34 @./$(NAME) test2.txt