[openssl-users] 'makedepend' in openssl builds: clarify need and correct usage

PGNet Dev pgnet.dev at gmail.com
Thu Mar 10 14:52:14 UTC 2016


I'm building openssl 1.0.2g on linux64.

After

	./configure ...

I'm prompted

	Since you've disabled or enabled at least one algorithm, you need to do
	the following before building:

		make depend

Exec'ing the 'make depend' stage returns lots of warnings,

	make depend
		making depend in crypto...
		make[1]: Entering directory '/usr/local/src/openssl/openssl-1.0.2g/crypto'
		makedepend: warning:  cryptlib.c (reading /usr/include/stdlib.h, line 
32): cannot find include file "stddef.h"
		        not in ./stddef.h
		        not in ../stddef.h
		        not in ../include/stddef.h
		        not in /usr/include/stddef.h
		makedepend: warning:  /usr/include/time.h includes 
/usr/include/bits/types.h more than once!
		Already have
		        /usr/include/bits/types.h
		makedepend: warning:  /usr/include/time.h includes 
/usr/include/bits/types.h more than once!
		Already have
		        /usr/include/bits/types.h
		makedepend: warning:  /usr/include/time.h includes 
/usr/include/bits/types.h more than once!
		Already have
		        /usr/include/bits/types.h
		makedepend: warning:  cryptlib.c (reading /usr/include/sys/types.h, 
line 146): cannot find include file "stddef.h"
		        not in ./stddef.h
		        not in ../stddef.h
		        not in ../include/stddef.h
		        not in /usr/include/stddef.h
		makedepend: warning:  cryptlib.c (reading /usr/include/alloca.h, line 
24): cannot find include file "stddef.h"
		        not in ./stddef.h
		        not in ../stddef.h
		        not in ../include/stddef.h
		        not in /usr/include/stddef.h
		...

On the distro, stddef.h is available at

	/usr/include/linux/stddef.h
	/usr/lib64/gcc/x86_64-suse-linux/4.8/include/stddef.h
	/usr/lib64/gcc/x86_64-suse-linux/5/include/stddef.h


Reading wiki & reports at openssl, there's confusing, if not 
conflicting, advice.

Must use it,

	(1) https://wiki.openssl.org/index.php/Compilation_and_Installation
		Dependencies

		If you are prompted to run make depend, then you must do so. Its not 
just for developers who are updating sources. Its required to update the 
standard distribution once configuration options change.

Don't need it

	(2) https://wiki.openssl.org/index.php/Compilation_and_Installation
		Compilation
			After configuring the library, you should run make. If prompted, 
there's usually no need to make depend since you are building from a 
clean download.

	(3) 
https://rt.openssl.org/Ticket/Display.html?id=3566&user=guest&pass=guest
			"Obviously this needs fixing but as a workaround: if you're building 
from scratch (or after "make clean") it should compile fine with without 
doing "make depend".

			Steve.
			--
			Dr Stephen N. Henson. OpenSSL project core developer."


Re: 'makedepend',

	https://en.wikipedia.org/wiki/Makedepend
		makedepend was developed as part of MIT's Project Athena. It was used 
extensively in building X11 and ancillary packages, but has since become 
superseded by the dependency generation facilities of various compilers, 
and is now used primarily as a worst-case fallback, e.g. by depcomp and 
GNU Automake.

Further, a quick check (https://www.google.com/search?q=makedepend+stddef
) shows that there's a long history (unresolved?) re: not finding the 
sys's stddef.h

Digging around some more, I find that virtually the same issue was 
raised on openssl-dev in Apr 2015,

	https://mta.openssl.org/pipermail/openssl-dev/2015-April/001263.html
	[openssl-dev] `make depend`, advised by ./config, fails to find 
stddef.h in system/compiler path. old bug (#3566) says don't bother with 
`make depend`? true, or another bug?

with no reply at all.

What, then, IS the current need for 'makedepend' in openssl, and what, 
exactly, is the correct/recommended usage for its use in an openssl build?


More information about the openssl-users mailing list