threads / patch / 9032

patchfall back to mozilla's sha.h if openssl/sha.h is not available

Subject: [PATCH] fall back to mozilla's sha.h if openssl/sha.h is not available

## tl;dr

4 messages between Jul 14, 2007 and Jul 14, 2007. Diffs are folded; open one to read it.

replies: 3people: 2as markdown or json

martin f. krafft· Jul 14, 2007, 09:24 UTC · lore

Uses $(CPP) to attempt to preprocess an include <openssl/sha.h> directive. If that fails, NO_OPENSSL is defined, causing the Makefile to fall back to using mozilla's SHA implementation.

This should possibly go to configure.ac, but maybe *also* to Makefile to make from-source compilations easier. git HEAD already comes with a Makefile (rather than a Makefile.in), so I just ran it while testing out patches. I introduced the test because I thought the computer could find out about libssl for me, rather than myself having to forget to specify NO_OPENSSL every time.

Signed-off-by: martin f. krafft <madduck@madduck.net>
---
 Makefile |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
Show changes to Makefile +6 −0
diff --git a/Makefile b/Makefile
index d7541b4..1676343 100644
--- a/Makefile
+++ b/Makefile
@@ -532,6 +532,12 @@ ifndef NO_CURL
 	endif
 endif
 
+HAS_OPENSSL := $(shell echo "\#include <openssl/sha.h>" \
+			| $(CPP) -o/dev/null - 2>/dev/null || echo no)
+ifeq "$(HAS_OPENSSL)" "no"
+	NO_OPENSSL = "openssl_sha.h_not_found"
+endif
+
 ifndef NO_OPENSSL
 	OPENSSL_LIBSSL = -lssl
 	ifdef OPENSSLDIR
-- 
1.5.3.rc1.9.gf029
Alex Riesen· Jul 14, 2007, 14:23 UTC · re: martin f. krafft · lore

Re: [PATCH] fall back to mozilla's sha.h if openssl/sha.h is not available

martin f. krafft, Sat, Jul 14, 2007 11:24:37 +0200:
> This should possibly go to configure.ac, but maybe *also* to Makefile to make

Definitely. It should it least skip the test if NO_OPENSSL is already defined.

> from-source compilations easier. git HEAD already comes with a Makefile (rather
> than a Makefile.in), so I just ran it while testing out patches. I introduced
> the test because I thought the computer could find out about libssl for me,
> rather than myself having to forget to specify NO_OPENSSL every time.

You can simply create a config.mak and put NO_OPENSSL=Yes in it. It gets included from Makefile.

martin f krafft· Jul 14, 2007, 14:50 UTC · re: Alex Riesen · lore

Re: [PATCH] fall back to mozilla's sha.h if openssl/sha.h is not available

also sprach Alex Riesen <raa.lkml@gmail.com> [2007.07.14.1623 +0200]:
> > This should possibly go to configure.ac, but maybe *also* to Makefile to make
> 
> Definitely. It should it least skip the test if NO_OPENSSL is already
> defined.

Reading this as a yes, here is the patch adding this. I'll wait for a few days before submitting a squashed patch to Junio then. If you oppose, please speak up.

My autotools knowledge is limited, but I might then look at adding the fall back to configure.ac too.

Btw: I've done a lot of things wrong on this mailing list already,
for which I'd like to apologise. Thanks to those who told me
privately off my faux pas. I hope those won't be necessary anymore.
commit c8cbe9e5a44174baabe17152d575b3ee46b82c36
Author: martin f. krafft <madduck@madduck.net>
Date:   Sat Jul 14 16:44:46 2007 +0200
    skip the openssl/sha.h test if NO_OPENSSL is already defined
Show changes to Makefile +6 −4
diff --git a/Makefile b/Makefile
index 1676343..b0ce7f0 100644
--- a/Makefile
+++ b/Makefile
@@ -532,10 +532,12 @@ ifndef NO_CURL
 	endif
 endif
 
-HAS_OPENSSL := $(shell echo "\#include <openssl/sha.h>" \
-			| $(CPP) -o/dev/null - 2>/dev/null || echo no)
-ifeq "$(HAS_OPENSSL)" "no"
-	NO_OPENSSL = "openssl_sha.h_not_found"
+ifndef NO_OPENSSL
+	HAS_OPENSSL := $(shell echo "\#include <openssl/sha.h>" \
+				| $(CPP) -o/dev/null - 2>/dev/null || echo no)
+	ifeq "$(HAS_OPENSSL)" "no"
+		NO_OPENSSL = "openssl_sha.h_not_found"
+	endif
 endif
 
 ifndef NO_OPENSSL
-- 
martin;              (greetings from the heart of the sun.)
  \____ echo mailto: !#^."<*>"|tr "<*> mailto:" net@madduck
 
spamtraps: madduck.bogus@madduck.net
 
"one should never do anything that
 one cannot talk about after dinner."
                                                        -- oscar wilde
Alex Riesen· Jul 14, 2007, 15:12 UTC · re: martin f krafft · lore

Re: [PATCH] fall back to mozilla's sha.h if openssl/sha.h is not available

martin f krafft, Sat, Jul 14, 2007 16:50:13 +0200:
Show 7 quoted lines
> also sprach Alex Riesen <raa.lkml@gmail.com> [2007.07.14.1623 +0200]:
> > > This should possibly go to configure.ac, but maybe *also* to Makefile to make
> > 
> > Definitely. It should it least skip the test if NO_OPENSSL is already
> > defined.
> 
> Reading this as a yes, here is the patch adding this. ...
I was not clear. Read it as NO.
> My autotools knowledge is limited, but I might then look at adding
> the fall back to configure.ac too.
Some (me, for one) will consider it the only place where it should be
> Btw: I've done a lot of things wrong on this mailing list already,
> for which I'd like to apologise. Thanks to those who told me
> privately off my faux pas. I hope those won't be necessary anymore.

If I were you, I would have considered CPPFLAGS and CFLAGS and added a check if HAS_OPENSSL already set.

And BTW doesn't it strike you as a little bit odd that noone has done that in Makefile before you? Could that be because configure is considered the _right_ place for this kind of stuff?

← back to recent threads