2017-01-10 15:37:51 +10:30
#! /usr/bin/make
# Designed to be run one level up
lightningd-wrongdir :
$( MAKE) -C .. lightningd-all
2017-08-29 13:42:04 +09:30
LIGHTNINGD_PROGRAM := lightningd/lightningd
2017-07-05 15:03:40 +09:30
2017-08-29 13:42:04 +09:30
ALL_PROGRAMS += $( LIGHTNINGD_PROGRAM)
2017-08-29 01:41:01 +09:30
2017-08-29 13:42:04 +09:30
lightningd-all : $( LIGHTNINGD_PROGRAM )
2017-01-10 15:37:51 +10:30
default : lightningd -all
2017-08-29 01:32:01 +09:30
# Common source we use.
LIGHTNINGD_COMMON_OBJS := \
2018-05-10 08:48:19 +09:30
common/base32.o \
2017-11-22 10:55:01 +10:30
common/bech32.o \
2018-04-23 16:20:55 +02:00
common/bech32_util.o \
2017-08-29 01:35:01 +09:30
common/bip32.o \
2017-11-22 10:55:39 +10:30
common/bolt11.o \
2017-08-29 01:35:01 +09:30
common/channel_config.o \
2017-08-29 01:34:01 +09:30
common/configdir.o \
2017-10-11 20:26:50 +10:30
common/crypto_state.o \
2018-03-29 12:36:45 +10:30
common/daemon.o \
2017-08-29 01:32:01 +09:30
common/derive_basepoints.o \
2018-01-12 13:35:52 +00:00
common/features.o \
2017-08-29 01:32:01 +09:30
common/funding_tx.o \
2018-02-19 11:36:15 +10:30
common/gen_peer_status_wire.o \
2018-02-08 11:55:12 +10:30
common/gen_status_wire.o \
2017-10-26 13:34:19 +10:30
common/hash_u5.o \
2017-08-29 01:34:01 +09:30
common/htlc_state.o \
2017-08-29 01:35:01 +09:30
common/htlc_wire.o \
common/key_derive.o \
2018-09-26 20:57:43 +02:00
common/io_lock.o \
2017-08-29 01:34:01 +09:30
common/json.o \
2018-12-08 11:09:28 +10:30
common/json_escaped.o \
2019-01-15 14:24:27 +10:30
common/json_helpers.o \
2018-12-08 11:09:28 +10:30
common/json_tok.o \
2017-12-15 20:47:54 +10:30
common/memleak.o \
2017-08-29 01:35:01 +09:30
common/msg_queue.o \
2018-12-08 11:09:28 +10:30
common/param.o \
2017-08-29 01:32:01 +09:30
common/permute_tx.o \
2017-08-29 01:34:01 +09:30
common/pseudorand.o \
2017-08-29 01:35:01 +09:30
common/sphinx.o \
2018-02-08 11:55:12 +10:30
common/status_wire.o \
2017-08-29 01:34:01 +09:30
common/timeout.o \
2017-08-29 01:32:01 +09:30
common/type_to_string.o \
common/utils.o \
2017-08-29 01:35:01 +09:30
common/utxo.o \
2017-08-29 01:32:01 +09:30
common/version.o \
2018-04-05 14:19:47 -05:00
common/wallet_tx.o \
gossipd: rewrite to do the handshake internally.
Now the flow is much simpler from a lightningd POV:
1. If we want to connect to a peer, just send gossipd `gossipctl_reach_peer`.
2. Every new peer, gossipd hands up to lightningd, with global/local features
and the peer fd and a gossip fd using `gossip_peer_connected`
3. If lightningd doesn't want it, it just hands the peerfd and global/local
features back to gossipd using `gossipctl_handle_peer`
4. If a peer sends a non-gossip msg (eg `open_channel`) the gossipd sends
it up using `gossip_peer_nongossip`.
5. If lightningd wants to fund a channel, it simply calls `release_channel`.
Notes:
* There's no more "unique_id": we use the peer id.
* For the moment, we don't ask gossipd when we're told to list peers, so
connected peers without a channel don't appear in the JSON getpeers API.
* We add a `gossipctl_peer_addrhint` for the moment, so you can connect to
a specific ip/port, but using other sources is a TODO.
* We now (correctly) only give up on reaching a peer after we exchange init
messages, which changes the test_disconnect case.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-10-11 20:39:49 +10:30
common/wire_error.o \
2017-10-23 14:47:38 +10:30
common/wireaddr.o \
2018-09-20 12:36:42 +09:30
common/withdraw_tx.o \
2018-09-20 12:36:42 +09:30
hsmd/gen_hsm_wire.o
2017-08-29 01:32:01 +09:30
2017-01-10 15:37:51 +10:30
LIGHTNINGD_SRC := \
2017-08-29 01:34:01 +09:30
lightningd/bitcoind.c \
lightningd/chaintopology.c \
2018-02-12 20:42:55 +10:30
lightningd/channel.c \
2018-02-21 07:29:09 +10:30
lightningd/channel_control.c \
2018-02-21 07:29:09 +10:30
lightningd/closing_control.c \
2018-02-21 07:29:09 +10:30
lightningd/connect_control.c \
2017-01-10 15:38:33 +10:30
lightningd/gossip_control.c \
2017-08-29 01:35:01 +09:30
lightningd/gossip_msg.c \
2017-01-10 15:38:33 +10:30
lightningd/hsm_control.c \
2017-08-29 01:34:01 +09:30
lightningd/htlc_end.c \
lightningd/invoice.c \
2018-03-16 03:45:08 +00:00
lightningd/json.c \
2018-11-20 12:16:32 +10:30
lightningd/json_stream.c \
2017-08-29 01:34:01 +09:30
lightningd/jsonrpc.c \
2017-01-10 15:38:33 +10:30
lightningd/lightningd.c \
2017-08-29 01:34:01 +09:30
lightningd/log.c \
2018-02-05 14:39:27 +10:30
lightningd/log_status.c \
2018-11-22 12:47:29 +10:30
lightningd/memdump.c \
2018-12-12 14:36:11 +01:00
lightningd/notification.c \
2018-02-21 07:29:09 +10:30
lightningd/onchain_control.c \
2018-02-21 07:29:04 +10:30
lightningd/opening_control.c \
2017-08-29 01:34:01 +09:30
lightningd/options.c \
2017-04-01 23:35:29 +10:30
lightningd/pay.c \
2018-02-15 03:32:03 +00:00
lightningd/payalgo.c \
2017-01-10 15:38:33 +10:30
lightningd/peer_control.c \
2017-06-20 15:15:03 +09:30
lightningd/peer_htlcs.c \
2018-09-12 05:27:11 +09:30
lightningd/ping.c \
2018-09-19 22:19:51 +02:00
lightningd/plugin.c \
2017-08-29 01:34:01 +09:30
lightningd/subd.c \
lightningd/watch.c
2017-01-10 15:37:51 +10:30
2018-11-22 12:47:29 +10:30
LIGHTNINGD_OBJS := $( LIGHTNINGD_SRC:.c= .o)
2017-01-10 15:37:51 +10:30
2017-08-29 01:43:01 +09:30
# Make sure these depend on everything.
ALL_OBJS += $( LIGHTNINGD_OBJS)
2017-01-13 10:48:11 +10:30
# We accumulate all lightningd/ headers in these three:
LIGHTNINGD_HEADERS_NOGEN = \
2017-08-29 01:34:01 +09:30
$( LIGHTNINGD_SRC:.c= .h) \
2018-12-08 11:09:28 +10:30
lightningd/channel_state.h
2017-01-13 10:48:11 +10:30
# Generated headers
LIGHTNINGD_HEADERS_GEN = \
2018-02-19 11:36:14 +10:30
lightningd/gen_channel_state_names.h
2017-01-13 10:48:11 +10:30
2017-08-29 13:42:04 +09:30
ALL_GEN_HEADERS += $( LIGHTNINGD_HEADERS_GEN)
2018-09-12 05:52:49 +09:30
i n c l u d e w a l l e t / M a k e f i l e
2017-01-13 10:48:11 +10:30
# All together in one convenient var
2018-09-12 05:53:31 +09:30
LIGHTNINGD_HEADERS = $( LIGHTNINGD_HEADERS_NOGEN) $( LIGHTNINGD_HEADERS_GEN) $( WALLET_LIB_HEADERS)
2017-01-13 10:48:11 +10:30
2017-11-27 16:17:43 +01:00
$(LIGHTNINGD_OBJS) : $( LIGHTNINGD_HEADERS )
2017-01-12 14:15:30 +01:00
2018-02-19 11:36:14 +10:30
lightningd/gen_channel_state_names.h : lightningd /channel_state .h ccan /ccan /cdump /tools /cdump -enumstr
ccan/ccan/cdump/tools/cdump-enumstr lightningd/channel_state.h > $@
2017-05-22 20:54:59 +09:30
2017-08-29 01:34:01 +09:30
check-source : $( LIGHTNINGD_SRC :%=check -src -include -order /%) $( LIGHTNINGD_SRC_NOHDR :%=check -src -include -order /%)
2017-01-13 10:48:11 +10:30
check-source : $( LIGHTNINGD_HEADERS_NOGEN :%=check -hdr -include -order /%)
2017-08-29 01:35:01 +09:30
check-source-bolt : $( LIGHTNINGD_SRC :%=bolt -check /%) $( LIGHTNINGD_HEADERS_NOGEN :%=bolt -check /%)
2017-01-10 15:37:51 +10:30
2017-08-29 01:35:01 +09:30
check-whitespace : $( LIGHTNINGD_SRC :%=check -whitespace /%) $( LIGHTNINGD_HEADERS_NOGEN :%=check -whitespace /%)
2017-01-10 15:37:51 +10:30
2017-01-13 10:48:11 +10:30
check-makefile : check -lightningd -makefile
2017-01-10 15:37:51 +10:30
check-lightningd-makefile :
2017-01-13 10:48:11 +10:30
@for f in lightningd/*.h lightningd/*/*.h; do if ! echo $( LIGHTNINGD_HEADERS_NOGEN) $( LIGHTNINGD_HEADERS_GEN) "" | grep -q " $$ f " ; then echo $$ f not mentioned in LIGHTNINGD_HEADERS_NOGEN or LIGHTNINGD_HEADERS_GEN >& 2; exit 1; fi ; done
2017-01-10 15:37:51 +10:30
2018-09-26 20:57:43 +02:00
lightningd/lightningd : $( LIGHTNINGD_OBJS ) $( LIGHTNINGD_COMMON_OBJS ) $( BITCOIN_OBJS ) $( WIRE_OBJS ) $( WIRE_ONION_OBJS ) $( LIGHTNINGD_HANDSHAKE_CONTROL_OBJS ) $( LIGHTNINGD_GOSSIP_CONTROL_OBJS ) $( LIGHTNINGD_OPENING_CONTROL_OBJS ) $( LIGHTNINGD_CHANNEL_CONTROL_OBJS ) $( LIGHTNINGD_CLOSING_CONTROL_OBJS ) $( LIGHTNINGD_ONCHAIN_CONTROL_OBJS ) $( WALLET_LIB_OBJS ) $( LIGHTNINGD_CONNECT_CONTROL_OBJS )
2017-01-10 15:37:51 +10:30
clean : lightningd -clean
lightningd-clean :
2017-11-23 13:33:07 +10:30
$( RM) $( LIGHTNINGD_OBJS) $( LIGHTNINGD_JSMN_OBJS) $( LIGHTNINGD_PROGRAM) lightningd/gen*
2017-01-10 15:37:51 +10:30
2017-01-10 15:38:33 +10:30
i n c l u d e l i g h t n i n g d / t e s t / M a k e f i l e