aboutsummaryrefslogtreecommitdiffhomepage
path: root/debian/patches/standardise-makefile-variables.patch
blob: b3e48edb86f3fefcd9d859abfd7f59057704a9d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
From: Sean Whitton <spwhitton@spwhitton.name>
Date: Wed, 28 Sep 2016 09:07:03 -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

Forwarded: https://github.com/tsyrogit/zxcvbn-c/pull/10
---
 makefile | 45 +++++++++++++++++++++++++++++----------------
 1 file 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