Download
66 lines 2 KiBMakefileModified 2021-06-01 raw
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
PREFIX=
CC ?= gcc
O ?= -O2
CFLAGS=-std=c99 -D_XOPEN_SOURCE=500 -D_GNU_SOURCE -D_POSIX_C_SOURCE=200809L -Werror -flto
CWARN=-Wall -Wpedantic -Wextra \
	-Wsign-conversion -Wtype-limits -Wunused-result -Wnull-dereference \
	-Waggregate-return -Walloc-zero -Walloca -Warith-conversion -Wcast-align -Wcast-align=strict \
	-Wdangling-else -Wdate-time -Wdisabled-optimization -Wdouble-promotion -Wduplicated-branches \
	-Wduplicated-cond -Wexpansion-to-defined -Wfloat-conversion -Wfloat-equal -Wformat-nonliteral \
	-Wformat-security -Wformat-signedness -Wframe-address -Winline -Winvalid-pch -Wjump-misses-init \
	-Wlogical-op -Wlong-long -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn \
	-Wnull-dereference -Woverlength-strings -Wpacked -Wpacked-not-aligned -Wpointer-arith \
	-Wredundant-decls -Wshadow -Wshadow=compatible-local -Wshadow=global -Wshadow=local \
	-Wsign-conversion -Wstack-protector -Wsuggest-attribute=const -Wswitch-default -Wswitch-enum \
	-Wsync-nand -Wtrampolines -Wundef -Wunused -Wunused-but-set-variable \
	-Wunused-const-variable -Wunused-local-typedefs -Wvariadic-macros -Wvector-operation-performance \
	-Wvla -Wwrite-strings
#CFLAGS += -fsanitize=address -fno-omit-frame-pointer
ifeq ($(shell uname -s),Darwin)
	CFLAGS += -D_DARWIN_C_SOURCE
endif
G=

all: checksyntax

checksyntax: btui.h
	$(CC) $(CFLAGS) $(CWARN) $(G) $(O) -fsyntax-only $<

clean:
	@cd Lua; make clean
	@cd C; make clean
	@cd Python; make clean

%: %.c btui.h
	$(CC) $(CFLAGS) $(CWARN) $(G) $(O) $< -o $@

c:
	@cd C; make

testc:
	@cd C; make G=$(G) O=$(O) test

rainbow:
	@cd C; make rainbowdemo

lua:
	@cd Lua; make

testlua:
	@cd Lua; make test

python:
	@cd Python; make

testpython:
	@cd Python; make test

install:
	mkdir -pv -m 755 "${PREFIX}/include" "${PREFIX}/man/man3" \
	&& cp -v btui.h "${PREFIX}/include/" \
	&& cp -v btui.3 "${PREFIX}/man/man3/"

uninstall:
	rm -f "${PREFIX}/include/btui.h" "${PREFIX}/man/man3/btui.3"

.PHONY: all, checksyntax, clean, c, testc, lua, testlua, python, testpython, install, uninstall