summaryrefslogtreecommitdiff
blob: 07a1c121032a66ef105ae06985f38053eda19743 (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
From 90221a4d79dcbf44239b9b07cb7c3ec7c090a4a3 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Fri, 18 May 2018 20:43:23 +0200
Subject: [PATCH] Respect env CC/CXX, split LDFLAGS, use libraries

This is a port of files/zopfli-1.0.1-makefile.patch to 1.0.2.
---
 Makefile | 32 +++++++++++++++++++-------------
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/Makefile b/Makefile
index 30b931e..bf063df 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,10 @@
-CC = gcc
-CXX = g++
+CC ?= gcc
+CXX ?= g++
 
-CFLAGS = -W -Wall -Wextra -ansi -pedantic -lm -O2 -Wno-unused-function
-CXXFLAGS = -W -Wall -Wextra -ansi -pedantic -O2
+CFLAGS += -W -Wall -Wextra -ansi -pedantic
+CXXFLAGS += -W -Wall -Wextra -ansi -pedantic
+LDFLAGS += -L. -Wno-unused-function
+LIBS = -lm
 
 ZOPFLILIB_SRC = src/zopfli/blocksplitter.c src/zopfli/cache.c\
                 src/zopfli/deflate.c src/zopfli/gzip_container.c\
@@ -18,24 +20,28 @@ ZOPFLIPNGBIN_SRC := src/zopflipng/zopflipng_bin.cc
 
 .PHONY: zopfli zopflipng
 
+all: zopfli zopflipng
+
 # Zopfli binary
-zopfli:
-	$(CC) $(ZOPFLILIB_SRC) $(ZOPFLIBIN_SRC) $(CFLAGS) -o zopfli
+zopfli: libzopfli
+	$(CC) $(ZOPFLIBIN_SRC) $(CFLAGS) $(LDFLAGS) $(LIBS) -lzopfli -o zopfli
 
 # Zopfli shared library
 libzopfli:
 	$(CC) $(ZOPFLILIB_SRC) $(CFLAGS) -fPIC -c
-	$(CC) $(ZOPFLILIB_OBJ) $(CFLAGS) -shared -Wl,-soname,libzopfli.so.1 -o libzopfli.so.1.0.2
+	$(CC) $(ZOPFLILIB_OBJ) $(CFLAGS) $(LDFLAGS) $(LIBS) -shared -Wl,-soname,libzopfli.so.1 -o libzopfli.so.1.0.2
+	@ln -s libzopfli.so.1.0.2 libzopfli.so.1
+	@ln -s libzopfli.so.1.0.2 libzopfli.so
 
 # ZopfliPNG binary
-zopflipng:
-	$(CC) $(ZOPFLILIB_SRC) $(CFLAGS) -c
-	$(CXX) $(ZOPFLILIB_OBJ) $(LODEPNG_SRC) $(ZOPFLIPNGLIB_SRC) $(ZOPFLIPNGBIN_SRC) $(CFLAGS) -o zopflipng
+zopflipng: libzopflipng
+	$(CXX) $(ZOPFLILIB_OBJ) $(LODEPNG_SRC) $(ZOPFLIPNGBIN_SRC) $(CXXFLAGS) $(LDFLAGS) $(LIBS) -lzopflipng -o zopflipng
 
 # ZopfliPNG shared library
-libzopflipng:
-	$(CC) $(ZOPFLILIB_SRC) $(CFLAGS) -fPIC -c
-	$(CXX) $(ZOPFLILIB_OBJ) $(LODEPNG_SRC) $(ZOPFLIPNGLIB_SRC) $(CFLAGS) -fPIC --shared -Wl,-soname,libzopflipng.so.1 -o libzopflipng.so.1.0.2
+libzopflipng: libzopfli
+	$(CXX) $(ZOPFLILIB_OBJ) $(LODEPNG_SRC) $(ZOPFLIPNGLIB_SRC) $(CXXFLAGS) $(LDFLAGS) $(LIBS) -fPIC --shared -Wl,-soname,libzopflipng.so.1 -o libzopflipng.so.1.0.2
+	@ln -s libzopflipng.so.1.0.2 libzopflipng.so.1
+	@ln -s libzopflipng.so.1.0.2 libzopflipng.so
 
 # Remove all libraries and binaries
 clean:
-- 
2.17.0