--- zopfli-zopfli-1.0.1/Makefile +++ zopfli-zopfli-1.0.1/Makefile @@ -1,8 +1,10 @@ -CC = gcc -CXX = g++ +CC ?= gcc +CXX ?= g++ -CFLAGS = -W -Wall -Wextra -ansi -pedantic -lm -O2 -CXXFLAGS = -W -Wall -Wextra -ansi -pedantic -O2 +CFLAGS += -W -Wall -Wextra -ansi -pedantic +CXXFLAGS += -W -Wall -Wextra -ansi -pedantic +LDFLAGS += -L. +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 @@ .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.1 + $(CC) $(ZOPFLILIB_OBJ) $(CFLAGS) $(LDFLAGS) $(LIBS) -shared -Wl,-soname,libzopfli.so.1 -o libzopfli.so.1.0.1 + @ln -s libzopfli.so.1.0.1 libzopfli.so.1 + @ln -s libzopfli.so.1.0.1 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) $(CFLAGS) $(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.0 +libzopflipng: libzopfli + $(CXX) $(ZOPFLILIB_OBJ) $(LODEPNG_SRC) $(ZOPFLIPNGLIB_SRC) $(CFLAGS) $(LDFLAGS) $(LIBS) -fPIC --shared -Wl,-soname,libzopflipng.so.1 -o libzopflipng.so.1.0.0 + @ln -s libzopflipng.so.1.0.0 libzopflipng.so.1 + @ln -s libzopflipng.so.1.0.0 libzopflipng.so # Remove all libraries and binaries clean: