# Makefile for cnotes - GCC on Linux/Unix/macOS # Strict C89/ANSI compliant build CC = gcc CFLAGS = -ansi -Wpedantic -Wall -Wextra -O2 INCLUDES = -I include SRCDIR = src INCDIR = include BUILDDIR = build SOURCES = $(SRCDIR)/cnadd.c $(SRCDIR)/cndump.c $(SRCDIR)/cncount.c $(SRCDIR)/cndel.c HEADERS = $(INCDIR)/platform.h $(INCDIR)/config.h TARGETS = $(BUILDDIR)/cnadd $(BUILDDIR)/cndump $(BUILDDIR)/cncount $(BUILDDIR)/cndel .PHONY: all clean install uninstall all: $(BUILDDIR) $(TARGETS) $(BUILDDIR): mkdir -p $(BUILDDIR) $(BUILDDIR)/cnadd: $(SRCDIR)/cnadd.c $(HEADERS) $(CC) $(CFLAGS) $(INCLUDES) -o $@ $(SRCDIR)/cnadd.c $(BUILDDIR)/cndump: $(SRCDIR)/cndump.c $(HEADERS) $(CC) $(CFLAGS) $(INCLUDES) -o $@ $(SRCDIR)/cndump.c $(BUILDDIR)/cncount: $(SRCDIR)/cncount.c $(HEADERS) $(CC) $(CFLAGS) $(INCLUDES) -o $@ $(SRCDIR)/cncount.c $(BUILDDIR)/cndel: $(SRCDIR)/cndel.c $(HEADERS) $(CC) $(CFLAGS) $(INCLUDES) -o $@ $(SRCDIR)/cndel.c clean: rm -rf $(BUILDDIR) # Install to /usr/local/bin (optional, run with sudo) install: $(TARGETS) install -m 755 $(BUILDDIR)/cnadd /usr/local/bin/ install -m 755 $(BUILDDIR)/cndump /usr/local/bin/ install -m 755 $(BUILDDIR)/cncount /usr/local/bin/ install -m 755 $(BUILDDIR)/cndel /usr/local/bin/ uninstall: rm -f /usr/local/bin/cnadd /usr/local/bin/cndump /usr/local/bin/cncount /usr/local/bin/cndel