summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
2023-04-14Fix typo in makefile.michael-grunder
2023-03-09Rework searching for opensslmichael-grunder
2023-03-09Attempt to find the correct path for openssl.Victor Polevoy
The installation path for openssl may vary depending on the way used for its installation and the macOS version. This commit attempts to find the correct path for openssl to use.
2022-10-14Fixup of PR734: Coverage of hiredis.c (#1124)Bjorn Svensson
Improve coverage (#734) * Remove duplicate tests - double covered by: "Can parse RESP3 doubles" - bool covered via: "Can parse RESP3 bool" * Make (connect) timeout in test config general * Set error string in Unix connect with invalid timeout Restructure testcase since redisConnectWithTimeout() and redisConnectUnixWithTimeout() now behaves similar. * Use quiet flag in lcov/genhtml instead of piping to /dev/null * Fixup of redisCommandArgv test case * Update test case to match what it covers Use new test case info text since the previous one seemed copy&pasted. The sought coverage was the handling of the parent-chaining for a double object, which the test case now focuses on. Co-authored-by: Ariel <ashtul@gmail.com>
2022-09-19Additional include directory given by pkg-config (#1118)Bjorn Svensson
* Update include example in README * Update pkg-config installed via CMake Gives the include directory to enable the use of: #include <hiredis/hiredis.h> but keeps the existing include dir. for backwards compatibility. Example: > pkg-config hiredis --cflags -D_FILE_OFFSET_BITS=64 -I/usr/local/include/hiredis -I/usr/local/include * Update pkg-config installed via Make Gives the include directory to enable the use of: #include <hiredis/hiredis.h> but keeps the existing include path for backwards compatibility. Example: > pkg-config hiredis --cflags -D_FILE_OFFSET_BITS=64 -I/usr/local/include/hiredis -I/usr/local/include
2022-09-07Add libhv example to our standard Makefilemichael-grunder
See #904
2022-09-01Polling adapter requires sockcompat.hmichael-grunder
We need to install our socket compatibility header as the new polling adapter needs it.
2022-08-29Add Github Actions CI workflow for hiredis: Arm, Arm64, 386, windows. (#943)Kristján Valur Jónsson
* Add docker support to test.sh specifying a REDIS_DOCKER env var will run this as a server. * Add initial test workflow * Add workflow test to test 32 bit build * Add ARM x compilation tests * Add tests for windows platform * Test with valgrind
2022-07-05Polling adapter and exampleKristján Valur Jónsson
2022-01-18Add timeout support for libuv adapter (#1016)MichaelSuen
Add timeout to libuv adapter Co-authored-by: sunmingqi <sunmingqi@corp.netease.com> Co-authored-by: sunmingqi <smq222@126.com> Co-authored-by: Michael Grunder <michael.grunder@gmail.com> Co-authored-by: Viktor Söderqvist <viktor@zuiderkwast.se>
2021-12-24Don't link with crypto libs if USE_SSL isn't set.michael-grunder
2021-12-23Makefile: move SSL options into a block and refine ruleszhenwei pi
Move SSL options into two blocks to make it easy to read: 1, first part: SSL variables part 1, second part: SSL building rules part and change global rules to make it easy to maintain. For the further step, it gets extensible to add another type. New version of the library building rule: static: $(STLIBNAME) $(SSL_STLIB) dynamic: $(DYLIBNAME) $(SSL_DYLIB) Compare with the orignal version: dynamic: $(DYLIBNAME) static: $(STLIBNAME) ifeq ($(USE_SSL),1) dynamic: $(SSL_DYLIBNAME) static: $(SSL_STLIBNAME) endif If we want to add a new type(Ex, RDMA), for the new version, we can do like this: ########### RDMA variables start ############### ..... ########### RDMA variables end ############### static: $(STLIBNAME) $(SSL_STLIB) $(RDMA_STLIB) dynamic: $(DYLIBNAME) $(SSL_DYLIB) $(RDMA_DYLIB) ########### RDMA building rules start ############### ..... ########### RDMA building rules end ############### Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
2021-12-16FreeBSD build fixes + CI (#1026)Michael Grunder
* BSD linkage fix proposal * Touch up the Makefile to fix BSD builds Fixes #984 * Add a build in FreeBSD to GitHub Actions Lots of people use hiredis in FreeBSD so this should reduce some pain moving forward. Co-authored-by: David Carlier <devnexen@gmail.com>
2021-10-26Add build options for enabling async testsBjörn Svensson
Asynchronous testcases that requires the event library `libevent` can be built and enabled by using the added build flags: - ENABLE_ASYNC_TESTS when using CMake - TEST_ASYNC when using Make The async tests are disabled by default to avoid adding new requirements, but the testcases are built and run in CI.
2021-10-21Correcting the build target `coverage` for enabled SSL (#1009)Bjorn Svensson
* Exclude includes from /usr in coverage reporting * Correct build target `coverage` for enabled ssl `USE_SSL=1 make coverage` will now build the test binary with the forwarded define HIREDIS_TEST_SSL. This avoids inconsistency between built test binary and the testrunner `test.sh`. This enables test coverage measurements for SSL too.
2021-10-03Allow to override OPENSSL_PREFIX in LinuxYunier Perez
2020-07-19Resp3 oob push support (#841)Michael Grunder
Proper support for RESP3 PUSH messages. By default, PUSH messages are now intercepted and the reply memory freed. This means existing code should work unchanged when connecting to Redis >= 6.0.0 even if `CLIENT TRACKING` were then enabled. Additionally, we define two callbacks users can configure if they wish to handle these messages in a custom way: void redisPushFn(void *privdata, void *reply); void redisAsyncPushFn(redisAsyncContext *ac, void *reply); See #825
2020-05-22Allow users to replace allocator and handle OOM everywhere. (#800)Michael Grunder
* Adds an indirection to every allocation/deallocation to allow users to plug in ones of their choosing (use custom functions, jemalloc, etc). * Gracefully handle OOM everywhere in hiredis. This should make it possible for users of the library to have more flexibility in how they handle such situations. * Changes `redisReaderTask->elements` from an `int` to a `long long` to prevent a possible overflow when transferring the task elements into a `redisReply`. * Adds a configurable `max elements` member to `redisReader` that defaults to 2^32 - 1. This can be set to "unlimited" by setting the value to zero.
2020-05-19Fix missing SSL build/install options. (#812)Yossi Gottlieb
* Fix missing SSL build/install options. * Use different build commands for non-Linux linkers. * Add missing install targets. Fixes #809
2020-04-23Attempt to fix compilation on Solaris (#796)Michael Grunder
See #757
2020-04-13Fix USE_SSL=1 make/cmake on OSX and CMake tests (#789)Michael Grunder
* Fix linker problems when building with SSL enabled on OSX * Corrects `HIREDIS_SSL=ON` to `USE_SSL=ON` so we test building with SSL enabled on travis.
2020-01-29install alloc.hakichan
alloc.h added in # 754 But not added to INSTALL_INCLUDE_PATH
2020-01-28Safe allocation wrappers (#754)Michael Grunder
Create allocation wrappers with a configurable OOM handler (defaults to abort()). See #752, #747
2019-09-16Add SSL mode tests.Yossi Gottlieb
This repeats all existing tests in SSL mode, but does not yet provide SSL-specific tests.
2019-09-01Separate hiredis and hiredis_ssl library build.Yossi Gottlieb
2019-08-29Rename sslio.Yossi Gottlieb
2019-08-29wip: SSL code reorganization, see #705.Yossi Gottlieb
2019-04-01Port network layer to Winsockm
With this change, Hiredis builds with MinGW and runs on Windows.
2019-02-21Fix ifeq condition (thanks @regae)Mark Nunberg
2019-02-20Disable SSL by defaultMark Nunberg
2019-02-20fix pkg configvalentino
2019-02-20Fix compilation on Ubuntuvalentino
2019-02-20Don't warn on missing field initializersMark Nunberg
2019-02-20Use SSL by defaultMark Nunberg
2019-02-20Minor SSL-related fixesMark Nunberg
2019-02-20Disable SSL by defaultMark Nunberg
2019-02-20SSL for async I/OMark Nunberg
2019-02-20Initial SSL (sync) implementationMark Nunberg
2018-12-04Makefile: use predefined ARJörg Thalheim
This allows to override it for cross compilation.
2018-09-26Add CPPFLAGS to REAL_CFLAGSTom Lee
2018-05-31Use -dynamiclib instead of -shared on macOSRyan Schmidt
-dynamiclib is the correct documented flag to use to create dynamic libraries on macOS. Newer toolchains recognize -shared as a synonym of -dynamiclib but older toolchains don't.
2018-05-16Merge branch 'master' of github.com:redis/hiredismichael-grunder
2018-05-16Make sure we've got a path separator before the actual dylib namemichael-grunder
2018-05-14Use cp -pPR instead of cp -aRyan Schmidt
This should be equivalent but compatible with older versions of cp.
2018-05-14Use absolute install_nameRyan Schmidt
Fixes #437.
2018-01-05Merge pull request #561 from zshipko/masterJan-Erik Rediger
Fix "make install" on OpenBSD
2017-12-28Strip compiler options from the CC variableDmitri Vorobiev
The Makefile checks validity of the compiler command in the CC variable by feeding the contents of that variable to the `type' utility. Some environments include compiler options in the CC variable such as architecture specific tuning flags. For such cases it is necessary to first strip everything except the command itself from the contents of the CC variable prior to checking the command with the type utility, which is what this patch is introducing. We use shell parameter expansion mechanism for this purpose. Signed-off-by: Dmitri Vorobiev <dmitri.vorobiev@movial.com>
2017-12-27Remove $(ARCH) expansion from the MakefileDmitri Vorobiev
Some compilation environments (such as Yocto) define the ARCH environment variable to indicate the target architecture. For such enviroments, hiredis build fails, because the expanded $(ARCH) variable in the Makefile gets erroneously interpreted as an argument to the `-ggdb' command line option during the compilation stage or as an input file name during the linking stage. This patch removes $(ARCH) expansions from the Makefile. This doesn't harm cross-compilation, the latter goes fine with the properly assigned CC environment variable. For native builds, this patch does not imply any changes. Signed-off-by: Dmitri Vorobiev <dmitri.vorobiev@movial.com>
2017-11-28Fix "make install" on OpenBSDZach Shipko
2017-10-30build: do not assume that INSTALL is cpIgor Gnatenko
INSTALL is supposed to be `install` in most of the cases which doesn't work with directories, but works perfectly with files. Don't do this assumption. Reported-by: Jiří Vymazal <jvymazal@redhat.com> References: https://bugzilla.redhat.com/show_bug.cgi?id=1506251 Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>