32 lines
1 KiB
Makefile
32 lines
1 KiB
Makefile
# Portable across GNU make (Linux) and BSD make (FreeBSD).
|
|
#
|
|
# We do NOT read the make flavor's predefined CFLAGS: BSD make's sys.mk sets it
|
|
# to "-O2 -pipe", which would fight our OPT setting. Optimization lives in OPT,
|
|
# required language/warning flags in STD/WARN, and EXTRA is yours to append.
|
|
#
|
|
# OPT defaults to an aggressive, build-on-target profile. -march=native tunes
|
|
# for THIS machine's CPU, so only build where you run (which is how this repo
|
|
# is used). If you cross-build, override it, e.g. make OPT="-O2".
|
|
CC ?= cc
|
|
OPT ?= -O3 -march=native
|
|
EXTRA ?=
|
|
|
|
STD = -std=c11
|
|
WARN = -Wall -Wextra -Wpedantic -Wshadow -Wformat=2 \
|
|
-Wcast-align -Wstrict-prototypes -Wmissing-prototypes \
|
|
-Wpointer-arith -Wwrite-strings
|
|
|
|
TARGETS = pixelflut-render pixelflut-bench
|
|
|
|
all: $(TARGETS)
|
|
|
|
pixelflut-render: pixelflut.c pixelflut.h
|
|
$(CC) $(STD) $(OPT) -pthread $(WARN) $(EXTRA) -o $@ pixelflut.c
|
|
|
|
pixelflut-bench: bench.c pixelflut.h
|
|
$(CC) $(STD) $(OPT) -pthread $(WARN) $(EXTRA) -o $@ bench.c
|
|
|
|
clean:
|
|
rm -f $(TARGETS)
|
|
|
|
.PHONY: all clean
|