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>
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>
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>
In case of some glib-2.0 linker error ,
make examples
can't link with glib2.0, in this case -lglib-2.0 to after includes and move to last will solve the issues.
This avoids issues with environments where DEBUG is set to an arbitrary
value to force debug mode in other tools.
BREAKING CHANGE: This breaks builds that explicitely set `DEBUG` to
some value (even the empty value).
To get back the old behaviour change the `DEBUG_FLAGS`
variable now.
This adds a new adapter and an example for using hiredis with the ivykis
async I/O library.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
Attempting to use the install target before the make target works fine,
except for the missing pkgconfig file. Adding that file to the
dependencies for the install target to make sure it gets created first.
Due to the various processors going over the command, we need more
escaping.
1) Make parses it, so $${libdir} becomes ${libdir}
2) 'shell' parses it for the 'echo command', whereas echo ${libdir}
would be an empty string; escape it as \${libdir} to ensure we get what
we want.
Closes#312
The existing way is not compatible with a lot of shells, including most
bash installations, because the echos that generates the configuration
sent to redis-server doesn't expand the escapes. Adding '-e' to the
echo works under bash, but breaks on the Travis CI server.
This is my attempt to find an alternative that works everywhere.
[committer note: it doesn't work under Solaris make, but the Makefile
was already broken under Solaris make. Solaris users must use gmake.]
Closes#224 and Closes#221
This makes builiding with an optional 32 bit target simpler. For
instance Redis (that contains an embedded copy of hiredis) when compiled
with "make 32bit" uses to pass an ARCH parameter to force an hiredis
32 bit build.
The variable OBJARCH was used to compile objects for both 32-bit and
64-bit architectures. It can be removed because this is only relevant
for the Ruby wrapper for hiredis. This wrapper should put these flags in
CFLAGS to get the same effect.