Files
gg/Makefile
T

38 lines
882 B
Makefile
Raw Normal View History

2026-08-21 11:50:24 +03:00
# gg - Grokkin' Grep: a minimal, fast, portable grep-like file finder.
2026-08-21 11:17:51 +03:00
#
# Build: make
# Clean: make clean
# Install: make install PREFIX=/usr/local
CC ?= gcc
2026-08-21 11:50:24 +03:00
CFLAGS ?= -O2 -s -std=c11 -Wall -Wextra
2026-08-21 11:17:51 +03:00
CPPFLAGS += -D_POSIX_C_SOURCE=200809L -D_DEFAULT_SOURCE
LDFLAGS ?=
LDLIBS += -lpthread
2026-08-21 11:50:24 +03:00
# The matcher uses POSIX memmem(), which glibc accelerates with SIMD on
# whatever CPU you run on. -mavx2 is harmless but unnecessary; drop it for
# maximum portability (e.g. make MARCH="").
2026-08-21 11:17:51 +03:00
MARCH ?= -mavx2
2026-08-21 11:50:24 +03:00
BINARY := gg
SRC := gg.c
2026-08-21 11:17:51 +03:00
PREFIX ?= /usr/local
BINDIR := $(PREFIX)/bin
all: $(BINARY)
$(BINARY): $(SRC)
$(CC) $(CFLAGS) $(CPPFLAGS) $(MARCH) $(LDFLAGS) -o $@ $(SRC) $(LDLIBS)
clean:
rm -f $(BINARY)
install: $(BINARY)
install -d $(BINDIR)
install -m 0755 $(BINARY) $(BINDIR)/$(BINARY)
uninstall:
rm -f $(BINDIR)/$(BINARY)
.PHONY: all clean install uninstall