aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2016-09-28 09:07:03 -0700
committerSean Whitton <spwhitton@spwhitton.name>2016-09-28 09:41:48 -0700
commitda4c115d41d64b1a009b686ba6cb2bceae8c78cd (patch)
tree63e66ead970bf51339b936f63fa3c4242b980793
parent4a2d9cdad7a57f0b1f68dc1b9304326e036cbc4d (diff)
downloadzxcvbn-c-da4c115d41d64b1a009b686ba6cb2bceae8c78cd.tar.gz
standardise-makefile-variables
- use $(LDFLAGS) close to end of command to avoid build failures with linker option --as-needed - use $(CC), $(AR), $(CXX) to the user can choose their own compiler - use $(CPPFLAGS), $(CFLAGS) and $(CXXFLAGS) are they are intended - correct CPPFLAGS -> CXXFLAGS at top of file Forwarded: https://github.com/tsyrogit/zxcvbn-c/pull/10 Gbp-Pq: Name standardise-makefile-variables.patch
-rw-r--r--makefile45
1 files changed, 29 insertions, 16 deletions
diff --git a/makefile b/makefile
index adf3c9b..c45c33f 100644
--- a/makefile
+++ b/makefile
@@ -1,8 +1,12 @@
CFLAGS ?= -O2 -Wall -Wextra -Wdeclaration-after-statement
-CPPFLAGS ?= -O2 -Wall -Wextra
+CXXFLAGS ?= -O2 -Wall -Wextra
+
+# default programs
+CC ?= gcc
+AR ?= ar
+CXX ?= g++
# need zxcvbn.h prior to package installation
-CFLAGS += -I.
CPPFLAGS += -I.
# library metadata
@@ -15,32 +19,36 @@ all: test-file test-inline test-c++inline test-c++file test-shlib test-statlib
test-shlib: test.c $(TARGET_LIB)
if [ ! -e libzxcvbn.so ]; then ln -s $(TARGET_LIB) libzxcvbn.so; fi
- gcc $(CFLAGS) -o $@ $< -L. -lzxcvbn -lm
+ $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< -L. $(LDFLAGS) -lzxcvbn -lm
$(TARGET_LIB): zxcvbn-inline-pic.o
- gcc $(CFLAGS) $(LDFLAGS) -fPIC -shared -Wl,-soname,$(SONAME) -o $@ $^ -lm
+ $(CC) $(CPPFLAGS) $(CFLAGS) \
+ -o $@ $^ -fPIC -shared -Wl,-soname,$(SONAME) $(LDFLAGS) -lm
if [ ! -e $(SONAME) ]; then ln -s $(TARGET_LIB) $(SONAME); fi
test-statlib: test.c libzxcvbn.a
- gcc $(CFLAGS) $(LDFLAGS) -o $@ $^ -lm
+ $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) -lm
libzxcvbn.a: zxcvbn-inline.o
- ar cvq $@ $^
+ $(AR) cvq $@ $^
test-file: test.c zxcvbn-file.o
- gcc $(CFLAGS) -DUSE_DICT_FILE -o test-file test.c zxcvbn-file.o -lm
+ $(CC) $(CPPFLAGS) $(CFLAGS) \
+ -DUSE_DICT_FILE -o test-file test.c zxcvbn-file.o $(LDFLAGS) -lm
zxcvbn-file.o: zxcvbn.c dict-crc.h zxcvbn.h
- gcc $(CFLAGS) -DUSE_DICT_FILE -c -o zxcvbn-file.o zxcvbn.c
+ $(CC) $(CPPFLAGS) $(CFLAGS) \
+ -DUSE_DICT_FILE -c -o zxcvbn-file.o zxcvbn.c
test-inline: test.c zxcvbn-inline.o
- gcc $(CFLAGS) -o test-inline test.c zxcvbn-inline.o -lm
+ $(CC) $(CPPFLAGS) $(CFLAGS) \
+ -o test-inline test.c zxcvbn-inline.o $(LDFLAGS) -lm
zxcvbn-inline-pic.o: zxcvbn.c dict-src.h zxcvbn.h
- gcc $(CFLAGS) -fPIC -c -o $@ $<
+ $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -c -o $@ $<
zxcvbn-inline.o: zxcvbn.c dict-src.h zxcvbn.h
- gcc $(CFLAGS) -c -o zxcvbn-inline.o zxcvbn.c
+ $(CC) $(CPPFLAGS) $(CFLAGS) -c -o zxcvbn-inline.o zxcvbn.c
dict-src.h: dictgen $(WORDS)
./dictgen -o dict-src.h $(WORDS)
@@ -49,23 +57,28 @@ dict-crc.h: dictgen $(WORDS)
./dictgen -b -o zxcvbn.dict -h dict-crc.h $(WORDS)
dictgen: dict-generate.cpp makefile
- g++ -std=c++11 $(CPPFLAGS) -o dictgen dict-generate.cpp
+ $(CXX) $(CPPFLAGS) -std=c++11 $(CXXFLAGS) \
+ -o dictgen dict-generate.cpp $(LDFLAGS)
test-c++inline: test.c zxcvbn-c++inline.o
if [ ! -e test.cpp ]; then ln -s test.c test.cpp; fi
- g++ $(CPPFLAGS) -o test-c++inline test.cpp zxcvbn-c++inline.o -lm
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) \
+ -o test-c++inline test.cpp zxcvbn-c++inline.o $(LDFLAGS) -lm
zxcvbn-c++inline.o: zxcvbn.c dict-src.h zxcvbn.h
if [ ! -e zxcvbn.cpp ]; then ln -s zxcvbn.c zxcvbn.cpp; fi
- g++ $(CPPFLAGS) -c -o zxcvbn-c++inline.o zxcvbn.cpp
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) \
+ -c -o zxcvbn-c++inline.o zxcvbn.cpp
test-c++file: test.c zxcvbn-c++file.o
if [ ! -e test.cpp ]; then ln -s test.c test.cpp; fi
- g++ $(CPPFLAGS) -DUSE_DICT_FILE -o test-c++file test.cpp zxcvbn-c++file.o -lm
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) \
+ -DUSE_DICT_FILE -o test-c++file test.cpp zxcvbn-c++file.o $(LDFLAGS) -lm
zxcvbn-c++file.o: zxcvbn.c dict-crc.h zxcvbn.h
if [ ! -e zxcvbn.cpp ]; then ln -s zxcvbn.c zxcvbn.cpp; fi
- g++ $(CPPFLAGS) -DUSE_DICT_FILE -c -o zxcvbn-c++file.o zxcvbn.cpp
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) \
+ -DUSE_DICT_FILE -c -o zxcvbn-c++file.o zxcvbn.cpp
test: test-file test-inline test-c++inline test-c++file test-shlib test-statlib testcases.txt
@echo Testing C build, dictionary from file