2026-01-30 12:06:07 +00:00
|
|
|
# Makefile for cnotes - GCC on Linux/Unix/macOS
|
|
|
|
|
# Strict C89/ANSI compliant build
|
|
|
|
|
|
|
|
|
|
CC = gcc
|
2026-01-30 12:37:28 +00:00
|
|
|
CFLAGS = -ansi -Wpedantic -Wall -Wextra -O2
|
2026-01-30 12:06:07 +00:00
|
|
|
INCLUDES = -I include
|
|
|
|
|
|
|
|
|
|
SRCDIR = src
|
|
|
|
|
INCDIR = include
|
|
|
|
|
BUILDDIR = build
|
|
|
|
|
|
2026-01-30 14:56:03 +00:00
|
|
|
SOURCES = $(SRCDIR)/cnadd.c $(SRCDIR)/cndump.c $(SRCDIR)/cncount.c $(SRCDIR)/cndel.c $(SRCDIR)/cnfind.c $(SRCDIR)/cnhelp.c
|
2026-01-30 12:37:28 +00:00
|
|
|
HEADERS = $(INCDIR)/platform.h $(INCDIR)/config.h
|
2026-01-30 12:06:07 +00:00
|
|
|
|
2026-01-30 14:56:03 +00:00
|
|
|
TARGETS = $(BUILDDIR)/cnadd $(BUILDDIR)/cndump $(BUILDDIR)/cncount $(BUILDDIR)/cndel $(BUILDDIR)/cnfind $(BUILDDIR)/cnhelp
|
2026-01-30 12:06:07 +00:00
|
|
|
|
|
|
|
|
.PHONY: all clean install uninstall
|
|
|
|
|
|
|
|
|
|
all: $(BUILDDIR) $(TARGETS)
|
|
|
|
|
|
|
|
|
|
$(BUILDDIR):
|
|
|
|
|
mkdir -p $(BUILDDIR)
|
|
|
|
|
|
2026-01-30 12:37:28 +00:00
|
|
|
$(BUILDDIR)/cnadd: $(SRCDIR)/cnadd.c $(HEADERS)
|
|
|
|
|
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $(SRCDIR)/cnadd.c
|
2026-01-30 12:06:07 +00:00
|
|
|
|
2026-01-30 12:37:28 +00:00
|
|
|
$(BUILDDIR)/cndump: $(SRCDIR)/cndump.c $(HEADERS)
|
|
|
|
|
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $(SRCDIR)/cndump.c
|
2026-01-30 12:06:07 +00:00
|
|
|
|
2026-01-30 13:35:14 +00:00
|
|
|
$(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
|
|
|
|
|
|
2026-01-30 13:39:48 +00:00
|
|
|
$(BUILDDIR)/cnfind: $(SRCDIR)/cnfind.c $(HEADERS)
|
|
|
|
|
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $(SRCDIR)/cnfind.c
|
|
|
|
|
|
2026-01-30 14:56:03 +00:00
|
|
|
$(BUILDDIR)/cnhelp: $(SRCDIR)/cnhelp.c
|
|
|
|
|
$(CC) $(CFLAGS) -o $@ $(SRCDIR)/cnhelp.c
|
|
|
|
|
|
2026-01-30 12:06:07 +00:00
|
|
|
clean:
|
|
|
|
|
rm -rf $(BUILDDIR)
|
|
|
|
|
|
|
|
|
|
# Install to /usr/local/bin (optional, run with sudo)
|
|
|
|
|
install: $(TARGETS)
|
2026-01-30 12:37:28 +00:00
|
|
|
install -m 755 $(BUILDDIR)/cnadd /usr/local/bin/
|
|
|
|
|
install -m 755 $(BUILDDIR)/cndump /usr/local/bin/
|
2026-01-30 13:35:14 +00:00
|
|
|
install -m 755 $(BUILDDIR)/cncount /usr/local/bin/
|
|
|
|
|
install -m 755 $(BUILDDIR)/cndel /usr/local/bin/
|
2026-01-30 13:39:48 +00:00
|
|
|
install -m 755 $(BUILDDIR)/cnfind /usr/local/bin/
|
2026-01-30 14:56:03 +00:00
|
|
|
install -m 755 $(BUILDDIR)/cnhelp /usr/local/bin/
|
2026-01-30 12:06:07 +00:00
|
|
|
|
|
|
|
|
uninstall:
|
2026-01-30 14:56:03 +00:00
|
|
|
rm -f /usr/local/bin/cnadd /usr/local/bin/cndump /usr/local/bin/cncount /usr/local/bin/cndel /usr/local/bin/cnfind /usr/local/bin/cnhelp
|
2026-01-30 21:44:32 +00:00
|
|
|
|
|
|
|
|
# Strict splint (very verbose, use with caution)
|
|
|
|
|
splint-strict:
|
|
|
|
|
splint +standard -I./include src/*.c
|
|
|
|
|
|
|
|
|
|
cppcheck:
|
|
|
|
|
@echo "Running cppcheck..."
|
|
|
|
|
@cppcheck --std=c90 --enable=warning,style,performance,portability \
|
|
|
|
|
--suppress=missingIncludeSystem --quiet -I./include src/
|