annotate Makefile.in @ 1653:76189c9ffea2

External Public-Key Authentication API (#72) * Implemented dynamic loading of an external plug-in shared library to delegate public key authentication * Moved conditional compilation of the plugin infrastructure into the configure.ac script to be able to add -ldl to dropbear build only when the flag is enabled * Added tags file to the ignore list * Updated API to have the constructor to return function pointers in the pliugin instance. Added support for passing user name to the checkpubkey function. Added options to the session returned by the plugin and have dropbear to parse and process them * Added -rdynamic to the linker flags when EPKA is enabled * Changed the API to pass a previously created session to the checkPubKey function (created during preauth) * Added documentation to the API * Added parameter addrstring to plugin creation function * Modified the API to retrieve the auth options. Instead of having them as field of the EPKASession struct, they are stored internally (plugin-dependent) in the plugin/session and retrieved through a pointer to a function (in the session) * Changed option string to be a simple char * instead of unsigned char *
author fabriziobertocci <fabriziobertocci@gmail.com>
date Wed, 15 May 2019 09:43:57 -0400
parents b794d277c6da
children cc0fc5131c5c
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
761
ac2158e3e403 ecc kind of works, needs fixing/testing
Matt Johnston <matt@ucc.asn.au>
parents: 756
diff changeset
23 CFLAGS+=-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),)
750ec4ec4cbe Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents: 1283
diff changeset
29 CFLAGS+=-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 \
846
b298bb438625 refactor key generation, make it generate as required.
Matt Johnston <matt@ucc.asn.au>
parents: 835
diff changeset
38 ltc_prng.o ecc.o ecdsa.o crypto_desc.o \
1361
f9f930e1a516 add dbmalloc epoch cleanup
Matt Johnston <matt@ucc.asn.au>
parents: 1356
diff changeset
39 dbmalloc.o \
846
b298bb438625 refactor key generation, make it generate as required.
Matt Johnston <matt@ucc.asn.au>
parents: 835
diff changeset
40 gensignkey.o gendss.o genrsa.o
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
41
741
eafdf8b363f5 Get rid of client/server specific buf_match_algo, use single
Matt Johnston <matt@ucc.asn.au>
parents: 635
diff changeset
42 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
43 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
44 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
45 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
46
741
eafdf8b363f5 Get rid of client/server specific buf_match_algo, use single
Matt Johnston <matt@ucc.asn.au>
parents: 635
diff changeset
47 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
48 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
49 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
50 cli-agentfwd.o
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
51
30
223b0f5f8dce Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents: 29
diff changeset
52 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
53 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
54 tcp-accept.o listener.o process-packet.o dh_groups.o \
1032
0da8ba489c23 Move generic network routines to netio.c
Matt Johnston <matt@ucc.asn.au>
parents: 993
diff changeset
55 common-runopts.o circbuffer.o curve25519-donna.o list.o netio.o
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
56
846
b298bb438625 refactor key generation, make it generate as required.
Matt Johnston <matt@ucc.asn.au>
parents: 835
diff changeset
57 KEYOBJS=dropbearkey.o
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
58
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
59 CONVERTOBJS=dropbearconvert.o keyimport.o
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
60
570
fb9a341e4454 - scp progressbar needs strlcat(), so add compat.o
Matt Johnston <matt@ucc.asn.au>
parents: 551
diff changeset
61 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
62
1356
3677a510f545 add wrapfd. improve fuzzer in makefile
Matt Johnston <matt@ucc.asn.au>
parents: 1355
diff changeset
63 ifeq (@DROPBEAR_FUZZ@, 1)
1574
b66fc351f7e8 add cryptlib for all targets in fuzz build
Matt Johnston <matt@ucc.asn.au>
parents: 1559
diff changeset
64 allobjs = $(COMMONOBJS) fuzz-common.o 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
65 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
66 allobjs:=$(subst cli-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:=$(sort $(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@
1559
92c93b4a3646 Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents: 1557
diff changeset
75 else
92c93b4a3646 Fix to be able to compile normal(ish) binaries with --enable-fuzz
Matt Johnston <matt@ucc.asn.au>
parents: 1557
diff changeset
76 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
77 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
78 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
79 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
80 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
81 endif
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
82
1653
76189c9ffea2 External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents: 1591
diff changeset
83 ifeq (@DROPBEAR_EPKA@, 1)
76189c9ffea2 External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents: 1591
diff changeset
84 # 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
85 # 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
86 # the need to rewrite them.
76189c9ffea2 External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents: 1591
diff changeset
87 EPKA_LIBS=-ldl -rdynamic
76189c9ffea2 External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents: 1591
diff changeset
88 else
76189c9ffea2 External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents: 1591
diff changeset
89 EPKA_LIBS=
76189c9ffea2 External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents: 1591
diff changeset
90 endif
76189c9ffea2 External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents: 1591
diff changeset
91
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
92 VPATH=@srcdir@
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
93 srcdir=@srcdir@
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
94
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
95 prefix=@prefix@
827
4a788a3162a1 Add @exec_prefix@ that was missing
Matt Johnston <matt@ucc.asn.au>
parents: 820
diff changeset
96 exec_prefix=@exec_prefix@
820
830fae485d40 Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents: 743
diff changeset
97 datarootdir = @datarootdir@
830fae485d40 Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents: 743
diff changeset
98 bindir=@bindir@
830fae485d40 Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents: 743
diff changeset
99 sbindir=@sbindir@
830fae485d40 Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents: 743
diff changeset
100 mandir=@mandir@
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
101
1295
750ec4ec4cbe Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents: 1283
diff changeset
102 .DELETE_ON_ERROR:
750ec4ec4cbe Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents: 1283
diff changeset
103
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
104 CC=@CC@
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
105 AR=@AR@
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
106 RANLIB=@RANLIB@
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
107 STRIP=@STRIP@
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
108 INSTALL=@INSTALL@
319
7a11f8de297c Include CPPFLAGS in CFLAGS
Matt Johnston <matt@ucc.asn.au>
parents: 285
diff changeset
109 CPPFLAGS=@CPPFLAGS@
587
1151059c5eff Work properly again with bundled libtom*. autoconf is a hassle.
Matt Johnston <matt@ucc.asn.au>
parents: 585
diff changeset
110 CFLAGS+=-I. -I$(srcdir) $(CPPFLAGS) @CFLAGS@
585
d194db6f9453 Use system libtomcrypt/libtommath if available. Doesn't currently
Matt Johnston <matt@ucc.asn.au>
parents: 570
diff changeset
111 LIBS+=@LIBS@
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
112 LDFLAGS=@LDFLAGS@
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
113
29
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
114 EXEEXT=@EXEEXT@
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
115
1446
b8764eee6bdb add --enable-static configure argument. disable conflicting harden flags
Matt Johnston <matt@ucc.asn.au>
parents: 1297
diff changeset
116 STATIC=@STATIC@
b8764eee6bdb add --enable-static configure argument. disable conflicting harden flags
Matt Johnston <matt@ucc.asn.au>
parents: 1297
diff changeset
117
29
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
118 # 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
119 # 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
120 ifneq (,$(strip $(foreach prog, $(PROGRAMS), $(findstring ZdropbearZ, Z$(prog)Z))))
223b0f5f8dce Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents: 29
diff changeset
121 CFLAGS+= -DDROPBEAR_SERVER
29
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
122 endif
30
223b0f5f8dce Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents: 29
diff changeset
123 ifneq (,$(strip $(foreach prog, $(PROGRAMS), $(findstring ZdbclientZ, Z$(prog)Z))))
223b0f5f8dce Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents: 29
diff changeset
124 CFLAGS+= -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
125 endif
999a5eb4ed10 propagate from branch 'au.asn.ucc.matt.ltc.orig' (head 52840647ac7f5c707c3bd158d119a15734a7ef28)
Matt Johnston <matt@ucc.asn.au>
parents: 281
diff changeset
126
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
127 # 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
128 export CC
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
129 export CFLAGS
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
130 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
131
29
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
132 ifeq ($(STATIC), 1)
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
133 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
134 endif
999a5eb4ed10 propagate from branch 'au.asn.ucc.matt.ltc.orig' (head 52840647ac7f5c707c3bd158d119a15734a7ef28)
Matt Johnston <matt@ucc.asn.au>
parents: 281
diff changeset
135
29
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
136 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
137 TARGETS=dropbearmulti$(EXEEXT)
29
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
138 else
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
139 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
140 endif
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
141
29
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
142 # 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
143 ifeq ($(SCPPROGRESS), 1)
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
144 CFLAGS+=-DPROGRESS_METER
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
145 endif
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
146
30
223b0f5f8dce Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents: 29
diff changeset
147 all: $(TARGETS)
223b0f5f8dce Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents: 29
diff changeset
148
1521
198e2ee0f4b1 - Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents: 1499
diff changeset
149 # 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
150 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
151 %.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
152 $(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
153
198e2ee0f4b1 - Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents: 1499
diff changeset
154 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
155 @echo Creating $@
198e2ee0f4b1 - Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents: 1499
diff changeset
156 @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
157 @$(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
158 @mv $@.tmp $@
1492
bd46cf0e245a update some dependencies
Matt Johnston <matt@ucc.asn.au>
parents: 1490
diff changeset
159
29
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
160 strip: $(TARGETS)
174
c753db8eb446 * don't add a 'static' prefix to binary names
Matt Johnston <matt@ucc.asn.au>
parents: 161
diff changeset
161 $(STRIP) $(addsuffix $(EXEEXT), $(TARGETS))
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
162
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
163 install: $(addprefix inst_, $(TARGETS))
82
8f26145a0997 do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents: 81
diff changeset
164
1448
7dddc4dd7063 EXEEXT for a few more targets, dropbearmulti in particular for Cygwin
Matt Johnston <matt@ucc.asn.au>
parents: 1447
diff changeset
165 insmultidropbear: dropbearmulti$(EXEEXT)
820
830fae485d40 Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents: 743
diff changeset
166 $(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
167 -rm -f $(DESTDIR)$(sbindir)/dropbear$(EXEEXT)
635
c95860b53363 Fix symlink target created by installdropbearmulti
Matt Johnston <matt@ucc.asn.au>
parents: 624
diff changeset
168 -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
169 $(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
170 $(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
171
1448
7dddc4dd7063 EXEEXT for a few more targets, dropbearmulti in particular for Cygwin
Matt Johnston <matt@ucc.asn.au>
parents: 1447
diff changeset
172 insmulti%: dropbearmulti$(EXEEXT)
820
830fae485d40 Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents: 743
diff changeset
173 $(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
174 -rm -f $(DESTDIR)$(bindir)/$*$(EXEEXT)
635
c95860b53363 Fix symlink target created by installdropbearmulti
Matt Johnston <matt@ucc.asn.au>
parents: 624
diff changeset
175 -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
176 $(INSTALL) -d $(DESTDIR)$(mandir)/man1
882
f05107560aa9 Fix so that "make install" for multi target won't fail on scp which doesn't
Mike Frysinger <vapier@gentoo.org>
parents: 881
diff changeset
177 if test -e $*.1; then $(INSTALL) -m 644 $*.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
178
1037
7c899f24a85b Some minor typo fixes, found by codespell.
Thorsten Horstmann <thorsten.horstmann@web.de>
parents: 993
diff changeset
179 # 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
180 inst_dropbear: dropbear
820
830fae485d40 Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents: 743
diff changeset
181 $(INSTALL) -d $(DESTDIR)$(sbindir)
830fae485d40 Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents: 743
diff changeset
182 $(INSTALL) dropbear$(EXEEXT) $(DESTDIR)$(sbindir)
830fae485d40 Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents: 743
diff changeset
183 $(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
184 $(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
185
916
803c1f0b019b Fix "make install" dependency so that it works without prior "make"
Matt Johnston <matt@ucc.asn.au>
parents: 898
diff changeset
186 inst_%: %
820
830fae485d40 Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents: 743
diff changeset
187 $(INSTALL) -d $(DESTDIR)$(bindir)
830fae485d40 Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents: 743
diff changeset
188 $(INSTALL) $*$(EXEEXT) $(DESTDIR)$(bindir)
830fae485d40 Add manpage for dropbearconvert
Matt Johnston <matt@ucc.asn.au>
parents: 743
diff changeset
189 $(INSTALL) -d $(DESTDIR)$(mandir)/man1
828
93e04b9ff676 - Fix "inst_scp" target since there isn't a manpage
Matt Johnston <matt@ucc.asn.au>
parents: 827
diff changeset
190 if test -e $*.1; then $(INSTALL) -m 644 $*.1 $(DESTDIR)$(mandir)/man1/$*.1; fi
93e04b9ff676 - Fix "inst_scp" target since there isn't a manpage
Matt Johnston <matt@ucc.asn.au>
parents: 827
diff changeset
191
93e04b9ff676 - Fix "inst_scp" target since there isn't a manpage
Matt Johnston <matt@ucc.asn.au>
parents: 827
diff changeset
192 inst_dropbearmulti: $(addprefix insmulti, $(PROGRAMS))
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
193
30
223b0f5f8dce Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents: 29
diff changeset
194 # 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
195 dropbear: $(dropbearobjs)
30
223b0f5f8dce Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents: 29
diff changeset
196 dbclient: $(dbclientobjs)
223b0f5f8dce Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents: 29
diff changeset
197 dropbearkey: $(dropbearkeyobjs)
223b0f5f8dce Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents: 29
diff changeset
198 dropbearconvert: $(dropbearconvertobjs)
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
199
890
d50c17fe57d7 Fix linking -lcrypt for systems without libcrypt in /usr/lib
Nicolas Boos <nicolas.boos@wanadoo.fr>
parents: 889
diff changeset
200 dropbear: $(HEADERS) $(LIBTOM_DEPS) Makefile
1653
76189c9ffea2 External Public-Key Authentication API (#72)
fabriziobertocci <fabriziobertocci@gmail.com>
parents: 1591
diff changeset
201 $(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBTOM_LIBS) $(LIBS) @CRYPTLIB@ $(EPKA_LIBS)
890
d50c17fe57d7 Fix linking -lcrypt for systems without libcrypt in /usr/lib
Nicolas Boos <nicolas.boos@wanadoo.fr>
parents: 889
diff changeset
202
d50c17fe57d7 Fix linking -lcrypt for systems without libcrypt in /usr/lib
Nicolas Boos <nicolas.boos@wanadoo.fr>
parents: 889
diff changeset
203 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
204 $(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
205
3899ca4b65fd Avoid linking dropbearconvert and dropbearkey to libz or libutil
Nicolas Boos <nicolas.boos@wanadoo.fr>
parents: 882
diff changeset
206 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
207 $(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
208
29
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
209 # scp doesn't use the libs so is special.
33
f789045062e6 Progressing client support
Matt Johnston <matt@ucc.asn.au>
parents: 32
diff changeset
210 scp: $(SCPOBJS) $(HEADERS) Makefile
366
59531221b846 Fix up separate-directory building for libtomcrypt
Matt Johnston <matt@ucc.asn.au>
parents: 319
diff changeset
211 $(CC) $(LDFLAGS) -o $@$(EXEEXT) $(SCPOBJS)
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
212
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
213
30
223b0f5f8dce Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents: 29
diff changeset
214 # multi-binary compilation.
223b0f5f8dce Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents: 29
diff changeset
215 MULTIOBJS=
29
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
216 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
217 MULTIOBJS=dbmulti.o $(sort $(foreach prog, $(PROGRAMS), $($(prog)objs)))
30
223b0f5f8dce Switching to the magical new Makefile, and new dbmulti style
Matt Johnston <matt@ucc.asn.au>
parents: 29
diff changeset
218 CFLAGS+=$(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
219 endif
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
220
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
221 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
222 $(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
223
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
224 multibinary: dropbearmulti$(EXEEXT)
82
8f26145a0997 do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents: 81
diff changeset
225
8f26145a0997 do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents: 81
diff changeset
226 multilink: multibinary $(addprefix link, $(PROGRAMS))
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
227
82
8f26145a0997 do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents: 81
diff changeset
228 link%:
174
c753db8eb446 * don't add a 'static' prefix to binary names
Matt Johnston <matt@ucc.asn.au>
parents: 161
diff changeset
229 -rm -f $*$(EXEEXT)
c753db8eb446 * don't add a 'static' prefix to binary names
Matt Johnston <matt@ucc.asn.au>
parents: 161
diff changeset
230 -ln -s dropbearmulti$(EXEEXT) $*$(EXEEXT)
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
231
1521
198e2ee0f4b1 - Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents: 1499
diff changeset
232 $(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
233 $(MAKE) -C libtomcrypt
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
234
1521
198e2ee0f4b1 - Fix dependencies and remove old default_options.h from version control
Matt Johnston <matt@ucc.asn.au>
parents: 1499
diff changeset
235 $(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
236 $(MAKE) -C libtommath
1295
750ec4ec4cbe Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents: 1283
diff changeset
237
366
59531221b846 Fix up separate-directory building for libtomcrypt
Matt Johnston <matt@ucc.asn.au>
parents: 319
diff changeset
238 .PHONY : clean sizes thisclean distclean tidy ltc-clean ltm-clean
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
239
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
240 ltc-clean:
1297
5abbecdecba4 Add generated header default_options.h to version control.
Matt Johnston <matt@ucc.asn.au>
parents: 1295
diff changeset
241 $(MAKE) -C libtomcrypt clean
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
242
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
243 ltm-clean:
1297
5abbecdecba4 Add generated header default_options.h to version control.
Matt Johnston <matt@ucc.asn.au>
parents: 1295
diff changeset
244 $(MAKE) -C libtommath clean
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
245
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
246 sizes: dropbear
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
247 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
248
1549
5212630893ab only clean libtom when using bundled libraries
Matt Johnston <matt@ucc.asn.au>
parents: 1521
diff changeset
249 clean: $(LIBTOM_CLEAN) thisclean
281
997e6f7dc01e Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
250
86
ace512d2ad5d Small fixes
Matt Johnston <matt@ucc.asn.au>
parents: 82
diff changeset
251 thisclean:
1448
7dddc4dd7063 EXEEXT for a few more targets, dropbearmulti in particular for Cygwin
Matt Johnston <matt@ucc.asn.au>
parents: 1447
diff changeset
252 -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
253 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
254 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
255
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
256 distclean: clean tidy
29
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
257 -rm -f config.h
0fcf63e1cb01 Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents: 24
diff changeset
258 -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
259 -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
260
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
261 tidy:
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
262 -rm -f *~ *.gcov */*~
1295
750ec4ec4cbe Convert #ifdef to #if, other build changes
Matt Johnston <matt@ucc.asn.au>
parents: 1283
diff changeset
263
1348
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
264 ## Fuzzing targets
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
265
1352
66c1cfd5e100 rename fuzzer -> fuzz-target, add list-fuzz-targets
Matt Johnston <matt@ucc.asn.au>
parents: 1351
diff changeset
266 # list of fuzz targets
1589
35af85194268 Add kexdh and kexecdh fuzzers
Matt Johnston <matt@ucc.asn.au>
parents: 1582
diff changeset
267 FUZZ_TARGETS=fuzzer-preauth fuzzer-pubkey fuzzer-verify fuzzer-preauth_nomaths fuzzer-kexdh fuzzer-kexecdh
1352
66c1cfd5e100 rename fuzzer -> fuzz-target, add list-fuzz-targets
Matt Johnston <matt@ucc.asn.au>
parents: 1351
diff changeset
268
1370
dd5d7b7141b9 create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents: 1369
diff changeset
269 FUZZER_OPTIONS = $(addsuffix .options, $(FUZZ_TARGETS))
dd5d7b7141b9 create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents: 1369
diff changeset
270
1352
66c1cfd5e100 rename fuzzer -> fuzz-target, add list-fuzz-targets
Matt Johnston <matt@ucc.asn.au>
parents: 1351
diff changeset
271 list-fuzz-targets:
66c1cfd5e100 rename fuzzer -> fuzz-target, add list-fuzz-targets
Matt Johnston <matt@ucc.asn.au>
parents: 1351
diff changeset
272 @echo $(FUZZ_TARGETS)
1348
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
273
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
274 # fuzzers that don't use libfuzzer, just a standalone harness that feeds inputs
1351
68e0e396af80 Use CXX to link fuzzer, also link with $FUZZLIB
Matt Johnston <matt@ucc.asn.au>
parents: 1348
diff changeset
275 fuzzstandalone: FUZZLIB=fuzz-harness.o
1352
66c1cfd5e100 rename fuzzer -> fuzz-target, add list-fuzz-targets
Matt Johnston <matt@ucc.asn.au>
parents: 1351
diff changeset
276 fuzzstandalone: fuzz-harness.o fuzz-targets
66c1cfd5e100 rename fuzzer -> fuzz-target, add list-fuzz-targets
Matt Johnston <matt@ucc.asn.au>
parents: 1351
diff changeset
277
66c1cfd5e100 rename fuzzer -> fuzz-target, add list-fuzz-targets
Matt Johnston <matt@ucc.asn.au>
parents: 1351
diff changeset
278 # exclude svr-main.o to avoid duplicate main
66c1cfd5e100 rename fuzzer -> fuzz-target, add list-fuzz-targets
Matt Johnston <matt@ucc.asn.au>
parents: 1351
diff changeset
279 svrfuzzobjs=$(subst svr-main.o, ,$(dropbearobjs))
1348
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
280
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
281 # build all the fuzzers. This will require fail to link unless built with
1591
b794d277c6da fix some links
Matt Johnston <matt@ucc.asn.au>
parents: 1589
diff changeset
282 # make fuzz-targets FUZZLIB=-lFuzzer.a
1348
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
283 # or similar - the library provides main().
1370
dd5d7b7141b9 create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents: 1369
diff changeset
284 fuzz-targets: $(FUZZ_TARGETS) $(FUZZER_OPTIONS)
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 fuzzer-preauth: fuzzer-preauth.o $(HEADERS) $(LIBTOM_DEPS) Makefile $(svrfuzzobjs)
1351
68e0e396af80 Use CXX to link fuzzer, also link with $FUZZLIB
Matt Johnston <matt@ucc.asn.au>
parents: 1348
diff changeset
287 $(CXX) $(CXXFLAGS) $@.o $(LDFLAGS) $(svrfuzzobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
1348
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
288
1456
a90fdd2d2ed8 add fuzzer-preauth_nomaths
Matt Johnston <matt@ucc.asn.au>
parents: 1455
diff changeset
289 fuzzer-preauth_nomaths: fuzzer-preauth_nomaths.o $(HEADERS) $(LIBTOM_DEPS) Makefile $(svrfuzzobjs)
a90fdd2d2ed8 add fuzzer-preauth_nomaths
Matt Johnston <matt@ucc.asn.au>
parents: 1455
diff changeset
290 $(CXX) $(CXXFLAGS) $@.o $(LDFLAGS) $(svrfuzzobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
a90fdd2d2ed8 add fuzzer-preauth_nomaths
Matt Johnston <matt@ucc.asn.au>
parents: 1455
diff changeset
291
1369
ddfcadca3c4c fuzzer-pubkey
Matt Johnston <matt@ucc.asn.au>
parents: 1361
diff changeset
292 fuzzer-pubkey: fuzzer-pubkey.o $(HEADERS) $(LIBTOM_DEPS) Makefile $(svrfuzzobjs)
ddfcadca3c4c fuzzer-pubkey
Matt Johnston <matt@ucc.asn.au>
parents: 1361
diff changeset
293 $(CXX) $(CXXFLAGS) $@.o $(LDFLAGS) $(svrfuzzobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
ddfcadca3c4c fuzzer-pubkey
Matt Johnston <matt@ucc.asn.au>
parents: 1361
diff changeset
294
1380
d201105df2ed add fuzzer-verify
Matt Johnston <matt@ucc.asn.au>
parents: 1370
diff changeset
295 fuzzer-verify: fuzzer-verify.o $(HEADERS) $(LIBTOM_DEPS) Makefile $(svrfuzzobjs)
d201105df2ed add fuzzer-verify
Matt Johnston <matt@ucc.asn.au>
parents: 1370
diff changeset
296 $(CXX) $(CXXFLAGS) $@.o $(LDFLAGS) $(svrfuzzobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
d201105df2ed add fuzzer-verify
Matt Johnston <matt@ucc.asn.au>
parents: 1370
diff changeset
297
1589
35af85194268 Add kexdh and kexecdh fuzzers
Matt Johnston <matt@ucc.asn.au>
parents: 1582
diff changeset
298 fuzzer-kexdh: fuzzer-kexdh.o $(HEADERS) $(LIBTOM_DEPS) Makefile $(svrfuzzobjs)
35af85194268 Add kexdh and kexecdh fuzzers
Matt Johnston <matt@ucc.asn.au>
parents: 1582
diff changeset
299 $(CXX) $(CXXFLAGS) $@.o $(LDFLAGS) $(svrfuzzobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
35af85194268 Add kexdh and kexecdh fuzzers
Matt Johnston <matt@ucc.asn.au>
parents: 1582
diff changeset
300
35af85194268 Add kexdh and kexecdh fuzzers
Matt Johnston <matt@ucc.asn.au>
parents: 1582
diff changeset
301 fuzzer-kexecdh: fuzzer-kexecdh.o $(HEADERS) $(LIBTOM_DEPS) Makefile $(svrfuzzobjs)
35af85194268 Add kexdh and kexecdh fuzzers
Matt Johnston <matt@ucc.asn.au>
parents: 1582
diff changeset
302 $(CXX) $(CXXFLAGS) $@.o $(LDFLAGS) $(svrfuzzobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
35af85194268 Add kexdh and kexecdh fuzzers
Matt Johnston <matt@ucc.asn.au>
parents: 1582
diff changeset
303
1370
dd5d7b7141b9 create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents: 1369
diff changeset
304 fuzzer-%.options: Makefile
dd5d7b7141b9 create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents: 1369
diff changeset
305 echo "[libfuzzer]" > $@
dd5d7b7141b9 create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents: 1369
diff changeset
306 echo "max_len = 50000" >> $@
dd5d7b7141b9 create fuzzer .options files
Matt Johnston <matt@ucc.asn.au>
parents: 1369
diff changeset
307
1348
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
308 # run this to update hardcoded hostkeys for for fuzzing.
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
309 # hostkeys.c is checked in to hg.
5c2899e35b63 fuzz harness
Matt Johnston <matt@ucc.asn.au>
parents: 1347
diff changeset
310 fuzz-hostkeys:
1347
b28624698130 copy over some fuzzing code from AFL branch
Matt Johnston <matt@ucc.asn.au>
parents: 1283
diff changeset
311 dropbearkey -t rsa -f keyr
b28624698130 copy over some fuzzing code from AFL branch
Matt Johnston <matt@ucc.asn.au>
parents: 1283
diff changeset
312 dropbearkey -t dss -f keyd
b28624698130 copy over some fuzzing code from AFL branch
Matt Johnston <matt@ucc.asn.au>
parents: 1283
diff changeset
313 dropbearkey -t ecdsa -size 256 -f keye
b28624698130 copy over some fuzzing code from AFL branch
Matt Johnston <matt@ucc.asn.au>
parents: 1283
diff changeset
314 echo > hostkeys.c
b28624698130 copy over some fuzzing code from AFL branch
Matt Johnston <matt@ucc.asn.au>
parents: 1283
diff changeset
315 /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
316 /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
317 /usr/bin/xxd -i -a keyd >> hostkeys.c