~mmach/netext73/lz4

« back to all changes in this revision

Viewing changes to lib/Makefile

  • Committer: mmach
  • Date: 2022-11-09 18:52:10 UTC
  • Revision ID: netbit73@gmail.com-20221109185210-w358idlhh0phq688
1.9.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# ################################################################
2
2
# LZ4 library - Makefile
3
 
# Copyright (C) Yann Collet 2011-2016
 
3
# Copyright (C) Yann Collet 2011-2020
4
4
# All rights reserved.
5
5
#
6
6
# This Makefile is validated for Linux, macOS, *BSD, Hurd, Solaris, MSYS2 targets
31
31
#  - LZ4 source repository : https://github.com/lz4/lz4
32
32
#  - LZ4 forum froup : https://groups.google.com/forum/#!forum/lz4c
33
33
# ################################################################
 
34
SED = sed
34
35
 
35
36
# Version numbers
36
 
LIBVER_MAJOR_SCRIPT:=`sed -n '/define LZ4_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./lz4.h`
37
 
LIBVER_MINOR_SCRIPT:=`sed -n '/define LZ4_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./lz4.h`
38
 
LIBVER_PATCH_SCRIPT:=`sed -n '/define LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./lz4.h`
 
37
LIBVER_MAJOR_SCRIPT:=`$(SED) -n '/define LZ4_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./lz4.h`
 
38
LIBVER_MINOR_SCRIPT:=`$(SED) -n '/define LZ4_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./lz4.h`
 
39
LIBVER_PATCH_SCRIPT:=`$(SED) -n '/define LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./lz4.h`
39
40
LIBVER_SCRIPT:= $(LIBVER_MAJOR_SCRIPT).$(LIBVER_MINOR_SCRIPT).$(LIBVER_PATCH_SCRIPT)
40
41
LIBVER_MAJOR := $(shell echo $(LIBVER_MAJOR_SCRIPT))
41
42
LIBVER_MINOR := $(shell echo $(LIBVER_MINOR_SCRIPT))
46
47
BUILD_STATIC:=yes
47
48
 
48
49
CPPFLAGS+= -DXXH_NAMESPACE=LZ4_
 
50
CPPFLAGS+= $(MOREFLAGS)
49
51
CFLAGS  ?= -O2 -g
50
52
DEBUGFLAGS:= -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
51
53
             -Wswitch-enum -Wdeclaration-after-statement -Wstrict-prototypes \
52
54
             -Wundef -Wpointer-arith -Wstrict-aliasing=1
53
 
CFLAGS  += $(DEBUGFLAGS) $(MOREFLAGS)
54
 
FLAGS    = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
 
55
CFLAGS  += $(DEBUGFLAGS)
 
56
FLAGS    = $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
55
57
 
56
58
SRCFILES := $(sort $(wildcard *.c))
57
59
 
74
76
.PHONY: default
75
77
default: lib-release
76
78
 
 
79
# silent mode by default; verbose can be triggered by V=1 or VERBOSE=1
 
80
$(V)$(VERBOSE).SILENT:
 
81
 
77
82
lib-release: DEBUGFLAGS :=
78
83
lib-release: lib
79
84
 
 
85
.PHONY: lib
80
86
lib: liblz4.a liblz4
81
87
 
 
88
.PHONY: all
82
89
all: lib
83
90
 
 
91
.PHONY: all32
84
92
all32: CFLAGS+=-m32
85
93
all32: all
86
94
 
87
95
liblz4.a: $(SRCFILES)
88
96
ifeq ($(BUILD_STATIC),yes)  # can be disabled on command line
89
 
        echo compiling static library
90
 
        $(Q)$(CC) $(CPPFLAGS) $(CFLAGS) -c $^
91
 
        $(Q)$(AR) rcs $@ *.o
 
97
        @echo compiling static library
 
98
        $(COMPILE.c) $^
 
99
        $(AR) rcs $@ *.o
92
100
endif
93
101
 
94
102
ifeq ($(WINBASED),yes)
95
103
liblz4-dll.rc: liblz4-dll.rc.in
96
 
        echo creating library resource
97
 
        $(Q)sed -e 's|@LIBLZ4@|$(LIBLZ4)|' \
 
104
        @echo creating library resource
 
105
        $(SED) -e 's|@LIBLZ4@|$(LIBLZ4)|' \
98
106
         -e 's|@LIBVER_MAJOR@|$(LIBVER_MAJOR)|g' \
99
107
         -e 's|@LIBVER_MINOR@|$(LIBVER_MINOR)|g' \
100
108
         -e 's|@LIBVER_PATCH@|$(LIBVER_PATCH)|g' \
104
112
        $(WINDRES) -i liblz4-dll.rc -o liblz4-dll.o
105
113
 
106
114
$(LIBLZ4): $(SRCFILES) liblz4-dll.o
107
 
else
 
115
        @echo compiling dynamic library $(LIBVER)
 
116
        $(CC) $(FLAGS) -DLZ4_DLL_EXPORT=1 -shared $^ -o dll/$@.dll -Wl,--out-implib,dll/$(LIBLZ4_EXP)
 
117
 
 
118
else   # not windows
 
119
 
108
120
$(LIBLZ4): $(SRCFILES)
109
 
endif
110
 
ifeq ($(BUILD_SHARED),yes)  # can be disabled on command line
111
 
        echo compiling dynamic library $(LIBVER)
112
 
  ifeq ($(WINBASED),yes)
113
 
        $(Q)$(CC) $(FLAGS) -DLZ4_DLL_EXPORT=1 -shared $^ -o dll/$@.dll -Wl,--out-implib,dll/$(LIBLZ4_EXP)
114
 
  else
115
 
        $(Q)$(CC) $(FLAGS) -shared $^ -fPIC -fvisibility=hidden $(SONAME_FLAGS) -o $@
116
 
        echo creating versioned links
117
 
        $(Q)$(LN_SF) $@ liblz4.$(SHARED_EXT_MAJOR)
118
 
        $(Q)$(LN_SF) $@ liblz4.$(SHARED_EXT)
119
 
  endif
120
 
endif
121
 
 
122
 
ifeq (,$(filter MINGW%,$(TARGET_OS)))
 
121
        @echo compiling dynamic library $(LIBVER)
 
122
        $(CC) $(FLAGS) -shared $^ -fPIC -fvisibility=hidden $(SONAME_FLAGS) -o $@
 
123
        @echo creating versioned links
 
124
        $(LN_SF) $@ liblz4.$(SHARED_EXT_MAJOR)
 
125
        $(LN_SF) $@ liblz4.$(SHARED_EXT)
 
126
 
 
127
endif
 
128
 
 
129
.PHONY: liblz4
123
130
liblz4: $(LIBLZ4)
124
 
endif
125
131
 
 
132
.PHONY: clean
126
133
clean:
127
134
ifeq ($(WINBASED),yes)
128
 
        $(Q)$(RM) *.rc
 
135
        $(RM) *.rc
129
136
endif
130
 
        $(Q)$(RM) core *.o liblz4.pc dll/$(LIBLZ4).dll dll/$(LIBLZ4_EXP)
131
 
        $(Q)$(RM) *.a *.$(SHARED_EXT) *.$(SHARED_EXT_MAJOR) *.$(SHARED_EXT_VER)
132
 
        echo Cleaning library completed
 
137
        $(RM) core *.o liblz4.pc dll/$(LIBLZ4).dll dll/$(LIBLZ4_EXP)
 
138
        $(RM) *.a *.$(SHARED_EXT) *.$(SHARED_EXT_MAJOR) *.$(SHARED_EXT_VER)
 
139
        @echo Cleaning library completed
133
140
 
134
141
#-----------------------------------------------------------------------------
135
142
# make install is validated only for Linux, OSX, BSD, Hurd and Solaris targets
163
170
pkgconfigdir ?= $(PKGCONFIGDIR)
164
171
 
165
172
liblz4.pc: liblz4.pc.in Makefile
166
 
        echo creating pkgconfig
167
 
        $(Q)sed -e 's|@PREFIX@|$(prefix)|' \
 
173
        @echo creating pkgconfig
 
174
        $(SED) -e 's|@PREFIX@|$(prefix)|' \
168
175
         -e 's|@LIBDIR@|$(libdir)|' \
169
176
         -e 's|@INCLUDEDIR@|$(includedir)|' \
170
177
         -e 's|@VERSION@|$(LIBVER)|' \
 
178
         -e 's|=${prefix}/|=$${prefix}/|' \
171
179
          $< >$@
172
180
 
173
181
install: lib liblz4.pc
174
 
        $(Q)$(INSTALL_DIR) $(DESTDIR)$(pkgconfigdir)/ $(DESTDIR)$(includedir)/ $(DESTDIR)$(libdir)/ $(DESTDIR)$(bindir)/
175
 
        $(Q)$(INSTALL_DATA) liblz4.pc $(DESTDIR)$(pkgconfigdir)/
176
 
        echo Installing libraries
 
182
        $(INSTALL_DIR) $(DESTDIR)$(pkgconfigdir)/ $(DESTDIR)$(includedir)/ $(DESTDIR)$(libdir)/ $(DESTDIR)$(bindir)/
 
183
        $(INSTALL_DATA) liblz4.pc $(DESTDIR)$(pkgconfigdir)/
 
184
        @echo Installing libraries in $(DESTDIR)$(libdir)
177
185
  ifeq ($(BUILD_STATIC),yes)
178
 
        $(Q)$(INSTALL_DATA) liblz4.a $(DESTDIR)$(libdir)/liblz4.a
179
 
        $(Q)$(INSTALL_DATA) lz4frame_static.h $(DESTDIR)$(includedir)/lz4frame_static.h
 
186
        $(INSTALL_DATA) liblz4.a $(DESTDIR)$(libdir)/liblz4.a
 
187
        $(INSTALL_DATA) lz4frame_static.h $(DESTDIR)$(includedir)/lz4frame_static.h
180
188
  endif
181
189
  ifeq ($(BUILD_SHARED),yes)
182
 
# Traditionnally, one installs the DLLs in the bin directory as programs
 
190
# Traditionally, one installs the DLLs in the bin directory as programs
183
191
# search them first in their directory. This allows to not pollute system
184
192
# directories (like c:/windows/system32), nor modify the PATH variable.
185
193
    ifeq ($(WINBASED),yes)
186
 
        $(Q)$(INSTALL_PROGRAM) dll/$(LIBLZ4).dll $(DESTDIR)$(bindir)
187
 
        $(Q)$(INSTALL_PROGRAM) dll/$(LIBLZ4_EXP) $(DESTDIR)$(libdir)
 
194
        $(INSTALL_PROGRAM) dll/$(LIBLZ4).dll $(DESTDIR)$(bindir)
 
195
        $(INSTALL_PROGRAM) dll/$(LIBLZ4_EXP) $(DESTDIR)$(libdir)
188
196
    else
189
 
        $(Q)$(INSTALL_PROGRAM) liblz4.$(SHARED_EXT_VER) $(DESTDIR)$(libdir)
190
 
        $(Q)$(LN_SF) liblz4.$(SHARED_EXT_VER) $(DESTDIR)$(libdir)/liblz4.$(SHARED_EXT_MAJOR)
191
 
        $(Q)$(LN_SF) liblz4.$(SHARED_EXT_VER) $(DESTDIR)$(libdir)/liblz4.$(SHARED_EXT)
 
197
        $(INSTALL_PROGRAM) liblz4.$(SHARED_EXT_VER) $(DESTDIR)$(libdir)
 
198
        $(LN_SF) liblz4.$(SHARED_EXT_VER) $(DESTDIR)$(libdir)/liblz4.$(SHARED_EXT_MAJOR)
 
199
        $(LN_SF) liblz4.$(SHARED_EXT_VER) $(DESTDIR)$(libdir)/liblz4.$(SHARED_EXT)
192
200
    endif
193
201
  endif
194
 
        echo Installing headers in $(includedir)
195
 
        $(Q)$(INSTALL_DATA) lz4.h $(DESTDIR)$(includedir)/lz4.h
196
 
        $(Q)$(INSTALL_DATA) lz4hc.h $(DESTDIR)$(includedir)/lz4hc.h
197
 
        $(Q)$(INSTALL_DATA) lz4frame.h $(DESTDIR)$(includedir)/lz4frame.h
198
 
        echo lz4 libraries installed
 
202
        @echo Installing headers in $(DESTDIR)$(includedir)
 
203
        $(INSTALL_DATA) lz4.h $(DESTDIR)$(includedir)/lz4.h
 
204
        $(INSTALL_DATA) lz4hc.h $(DESTDIR)$(includedir)/lz4hc.h
 
205
        $(INSTALL_DATA) lz4frame.h $(DESTDIR)$(includedir)/lz4frame.h
 
206
        @echo lz4 libraries installed
199
207
 
200
208
uninstall:
201
 
        $(Q)$(RM) $(DESTDIR)$(pkgconfigdir)/liblz4.pc
 
209
        $(RM) $(DESTDIR)$(pkgconfigdir)/liblz4.pc
202
210
  ifeq (WINBASED,1)
203
 
        $(Q)$(RM) $(DESTDIR)$(bindir)/$(LIBLZ4).dll
204
 
        $(Q)$(RM) $(DESTDIR)$(libdir)/$(LIBLZ4_EXP)
 
211
        $(RM) $(DESTDIR)$(bindir)/$(LIBLZ4).dll
 
212
        $(RM) $(DESTDIR)$(libdir)/$(LIBLZ4_EXP)
205
213
  else
206
 
        $(Q)$(RM) $(DESTDIR)$(libdir)/liblz4.$(SHARED_EXT)
207
 
        $(Q)$(RM) $(DESTDIR)$(libdir)/liblz4.$(SHARED_EXT_MAJOR)
208
 
        $(Q)$(RM) $(DESTDIR)$(libdir)/liblz4.$(SHARED_EXT_VER)
 
214
        $(RM) $(DESTDIR)$(libdir)/liblz4.$(SHARED_EXT)
 
215
        $(RM) $(DESTDIR)$(libdir)/liblz4.$(SHARED_EXT_MAJOR)
 
216
        $(RM) $(DESTDIR)$(libdir)/liblz4.$(SHARED_EXT_VER)
209
217
  endif
210
 
        $(Q)$(RM) $(DESTDIR)$(libdir)/liblz4.a
211
 
        $(Q)$(RM) $(DESTDIR)$(includedir)/lz4.h
212
 
        $(Q)$(RM) $(DESTDIR)$(includedir)/lz4hc.h
213
 
        $(Q)$(RM) $(DESTDIR)$(includedir)/lz4frame.h
214
 
        $(Q)$(RM) $(DESTDIR)$(includedir)/lz4frame_static.h
215
 
        echo lz4 libraries successfully uninstalled
 
218
        $(RM) $(DESTDIR)$(libdir)/liblz4.a
 
219
        $(RM) $(DESTDIR)$(includedir)/lz4.h
 
220
        $(RM) $(DESTDIR)$(includedir)/lz4hc.h
 
221
        $(RM) $(DESTDIR)$(includedir)/lz4frame.h
 
222
        $(RM) $(DESTDIR)$(includedir)/lz4frame_static.h
 
223
        @echo lz4 libraries successfully uninstalled
216
224
 
217
225
endif