aboutsummaryrefslogtreecommitdiffstats
path: root/DEPENDENCIES
blob: d302e44dd2973b32d2d76049103cf8c785638351 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Unconditional runtime dependencies:
	libc

For Argon2 support (runtime, build, and check dependencies):
	libar2simplified>=1.1
	libar2simplified>=1.1.4 (check only)
	libar2>=1.1
	libblake [compiled with BLAKE2b support] (indirect)
	pthread (indirect)

	Running make(1) with WITH_LIBAR2SIMPLIFIED=false removes
	dependency on libar2simplified and pthread (for Argon2),
	however, it also disables multithreading for Argon2. It
	is advisable to use WITH_LIBAR2SIMPLIFIED=false if you
	are only going to use p=1 in the Argon2 parameters.

	If you need to use the reference implementation of Argon2
	instead, you can build with ARGON2_VERSION set to the
	release number. Because the reference implementation does
	not provide a stable API or ABI it is not guaranteed that
	selecting an unsupported version or linking against another
	version than compiled against works. Currently, up to and
	including version 20190702 is supported. 20161029 or newer
	is required for Argon2id. 20160406 or newer is required for
	argon2 1.3, and older is required for Argon2ds. libar2 is
	used unless ARGON2_VERSION is set; libar2 supports all
	variants. If you are using the reference implementation of
	Argon2 compiled with ARGON2_NO_THREADS, also set the macro
	ARGON2_NO_THREADS when compiling this library.

Build dependencies:
	libc
	make
	sh
	echo
	true
	false
	c99
	ar

Check dependencies:
	libc
	make
	sh

Install dependencies:
	make
	sh
	echo
	true
	false
	mkdir
	cp
	ln

Notes:
	make(1) must support `+=` and `!=` as defined by
	The Open Group Base Specifications Issue 8 (the 2024 edition);
	strict The Open Group Base Specifications Issue 7 (the 2018 edition)
	compliance is not sufficient.

	By default, all supported algorithms are enable, however you
	change this to disable all algorithms that are not explicitly
	enabled by setting `DEFAULT_SUPPORT` to `false` when running
	make(1). You can enable or disable individual algorithms by
	setting corresponding make(1) macro to `true` (to enable)
	or `false` (to disable). The following macros are available:

		SUPPORT_ARGON2I
			The Argon2i variant of Argon2.
			Defaults to the value of SUPPORT_ARGON2.

		SUPPORT_ARGON2D
			The Argon2d variant of Argon2.
			Defaults to the value of SUPPORT_ARGON2.

		SUPPORT_ARGON2ID
			The Argon2id variant of Argon2.
			Defaults to the value of SUPPORT_ARGON2.

		SUPPORT_ARGON2DS
			The Argon2ds variant of Argon2.
			Defaults to the value of SUPPORT_ARGON2.

		SUPPORT_ARGON2
			Default value for SUPPORT_ARGON2I,
			SUPPORT_ARGON2D, SUPPORT_ARGON2ID, and
			SUPPORT_ARGON2DS. Disable individual
			algorithms can be used as a security
			precaution, but they share dependencies,
			so you have to disable all of them to
			remove the dependencies listed for Argon2.