Commit Graph

97 Commits

Author SHA1 Message Date
Richard Purdie
e0b1747860 lib/Makefile: Fix static library reproducibility
The static library contents varies depending of the order of the object
files on disk meaning it isn't reproducible.

To avoid this, use the SRCFILES values which are already sorted, mapped
to the object names instead.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-08-29 11:01:11 +01:00
Yann Collet
540b539979 change INSTALL_DIR into MAKE_DIR
INSTALL_DIR is apparently used by cmake
2024-01-20 23:06:14 -08:00
Yann Collet
5c9e349c4a changed test name cpp->cxx
cpp evokes the C PreProcessor, rather than C++
2023-12-24 17:09:52 -08:00
Yann Collet
c952eafbf5 centralized clean logic for lib/Makefile
also:
- stricter target classification (`.PHONY`, `CLEAN`)
- user provided CFLAGS are appended, hence have higher priority
  + `-O3` is no longer automatically disabled when user provides CFLAGS
2023-12-21 18:50:28 -08:00
Yann Collet
4e8788eddc ensure make install target doesn't create files
if preceded by a standard make command
2023-12-21 00:11:52 -08:00
Yann Collet
e2cb69c7ea SED can be defined on command line and with environment variables 2023-12-17 15:25:51 -08:00
LocalSpook
e270f2edd9 Make Makefile version number parsing more robust 2023-10-11 18:58:47 -07:00
Yann Collet
a9dc65d8db
Merge pull request #1244 from uckelman-sf/windows_lib_targets
Don't conflate the shared library name with the shared library filename
2023-09-10 06:38:18 -07:00
Joel Uckelman
72618e548a Don't conflate the shared library name with the shared library filename.
The target for building the library now uses the real filename, to
ensure that the target matches the file that the recipe writes.
2023-06-16 14:29:36 +01:00
Joel Uckelman
4ac63d8db5 WINBASED uses yes/no as values, not 0/1. Check for 'yes'. 2023-06-16 14:07:55 +01:00
Sevan Janiyan
5953ac186d
lib/Makefile: Support building on legacy OS X
Toolchain on legacy versions require -dynamiclib to be stated for a shared object to be generated.
Tested on OS X 10.4 (GCC) and 10.15 (clang)
2023-04-08 05:02:33 +01:00
Vladimir Solontsov
2a782cc328 Add copying lz4file.h to make install 2022-11-22 16:10:08 +03:00
Fotis Xenakis
5ccbd38277 build: Support BUILD_SHARED=no
Since e585a438c7, the BUILD_SHARED
Makefile variable only takes effect for the install target (i.e. the
shared libraries always built). This restores the original behaviour.
2022-09-13 23:55:54 +03:00
Dimitri Papadopoulos
4bdfb08b95
Fix typos found by codespell 2021-11-25 15:32:37 +01:00
Yann Collet
4de56b3da3
Merge pull request #1012 from eloj/print-install-dirs
Print target directories during 'make install'.
2021-07-25 00:44:40 +02:00
Eddy Jansson
eba110ad5b Print target directories during 'make install'.
This takes #975 to its logical conclusion.
2021-07-24 17:20:37 +02:00
Eddy Jansson
c1f514f3db Expand use of pkg-config variables.
Change pkg-config generation such that the path variables,
not their values, are used in the definitions of Libs and Cflags,
and that $prefix is substituted into libdir and includedir iff
they start with its value.

This makes it easier to modify the already installed file if necessary.
2021-07-24 16:05:15 +02:00
Yann Collet
e585a438c7 refactor Makefile
remove usage of include Makefile.inc in too Makefile
as it seems to somehow unexport CFLAGS ...
2020-11-30 16:06:50 -08:00
Yann Collet
87a80acbe7 updated license & header dates 2020-11-25 14:45:14 -08:00
Yann Collet
0760724577 update doc 2020-11-15 01:31:09 -08:00
Chongyu Zhu
024216ef73
lib/Makefile: Fix detection of Darwin. 2019-04-24 03:13:19 +08:00
JPeterMugaas
7136489d33 More build imrpvements
Moved a few other tests to Makefiles.inc.  Other things might need to go there.
Made a test for symlink appropriateness.  Windows can NOT handle them the same way Unix-like operating systems do (if at all).  This is mostly the same as the Visual C projects.
embed version info into .dll and .exes that are redistributed.
2019-04-23 07:44:00 -04:00
JPeterMugaas
2acddd9918 Fix a test for mingw 2019-04-22 16:06:04 -04:00
JPeterMugaas
b48f823f90 Try to put some tests I made in ONE place. I also moved a test for "install" in one place to try to isolate it. 2019-04-22 15:48:48 -04:00
JPeterMugaas
773b66547f Initial commits from diff I submitted earlier 2019-04-22 13:48:59 -04:00
Vincent Torri
0360981f68 Allow installation of lz4 for Windows 10 with MSYS2 2019-03-03 22:06:38 +01:00
Vincent Torri
b03714dc80 Windows: create import library with gcc directly, remove now useless def file 2018-12-02 18:50:18 +01:00
Vincent Torri
bd2b259760 Uninstall DLL and import lib 2018-11-21 09:07:26 +01:00
Vincent Torri
8e8b658bde Add explanation for the installation of the DLL in the bin directory 2018-11-21 08:40:51 +01:00
Vincent Torri
0314027051 Allow installation of lz4 for Windows (MSYS2 or when cross-compiling) 2018-11-20 21:08:23 +01:00
Vincent Torri
b5e106220b Add DLLTOOL variable so that one can override dlltool binary
This fix cross compilation on linux for Windows
2018-11-17 14:17:15 +01:00
Vincent Torri
31ce8b56e5 Use / instead of \ when accessing files in the dll subdirectory.
This allow cross-compilation for Windows on Linux
2018-11-17 07:44:23 +01:00
Lucas Holt
de4667011a
FIx pkgconfig file installation on MidnightBSD 2018-09-11 21:18:43 -04:00
Lucas Holt
3318d573ba Add support for MidnightBSD 2018-09-08 14:46:54 -04:00
Waldemar Brodkorb
6a7af839b8 allow to override uname when cross-compiling
When cross-compiling for example from Darwin to Linux it might be
useful to override uname output to force Linux and create Linux
libraries instead of Darwin libraries.
2018-05-22 20:38:28 +02:00
fbrosson
2149b1a8f6 Add Haiku as a validated target.
lz4 1.8.2 works fine on Haiku and passes all tests.
2018-05-17 16:52:53 +00:00
Nick Terrell
a7cc0b590a Fix make install
* Uninstall didn't remove the pkg-config correctly.
* Fix `mandir`
* Allow overriding either upper- or lower-case location variables, but
  always use the lower case variables.
* Add test case that ensures overriding both upper- and lower-case
  variables is the same, and that the directory is empty after uninstall.
2018-05-04 13:50:23 -07:00
Alexey Tourbin
69242a8a08 lib/Makefile: show commands with V=1
`make V=1` will now show the commands executed to build the library.
A similar technique is used in e.g. linux/Makefile.

The bulk of this change is produced with the following vim command:

    :g!/^\t@echo\>/s/^\t@/\t\$(Q)/
2018-04-28 07:22:26 +03:00
Yann Collet
8c6ca6283d
Merge pull request #511 from lz4/decFast
Fixed performance issue with LZ4_decompress_fast()
2018-04-24 11:25:57 -07:00
Yann Collet
092cb77597
Merge pull request #504 from baruchsiach/static-only-support
lib: allow to disable shared libraries
2018-04-23 23:44:04 -07:00
Cyan4973
bd06fde104 fullbench compiled without assert()
to better reflect release speed
2018-04-23 15:42:27 -07:00
Baruch Siach
95bde2a4ae lib: allow to disable shared libraries
Just like BUILD_STATIC=no disables static libraries, BUILD_SHARED=no
disabled shared libraries. This is useful to support toolchains that do
not support shared libraries.
2018-04-19 12:28:11 +03:00
Yann Collet
4785bd6a35 minor length reduction of several large lines 2018-04-18 16:49:27 -07:00
Yann Collet
ee5332438b minor Makefile fixes 2017-09-06 17:41:44 -07:00
Yann Collet
f212a10ae0 fixed FS-independent file order in /lib
identified by @bmwiedemann
2017-08-29 15:31:56 -07:00
Yann Collet
c4d6884cd8 build: source files sorted in a FS independent manner
to be more compatible with reproducible builds.
patch inspired by @bmwiedemann
2017-08-26 12:22:51 -07:00
Yann Collet
aea7d521ae better respect GNU standard Makefile conventions
supports lowercase directory variables
add an "Installation" section in README.md
added an INSTALL file
2017-08-14 15:13:23 -07:00
Ido Rosen
8aeaf6bb3a Fix typos preventing installation of static lib. 2017-08-01 00:48:58 -04:00
Yann Collet
b8575f2d2b updated Makefile
to automatically build manual files with
make all
2017-05-10 13:26:04 -07:00
Dmitry V. Levin
883ebdcee0 Export only those symbols that are part of public API
Specify -fvisibility=hidden parameter when linking the shared library
using -fPIC, assuming that gcc >= 4 is used.

This change results to unexporting of the following 42 functions:

LZ4F_getErrorCode
LZ4_XXH32
LZ4_XXH32_canonicalFromHash
LZ4_XXH32_copyState
LZ4_XXH32_createState
LZ4_XXH32_digest
LZ4_XXH32_freeState
LZ4_XXH32_hashFromCanonical
LZ4_XXH32_reset
LZ4_XXH32_update
LZ4_XXH64
LZ4_XXH64_canonicalFromHash
LZ4_XXH64_copyState
LZ4_XXH64_createState
LZ4_XXH64_digest
LZ4_XXH64_freeState
LZ4_XXH64_hashFromCanonical
LZ4_XXH64_reset
LZ4_XXH64_update
LZ4_XXH_versionNumber
LZ4_compressHC
LZ4_compressHC2
LZ4_compressHC2_continue
LZ4_compressHC2_limitedOutput
LZ4_compressHC2_limitedOutput_continue
LZ4_compressHC2_limitedOutput_withStateHC
LZ4_compressHC2_withStateHC
LZ4_compressHC_continue
LZ4_compressHC_limitedOutput
LZ4_compressHC_limitedOutput_continue
LZ4_compressHC_limitedOutput_withStateHC
LZ4_compressHC_withStateHC
LZ4_compress_fast_force
LZ4_compress_forceExtDict
LZ4_createHC
LZ4_decompress_safe_forceExtDict
LZ4_freeHC
LZ4_resetStreamStateHC
LZ4_sizeofStreamStateHC
LZ4_slideInputBufferHC
LZ4_uncompress
LZ4_uncompress_unknownOutputSize
2017-03-10 23:35:30 +00:00