1
- # ################################################################
1
+ # ##########################################################################
2
2
# Copyright (c) 2016-present, Yann Collet, Facebook, Inc.
3
3
# All rights reserved.
4
4
#
5
+ # This Makefile is validated for Linux, macOS, *BSD, Hurd, Solaris, MSYS2 targets
6
+ #
5
7
# This source code is licensed under the BSD-style license found in the
6
8
# LICENSE file in the root directory of this source tree. An additional grant
7
9
# of patent rights can be found in the PATENTS file in the same directory.
8
- # ################################################################
10
+ # ##########################################################################
9
11
10
12
# Version numbers
11
13
LIBVER_MAJOR_SCRIPT: =` sed -n ' /define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./zstd.h `
@@ -18,17 +20,12 @@ LIBVER_PATCH := $(shell echo $(LIBVER_PATCH_SCRIPT))
18
20
LIBVER := $(shell echo $(LIBVER_SCRIPT ) )
19
21
VERSION? = $(LIBVER )
20
22
21
- DESTDIR? =
22
- PREFIX ?= /usr/local
23
- LIBDIR ?= $(PREFIX ) /lib
24
- INCLUDEDIR =$(PREFIX ) /include
25
-
26
23
CPPFLAGS+ = -I. -I./common -DXXH_NAMESPACE=ZSTD_
27
24
CFLAGS ?= -O3
28
- CFLAGS + = -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow -Wstrict-aliasing=1 \
29
- -Wswitch-enum -Wdeclaration-after-statement -Wstrict-prototypes -Wundef \
30
- -Wpointer-arith
31
- CFLAGS += $(MOREFLAGS )
25
+ DEBUGFLAGS = -g - Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
26
+ -Wstrict-aliasing=1 - Wswitch-enum -Wdeclaration-after-statement \
27
+ -Wstrict-prototypes -Wundef - Wpointer-arith
28
+ CFLAGS += $(DEBUGFLAGS ) $( MOREFLAGS )
32
29
FLAGS = $(CPPFLAGS ) $(CFLAGS )
33
30
34
31
@@ -41,6 +38,8 @@ CPPFLAGS += -I./legacy -DZSTD_LEGACY_SUPPORT=1
41
38
ZSTD_FILES+ = $(wildcard legacy/* .c)
42
39
endif
43
40
41
+ ZSTD_OBJ := $(patsubst % .c,% .o,$(ZSTD_FILES ) )
42
+
44
43
# OS X linker doesn't support -soname, and use different extension
45
44
# see : https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html
46
45
ifeq ($(shell uname) , Darwin)
@@ -60,15 +59,14 @@ LIBZSTD = libzstd.$(SHARED_EXT_VER)
60
59
61
60
.PHONY : default all clean install uninstall
62
61
63
- default : lib
62
+ default : lib-release
64
63
65
64
all : lib
66
65
67
66
libzstd.a : ARFLAGS = rcs
68
- libzstd.a : $(ZSTD_FILES )
67
+ libzstd.a : $(ZSTD_OBJ )
69
68
@echo compiling static library
70
- @$(CC ) $(FLAGS ) -c $^
71
- @$(AR ) $(ARFLAGS ) $@ * .o
69
+ @$(AR ) $(ARFLAGS ) $@ $^
72
70
73
71
$(LIBZSTD ) : LDFLAGS += -shared -fPIC -fvisibility=hidden
74
72
$(LIBZSTD ) : $(ZSTD_FILES )
@@ -87,14 +85,41 @@ libzstd : $(LIBZSTD)
87
85
88
86
lib : libzstd.a libzstd
89
87
88
+ lib-release : DEBUGFLAGS :=
89
+ lib-release : lib
90
+
90
91
clean :
91
- @$(RM ) core * .o * .a * .gcda * .$(SHARED_EXT ) * .$(SHARED_EXT ) .* libzstd.pc dll/libzstd.dll dll/libzstd.lib
92
- @$(RM ) decompress/* .o
92
+ @$(RM ) -r * .dSYM # Mac OS-X specific
93
+ @$(RM ) core * .o * .a * .gcda * .$(SHARED_EXT ) * .$(SHARED_EXT ) .* libzstd.pc
94
+ @$(RM ) dll/libzstd.dll dll/libzstd.lib
95
+ @$(RM ) common/* .o compress/* .o decompress/* .o dictBuilder/* .o legacy/* .o deprecated/* .o
93
96
@echo Cleaning library completed
94
97
95
- # ------------------------------------------------------------------------
96
- # make install is validated only for Linux, OSX, kFreeBSD, Hurd and some BSD targets
97
- ifneq (,$(filter $(shell uname) ,Linux Darwin GNU/kFreeBSD GNU FreeBSD DragonFly NetBSD) )
98
+ # -----------------------------------------------------------------------------
99
+ # make install is validated only for Linux, OSX, BSD, Hurd and Solaris targets
100
+ # -----------------------------------------------------------------------------
101
+ ifneq (,$(filter $(shell uname) ,Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD NetBSD DragonFly SunOS) )
102
+
103
+ ifneq (,$(filter $(shell uname) ,SunOS) )
104
+ INSTALL ?= ginstall
105
+ else
106
+ INSTALL ?= install
107
+ endif
108
+
109
+ PREFIX ?= /usr/local
110
+ DESTDIR ?=
111
+ LIBDIR ?= $(PREFIX ) /lib
112
+ INCLUDEDIR ?= $(PREFIX ) /include
113
+
114
+ ifneq (,$(filter $(shell uname) ,OpenBSD FreeBSD NetBSD DragonFly) )
115
+ PKGCONFIGDIR ?= $(PREFIX ) /libdata/pkgconfig
116
+ else
117
+ PKGCONFIGDIR ?= $(LIBDIR ) /pkgconfig
118
+ endif
119
+
120
+ INSTALL_LIB ?= $(INSTALL ) -m 755
121
+ INSTALL_DATA ?= $(INSTALL ) -m 644
122
+
98
123
99
124
libzstd.pc :
100
125
libzstd.pc : libzstd.pc.in
@@ -106,24 +131,26 @@ libzstd.pc: libzstd.pc.in
106
131
$< >$@
107
132
108
133
install : libzstd.a libzstd libzstd.pc
109
- @install -d -m 755 $(DESTDIR )$(LIBDIR ) /pkgconfig/ $(DESTDIR )$(INCLUDEDIR ) /
110
- @install -m 755 libzstd.$(SHARED_EXT_VER ) $(DESTDIR )$(LIBDIR )
111
- @cp -a libzstd.$(SHARED_EXT_MAJOR ) $(DESTDIR )$(LIBDIR )
112
- @cp -a libzstd.$(SHARED_EXT ) $(DESTDIR )$(LIBDIR )
113
- @cp -a libzstd.pc $(DESTDIR )$(LIBDIR ) /pkgconfig/
114
- @install -m 644 libzstd.a $(DESTDIR )$(LIBDIR )
115
- @install -m 644 zstd.h $(DESTDIR )$(INCLUDEDIR )
116
- @install -m 644 common/zstd_errors.h $(DESTDIR )$(INCLUDEDIR )
117
- @install -m 644 deprecated/zbuff.h $(DESTDIR )$(INCLUDEDIR ) # prototypes generate deprecation warnings
118
- @install -m 644 dictBuilder/zdict.h $(DESTDIR )$(INCLUDEDIR )
134
+ @$(INSTALL ) -d -m 755 $(DESTDIR )$(PKGCONFIGDIR ) / $(DESTDIR )$(INCLUDEDIR ) /
135
+ @$(INSTALL_DATA ) libzstd.pc $(DESTDIR )$(PKGCONFIGDIR ) /
136
+ @echo Installing libraries
137
+ @$(INSTALL_LIB ) libzstd.a $(DESTDIR )$(LIBDIR )
138
+ @$(INSTALL_LIB ) libzstd.$(SHARED_EXT_VER ) $(DESTDIR )$(LIBDIR )
139
+ @ln -sf libzstd.$(SHARED_EXT_VER ) $(DESTDIR )$(LIBDIR ) /libzstd.$(SHARED_EXT_MAJOR )
140
+ @ln -sf libzstd.$(SHARED_EXT_VER ) $(DESTDIR )$(LIBDIR ) /libzstd.$(SHARED_EXT )
141
+ @echo Installing includes
142
+ @$(INSTALL_DATA ) zstd.h $(DESTDIR )$(INCLUDEDIR )
143
+ @$(INSTALL_DATA ) common/zstd_errors.h $(DESTDIR )$(INCLUDEDIR )
144
+ @$(INSTALL_DATA ) deprecated/zbuff.h $(DESTDIR )$(INCLUDEDIR ) # prototypes generate deprecation warnings
145
+ @$(INSTALL_DATA ) dictBuilder/zdict.h $(DESTDIR )$(INCLUDEDIR )
119
146
@echo zstd static and shared library installed
120
147
121
148
uninstall :
122
149
@$(RM ) $(DESTDIR )$(LIBDIR ) /libzstd.a
123
150
@$(RM ) $(DESTDIR )$(LIBDIR ) /libzstd.$(SHARED_EXT )
124
151
@$(RM ) $(DESTDIR )$(LIBDIR ) /libzstd.$(SHARED_EXT_MAJOR )
125
152
@$(RM ) $(DESTDIR )$(LIBDIR ) /libzstd.$(SHARED_EXT_VER )
126
- @$(RM ) $(DESTDIR )$(LIBDIR ) /pkgconfig /libzstd.pc
153
+ @$(RM ) $(DESTDIR )$(PKGCONFIGDIR ) /libzstd.pc
127
154
@$(RM ) $(DESTDIR )$(INCLUDEDIR ) /zstd.h
128
155
@$(RM ) $(DESTDIR )$(INCLUDEDIR ) /zstd_errors.h
129
156
@$(RM ) $(DESTDIR )$(INCLUDEDIR ) /zbuff.h # Deprecated streaming functions
0 commit comments