From 4f6033ba29ab2bb8a5150e0b4dab8657413c7b58 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 21 Feb 2017 15:15:28 +1030 Subject: [PATCH] bitcoin: fix building of submodules libbase58 submodule. This does it properly, as learned from Stack Overflow. Signed-off-by: Rusty Russell --- bitcoin/Makefile | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/bitcoin/Makefile b/bitcoin/Makefile index a1d9d39fd..49e47d7c8 100644 --- a/bitcoin/Makefile +++ b/bitcoin/Makefile @@ -26,15 +26,10 @@ LIBBASE58_SRC := bitcoin/libbase58/base58.c # Can't be inside submodule, as that makes git think it's dirty. LIBBASE58_OBJS := bitcoin/libbase58.o -# Git submodules are seriously broken. -bitcoin/libbase58/libbase58.h: +# Wildcards here are magic. See http://stackoverflow.com/questions/2973445/gnu-makefile-rule-generating-a-few-targets-from-a-single-source-file +bitcoin/libbase58/libbase58.% bitcoin/libbase58/base58.%: git submodule update bitcoin/libbase58/ [ -f $@ ] || git submodule update --init bitcoin/libbase58/ -# If we tell Make that the above builds both, it runs it twice in -# parallel. So we lie :( -bitcoin/libbase58/base58.c: bitcoin/libbase58/libbase58.h - [ -f $@ ] - bitcoin/libbase58.o: bitcoin/libbase58/base58.c $(COMPILE.c) $(OUTPUT_OPTION) $<