38 lines
874 B
Makefile
38 lines
874 B
Makefile
# gg - Grokkin' Grep: a minimal, fast, portable grep-like file finder.
|
|
#
|
|
# Build: make
|
|
# Clean: make clean
|
|
# Install: make install PREFIX=/usr/local
|
|
|
|
CC ?= cc
|
|
CFLAGS ?= -O2 -s -std=c11 -Wall -Wextra
|
|
CPPFLAGS += -D_POSIX_C_SOURCE=200809L -D_DEFAULT_SOURCE
|
|
LDFLAGS ?=
|
|
LDLIBS += -lpthread
|
|
# 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="").
|
|
MARCH ?=
|
|
|
|
BINARY := gg
|
|
SRC := gg.c
|
|
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
|