# Makefile for `hello` CC=cc CFLAGS=-std=c99 -D_XOPEN_SOURCE=700 -D_GNU_SOURCE -D_POSIX_C_SOURCE=200809L CWARN=-Wall -Wpedantic -Wextra -Werror O=-O2 G= PREFIX=/usr/local BINDIR=$(PREFIX)/bin MANDIR=$(PREFIX)/man HEADERS=greeter.h CFILES=greeter.c OBJFILES=$(CFILES:%.c=%.o) hello: hello.c $(HEADERS) $(OBJFILES) $(CC) $(CFLAGS) $(CWARN) $(O) $(G) $(OBJFILES) hello.c -o hello %.o: %.c %.h $(CC) -c $(CFLAGS) $(CWARN) $(O) $(G) $< -o $@ .PHONY: clean clean: rm -f hello $(OBJFILES) .PHONY: install install: hello mkdir -p -m 755 "$(BINDIR)" "$(MANDIR)/man1" cp hello "$(BINDIR)/" cp hello.1 "$(MANDIR)/man1/" .PHONY: uninstall uninstall: rm -f "$(BINDIR)/hello" "$(MANDIR)/man1/hello.1"