From 0701f3ac98240446548d163a8bb2a25420d5de7b Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Wed, 28 Sep 2016 09:37:17 -0700 Subject: Add another missing file to clean target --- makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/makefile b/makefile index 2cf5c9e..adf3c9b 100644 --- a/makefile +++ b/makefile @@ -84,7 +84,7 @@ test: test-file test-inline test-c++inline test-c++file test-shlib test-statlib clean: rm -f test-file zxcvbn-file.o test-c++file zxcvbn-c++file.o - rm -f test-inline zxcvbn-inline.o test-c++inline zxcvbn-c++inline.o + rm -f test-inline zxcvbn-inline.o zxcvbn-inline-pic.o test-c++inline zxcvbn-c++inline.o rm -f dict-*.h zxcvbn.dict zxcvbn.cpp test.cpp rm -f dictgen rm -f ${TARGET_LIB} ${SONAME} libzxcvbn.so test-shlib libzxcvbn.a test-statlib -- cgit v1.2.3 From 34120b386a26db2054cf1afc2041d26fbc33af2a Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Wed, 28 Sep 2016 09:38:02 -0700 Subject: 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 --- makefile | 45 +++++++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/makefile b/makefile index 2cf5c9e..cd30db3 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 -- cgit v1.2.3