Mercurial > dropbear
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 |
rev | line source |
---|---|
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
1 # This Makefile is for Dropbear SSH Server and Client |
161 | 2 # @configure_input@ |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
3 |
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
4 # invocation: |
1447
8f88f4290b22
document --enable-static in place of STATIC=1
Matt Johnston <matt@ucc.asn.au>
parents:
1446
diff
changeset
|
5 # make PROGRAMS="dropbear dbclient scp" MULTI=1 SCPPROGRESS=1 |
281
997e6f7dc01e
Just import the Dropbear 0.47 libtomcrypt changes
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
6 # |
1447
8f88f4290b22
document --enable-static in place of STATIC=1
Matt Johnston <matt@ucc.asn.au>
parents:
1446
diff
changeset
|
7 # to make a multiple-program binary "dropbearmulti". |
82
8f26145a0997
do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents:
81
diff
changeset
|
8 # This example will include dropbear, scp, dropbearkey, dropbearconvert, and |
8f26145a0997
do the symlinks for multi-binary compiles
Matt Johnston <matt@ucc.asn.au>
parents:
81
diff
changeset
|
9 # dbclient functionality, and includes the progress-bar functionality in scp. |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
10 |
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
11 ifndef PROGRAMS |
73
0bf5cebe622c
Dropbearkey can now print out pubkey portions
Matt Johnston <matt@ucc.asn.au>
parents:
68
diff
changeset
|
12 PROGRAMS=dropbear dbclient dropbearkey dropbearconvert |
29
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
13 endif |
0fcf63e1cb01
Totally reworked Makefile.in
Matt Johnston <matt@ucc.asn.au>
parents:
24
diff
changeset
|
14 |
898
4f1988cb79ce
Fix building with system libtomcrypt/libtommath
Matt Johnston <matt@ucc.asn.au>
parents:
890
diff
changeset
|
15 STATIC_LTC=libtomcrypt/libtomcrypt.a |
4f1988cb79ce
Fix building with system libtomcrypt/libtommath
Matt Johnston <matt@ucc.asn.au>
parents:
890
diff
changeset
|
16 STATIC_LTM=libtommath/libtommath.a |
4f1988cb79ce
Fix building with system libtomcrypt/libtommath
Matt Johnston <matt@ucc.asn.au>
parents:
890
diff
changeset
|
17 |
4f1988cb79ce
Fix building with system libtomcrypt/libtommath
Matt Johnston <matt@ucc.asn.au>
parents:
890
diff
changeset
|
18 LIBTOM_LIBS=@LIBTOM_LIBS@ |
4
fe6bca95afa7
Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
19 |
585
d194db6f9453
Use system libtomcrypt/libtommath if available. Doesn't currently
Matt Johnston <matt@ucc.asn.au>
parents:
570
diff
changeset
|
20 ifeq (@BUNDLED_LIBTOM@, 1) |
898
4f1988cb79ce
Fix building with system libtomcrypt/libtommath
Matt Johnston <matt@ucc.asn.au>
parents:
890
diff
changeset
|
21 LIBTOM_DEPS=$(STATIC_LTC) $(STATIC_LTM) |
1549
5212630893ab
only clean libtom when using bundled libraries
Matt Johnston <matt@ucc.asn.au>
parents:
1521
diff
changeset
|
22 LIBTOM_CLEAN=ltc-clean ltm-clean |
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 | 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 | 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 | 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 | 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 | 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 | 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 | 264 ## Fuzzing targets |
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 | 273 |
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 | 280 |
281 # build all the fuzzers. This will require fail to link unless built with | |
1591 | 282 # make fuzz-targets FUZZLIB=-lFuzzer.a |
1348 | 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 | 285 |
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 | 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 | 292 fuzzer-pubkey: fuzzer-pubkey.o $(HEADERS) $(LIBTOM_DEPS) Makefile $(svrfuzzobjs) |
293 $(CXX) $(CXXFLAGS) $@.o $(LDFLAGS) $(svrfuzzobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@ | |
294 | |
1380 | 295 fuzzer-verify: fuzzer-verify.o $(HEADERS) $(LIBTOM_DEPS) Makefile $(svrfuzzobjs) |
296 $(CXX) $(CXXFLAGS) $@.o $(LDFLAGS) $(svrfuzzobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@ | |
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 | 308 # run this to update hardcoded hostkeys for for fuzzing. |
309 # hostkeys.c is checked in to hg. | |
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 |