Mercurial > dropbear
annotate Makefile.in @ 1902:4a6725ac957c
Revert "Don't include sk keys at all in KEX list"
This reverts git commit f972813ecdc7bb981d25b5a63638bd158f1c8e72.
The sk algorithms need to remain in the sigalgs list so that they
are included in the server-sig-algs ext-info message sent by
the server. RFC8308 for server-sig-algs requires that all algorithms are
listed (though OpenSSH client 8.4p1 tested doesn't require that)
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Thu, 24 Mar 2022 13:42:08 +0800 |
parents | fc4c9ef61856 |
children | eadd023fde4d |
rev | line source |
---|---|
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
1 # This Makefile is for Dropbear SSH Server and Client |
161 | 2 # @configure_input@ |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
3 |
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
4 # invocation: |
1447
8f88f4290b22
document --enable-static in place of STATIC=1
Matt Johnston <matt@ucc.asn.au>
parents:
1446
diff
changeset
|
5 # make PROGRAMS="dropbear dbclient scp" MULTI=1 SCPPROGRESS=1 |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
6 # |
1447
8f88f4290b22
document --enable-static in place of STATIC=1
Matt Johnston <matt@ucc.asn.au>
parents:
1446
diff
changeset
|
7 # to make a multiple-program binary "dropbearmulti". |
82
8f26145a0997
do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents:
81
diff
changeset
|
8 # This example will include dropbear, scp, dropbearkey, dropbearconvert, and |
8f26145a0997
do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents:
81
diff
changeset
|
9 # dbclient functionality, and includes the progress-bar functionality in scp. |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
10 |
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
11 ifndef PROGRAMS |
73
0bf5cebe622c
Dropbearkey can now print out pubkey portions
Matt Johnston <matt@ucc.asn.au>
parents:
68
diff
changeset
|
12 PROGRAMS=dropbear dbclient dropbearkey dropbearconvert |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
13 endif |
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
14 |
898
4f1988cb79ce
Fix building with system libtomcrypt/libtommath
Matt Johnston <matt@ucc.asn.au>
parents:
890
diff
changeset
|
15 STATIC_LTC=libtomcrypt/libtomcrypt.a |
4f1988cb79ce
Fix building with system libtomcrypt/libtommath
Matt Johnston <matt@ucc.asn.au>
parents:
890
diff
changeset
|
16 STATIC_LTM=libtommath/libtommath.a |
4f1988cb79ce
Fix building with system libtomcrypt/libtommath
Matt Johnston <matt@ucc.asn.au>
parents:
890
diff
changeset
|
17 |
4f1988cb79ce
Fix building with system libtomcrypt/libtommath
Matt Johnston <matt@ucc.asn.au>
parents:
890
diff
changeset
|
18 LIBTOM_LIBS=@LIBTOM_LIBS@ |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
19 |
585
d194db6f9453
Use system libtomcrypt/libtommath if available. Doesn't currently
Matt Johnston <matt@ucc.asn.au>
parents:
570
diff
changeset
|
20 ifeq (@BUNDLED_LIBTOM@, 1) |
898
4f1988cb79ce
Fix building with system libtomcrypt/libtommath
Matt Johnston <matt@ucc.asn.au>
parents:
890
diff
changeset
|
21 LIBTOM_DEPS=$(STATIC_LTC) $(STATIC_LTM) |
1549
5212630893ab
only clean libtom when using bundled libraries
Matt Johnston <matt@ucc.asn.au>
parents:
1521
diff
changeset
|
22 LIBTOM_CLEAN=ltc-clean ltm-clean |
1889
fc4c9ef61856
Split CPPFLAGS and CFLAGS more carefully
Matt Johnston <matt@ucc.asn.au>
parents:
1855
diff
changeset
|
23 CPPFLAGS+=-I$(srcdir)/libtomcrypt/src/headers/ |
1499
2d450c1056e3
options: Complete the transition to numeric toggles (`#if')
Michael Witten <mfwitten@gmail.com>
parents:
1492
diff
changeset
|
24 LIBTOM_LIBS=$(STATIC_LTC) $(STATIC_LTM) |
585
d194db6f9453
Use system libtomcrypt/libtommath if available. Doesn't currently
Matt Johnston <matt@ucc.asn.au>
parents:
570
diff
changeset
|
25 endif |
d194db6f9453
Use system libtomcrypt/libtommath if available. Doesn't currently
Matt Johnston <matt@ucc.asn.au>
parents:
570
diff
changeset
|
26 |
1521
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
27 OPTION_HEADERS = default_options_guard.h sysoptions.h |
1295
750ec4ec4cbe
Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
28 ifneq ($(wildcard localoptions.h),) |
1889
fc4c9ef61856
Split CPPFLAGS and CFLAGS more carefully
Matt Johnston <matt@ucc.asn.au>
parents:
1855
diff
changeset
|
29 CPPFLAGS+=-DLOCALOPTIONS_H_EXISTS |
1521
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
30 OPTION_HEADERS += localoptions.h |
1295
750ec4ec4cbe
Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
31 endif |
750ec4ec4cbe
Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
32 |
1283
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
1224
diff
changeset
|
33 COMMONOBJS=dbutil.o buffer.o dbhelpers.o \ |
30
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
34 dss.o bignum.o \ |
858
220f55d540ae
rename random.h to dbrandom.h since some OSes have a system random.h
Matt Johnston <matt@ucc.asn.au>
parents:
849
diff
changeset
|
35 signkey.o rsa.o dbrandom.o \ |
30
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
36 queue.o \ |
766 | 37 atomicio.o compat.o fake-rfc2553.o \ |
1855
35d504d59c05
Implement server-side support for sk-ecdsa U2F-backed keys (#142)
egor-duda <egor-duda@users.noreply.github.com>
parents:
1839
diff
changeset
|
38 ltc_prng.o ecc.o ecdsa.o sk-ecdsa.o crypto_desc.o \ |
35d504d59c05
Implement server-side support for sk-ecdsa U2F-backed keys (#142)
egor-duda <egor-duda@users.noreply.github.com>
parents:
1839
diff
changeset
|
39 curve25519.o ed25519.o sk-ed25519.o \ |
1361
f9f930e1a516
add dbmalloc epoch cleanup
Matt Johnston <matt@ucc.asn.au>
parents:
1356
diff
changeset
|
40 dbmalloc.o \ |
1659
d32bcb5c557d
Add Ed25519 support (#91)
Vladislav Grishenko <themiron@users.noreply.github.com>
parents:
1655
diff
changeset
|
41 gensignkey.o gendss.o genrsa.o gened25519.o |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
42 |
741
eafdf8b363f5
Get rid of client/server specific buf_match_algo, use single
Matt Johnston <matt@ucc.asn.au>
parents:
635
diff
changeset
|
43 SVROBJS=svr-kex.o svr-auth.o sshpty.o \ |
475
52a644e7b8e1
* Patch from Frédéric Moulins adding options to authorized_keys.
Matt Johnston <matt@ucc.asn.au>
parents:
389
diff
changeset
|
44 svr-authpasswd.o svr-authpubkey.o svr-authpubkeyoptions.o svr-session.o svr-service.o \ |
62 | 45 svr-chansession.o svr-runopts.o svr-agentfwd.o svr-main.o svr-x11fwd.o\ |
600
a86044b99989
-lcrypt needs to be before object files when static linking
Matt Johnston <matt@ucc.asn.au>
parents:
587
diff
changeset
|
46 svr-tcpfwd.o svr-authpam.o |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
47 |
741
eafdf8b363f5
Get rid of client/server specific buf_match_algo, use single
Matt Johnston <matt@ucc.asn.au>
parents:
635
diff
changeset
|
48 CLIOBJS=cli-main.o cli-auth.o cli-authpasswd.o cli-kex.o \ |
727
00bc3df3a9c3
Don't bother waiting for a ssh-connection service reply - the server
Matt Johnston <matt@ucc.asn.au>
parents:
635
diff
changeset
|
49 cli-session.o cli-runopts.o cli-chansession.o \ |
547
cf376c696dfc
Make it compile, update for changes in channel structure.
Matt Johnston <matt@ucc.asn.au>
parents:
520
diff
changeset
|
50 cli-authpubkey.o cli-tcpfwd.o cli-channel.o cli-authinteract.o \ |
1032
0da8ba489c23
Move generic network routines to netio.c
Matt Johnston <matt@ucc.asn.au>
parents:
993
diff
changeset
|
51 cli-agentfwd.o |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
52 |
30
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
53 CLISVROBJS=common-session.o packet.o common-algo.o common-kex.o \ |
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
54 common-channel.o common-chansession.o termcodes.o loginrec.o \ |
1224
82e2037d34ea
Move dh group constants to a separate file
Matt Johnston <matt@ucc.asn.au>
parents:
1049
diff
changeset
|
55 tcp-accept.o listener.o process-packet.o dh_groups.o \ |
1672
3a97f14c0235
Add Chacha20-Poly1305, AES128-GCM and AES256-GCM support (#93)
Vladislav Grishenko <themiron@users.noreply.github.com>
parents:
1659
diff
changeset
|
56 common-runopts.o circbuffer.o list.o netio.o chachapoly.o gcm.o |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
57 |
846
b298bb438625
refactor key generation, make it generate as required.
Matt Johnston <matt@ucc.asn.au>
parents:
835
diff
changeset
|
58 KEYOBJS=dropbearkey.o |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
59 |
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
60 CONVERTOBJS=dropbearconvert.o keyimport.o |
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
61 |
570
fb9a341e4454
- scp progressbar needs strlcat(), so add compat.o
Matt Johnston <matt@ucc.asn.au>
parents:
551
diff
changeset
|
62 SCPOBJS=scp.o progressmeter.o atomicio.o scpmisc.o compat.o |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
63 |
1356
3677a510f545
add wrapfd. improve fuzzer in makefile
Matt Johnston <matt@ucc.asn.au>
parents:
1355
diff
changeset
|
64 ifeq (@DROPBEAR_FUZZ@, 1) |
1756
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
65 allobjs = $(COMMONOBJS) fuzz/fuzz-common.o fuzz/fuzz-wrapfd.o $(CLISVROBJS) $(CLIOBJS) $(SVROBJS) @CRYPTLIB@ |
1559
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
66 allobjs:=$(subst svr-main.o, ,$(allobjs)) |
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
67 allobjs:=$(subst cli-main.o, ,$(allobjs)) |
1356
3677a510f545
add wrapfd. improve fuzzer in makefile
Matt Johnston <matt@ucc.asn.au>
parents:
1355
diff
changeset
|
68 |
1559
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
69 dropbearobjs=$(allobjs) svr-main.o |
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
70 dbclientobjs=$(allobjs) cli-main.o |
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
71 dropbearkeyobjs=$(allobjs) $(KEYOBJS) |
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
72 dropbearconvertobjs=$(allobjs) $(CONVERTOBJS) |
1582
68abf717328d
set up CXX for fuzzing build
Matt Johnston <matt@ucc.asn.au>
parents:
1574
diff
changeset
|
73 # CXX only set when fuzzing |
68abf717328d
set up CXX for fuzzing build
Matt Johnston <matt@ucc.asn.au>
parents:
1574
diff
changeset
|
74 CXX=@CXX@ |
1756
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
75 FUZZ_CLEAN=fuzz-clean |
1559
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
76 else |
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
77 dropbearobjs=$(COMMONOBJS) $(CLISVROBJS) $(SVROBJS) |
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
78 dbclientobjs=$(COMMONOBJS) $(CLISVROBJS) $(CLIOBJS) |
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
79 dropbearkeyobjs=$(COMMONOBJS) $(KEYOBJS) |
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
80 dropbearconvertobjs=$(COMMONOBJS) $(CONVERTOBJS) |
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
81 scpobjs=$(SCPOBJS) |
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
82 endif |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
83 |
1654 | 84 ifeq (@DROPBEAR_PLUGIN@, 1) |
1653
76189c9ffea2
External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents:
1591
diff
changeset
|
85 # rdynamic makes all the global symbols of dropbear available to all the loaded shared libraries |
76189c9ffea2
External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents:
1591
diff
changeset
|
86 # this allow a plugin to reuse existing crypto/utilities like base64_decode/base64_encode without |
76189c9ffea2
External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents:
1591
diff
changeset
|
87 # the need to rewrite them. |
1654 | 88 PLUGIN_LIBS=-ldl -rdynamic |
1653
76189c9ffea2
External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents:
1591
diff
changeset
|
89 else |
1654 | 90 PLUGIN_LIBS= |
1653
76189c9ffea2
External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents:
1591
diff
changeset
|
91 endif |
76189c9ffea2
External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents:
1591
diff
changeset
|
92 |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
93 VPATH=@srcdir@ |
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
94 srcdir=@srcdir@ |
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
95 |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
96 prefix=@prefix@ |
827
4a788a3162a1
Add @exec_prefix@ that was missing
Matt Johnston <matt@ucc.asn.au>
parents:
820
diff
changeset
|
97 exec_prefix=@exec_prefix@ |
820
830fae485d40
Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents:
743
diff
changeset
|
98 datarootdir = @datarootdir@ |
830fae485d40
Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents:
743
diff
changeset
|
99 bindir=@bindir@ |
830fae485d40
Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents:
743
diff
changeset
|
100 sbindir=@sbindir@ |
830fae485d40
Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents:
743
diff
changeset
|
101 mandir=@mandir@ |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
102 |
1295
750ec4ec4cbe
Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
103 .DELETE_ON_ERROR: |
750ec4ec4cbe
Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
104 |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
105 CC=@CC@ |
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
106 AR=@AR@ |
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
107 RANLIB=@RANLIB@ |
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
108 STRIP=@STRIP@ |
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
109 INSTALL=@INSTALL@ |
1889
fc4c9ef61856
Split CPPFLAGS and CFLAGS more carefully
Matt Johnston <matt@ucc.asn.au>
parents:
1855
diff
changeset
|
110 CPPFLAGS+=@CPPFLAGS@ -I. -I$(srcdir) |
fc4c9ef61856
Split CPPFLAGS and CFLAGS more carefully
Matt Johnston <matt@ucc.asn.au>
parents:
1855
diff
changeset
|
111 CFLAGS+=@CFLAGS@ |
585
d194db6f9453
Use system libtomcrypt/libtommath if available. Doesn't currently
Matt Johnston <matt@ucc.asn.au>
parents:
570
diff
changeset
|
112 LIBS+=@LIBS@ |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
113 LDFLAGS=@LDFLAGS@ |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
114 |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
115 EXEEXT=@EXEEXT@ |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
116 |
1446
b8764eee6bdb
add --enable-static configure argument. disable conflicting harden flags
Matt Johnston <matt@ucc.asn.au>
parents:
1297
diff
changeset
|
117 STATIC=@STATIC@ |
b8764eee6bdb
add --enable-static configure argument. disable conflicting harden flags
Matt Johnston <matt@ucc.asn.au>
parents:
1297
diff
changeset
|
118 |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
119 # whether we're building client, server, or both for the common objects. |
30
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
120 # evilness so we detect 'dropbear' by itself as a word |
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
121 ifneq (,$(strip $(foreach prog, $(PROGRAMS), $(findstring ZdropbearZ, Z$(prog)Z)))) |
1889
fc4c9ef61856
Split CPPFLAGS and CFLAGS more carefully
Matt Johnston <matt@ucc.asn.au>
parents:
1855
diff
changeset
|
122 CPPFLAGS+= -DDROPBEAR_SERVER |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
123 endif |
30
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
124 ifneq (,$(strip $(foreach prog, $(PROGRAMS), $(findstring ZdbclientZ, Z$(prog)Z)))) |
1889
fc4c9ef61856
Split CPPFLAGS and CFLAGS more carefully
Matt Johnston <matt@ucc.asn.au>
parents:
1855
diff
changeset
|
125 CPPFLAGS+= -DDROPBEAR_CLIENT |
381
999a5eb4ed10
propagate from branch 'au.asn.ucc.matt.ltc.orig' (head 52840647ac7f5c707c3bd158d119a15734a7ef28)
Matt Johnston <matt@ucc.asn.au>
parents:
281
diff
changeset
|
126 endif |
999a5eb4ed10
propagate from branch 'au.asn.ucc.matt.ltc.orig' (head 52840647ac7f5c707c3bd158d119a15734a7ef28)
Matt Johnston <matt@ucc.asn.au>
parents:
281
diff
changeset
|
127 |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
128 # these are exported so that libtomcrypt's makefile will use them |
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
129 export CC |
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
130 export CFLAGS |
1889
fc4c9ef61856
Split CPPFLAGS and CFLAGS more carefully
Matt Johnston <matt@ucc.asn.au>
parents:
1855
diff
changeset
|
131 export CPPFLAGS |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
132 export RANLIB AR STRIP |
381
999a5eb4ed10
propagate from branch 'au.asn.ucc.matt.ltc.orig' (head 52840647ac7f5c707c3bd158d119a15734a7ef28)
Matt Johnston <matt@ucc.asn.au>
parents:
281
diff
changeset
|
133 |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
134 ifeq ($(STATIC), 1) |
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
135 LDFLAGS+=-static |
381
999a5eb4ed10
propagate from branch 'au.asn.ucc.matt.ltc.orig' (head 52840647ac7f5c707c3bd158d119a15734a7ef28)
Matt Johnston <matt@ucc.asn.au>
parents:
281
diff
changeset
|
136 endif |
999a5eb4ed10
propagate from branch 'au.asn.ucc.matt.ltc.orig' (head 52840647ac7f5c707c3bd158d119a15734a7ef28)
Matt Johnston <matt@ucc.asn.au>
parents:
281
diff
changeset
|
137 |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
138 ifeq ($(MULTI), 1) |
1448
7dddc4dd7063
EXEEXT for a few more targets, dropbearmulti in particular for Cygwin
Matt Johnston <matt@ucc.asn.au>
parents:
1447
diff
changeset
|
139 TARGETS=dropbearmulti$(EXEEXT) |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
140 else |
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
141 TARGETS=$(PROGRAMS) |
381
999a5eb4ed10
propagate from branch 'au.asn.ucc.matt.ltc.orig' (head 52840647ac7f5c707c3bd158d119a15734a7ef28)
Matt Johnston <matt@ucc.asn.au>
parents:
281
diff
changeset
|
142 endif |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
143 |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
144 # for the scp progress meter. The -D doesn't affect anything else. |
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
145 ifeq ($(SCPPROGRESS), 1) |
1889
fc4c9ef61856
Split CPPFLAGS and CFLAGS more carefully
Matt Johnston <matt@ucc.asn.au>
parents:
1855
diff
changeset
|
146 CPPFLAGS+=-DPROGRESS_METER |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
147 endif |
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
148 |
30
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
149 all: $(TARGETS) |
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
150 |
1521
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
151 # for simplicity assume all source depends on all headers |
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
152 HEADERS=$(wildcard $(srcdir)/*.h *.h) $(OPTION_HEADERS) |
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
153 %.o : %.c $(HEADERS) |
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
154 $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ |
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
155 |
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
156 default_options_guard.h: default_options.h |
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
157 @echo Creating $@ |
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
158 @printf "/*\n > > > Do not edit this file (default_options_guard.h) < < <\nGenerated from "$^"\nLocal customisation goes in localoptions.h\n*/\n\n" > $@.tmp |
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
159 @$(srcdir)/ifndef_wrapper.sh < $^ >> $@.tmp |
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
160 @mv $@.tmp $@ |
1492 | 161 |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
162 strip: $(TARGETS) |
174
c753db8eb446
* don't add a 'static' prefix to binary names
Matt Johnston <matt@ucc.asn.au>
parents:
161
diff
changeset
|
163 $(STRIP) $(addsuffix $(EXEEXT), $(TARGETS)) |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
164 |
132
c56d40d54538
use inst_ rather than inst, so it doesn't try to install "all".
Matt Johnston <matt@ucc.asn.au>
parents:
119
diff
changeset
|
165 install: $(addprefix inst_, $(TARGETS)) |
82
8f26145a0997
do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents:
81
diff
changeset
|
166 |
1448
7dddc4dd7063
EXEEXT for a few more targets, dropbearmulti in particular for Cygwin
Matt Johnston <matt@ucc.asn.au>
parents:
1447
diff
changeset
|
167 insmultidropbear: dropbearmulti$(EXEEXT) |
820
830fae485d40
Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents:
743
diff
changeset
|
168 $(INSTALL) -d $(DESTDIR)$(sbindir) |
174
c753db8eb446
* don't add a 'static' prefix to binary names
Matt Johnston <matt@ucc.asn.au>
parents:
161
diff
changeset
|
169 -rm -f $(DESTDIR)$(sbindir)/dropbear$(EXEEXT) |
635
c95860b53363
Fix symlink target created by installdropbearmulti
Matt Johnston <matt@ucc.asn.au>
parents:
624
diff
changeset
|
170 -ln -s $(bindir)/dropbearmulti$(EXEEXT) $(DESTDIR)$(sbindir)/dropbear$(EXEEXT) |
828
93e04b9ff676
- Fix "inst_scp" target since there isn't a manpage
Matt Johnston <matt@ucc.asn.au>
parents:
827
diff
changeset
|
171 $(INSTALL) -d $(DESTDIR)$(mandir)/man8 |
993
1e496ad473bd
Fix installing dropbear.8 error when building in a separate directory.
Like Ma <likemartinma@gmail.com>
parents:
916
diff
changeset
|
172 $(INSTALL) -m 644 $(srcdir)/dropbear.8 $(DESTDIR)$(mandir)/man8/dropbear.8 |
82
8f26145a0997
do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents:
81
diff
changeset
|
173 |
1448
7dddc4dd7063
EXEEXT for a few more targets, dropbearmulti in particular for Cygwin
Matt Johnston <matt@ucc.asn.au>
parents:
1447
diff
changeset
|
174 insmulti%: dropbearmulti$(EXEEXT) |
820
830fae485d40
Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents:
743
diff
changeset
|
175 $(INSTALL) -d $(DESTDIR)$(bindir) |
174
c753db8eb446
* don't add a 'static' prefix to binary names
Matt Johnston <matt@ucc.asn.au>
parents:
161
diff
changeset
|
176 -rm -f $(DESTDIR)$(bindir)/$*$(EXEEXT) |
635
c95860b53363
Fix symlink target created by installdropbearmulti
Matt Johnston <matt@ucc.asn.au>
parents:
624
diff
changeset
|
177 -ln -s $(bindir)/dropbearmulti$(EXEEXT) $(DESTDIR)$(bindir)/$*$(EXEEXT) |
828
93e04b9ff676
- Fix "inst_scp" target since there isn't a manpage
Matt Johnston <matt@ucc.asn.au>
parents:
827
diff
changeset
|
178 $(INSTALL) -d $(DESTDIR)$(mandir)/man1 |
1718
72bb7fb1fced
Fix "make install" for manpages in out-of-tree builds
Gabor Z. Papp <gzp@papp.hu>
parents:
1683
diff
changeset
|
179 if test -e $(srcdir)/$*.1; then $(INSTALL) -m 644 $(srcdir)/$*.1 $(DESTDIR)$(mandir)/man1/$*.1; fi |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
180 |
1037
7c899f24a85b
Some minor typo fixes, found by codespell.
Thorsten Horstmann <thorsten.horstmann@web.de>
parents:
993
diff
changeset
|
181 # dropbear should go in sbin, so it needs a separate rule |
132
c56d40d54538
use inst_ rather than inst, so it doesn't try to install "all".
Matt Johnston <matt@ucc.asn.au>
parents:
119
diff
changeset
|
182 inst_dropbear: dropbear |
820
830fae485d40
Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents:
743
diff
changeset
|
183 $(INSTALL) -d $(DESTDIR)$(sbindir) |
830fae485d40
Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents:
743
diff
changeset
|
184 $(INSTALL) dropbear$(EXEEXT) $(DESTDIR)$(sbindir) |
830fae485d40
Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents:
743
diff
changeset
|
185 $(INSTALL) -d $(DESTDIR)$(mandir)/man8 |
993
1e496ad473bd
Fix installing dropbear.8 error when building in a separate directory.
Like Ma <likemartinma@gmail.com>
parents:
916
diff
changeset
|
186 $(INSTALL) -m 644 $(srcdir)/dropbear.8 $(DESTDIR)$(mandir)/man8/dropbear.8 |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
187 |
916
803c1f0b019b
Fix "make install" dependency so that it works without prior "make"
Matt Johnston <matt@ucc.asn.au>
parents:
898
diff
changeset
|
188 inst_%: % |
820
830fae485d40
Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents:
743
diff
changeset
|
189 $(INSTALL) -d $(DESTDIR)$(bindir) |
830fae485d40
Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents:
743
diff
changeset
|
190 $(INSTALL) $*$(EXEEXT) $(DESTDIR)$(bindir) |
830fae485d40
Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents:
743
diff
changeset
|
191 $(INSTALL) -d $(DESTDIR)$(mandir)/man1 |
1718
72bb7fb1fced
Fix "make install" for manpages in out-of-tree builds
Gabor Z. Papp <gzp@papp.hu>
parents:
1683
diff
changeset
|
192 if test -e $(srcdir)/$*.1; then $(INSTALL) -m 644 $(srcdir)/$*.1 $(DESTDIR)$(mandir)/man1/$*.1; fi |
828
93e04b9ff676
- Fix "inst_scp" target since there isn't a manpage
Matt Johnston <matt@ucc.asn.au>
parents:
827
diff
changeset
|
193 |
93e04b9ff676
- Fix "inst_scp" target since there isn't a manpage
Matt Johnston <matt@ucc.asn.au>
parents:
827
diff
changeset
|
194 inst_dropbearmulti: $(addprefix insmulti, $(PROGRAMS)) |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
195 |
30
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
196 # for some reason the rule further down doesn't like $($@objs) as a prereq. |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
197 dropbear: $(dropbearobjs) |
30
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
198 dbclient: $(dbclientobjs) |
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
199 dropbearkey: $(dropbearkeyobjs) |
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
200 dropbearconvert: $(dropbearconvertobjs) |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
201 |
890
d50c17fe57d7
Fix linking -lcrypt for systems without libcrypt in /usr/lib
Nicolas Boos <nicolas.boos@wanadoo.fr>
parents:
889
diff
changeset
|
202 dropbear: $(HEADERS) $(LIBTOM_DEPS) Makefile |
1654 | 203 $(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBTOM_LIBS) $(LIBS) @CRYPTLIB@ $(PLUGIN_LIBS) |
890
d50c17fe57d7
Fix linking -lcrypt for systems without libcrypt in /usr/lib
Nicolas Boos <nicolas.boos@wanadoo.fr>
parents:
889
diff
changeset
|
204 |
d50c17fe57d7
Fix linking -lcrypt for systems without libcrypt in /usr/lib
Nicolas Boos <nicolas.boos@wanadoo.fr>
parents:
889
diff
changeset
|
205 dbclient: $(HEADERS) $(LIBTOM_DEPS) Makefile |
889
3899ca4b65fd
Avoid linking dropbearconvert and dropbearkey to libz or libutil
Nicolas Boos <nicolas.boos@wanadoo.fr>
parents:
882
diff
changeset
|
206 $(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBTOM_LIBS) $(LIBS) |
3899ca4b65fd
Avoid linking dropbearconvert and dropbearkey to libz or libutil
Nicolas Boos <nicolas.boos@wanadoo.fr>
parents:
882
diff
changeset
|
207 |
3899ca4b65fd
Avoid linking dropbearconvert and dropbearkey to libz or libutil
Nicolas Boos <nicolas.boos@wanadoo.fr>
parents:
882
diff
changeset
|
208 dropbearkey dropbearconvert: $(HEADERS) $(LIBTOM_DEPS) Makefile |
1559
92c93b4a3646
Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents:
1557
diff
changeset
|
209 $(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBTOM_LIBS) $(LIBS) |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
210 |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
211 # scp doesn't use the libs so is special. |
33 | 212 scp: $(SCPOBJS) $(HEADERS) Makefile |
366
59531221b846
Fix up separate-directory building for libtomcrypt
Matt Johnston <matt@ucc.asn.au>
parents:
319
diff
changeset
|
213 $(CC) $(LDFLAGS) -o $@$(EXEEXT) $(SCPOBJS) |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
214 |
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
215 |
30
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
216 # multi-binary compilation. |
223b0f5f8dce
Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents:
29
diff
changeset
|
217 MULTIOBJS= |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
218 ifeq ($(MULTI),1) |
890
d50c17fe57d7
Fix linking -lcrypt for systems without libcrypt in /usr/lib
Nicolas Boos <nicolas.boos@wanadoo.fr>
parents:
889
diff
changeset
|
219 MULTIOBJS=dbmulti.o $(sort $(foreach prog, $(PROGRAMS), $($(prog)objs))) |
1889
fc4c9ef61856
Split CPPFLAGS and CFLAGS more carefully
Matt Johnston <matt@ucc.asn.au>
parents:
1855
diff
changeset
|
220 CPPFLAGS+=$(addprefix -DDBMULTI_, $(PROGRAMS)) -DDROPBEAR_MULTI |
381
999a5eb4ed10
propagate from branch 'au.asn.ucc.matt.ltc.orig' (head 52840647ac7f5c707c3bd158d119a15734a7ef28)
Matt Johnston <matt@ucc.asn.au>
parents:
281
diff
changeset
|
221 endif |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
222 |
881
77972dc491ca
Turn dropbearmulti into a real target so we don't constantly re-link it
Mike Frysinger <vapier@gentoo.org>
parents:
858
diff
changeset
|
223 dropbearmulti$(EXEEXT): $(HEADERS) $(MULTIOBJS) $(LIBTOM_DEPS) Makefile |
890
d50c17fe57d7
Fix linking -lcrypt for systems without libcrypt in /usr/lib
Nicolas Boos <nicolas.boos@wanadoo.fr>
parents:
889
diff
changeset
|
224 $(CC) $(LDFLAGS) -o $@ $(MULTIOBJS) $(LIBTOM_LIBS) $(LIBS) @CRYPTLIB@ |
82
8f26145a0997
do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents:
81
diff
changeset
|
225 |
881
77972dc491ca
Turn dropbearmulti into a real target so we don't constantly re-link it
Mike Frysinger <vapier@gentoo.org>
parents:
858
diff
changeset
|
226 multibinary: dropbearmulti$(EXEEXT) |
82
8f26145a0997
do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents:
81
diff
changeset
|
227 |
8f26145a0997
do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents:
81
diff
changeset
|
228 multilink: multibinary $(addprefix link, $(PROGRAMS)) |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
229 |
82
8f26145a0997
do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents:
81
diff
changeset
|
230 link%: |
174
c753db8eb446
* don't add a 'static' prefix to binary names
Matt Johnston <matt@ucc.asn.au>
parents:
161
diff
changeset
|
231 -rm -f $*$(EXEEXT) |
c753db8eb446
* don't add a 'static' prefix to binary names
Matt Johnston <matt@ucc.asn.au>
parents:
161
diff
changeset
|
232 -ln -s dropbearmulti$(EXEEXT) $*$(EXEEXT) |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
233 |
1521
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
234 $(STATIC_LTC): $(OPTION_HEADERS) |
1297
5abbecdecba4
Add generated header default_options.h to version control.
Matt Johnston <matt@ucc.asn.au>
parents:
1295
diff
changeset
|
235 $(MAKE) -C libtomcrypt |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
236 |
1521
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
237 $(STATIC_LTM): $(OPTION_HEADERS) |
1297
5abbecdecba4
Add generated header default_options.h to version control.
Matt Johnston <matt@ucc.asn.au>
parents:
1295
diff
changeset
|
238 $(MAKE) -C libtommath |
1295
750ec4ec4cbe
Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
239 |
1839
ce17be95a42a
Rename "make test" to "make check". Also run lint
Matt Johnston <matt@codeconstruct.com.au>
parents:
1837
diff
changeset
|
240 .PHONY : clean sizes thisclean distclean tidy ltc-clean ltm-clean lint check |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
241 |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
242 ltc-clean: |
1297
5abbecdecba4
Add generated header default_options.h to version control.
Matt Johnston <matt@ucc.asn.au>
parents:
1295
diff
changeset
|
243 $(MAKE) -C libtomcrypt clean |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
244 |
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
245 ltm-clean: |
1297
5abbecdecba4
Add generated header default_options.h to version control.
Matt Johnston <matt@ucc.asn.au>
parents:
1295
diff
changeset
|
246 $(MAKE) -C libtommath clean |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
247 |
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
248 sizes: dropbear |
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
249 objdump -t dropbear|grep ".text"|cut -d "." -f 2|sort -rn |
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
250 |
1756
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
251 clean: $(LIBTOM_CLEAN) $(FUZZ_CLEAN) thisclean |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
252 |
86 | 253 thisclean: |
1448
7dddc4dd7063
EXEEXT for a few more targets, dropbearmulti in particular for Cygwin
Matt Johnston <matt@ucc.asn.au>
parents:
1447
diff
changeset
|
254 -rm -f dropbear$(EXEEXT) dbclient$(EXEEXT) dropbearkey$(EXEEXT) \ |
7dddc4dd7063
EXEEXT for a few more targets, dropbearmulti in particular for Cygwin
Matt Johnston <matt@ucc.asn.au>
parents:
1447
diff
changeset
|
255 dropbearconvert$(EXEEXT) scp$(EXEEXT) scp-progress$(EXEEXT) \ |
7dddc4dd7063
EXEEXT for a few more targets, dropbearmulti in particular for Cygwin
Matt Johnston <matt@ucc.asn.au>
parents:
1447
diff
changeset
|
256 dropbearmulti$(EXEEXT) *.o *.da *.bb *.bbg *.prof |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
257 |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
258 distclean: clean tidy |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
259 -rm -f config.h |
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
260 -rm -f Makefile |
1521
198e2ee0f4b1
- Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents:
1499
diff
changeset
|
261 -rm -f default_options_guard.h |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
262 |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
263 tidy: |
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
264 -rm -f *~ *.gcov */*~ |
1295
750ec4ec4cbe
Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
265 |
1679 | 266 lint: |
267 cd $(srcdir); ./dropbear_lint.sh | |
268 | |
1839
ce17be95a42a
Rename "make test" to "make check". Also run lint
Matt Johnston <matt@codeconstruct.com.au>
parents:
1837
diff
changeset
|
269 check: lint |
1837
df7bfd2f7d45
Add "make test" target to run pytest
Matt Johnston <matt@codeconstruct.com.au>
parents:
1783
diff
changeset
|
270 make -C test |
df7bfd2f7d45
Add "make test" target to run pytest
Matt Johnston <matt@codeconstruct.com.au>
parents:
1783
diff
changeset
|
271 |
1348 | 272 ## Fuzzing targets |
273 | |
1352
66c1cfd5e100
rename fuzzer -> fuzz-target, add list-fuzz-targets
Matt Johnston <matt@ucc.asn.au>
parents:
1351
diff
changeset
|
274 # list of fuzz targets |
1741
d1b279aa5ed1
Get client fuzzer building and starting (fails straight away)
Matt Johnston <matt@ucc.asn.au>
parents:
1718
diff
changeset
|
275 FUZZ_TARGETS=fuzzer-preauth fuzzer-pubkey fuzzer-verify fuzzer-preauth_nomaths \ |
1777
97ad26e397a5
Add server postauth fuzzer, wrap connect_remote()
Matt Johnston <matt@ucc.asn.au>
parents:
1775
diff
changeset
|
276 fuzzer-kexdh fuzzer-kexecdh fuzzer-kexcurve25519 fuzzer-client fuzzer-client_nomaths \ |
97ad26e397a5
Add server postauth fuzzer, wrap connect_remote()
Matt Johnston <matt@ucc.asn.au>
parents:
1775
diff
changeset
|
277 fuzzer-postauth_nomaths |
1352
66c1cfd5e100
rename fuzzer -> fuzz-target, add list-fuzz-targets
Matt Johnston <matt@ucc.asn.au>
parents:
1351
diff
changeset
|
278 |
1370
dd5d7b7141b9
create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents:
1369
diff
changeset
|
279 FUZZER_OPTIONS = $(addsuffix .options, $(FUZZ_TARGETS)) |
1765
b688c884dad7
Fix fuzz-sshpacketmutator to work
Matt Johnston <matt@ucc.asn.au>
parents:
1760
diff
changeset
|
280 FUZZ_OBJS = $(addprefix fuzz/,$(addsuffix .o,$(FUZZ_TARGETS))) \ |
b688c884dad7
Fix fuzz-sshpacketmutator to work
Matt Johnston <matt@ucc.asn.au>
parents:
1760
diff
changeset
|
281 fuzz/fuzz-sshpacketmutator.o |
1370
dd5d7b7141b9
create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents:
1369
diff
changeset
|
282 |
1352
66c1cfd5e100
rename fuzzer -> fuzz-target, add list-fuzz-targets
Matt Johnston <matt@ucc.asn.au>
parents:
1351
diff
changeset
|
283 list-fuzz-targets: |
66c1cfd5e100
rename fuzzer -> fuzz-target, add list-fuzz-targets
Matt Johnston <matt@ucc.asn.au>
parents:
1351
diff
changeset
|
284 @echo $(FUZZ_TARGETS) |
1348 | 285 |
286 # fuzzers that don't use libfuzzer, just a standalone harness that feeds inputs | |
1756
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
287 fuzzstandalone: FUZZLIB=fuzz/fuzz-harness.o |
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
288 fuzzstandalone: fuzz/fuzz-harness.o fuzz-targets |
1352
66c1cfd5e100
rename fuzzer -> fuzz-target, add list-fuzz-targets
Matt Johnston <matt@ucc.asn.au>
parents:
1351
diff
changeset
|
289 |
1756
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
290 # Build all the fuzzers. Usually like |
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
291 # make fuzz-targets FUZZLIB=-lFuzzer.a |
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
292 # the library provides main(). Otherwise |
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
293 # make fuzzstandalone |
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
294 # provides a main in fuzz-harness.c |
1370
dd5d7b7141b9
create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents:
1369
diff
changeset
|
295 fuzz-targets: $(FUZZ_TARGETS) $(FUZZER_OPTIONS) |
1348 | 296 |
1756
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
297 $(FUZZ_TARGETS): $(FUZZ_OBJS) $(allobjs) $(LIBTOM_DEPS) |
1775
8179eabe16c9
fuzzing - fix some wrong types and -lcrypt on macos
Matt Johnston <matt@ucc.asn.au>
parents:
1771
diff
changeset
|
298 $(CXX) $(CXXFLAGS) fuzz/$@.o $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@ |
1742
6e71440b1e47
Add fuzzer-client_nomaths, fix client fuzzer
Matt Johnston <matt@ucc.asn.au>
parents:
1741
diff
changeset
|
299 |
1771
af9ed0815818
Use SSH packet mutator for preauth too
Matt Johnston <matt@ucc.asn.au>
parents:
1767
diff
changeset
|
300 # fuzzers that use the custom mutator - these expect a SSH network stream |
af9ed0815818
Use SSH packet mutator for preauth too
Matt Johnston <matt@ucc.asn.au>
parents:
1767
diff
changeset
|
301 MUTATOR_FUZZERS=fuzzer-client fuzzer-client_nomaths \ |
1777
97ad26e397a5
Add server postauth fuzzer, wrap connect_remote()
Matt Johnston <matt@ucc.asn.au>
parents:
1775
diff
changeset
|
302 fuzzer-preauth fuzzer-preauth_nomaths fuzzer-postauth_nomaths |
1783
918e49decafa
fuzz: skip custom mutators with -fsanitize=memory
Matt Johnston <matt@ucc.asn.au>
parents:
1777
diff
changeset
|
303 |
918e49decafa
fuzz: skip custom mutators with -fsanitize=memory
Matt Johnston <matt@ucc.asn.au>
parents:
1777
diff
changeset
|
304 # Skip custom mutators for -fsanitize-memory since libfuzzer doesn't initialise memory |
918e49decafa
fuzz: skip custom mutators with -fsanitize=memory
Matt Johnston <matt@ucc.asn.au>
parents:
1777
diff
changeset
|
305 # Pending fix for it https://github.com/google/oss-fuzz/issues/4605 |
918e49decafa
fuzz: skip custom mutators with -fsanitize=memory
Matt Johnston <matt@ucc.asn.au>
parents:
1777
diff
changeset
|
306 ifeq (,$(findstring fsanitize=memory, $(CFLAGS))) |
1771
af9ed0815818
Use SSH packet mutator for preauth too
Matt Johnston <matt@ucc.asn.au>
parents:
1767
diff
changeset
|
307 $(MUTATOR_FUZZERS): allobjs += fuzz/fuzz-sshpacketmutator.o |
1783
918e49decafa
fuzz: skip custom mutators with -fsanitize=memory
Matt Johnston <matt@ucc.asn.au>
parents:
1777
diff
changeset
|
308 endif |
1765
b688c884dad7
Fix fuzz-sshpacketmutator to work
Matt Johnston <matt@ucc.asn.au>
parents:
1760
diff
changeset
|
309 |
1370
dd5d7b7141b9
create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents:
1369
diff
changeset
|
310 fuzzer-%.options: Makefile |
dd5d7b7141b9
create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents:
1369
diff
changeset
|
311 echo "[libfuzzer]" > $@ |
dd5d7b7141b9
create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents:
1369
diff
changeset
|
312 echo "max_len = 50000" >> $@ |
dd5d7b7141b9
create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents:
1369
diff
changeset
|
313 |
1348 | 314 # run this to update hardcoded hostkeys for for fuzzing. |
315 # hostkeys.c is checked in to hg. | |
316 fuzz-hostkeys: | |
1347
b28624698130
copy over some fuzzing code from AFL branch
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
317 dropbearkey -t rsa -f keyr |
b28624698130
copy over some fuzzing code from AFL branch
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
318 dropbearkey -t dss -f keyd |
b28624698130
copy over some fuzzing code from AFL branch
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
319 dropbearkey -t ecdsa -size 256 -f keye |
1659
d32bcb5c557d
Add Ed25519 support (#91)
Vladislav Grishenko <themiron@users.noreply.github.com>
parents:
1655
diff
changeset
|
320 dropbearkey -t ed25519 -f keyed25519 |
1347
b28624698130
copy over some fuzzing code from AFL branch
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
321 echo > hostkeys.c |
b28624698130
copy over some fuzzing code from AFL branch
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
322 /usr/bin/xxd -i -a keyr >> hostkeys.c |
b28624698130
copy over some fuzzing code from AFL branch
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
323 /usr/bin/xxd -i -a keye >> hostkeys.c |
b28624698130
copy over some fuzzing code from AFL branch
Matt Johnston <matt@ucc.asn.au>
parents:
1283
diff
changeset
|
324 /usr/bin/xxd -i -a keyd >> hostkeys.c |
1659
d32bcb5c557d
Add Ed25519 support (#91)
Vladislav Grishenko <themiron@users.noreply.github.com>
parents:
1655
diff
changeset
|
325 /usr/bin/xxd -i -a keyed25519 >> hostkeys.c |
1756
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
326 |
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
327 fuzz-clean: |
d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
1750
diff
changeset
|
328 -rm -f fuzz/*.o $(FUZZ_TARGETS) $(FUZZER_OPTIONS) |