aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2021-07-06 11:43:37 -0700
committerBruce Hill <bruce@bruce-hill.com>2021-07-06 11:43:37 -0700
commit9073236736f59291da586a9af64970a647e574ce (patch)
tree6e58be7393c79981fe339ea3068630f123156a6c /Makefile
parent641452dc964c6807aef17ca47e02da798152dc04 (diff)
Cross-platform compatibility changes
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile36
1 files changed, 19 insertions, 17 deletions
diff --git a/Makefile b/Makefile
index abf059f..d6ca58b 100644
--- a/Makefile
+++ b/Makefile
@@ -3,22 +3,24 @@ PREFIX=
CC=cc
G=
O=-O2
-CFLAGS=-std=c99 -Werror -D_XOPEN_SOURCE=700 -D_GNU_SOURCE -D_POSIX_C_SOURCE=200809L
-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 -Wunused-macros -Wvariadic-macros -Wvector-operation-performance \
- -Wvla -Wwrite-strings
+CFLAGS=-std=c99 -Werror -D_XOPEN_SOURCE=700 -D_POSIX_C_SOURCE=200809L
+CWARN=-Wall -Wextra
+# -Wpedantic -Wsign-conversion -Wtype-limits -Wunused-result \
+# -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 -Wunused-macros -Wvariadic-macros -Wvector-operation-performance \
+# -Wvla -Wwrite-strings
#CFLAGS += -fsanitize=address -fno-omit-frame-pointer
CFLAGS += '-DBB_NAME="$(NAME)"'
+OSFLAGS != case $$(uname -s) in *BSD|Darwin) echo '-D_BSD_SOURCE';; Linux) echo '-D_GNU_SOURCE';; *) echo '-D_DEFAULT_SOURCE';; esac
CFILES=draw.c terminal.c
OBJFILES=$(CFILES:.c=.o)
@@ -29,10 +31,10 @@ clean:
rm -f $(NAME) $(OBJFILES)
%.o: %.c %.h types.h utils.h
- $(CC) -c $(CFLAGS) $(CWARN) $(G) $(O) -o $@ $<
+ $(CC) -c $(CFLAGS) $(OSFLAGS) $(CWARN) $(G) $(O) -o $@ $<
$(NAME): $(OBJFILES) bb.c
- $(CC) $(CFLAGS) $(CWARN) $(G) $(O) -o $@ $(OBJFILES) bb.c
+ $(CC) $(CFLAGS) $(OSFLAGS) $(CWARN) $(G) $(O) -o $@ $(OBJFILES) bb.c
install: $(NAME)
@prefix="$(PREFIX)"; \
@@ -42,7 +44,7 @@ install: $(NAME)
fi; \
[ ! "$$prefix" ] && prefix="/usr/local"; \
[ ! "$$sysconfdir" ] && sysconfdir=/etc; \
- mkdir -pv -m 755 "$$prefix/man/man1" "$$prefix/bin" "$$sysconfdir/$(NAME)" \
+ mkdir -p -m 755 "$$prefix/man/man1" "$$prefix/bin" "$$sysconfdir/$(NAME)" \
&& cp -rv scripts/* "$$sysconfdir/$(NAME)/" \
&& cp -v bb.1 "$$prefix/man/man1/$(NAME).1" \
&& cp -v bbcmd.1 "$$prefix/man/man1/bbcmd.1" \