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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
b9d3f725e00b 0.44 release changes
Matt Johnston <matt@ucc.asn.au>
parents: 137
diff changeset
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
d1575fdc29a6 start on ecdsa keys
Matt Johnston <matt@ucc.asn.au>
parents: 761
diff changeset
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
20563735e8b5 just checkpointing
Matt Johnston <matt@ucc.asn.au>
parents: 55
diff changeset
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
cc0fc5131c5c Rename EPKA -> Plugin
Matt Johnston <matt@ucc.asn.au>
parents: 1653
diff changeset
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
cc0fc5131c5c Rename EPKA -> Plugin
Matt Johnston <matt@ucc.asn.au>
parents: 1653
diff changeset
88 PLUGIN_LIBS=-ldl -rdynamic
1653
76189c9ffea2 External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents: 1591
diff changeset
89 else
1654
cc0fc5131c5c Rename EPKA -> Plugin
Matt Johnston <matt@ucc.asn.au>
parents: 1653
diff changeset
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
bd46cf0e245a update some dependencies
Matt Johnston <matt@ucc.asn.au>
parents: 1490
diff changeset
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
cc0fc5131c5c Rename EPKA -> Plugin
Matt Johnston <matt@ucc.asn.au>
parents: 1653
diff changeset
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
f789045062e6 Progressing client support
Matt Johnston <matt@ucc.asn.au>
parents: 32
diff changeset
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
ace512d2ad5d Small fixes
Matt Johnston <matt@ucc.asn.au>
parents: 82
diff changeset
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
90fffce0ee99 Add linter for #ifdef
Matt Johnston <matt@ucc.asn.au>
parents: 1659
diff changeset
266 lint:
90fffce0ee99 Add linter for #ifdef
Matt Johnston <matt@ucc.asn.au>
parents: 1659
diff changeset
267 cd $(srcdir); ./dropbear_lint.sh
90fffce0ee99 Add linter for #ifdef
Matt Johnston <matt@ucc.asn.au>
parents: 1659
diff changeset
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
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
272 ## Fuzzing targets
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
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
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
285
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
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
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
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
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
314 # run this to update hardcoded hostkeys for for fuzzing.
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
315 # hostkeys.c is checked in to hg.
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
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)