a20c0d0f67
All client version information is moved to version.cpp, which optionally (-DHAVE_BUILD_INFO) includes build.h. build.h is automatically generated on supporting platforms via contrib/genbuild.sh, using git describe. The git export-subst attribute is used to put the commit id statically in version.cpp inside generated archives, and this value is used if no build.h is present. The gitian descriptors are modified to use git archive instead of a copy, to create the src/ directory in the output. This way, src/src/version.cpp will contain the static commit id. To prevent gitian builds from getting the "-dirty" marker in their git-describe generated identifiers, no touching of files or running sed on the makefile is performed anymore. This does not seem to influence determinism.
138 lines
3.1 KiB
Makefile
138 lines
3.1 KiB
Makefile
# -*- mode: Makefile; -*-
|
|
# Copyright (c) 2011 Bitcoin Developers
|
|
# Distributed under the MIT/X11 software license, see the accompanying
|
|
# file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
# Mac OS X makefile for bitcoin
|
|
# Originally by Laszlo Hanyecz (solar@heliacal.net)
|
|
|
|
CXX=llvm-g++
|
|
DEPSDIR=/opt/local
|
|
|
|
INCLUDEPATHS= \
|
|
-I"$(CURDIR)" \
|
|
-I"$(DEPSDIR)/include" \
|
|
-I"$(DEPSDIR)/include/db48"
|
|
|
|
LIBPATHS= \
|
|
-L"$(DEPSDIR)/lib" \
|
|
-L"$(DEPSDIR)/lib/db48"
|
|
|
|
USE_UPNP:=1
|
|
|
|
LIBS= -dead_strip
|
|
ifdef STATIC
|
|
# Build STATIC if you are redistributing the bitcoind binary
|
|
TESTLIBS += \
|
|
$(DEPSDIR)/lib/libboost_unit_test_framework-mt.a
|
|
LIBS += \
|
|
$(DEPSDIR)/lib/db48/libdb_cxx-4.8.a \
|
|
$(DEPSDIR)/lib/libboost_system-mt.a \
|
|
$(DEPSDIR)/lib/libboost_filesystem-mt.a \
|
|
$(DEPSDIR)/lib/libboost_program_options-mt.a \
|
|
$(DEPSDIR)/lib/libboost_thread-mt.a \
|
|
$(DEPSDIR)/lib/libssl.a \
|
|
$(DEPSDIR)/lib/libcrypto.a \
|
|
-lz
|
|
else
|
|
TESTLIBS += \
|
|
-lboost_unit_test_framework-mt
|
|
LIBS += \
|
|
-ldb_cxx-4.8 \
|
|
-lboost_system-mt \
|
|
-lboost_filesystem-mt \
|
|
-lboost_program_options-mt \
|
|
-lboost_thread-mt \
|
|
-lssl \
|
|
-lcrypto \
|
|
-lz
|
|
TESTDEFS += -DBOOST_TEST_DYN_LINK
|
|
endif
|
|
|
|
DEFS=-DMAC_OSX -DMSG_NOSIGNAL=0
|
|
|
|
ifdef RELEASE
|
|
# Compile for maximum compatibility and smallest size.
|
|
# This requires that dependencies are compiled
|
|
# the same way.
|
|
CFLAGS = -mmacosx-version-min=10.5 -arch i386 -O3
|
|
else
|
|
CFLAGS = -g
|
|
endif
|
|
|
|
# ppc doesn't work because we don't support big-endian
|
|
CFLAGS += -Wextra -Wno-sign-compare -Wno-char-subscripts -Wno-invalid-offsetof -Wformat-security \
|
|
$(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
|
|
|
|
OBJS= \
|
|
obj/version.o \
|
|
obj/checkpoints.o \
|
|
obj/netbase.o \
|
|
obj/addrman.o \
|
|
obj/crypter.o \
|
|
obj/key.o \
|
|
obj/db.o \
|
|
obj/init.o \
|
|
obj/irc.o \
|
|
obj/keystore.o \
|
|
obj/main.o \
|
|
obj/net.o \
|
|
obj/protocol.o \
|
|
obj/bitcoinrpc.o \
|
|
obj/rpcdump.o \
|
|
obj/script.o \
|
|
obj/util.o \
|
|
obj/wallet.o \
|
|
obj/noui.o
|
|
|
|
ifdef USE_UPNP
|
|
DEFS += -DUSE_UPNP=$(USE_UPNP)
|
|
ifdef STATIC
|
|
LIBS += $(DEPSDIR)/lib/libminiupnpc.a
|
|
else
|
|
LIBS += -lminiupnpc
|
|
endif
|
|
endif
|
|
|
|
all: bitcoind
|
|
|
|
# auto-generated dependencies:
|
|
-include obj/*.P
|
|
-include obj-test/*.P
|
|
|
|
build.h: FORCE
|
|
@../share/genbuild.sh build.h
|
|
DEFS += -DHAVE_BUILD_INFO
|
|
|
|
obj/%.o: %.cpp
|
|
$(CXX) -c $(CFLAGS) -MMD -o $@ $<
|
|
@cp $(@:%.o=%.d) $(@:%.o=%.P); \
|
|
sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
|
|
-e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
|
|
rm -f $(@:%.o=%.d)
|
|
|
|
bitcoind: build.h $(OBJS:obj/%=obj/%)
|
|
$(CXX) $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
|
|
|
|
TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
|
|
|
|
obj-test/%.o: test/%.cpp
|
|
$(CXX) -c $(TESTDEFS) $(CFLAGS) -MMD -o $@ $<
|
|
@cp $(@:%.o=%.d) $(@:%.o=%.P); \
|
|
sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
|
|
-e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
|
|
rm -f $(@:%.o=%.d)
|
|
|
|
test_bitcoin: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
|
|
$(CXX) $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS) $(TESTLIBS)
|
|
|
|
clean:
|
|
-rm -f bitcoind test_bitcoin
|
|
-rm -f obj/*.o
|
|
-rm -f obj-test/*.o
|
|
-rm -f obj/*.P
|
|
-rm -f obj-test/*.P
|
|
-rm -f src/build.h
|
|
|
|
FORCE:
|