Forum Home
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular

    [Dev] Documenting Feathercoin Specific Software settings - Part 18

    Technical Development
    1
    53
    8535
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • wrapper
      wrapper Moderators last edited by

      Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

      Updated ACP key pair :: commit

      https://github.com/FeatherCoin/Feathercoin/commit/9f3b0fe4daed6490565b1f918415b03243ce2932

      src/checkpointsync.cpp

       //sync-checkpoint master key
       +// for Version <= 0.9.6
      

      Code added

       -const std::string CSyncCheckpoint::strMainPubKey = "04810a50a45c847e2b3741cf4db2b678bc98e7a67d9218594fbf2d17cab5e2787b07ea56b3ba527d80a9b203623c637d2257cc849cd0f6710839dfcf34a930b4b0";
      
        +// fro Version <= 0.9.6.1
        +const std::string CSyncCheckpoint::strMainPubKey = "04c67c0114bc7cb8bb84ee0f3319e1df3339d335a15bdb04605cf2655d19212848a66d4535f3c91e943061474b7cacfd4eaa10835d35a8d4e431c68a4c4f5450ba";
      

      Code replaced

      1 Reply Last reply Reply Quote 0
      • wrapper
        wrapper Moderators last edited by

        Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

        Fixed issue # 170 :: commit

        [ 0.9.6 ] enforcecheckpoint config file parameter is reversed #170

        When the parameter ‘enfocecheckpoint=0’ is defined checkpoints are enforced and if ‘enforcecheckpoint=1’ is defined ACP is running in advisory mode

        https://github.com/FeatherCoin/Feathercoin/commit/922e3601f9366e443709164598d7d032892d6aeb

        src/main.cpp

          -        // checkpoint advisory mode
         +        // if not in checkpoint advisory mode
         -        if (!IsSyncCheckpointEnforced() && !CheckSyncCheckpoint(hash, pindexPrev))
         +        if (IsSyncCheckpointEnforced() && !CheckSyncCheckpoint(hash, pindexPrev))
        

        Code replaced

        1 Reply Last reply Reply Quote 0
        • wrapper
          wrapper Moderators last edited by

          Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

          Added depends folder from bitcoin’s tree to build all dependencies. :: commit

          Auto build

          https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

          .gitignore

           +src/**Makefile
           +/src/test/Makefile
           +/src/qt/test/Makefile
           +/src/qt/Makefile
           +/src/Makefile
           +/src/config/stamp-h1
           +/src/config/bitcoin-config.h.in
           +/src/config/bitcoin-config.h
           +/Makefile
           +/libtool
          

          Code updated / tidied

          1 Reply Last reply Reply Quote 0
          • wrapper
            wrapper Moderators last edited by wrapper

            Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

            Added depends folder from bitcoin’s tree to build all dependencies. :: commit

            Auto build

            https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

            depends/.gitignore

             +SDKs/
             +work/
             +built/
             +sources/
             +config.site
             +x86_64*
             +i686*
             +mips*
             +arm*
             +aarch64*
            

            Code added

            1 Reply Last reply Reply Quote 0
            • wrapper
              wrapper Moderators last edited by

              Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

              Added depends folder from bitcoin’s tree to build all dependencies. :: commit

              Auto build

              https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

              depends/Makefile

               +.NOTPARALLEL :
               +
               +SOURCES_PATH ?= $(BASEDIR)/sources
               +BASE_CACHE ?= $(BASEDIR)/built
               +SDK_PATH ?= $(BASEDIR)/SDKs
               +NO_QT ?=
               +NO_WALLET ?=
               +NO_UPNP ?=
               +FALLBACK_DOWNLOAD_PATH ?= https://bitcoincore.org/depends-sources
               +
               +BUILD = $(shell ./config.guess)
               +HOST ?= $(BUILD)
               +PATCHES_PATH = $(BASEDIR)/patches
               +BASEDIR = $(CURDIR)
               +HASH_LENGTH:=11
               +DOWNLOAD_CONNECT_TIMEOUT:=10
               +DOWNLOAD_RETRIES:=3
               +HOST_ID_SALT ?= salt
               +BUILD_ID_SALT ?= salt
               +
               +host:=$(BUILD)
               +ifneq ($(HOST),)
               +host:=$(HOST)
               +host_toolchain:=$(HOST)-
               +endif
               +
               +ifneq ($(DEBUG),)
               +release_type=debug
               +else
               +release_type=release
               +endif
               +
              

              Example code from makefile, review compile file?

              1 Reply Last reply Reply Quote 0
              • wrapper
                wrapper Moderators last edited by

                Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                Auto build

                https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                depends/README.md

                 +### Usage
                 +
                 +To build dependencies for the current arch+OS:
                 +
                 +    make
                 +
                 +To build for another arch/OS:
                 +
                 +    make HOST=host-platform-triplet
                 +
                 +For example:
                 +
                 +    make HOST=x86_64-w64-mingw32 -j4
                 +
                 +A prefix will be generated that's suitable for plugging into Bitcoin's
                 +configure. In the above example, a dir named x86_64-w64-mingw32 will be
                 +created. To use it for Bitcoin:
                 +
                 +    ./configure --prefix=`pwd`/depends/x86_64-w64-mingw32
                 +
                 +Common `host-platform-triplets` for cross compilation are:
                 +
                 +- `i686-w64-mingw32` for Win32
                 +- `x86_64-w64-mingw32` for Win64
                 +- `x86_64-apple-darwin11` for MacOSX
                 +- `arm-linux-gnueabihf` for Linux ARM 32 bit
                 +- `aarch64-linux-gnu` for Linux ARM 64 bit
                 +
                 +No other options are needed, the paths are automatically configured.
                 +
                 +Dependency Options:
                 +The following can be set when running make: make FOO=bar
                 +
                 +    SOURCES_PATH: downloaded sources will be placed here
                 +    BASE_CACHE: built packages will be placed here
                 +    SDK_PATH: Path where sdk's can be found (used by OSX)
                 +    FALLBACK_DOWNLOAD_PATH: If a source file can't be fetched, try here before giving up
                 +    NO_QT: Don't download/build/cache qt and its dependencies
                 +    NO_WALLET: Don't download/build/cache libs needed to enable the wallet
                 +    NO_UPNP: Don't download/build/cache packages needed for enabling upnp
                 +    DEBUG: disable some optimizations and enable more runtime checking
                 +    HOST_ID_SALT: Optional salt to use when generating host package ids
                 +    BUILD_ID_SALT: Optional salt to use when generating build package ids
                 +
                 +If some packages are not built, for example `make NO_WALLET=1`, the appropriate
                 +options will be passed to bitcoin's configure. In this case, `--disable-wallet`.
                 +
                 +Additional targets:
                 +
                 +    download: run 'make download' to fetch all sources without building them
                 +    download-osx: run 'make download-osx' to fetch all sources needed for osx builds
                 +    download-win: run 'make download-win' to fetch all sources needed for win builds
                 +    download-linux: run 'make download-linux' to fetch all sources needed for linux builds
                 +
                 +### Other documentation
                 +
                 +- [description.md](description.md): General description of the depends system
                 +- [packages.md](packages.md): Steps for adding packages
                 +
                

                New file added

                1 Reply Last reply Reply Quote 0
                • wrapper
                  wrapper Moderators last edited by

                  Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                  Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                  Auto build

                  https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                  depends/builders/darwin.mk

                   +build_darwin_CC: = $(shell xcrun -f clang)
                   +build_darwin_CXX: = $(shell xcrun -f clang++)
                   +build_darwin_AR: = $(shell xcrun -f ar)
                   +build_darwin_RANLIB: = $(shell xcrun -f ranlib)
                   +build_darwin_STRIP: = $(shell xcrun -f strip)
                   +build_darwin_OTOOL: = $(shell xcrun -f otool)
                   +build_darwin_NM: = $(shell xcrun -f nm)
                   +build_darwin_INSTALL_NAME_TOOL:=$(shell xcrun -f install_name_tool)
                   +build_darwin_SHA256SUM = shasum -a 256
                   +build_darwin_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o
                   +
                   +#darwin host on darwin builder. overrides darwin host preferences.
                   +darwin_CC=$(shell xcrun -f clang) -mmacosx-version-min=$(OSX_MIN_VERSION)
                   +darwin_CXX:=$(shell xcrun -f clang++) -mmacosx-version-min=$(OSX_MIN_VERSION) -stdlib=libc++
                   +darwin_AR:=$(shell xcrun -f ar)
                   +darwin_RANLIB:=$(shell xcrun -f ranlib)
                   +darwin_STRIP:=$(shell xcrun -f strip)
                   +darwin_LIBTOOL:=$(shell xcrun -f libtool)
                   +darwin_OTOOL:=$(shell xcrun -f otool)
                   +darwin_NM:=$(shell xcrun -f nm)
                   +darwin_INSTALL_NAME_TOOL:=$(shell xcrun -f install_name_tool)
                   +darwin_native_toolchain=
                  

                  Code added

                  1 Reply Last reply Reply Quote 0
                  • wrapper
                    wrapper Moderators last edited by

                    Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                    Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                    Auto build

                    https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                    depends/builders/default.mk

                     +default_build_CC = gcc
                     +default_build_CXX = g++
                     +default_build_AR = ar
                     +default_build_RANLIB = ranlib
                     +default_build_STRIP = strip
                     +default_build_NM = nm
                     +default_build_OTOOL = otool
                     +default_build_INSTALL_NAME_TOOL = install_name_tool
                     +
                     +define add_build_tool_func
                     +build_$(build_os)_$1 ?= $$(default_build_$1)
                     +build_$(build_arch)_$(build_os)_$1 ?= $$(build_$(build_os)_$1)
                     +build_$1=$$(build_$(build_arch)_$(build_os)_$1)
                     +endef
                     +$(foreach var,CC CXX AR RANLIB NM STRIP SHA256SUM DOWNLOAD OTOOL INSTALL_NAME_TOOL,$(eval $(call add_build_tool_func,$(var))))
                     +define add_build_flags_func
                     +build_$(build_arch)_$(build_os)_$1 += $(build_$(build_os)_$1)
                     +build_$1=$$(build_$(build_arch)_$(build_os)_$1)
                     +endef
                     +$(foreach flags, CFLAGS CXXFLAGS LDFLAGS, $(eval $(call add_build_flags_func,$(flags))))
                    

                    New file code added

                    1 Reply Last reply Reply Quote 0
                    • wrapper
                      wrapper Moderators last edited by wrapper

                      Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                      Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                      Auto build

                      https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                      depends/builders/linux.mk

                      New file

                       +build_linux_SHA256SUM = sha256sum
                       +build_linux_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o
                      

                      Code added

                      1 Reply Last reply Reply Quote 0
                      • wrapper
                        wrapper Moderators last edited by

                        Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                        Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                        Auto build

                        https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                        depends/builders/linux.mk

                         +#! /bin/sh
                         +# Attempt to guess a canonical system name.
                         +#   Copyright 1992-2017 Free Software Foundation, Inc.
                         +
                         +timestamp='2017-01-01'
                         +
                         +# This file is free software; you can redistribute it and/or modify it
                         +# under the terms of the GNU General Public License as published by
                         +# the Free Software Foundation; either version 3 of the License, or
                         +# (at your option) any later version.
                         +#
                         +# This program is distributed in the hope that it will be useful, but
                         +# WITHOUT ANY WARRANTY; without even the implied warranty of
                         +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
                         +# General Public License for more details.
                         +#
                         +# You should have received a copy of the GNU General Public License
                         +# along with this program; if not, see <http://www.gnu.org/licenses/>.
                         +#
                         +# As a special exception to the GNU General Public License, if you
                         +# distribute this file as part of a program that contains a
                         +# configuration script generated by Autoconf, you may include it under
                         +# the same distribution terms that you use for the rest of that
                         +# program.  This Exception is an additional permission under section 7
                         +# of the GNU General Public License, version 3 ("GPLv3").
                         +#
                         +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
                         +#
                         +# You can get the latest version of this script from:
                         +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
                         +#
                         +# Please send patches to <[email protected]>.
                         +
                         +
                         +me=`echo "$0" | sed -e 's,.*/,,'`
                         +
                         +usage="\
                         +Usage: $0 [OPTION]
                         +
                         +Output the configuration name of the system \`$me' is run on.
                         +
                         +Operation modes:
                         +  -h, --help         print this help, then exit
                         +  -t, --time-stamp   print date of last modification, then exit
                         +  -v, --version      print version number, then exit
                         +
                         +Report bugs and patches to <[email protected]>."
                         +
                         +version="\
                         +GNU config.guess ($timestamp)
                         +
                         +Originally written by Per Bothner.
                         +Copyright 1992-2017 Free Software Foundation, Inc.
                         +
                         +This is free software; see the source for copying conditions.  There is NO
                         +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
                         +
                         +help="
                         +Try \`$me --help' for more information."
                         +
                         +# Parse command line
                        

                        Start of large new file build file? review

                        1 Reply Last reply Reply Quote 0
                        • wrapper
                          wrapper Moderators last edited by

                          Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                          Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                          Auto build

                          https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                          depends/config.site.in

                           +depends_prefix="`dirname ${ac_site_file}`/.."
                           +
                           +cross_compiling=maybe
                           +host_alias=@HOST@
                           +ac_tool_prefix=${host_alias}-
                           +
                           +if test -z $with_boost; then
                           +  with_boost=$depends_prefix
                           +fi
                           +if test -z $with_qt_plugindir; then
                           +  with_qt_plugindir=$depends_prefix/plugins
                           +fi
                           +if test -z $with_qt_translationdir; then
                           +  with_qt_translationdir=$depends_prefix/translations
                           +fi
                           +if test -z $with_qt_bindir; then
                           +  with_qt_bindir=$depends_prefix/native/bin
                           +fi
                           +if test -z $with_protoc_bindir; then
                           +  with_protoc_bindir=$depends_prefix/native/bin
                           +fi
                           +
                           +
                           +if test -z $enable_wallet && test -n "@no_wallet@"; then
                           +  enable_wallet=no
                           +fi
                           +
                           +if test -z $with_miniupnpc && test -n "@no_upnp@"; then
                           +  with_miniupnpc=no
                           +fi
                           +
                           +if test -z $with_gui && test -n "@no_qt@"; then
                           +  with_gui=no
                           +fi
                           +
                           +if test x@host_os@ = xdarwin; then
                           +  BREW=no
                           +  PORT=no
                           +fi
                           +
                           +if test x@host_os@ = xmingw32; then
                           +  if test -z $with_qt_incdir; then
                           +    with_qt_incdir=$depends_prefix/include
                           +  fi
                           +  if test -z $with_qt_libdir; then
                           +    with_qt_libdir=$depends_prefix/lib
                           +  fi
                           +fi
                           +
                           +PATH=$depends_prefix/native/bin:$PATH
                           +PKG_CONFIG="`which pkg-config` --static"
                           +
                           +# These two need to remain exported because pkg-config does not see them
                           +# otherwise. That means they must be unexported at the end of configure.ac to
                           +# avoid ruining the cache. Sigh.
                           +
                           +export PKG_CONFIG_LIBDIR=$depends_prefix/lib/pkgconfig
                           +export PKG_CONFIG_PATH=$depends_prefix/share/pkgconfig
                           +
                           +CPPFLAGS="-I$depends_prefix/include/ $CPPFLAGS"
                           +LDFLAGS="-L$depends_prefix/lib $LDFLAGS"
                           +
                           +CC="@CC@"
                           +CXX="@CXX@"
                           +OBJC="${CC}"
                           +CCACHE=$depends_prefix/native/bin/ccache
                           +PYTHONPATH=$depends_prefix/native/lib/python/dist-packages:$PYTHONPATH
                           +
                           +if test -n "@AR@"; then
                           +  AR=@AR@
                           +  ac_cv_path_ac_pt_AR=${AR}
                           +fi
                           +
                           +if test -n "@RANLIB@"; then
                           +  RANLIB=@RANLIB@
                           +  ac_cv_path_ac_pt_RANLIB=${RANLIB}
                           +fi
                           +
                           +if test -n "@NM@"; then
                           +  NM=@NM@
                           +  ac_cv_path_ac_pt_NM=${NM}
                           +fi
                           +
                           +if test -n "@debug@"; then
                           +  enable_reduce_exports=no
                           +fi
                           +
                           +if test -n "@CFLAGS@"; then
                           +  CFLAGS="@CFLAGS@ $CFLAGS"
                           +fi
                           +if test -n "@CXXFLAGS@"; then
                           +  CXXFLAGS="@CXXFLAGS@ $CXXFLAGS"
                           +fi
                           +if test -n "@CPPFLAGS@"; then
                           +  CPPFLAGS="@CPPFLAGS@ $CPPFLAGS"
                           +fi
                           +if test -n "@LDFLAGS@"; then
                           +  LDFLAGS="@LDFLAGS@ $LDFLAGS"
                           +fi
                           1,828 depends/config.sub
                          
                           Large diffs are not rendered by default.
                           53 depends/description.md
                           @@ -0,0      +1,53 @@
                           +This is a system of building and caching dependencies necessary for building Bitcoin. 
                           +There are several features that make it different from most similar systems:
                           +
                           +### It is designed to be builder and host agnostic
                           +
                           +In theory, binaries for any target OS/architecture can be created, from a
                           +builder running any OS/architecture. In practice, build-side tools must be
                           +specified when the defaults don't fit, and packages must be amended to work
                           +on new hosts. For now, a build architecture of x86_64 is assumed, either on
                           +Linux or OSX.
                           +
                           +### No reliance on timestamps
                           +
                           +File presence is used to determine what needs to be built. This makes the
                           +results distributable and easily digestable by automated builders.
                           +
                           +### Each build only has its specified dependencies available at build-time.
                           +
                           +For each build, the sysroot is wiped and the (recursive) dependencies are
                           +installed. This makes each build deterministic, since there will never be any
                           +unknown files available to cause side-effects.
                           +
                           +### Each package is cached and only rebuilt as needed.
                           +
                           +Before building, a unique build-id is generated for each package. This id
                           +consists of a hash of all files used to build the package (Makefiles, packages,
                           +etc), and as well as a hash of the same data for each recursive dependency. If
                           +any portion of a package's build recipe changes, it will be rebuilt as well as
                           +any other package that depends on it. If any of the main makefiles (Makefile, 
                           +funcs.mk, etc) are changed, all packages will be rebuilt. After building, the
                           +results are cached into a tarball that can be re-used and distributed.
                           +
                           +### Package build results are (relatively) deterministic.
                           +
                           +Each package is configured and patched so that it will yield the same
                           +build-results with each consequent build, within a reasonable set of
                           +constraints. Some things like timestamp insertion are unavoidable, and are
                           +beyond the scope of this system. Additionally, the toolchain itself must be
                           +capable of deterministic results. When revisions are properly bumped, a cached
                           +build should represent an exact single payload.
                           +
                           +### Sources are fetched and verified automatically
                           +
                           +Each package must define its source location and checksum. The build will fail
                           +if the fetched source does not match. Sources may be pre-seeded and/or cached
                           +as desired.
                           +
                           +### Self-cleaning
                           +
                           +Build and staging dirs are wiped after use, and any previous version of a
                           +cached result is removed following a successful build. Automated builders
                           +should be able to build each revision and store the results with no further
                           +intervention.
                          

                          New file build file?

                          1 Reply Last reply Reply Quote 0
                          • wrapper
                            wrapper Moderators last edited by

                            Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                            Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                            Auto build

                            https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                            depends/funcs.mk

                             +define int_vars
                             +#Set defaults for vars which may be overridden per-package
                             +$(1)_cc=$($($(1)_type)_CC)
                             +$(1)_cxx=$($($(1)_type)_CXX)
                             +$(1)_objc=$($($(1)_type)_OBJC)
                             +$(1)_objcxx=$($($(1)_type)_OBJCXX)
                             +$(1)_ar=$($($(1)_type)_AR)
                             +$(1)_ranlib=$($($(1)_type)_RANLIB)
                             +$(1)_libtool=$($($(1)_type)_LIBTOOL)
                             +$(1)_nm=$($($(1)_type)_NM)
                             +$(1)_cflags=$($($(1)_type)_CFLAGS) $($($(1)_type)_$(release_type)_CFLAGS)
                             +$(1)_cxxflags=$($($(1)_type)_CXXFLAGS) $($($(1)_type)_$(release_type)_CXXFLAGS)
                             +$(1)_ldflags=$($($(1)_type)_LDFLAGS) $($($(1)_type)_$(release_type)_LDFLAGS) -L$($($(1)_type)_prefix)/lib
                             +$(1)_cppflags=$($($(1)_type)_CPPFLAGS) $($($(1)_type)_$(release_type)_CPPFLAGS) -I$($($(1)_type)_prefix)/include
                             +$(1)_recipe_hash:=
                             +endef
                             +
                             +define int_get_all_dependencies
                             +$(sort $(foreach dep,$(2),$(2) $(call int_get_all_dependencies,$(1),$($(dep)_dependencies))))
                             +endef
                             +
                             +define fetch_file_inner
                             +    ( mkdir -p $$($(1)_download_dir) && echo Fetching $(3) from $(2) && \
                             +    $(build_DOWNLOAD) "$$($(1)_download_dir)/$(4).temp" "$(2)/$(3)" && \
                             +    echo "$(5)  $$($(1)_download_dir)/$(4).temp" > $$($(1)_download_dir)/.$(4).hash && \
                             +    $(build_SHA256SUM) -c $$($(1)_download_dir)/.$(4).hash && \
                             +    mv $$($(1)_download_dir)/$(4).temp $$($(1)_source_dir)/$(4) && \
                             +    rm -rf $$($(1)_download_dir) )
                             +endef
                             +
                             +define fetch_file
                             +    ( test -f $$($(1)_source_dir)/$(4) || \
                             +    ( $(call fetch_file_inner,$(1),$(2),$(3),$(4),$(5)) || \
                             +      $(call fetch_file_inner,$(1),$(FALLBACK_DOWNLOAD_PATH),$(3),$(4),$(5))))
                             +endef
                             +
                             +define int_get_build_recipe_hash
                             +$(eval $(1)_all_file_checksums:=$(shell $(build_SHA256SUM) $(meta_depends) packages/$(1).mk $(addprefix $(PATCHES_PATH)/$(1)/,$($(1)_patches)) | cut -d" " -f1))
                             +$(eval $(1)_recipe_hash:=$(shell echo -n "$($(1)_all_file_checksums)" | $(build_SHA256SUM) | cut -d" " -f1))
                             +endef
                             +
                             +define int_get_build_id
                             +$(eval $(1)_dependencies      += $($(1)_$(host_arch)_$(host_os)_dependencies) $($(1)_$(host_os)_dependencies))
                             +$(eval $(1)_all_dependencies:=$(call int_get_all_dependencies,$(1),$($($(1)_type)_native_toolchain) $($(1)_dependencies)))
                             +$(foreach dep,$($(1)_all_dependencies),$(eval $(1)_build_id_deps     +=$(dep)-$($(dep)_version)-$($(dep)_recipe_hash)))
                             +$(eval $(1)_build_id_long:=$(1)-$($(1)_version)-$($(1)_recipe_hash)-$(release_type) $($(1)_build_id_deps) $($($(1)_type)_id_string))
                             +$(eval $(1)_build_id:=$(shell echo -n "$($(1)_build_id_long)" | $(build_SHA256SUM) | cut -c-$(HASH_LENGTH)))
                             +final_build_id_long     +=$($(package)_build_id_long)
                             +
                             +#compute package-specific paths
                             +$(1)_build_subdir?=.
                             +$(1)_download_file?=$($(1)_file_name)
                             +$(1)_source_dir:=$(SOURCES_PATH)
                             +$(1)_source:=$$($(1)_source_dir)/$($(1)_file_name)
                             +$(1)_staging_dir=$(base_staging_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)
                             +$(1)_staging_prefix_dir:=$$($(1)_staging_dir)$($($(1)_type)_prefix)
                             +$(1)_extract_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)
                             +$(1)_download_dir:=$(base_download_dir)/$(1)-$($(1)_version)
                             +$(1)_build_dir:=$$($(1)_extract_dir)/$$($(1)_build_subdir)
                             +$(1)_cached_checksum:=$(BASE_CACHE)/$(host)/$(1)/$(1)-$($(1)_version)-$($(1)_build_id).tar.gz.hash
                             +$(1)_patch_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)/.patches-$($(1)_build_id)
                             +$(1)_prefixbin:=$($($(1)_type)_prefix)/bin/
                             +$(1)_cached:=$(BASE_CACHE)/$(host)/$(1)/$(1)-$($(1)_version)-$($(1)_build_id).tar.gz
                             +$(1)_all_sources=$($(1)_file_name) $($(1)_extra_sources)
                             +
                             +#stamps
                             +$(1)_fetched=$(SOURCES_PATH)/download-stamps/.stamp_fetched-$(1)-$($(1)_file_name).hash
                             +$(1)_extracted=$$($(1)_extract_dir)/.stamp_extracted
                             +$(1)_preprocessed=$$($(1)_extract_dir)/.stamp_preprocessed
                             +$(1)_cleaned=$$($(1)_extract_dir)/.stamp_cleaned
                             +$(1)_built=$$($(1)_build_dir)/.stamp_built
                             +$(1)_configured=$$($(1)_build_dir)/.stamp_configured
                             +$(1)_staged=$$($(1)_staging_dir)/.stamp_staged
                             +$(1)_postprocessed=$$($(1)_staging_prefix_dir)/.stamp_postprocessed
                             +$(1)_download_path_fixed=$(subst :,\:,$$($(1)_download_path))
                             +
                             +
                             +#default commands
                             +$(1)_fetch_cmds ?= $(call fetch_file,$(1),$(subst \:,:,$$($(1)_download_path_fixed)),$$($(1)_download_file),$($(1)_file_name),$($(1)_sha256_hash))
                             +$(1)_extract_cmds ?= mkdir -p $$($(1)_extract_dir) && echo "$$($(1)_sha256_hash)  $$($(1)_source)" > $$($(1)_extract_dir)/.$$($(1)_file_name).hash &&  $(build_SHA256SUM) -c $$($(1)_extract_dir)/.$$($(1)_file_name).hash && tar --strip-components=1 -xf $$($(1)_source)
                             +$(1)_preprocess_cmds ?=
                             +$(1)_build_cmds ?=
                             +$(1)_config_cmds ?=
                             +$(1)_stage_cmds ?=
                             +$(1)_set_vars ?=
                             +
                             +
                             +all_sources     +=$$($(1)_fetched)
                             +endef
                             +#$(foreach dep_target,$($(1)_all_dependencies),$(eval $(1)_dependency_targets=$($(dep_target)_cached)))
                             +
                             +
                             +define int_config_attach_build_config
                             +$(eval $(call $(1)_set_vars,$(1)))
                             +$(1)_cflags     +=$($(1)_cflags_$(release_type))
                             +$(1)_cflags     +=$($(1)_cflags_$(host_arch)) $($(1)_cflags_$(host_arch)_$(release_type))
                             +$(1)_cflags     +=$($(1)_cflags_$(host_os)) $($(1)_cflags_$(host_os)_$(release_type))
                             +$(1)_cflags     +=$($(1)_cflags_$(host_arch)_$(host_os)) $($(1)_cflags_$(host_arch)_$(host_os)_$(release_type))
                             +
                             +$(1)_cxxflags     +=$($(1)_cxxflags_$(release_type))
                             +$(1)_cxxflags     +=$($(1)_cxxflags_$(host_arch)) $($(1)_cxxflags_$(host_arch)_$(release_type))
                             +$(1)_cxxflags     +=$($(1)_cxxflags_$(host_os)) $($(1)_cxxflags_$(host_os)_$(release_type))
                             +$(1)_cxxflags     +=$($(1)_cxxflags_$(host_arch)_$(host_os)) $($(1)_cxxflags_$(host_arch)_$(host_os)_$(release_type))
                             +
                             +$(1)_cppflags     +=$($(1)_cppflags_$(release_type))
                             +$(1)_cppflags     +=$($(1)_cppflags_$(host_arch)) $($(1)_cppflags_$(host_arch)_$(release_type))
                             +$(1)_cppflags     +=$($(1)_cppflags_$(host_os)) $($(1)_cppflags_$(host_os)_$(release_type))
                             +$(1)_cppflags     +=$($(1)_cppflags_$(host_arch)_$(host_os)) $($(1)_cppflags_$(host_arch)_$(host_os)_$(release_type))
                             +
                             +$(1)_ldflags     +=$($(1)_ldflags_$(release_type))
                             +$(1)_ldflags     +=$($(1)_ldflags_$(host_arch)) $($(1)_ldflags_$(host_arch)_$(release_type))
                             +$(1)_ldflags     +=$($(1)_ldflags_$(host_os)) $($(1)_ldflags_$(host_os)_$(release_type))
                             +$(1)_ldflags     +=$($(1)_ldflags_$(host_arch)_$(host_os)) $($(1)_ldflags_$(host_arch)_$(host_os)_$(release_type))
                             +
                             +$(1)_build_opts     +=$$($(1)_build_opts_$(release_type))
                             +$(1)_build_opts     +=$$($(1)_build_opts_$(host_arch)) $$($(1)_build_opts_$(host_arch)_$(release_type))
                             +$(1)_build_opts     +=$$($(1)_build_opts_$(host_os)) $$($(1)_build_opts_$(host_os)_$(release_type))
                             +$(1)_build_opts     +=$$($(1)_build_opts_$(host_arch)_$(host_os)) $$($(1)_build_opts_$(host_arch)_$(host_os)_$(release_type))
                             +
                             +$(1)_config_opts     +=$$($(1)_config_opts_$(release_type))
                             +$(1)_config_opts     +=$$($(1)_config_opts_$(host_arch)) $$($(1)_config_opts_$(host_arch)_$(release_type))
                             +$(1)_config_opts     +=$$($(1)_config_opts_$(host_os)) $$($(1)_config_opts_$(host_os)_$(release_type))
                             +$(1)_config_opts     +=$$($(1)_config_opts_$(host_arch)_$(host_os)) $$($(1)_config_opts_$(host_arch)_$(host_os)_$(release_type))
                             +
                             +$(1)_config_env     +=$$($(1)_config_env_$(release_type))
                             +$(1)_config_env     +=$($(1)_config_env_$(host_arch)) $($(1)_config_env_$(host_arch)_$(release_type))
                             +$(1)_config_env     +=$($(1)_config_env_$(host_os)) $($(1)_config_env_$(host_os)_$(release_type))
                             +$(1)_config_env     +=$($(1)_config_env_$(host_arch)_$(host_os)) $($(1)_config_env_$(host_arch)_$(host_os)_$(release_type))
                             +
                             +$(1)_config_env     +=PKG_CONFIG_LIBDIR=$($($(1)_type)_prefix)/lib/pkgconfig
                             +$(1)_config_env     +=PKG_CONFIG_PATH=$($($(1)_type)_prefix)/share/pkgconfig
                             +$(1)_config_env     +=PATH=$(build_prefix)/bin:$(PATH)
                             +$(1)_build_env     +=PATH=$(build_prefix)/bin:$(PATH)
                             +$(1)_stage_env     +=PATH=$(build_prefix)/bin:$(PATH)
                             +$(1)_autoconf=./configure --host=$($($(1)_type)_host) --disable-dependency-tracking --prefix=$($($(1)_type)_prefix) $$($(1)_config_opts) CC="$$($(1)_cc)" CXX="$$($(1)_cxx)"
                             +
                             +ifneq ($($(1)_nm),)
                             +$(1)_autoconf      += NM="$$($(1)_nm)"
                             +endif
                             +ifneq ($($(1)_ranlib),)
                             +$(1)_autoconf      += RANLIB="$$($(1)_ranlib)"
                             +endif
                             +ifneq ($($(1)_ar),)
                             +$(1)_autoconf      += AR="$$($(1)_ar)"
                             +endif
                             +ifneq ($($(1)_cflags),)
                             +$(1)_autoconf      += CFLAGS="$$($(1)_cflags)"
                             +endif
                             +ifneq ($($(1)_cxxflags),)
                             +$(1)_autoconf      += CXXFLAGS="$$($(1)_cxxflags)"
                             +endif
                             +ifneq ($($(1)_cppflags),)
                             +$(1)_autoconf      += CPPFLAGS="$$($(1)_cppflags)"
                             +endif
                             +ifneq ($($(1)_ldflags),)
                             +$(1)_autoconf      += LDFLAGS="$$($(1)_ldflags)"
                             +endif
                             +endef
                             +
                             +define int_add_cmds
                             +$($(1)_fetched):
                             +	$(AT)mkdir -p $$(@D) $(SOURCES_PATH)
                             +	$(AT)rm -f $$@
                             +	$(AT)touch $$@
                             +	$(AT)cd $$(@D); $(call $(1)_fetch_cmds,$(1))
                             +	$(AT)cd $($(1)_source_dir); $(foreach source,$($(1)_all_sources),$(build_SHA256SUM) $(source) >> $$(@);)
                             +	$(AT)touch $$@
                             +$($(1)_extracted): | $($(1)_fetched)
                             +	$(AT)echo Extracting $(1)...
                             +	$(AT)mkdir -p $$(@D)
                             +	$(AT)cd $$(@D); $(call $(1)_extract_cmds,$(1))
                             +	$(AT)touch $$@
                             +$($(1)_preprocessed): | $($(1)_dependencies) $($(1)_extracted)
                             +	$(AT)echo Preprocessing $(1)...
                             +	$(AT)mkdir -p $$(@D) $($(1)_patch_dir)
                             +	$(AT)$(foreach patch,$($(1)_patches),cd $(PATCHES_PATH)/$(1); cp $(patch) $($(1)_patch_dir) ;)
                             +	$(AT)cd $$(@D); $(call $(1)_preprocess_cmds, $(1))
                             +	$(AT)touch $$@
                             +$($(1)_configured): | $($(1)_preprocessed)
                             +	$(AT)echo Configuring $(1)...
                             +	$(AT)rm -rf $(host_prefix); mkdir -p $(host_prefix)/lib; cd $(host_prefix); $(foreach package,$($(1)_all_dependencies), tar xf $($(package)_cached); )
                             +	$(AT)mkdir -p $$(@D)
                             +	$(AT)     +cd $$(@D); $($(1)_config_env) $(call $(1)_config_cmds, $(1))
                             +	$(AT)touch $$@
                             +$($(1)_built): | $($(1)_configured)
                             +	$(AT)echo Building $(1)...
                             +	$(AT)mkdir -p $$(@D)
                             +	$(AT)     +cd $$(@D); $($(1)_build_env) $(call $(1)_build_cmds, $(1))
                             +	$(AT)touch $$@
                             +$($(1)_staged): | $($(1)_built)
                             +	$(AT)echo Staging $(1)...
                             +	$(AT)mkdir -p $($(1)_staging_dir)/$(host_prefix)
                             +	$(AT)cd $($(1)_build_dir); $($(1)_stage_env) $(call $(1)_stage_cmds, $(1))
                             +	$(AT)rm -rf $($(1)_extract_dir)
                             +	$(AT)touch $$@
                             +$($(1)_postprocessed): | $($(1)_staged)
                             +	$(AT)echo Postprocessing $(1)...
                             +	$(AT)cd $($(1)_staging_prefix_dir); $(call $(1)_postprocess_cmds)
                             +	$(AT)touch $$@
                             +$($(1)_cached): | $($(1)_dependencies) $($(1)_postprocessed)
                             +	$(AT)echo Caching $(1)...
                             +	$(AT)cd $$($(1)_staging_dir)/$(host_prefix); find . | sort | tar --no-recursion -czf $$($(1)_staging_dir)/$$(@F) -T -
                             +	$(AT)mkdir -p $$(@D)
                             +	$(AT)rm -rf $$(@D) && mkdir -p $$(@D)
                             +	$(AT)mv $$($(1)_staging_dir)/$$(@F) $$(@)
                             +	$(AT)rm -rf $($(1)_staging_dir)
                             +$($(1)_cached_checksum): $($(1)_cached)
                             +	$(AT)cd $$(@D); $(build_SHA256SUM) $$(<F) > $$(@)
                             +
                             +.PHONY: $(1)
                             +$(1): | $($(1)_cached_checksum)
                             +.SECONDARY: $($(1)_cached) $($(1)_postprocessed) $($(1)_staged) $($(1)_built) $($(1)_configured) $($(1)_preprocessed) $($(1)_extracted) $($(1)_fetched)
                             +
                             +endef
                             +
                             +# These functions create the build targets for each package. They must be
                             +# broken down into small steps so that each part is done for all packages
                             +# before moving on to the next step. Otherwise, a package's info
                             +# (build-id for example) would only be available to another package if it
                             +# happened to be computed already.
                             +
                             +#set the type for host/build packages.
                             +$(foreach native_package,$(native_packages),$(eval $(native_package)_type=build))
                             +$(foreach package,$(packages),$(eval $(package)_type=$(host_arch)_$(host_os)))
                             +
                             +#set overridable defaults
                             +$(foreach package,$(all_packages),$(eval $(call int_vars,$(package))))
                             +
                             +#include package files
                             +$(foreach package,$(all_packages),$(eval include packages/$(package).mk))
                             +
                             +#compute a hash of all files that comprise this package's build recipe
                             +$(foreach package,$(all_packages),$(eval $(call int_get_build_recipe_hash,$(package))))
                             +
                             +#generate a unique id for this package, incorporating its dependencies as well
                             +$(foreach package,$(all_packages),$(eval $(call int_get_build_id,$(package))))
                             +
                             +#compute final vars after reading package vars
                             +$(foreach package,$(all_packages),$(eval $(call int_config_attach_build_config,$(package))))
                             +
                             +#create build targets
                             +$(foreach package,$(all_packages),$(eval $(call int_add_cmds,$(package))))
                             +
                             +#special exception: if a toolchain package exists, all non-native packages depend on it
                             +$(foreach package,$(packages),$(eval $($(package)_unpacked): |$($($(host_arch)_$(host_os)_native_toolchain)_cached) ))
                            

                            New file

                            1 Reply Last reply Reply Quote 0
                            • wrapper
                              wrapper Moderators last edited by

                              Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                              Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                              Auto build

                              https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                              depends/hosts/darwin.mk

                               +OSX_MIN_VERSION=10.8
                               +OSX_SDK_VERSION=10.12
                               +OSX_SDK=$(SDK_PATH)/MacOSX$(OSX_SDK_VERSION).sdk
                               +LD64_VERSION=253.9
                               +darwin_CC=clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION)
                               +darwin_CXX=clang++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) -stdlib=libc++
                               +
                               +darwin_CFLAGS=-pipe
                               +darwin_CXXFLAGS=$(darwin_CFLAGS)
                               +
                               +darwin_release_CFLAGS=-O2
                               +darwin_release_CXXFLAGS=$(darwin_release_CFLAGS)
                               +
                               +darwin_debug_CFLAGS=-O1
                               +darwin_debug_CXXFLAGS=$(darwin_debug_CFLAGS)
                               +
                               +darwin_native_toolchain=native_cctools
                              

                              New code build file?

                              1 Reply Last reply Reply Quote 0
                              • wrapper
                                wrapper Moderators last edited by wrapper

                                Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                                Auto build

                                https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                                depends/hosts/default.mk

                                 +default_host_CC = $(host_toolchain)gcc
                                 +default_host_CXX = $(host_toolchain)g++
                                 +default_host_AR = $(host_toolchain)ar
                                 +default_host_RANLIB = $(host_toolchain)ranlib
                                 +default_host_STRIP = $(host_toolchain)strip
                                 +default_host_LIBTOOL = $(host_toolchain)libtool
                                 +default_host_INSTALL_NAME_TOOL = $(host_toolchain)install_name_tool
                                 +default_host_OTOOL = $(host_toolchain)otool
                                 +default_host_NM = $(host_toolchain)nm
                                 +
                                 +define add_host_tool_func
                                 +$(host_os)_$1?=$$(default_host_$1)
                                 +$(host_arch)_$(host_os)_$1?=$$($(host_os)_$1)
                                 +$(host_arch)_$(host_os)_$(release_type)_$1?=$$($(host_os)_$1)
                                 +host_$1=$$($(host_arch)_$(host_os)_$1)
                                 +endef
                                 +
                                 +define add_host_flags_func
                                 +$(host_arch)_$(host_os)_$1 += $($(host_os)_$1)
                                 +$(host_arch)_$(host_os)_$(release_type)_$1 += $($(host_os)_$(release_type)_$1)
                                 +host_$1 = $$($(host_arch)_$(host_os)_$1)
                                 +host_$(release_type)_$1 = $$($(host_arch)_$(host_os)_$(release_type)_$1)
                                 +endef
                                 +
                                 +$(foreach tool,CC CXX AR RANLIB STRIP NM LIBTOOL OTOOL INSTALL_NAME_TOOL,$(eval $(call add_host_tool_func,$(tool))))
                                 +$(foreach flags,CFLAGS CXXFLAGS CPPFLAGS LDFLAGS, $(eval $(call add_host_flags_func,$(flags))))
                                

                                Code / file added

                                1 Reply Last reply Reply Quote 0
                                • wrapper
                                  wrapper Moderators last edited by

                                  Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                  Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                                  Auto build

                                  https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                                  depends/hosts/linux.mk

                                   +linux_CFLAGS=-pipe
                                   +linux_CXXFLAGS=$(linux_CFLAGS)
                                   +
                                   +linux_release_CFLAGS=-O2
                                   +linux_release_CXXFLAGS=$(linux_release_CFLAGS)
                                   +
                                   +linux_debug_CFLAGS=-O1
                                   +linux_debug_CXXFLAGS=$(linux_debug_CFLAGS)
                                   +
                                   +linux_debug_CPPFLAGS=-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC
                                   +
                                   +ifeq (86,$(findstring 86,$(build_arch)))
                                   +i686_linux_CC=gcc -m32
                                   +i686_linux_CXX=g++ -m32
                                   +i686_linux_AR=ar
                                   +i686_linux_RANLIB=ranlib
                                   +i686_linux_NM=nm
                                   +i686_linux_STRIP=strip
                                   +
                                   +x86_64_linux_CC=gcc -m64
                                   +x86_64_linux_CXX=g++ -m64
                                   +x86_64_linux_AR=ar
                                   +x86_64_linux_RANLIB=ranlib
                                   +x86_64_linux_NM=nm
                                   +x86_64_linux_STRIP=strip
                                   +else
                                   +i686_linux_CC=$(default_host_CC) -m32
                                   +i686_linux_CXX=$(default_host_CXX) -m32
                                   +x86_64_linux_CC=$(default_host_CC) -m64
                                   +x86_64_linux_CXX=$(default_host_CXX) -m64
                                   +endif
                                  

                                  File added code added

                                  1 Reply Last reply Reply Quote 0
                                  • wrapper
                                    wrapper Moderators last edited by

                                    Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                    Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                                    Auto build

                                    https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                                    depends/hosts/mingw32.mk

                                     +mingw32_CFLAGS=-pipe
                                     +mingw32_CXXFLAGS=$(mingw32_CFLAGS)
                                     +
                                     +mingw32_release_CFLAGS=-O2
                                     +mingw32_release_CXXFLAGS=$(mingw32_release_CFLAGS)
                                     +
                                     +mingw32_debug_CFLAGS=-O1
                                     +mingw32_debug_CXXFLAGS=$(mingw32_debug_CFLAGS)
                                     +
                                     +mingw32_debug_CPPFLAGS=-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC
                                    

                                    Code added

                                    1 Reply Last reply Reply Quote 0
                                    • wrapper
                                      wrapper Moderators last edited by

                                      Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                      Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                                      Auto build

                                      https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                                      depends/packages.md

                                       +Each recipe consists of 3 main parts: defining identifiers, setting build
                                       +variables, and defining build commands.
                                       +
                                       +The package "mylib" will be used here as an example
                                       +
                                       +General tips:
                                       +- mylib_foo is written as $(package)_foo in order to make recipes more similar.
                                       +
                                       +## Identifiers
                                       +Each package is required to define at least these variables:
                                       +
                                       +    $(package)_version:
                                       +    Version of the upstream library or program. If there is no version, a
                                       +    placeholder such as 1.0 can be used.
                                       +
                                       +    $(package)_download_path:
                                       +    Location of the upstream source, without the file-name. Usually http or
                                       +    ftp.
                                       +
                                       +    $(package)_file_name:
                                       +    The upstream source filename available at the download path.
                                       +
                                       +    $(package)_sha256_hash:
                                       +    The sha256 hash of the upstream file
                                       +
                                       +These variables are optional:
                                       +
                                       +    $(package)_build_subdir:
                                       +    cd to this dir before running configure/build/stage commands.
                                       +    
                                       +    $(package)_download_file:
                                       +    The file-name of the upstream source if it differs from how it should be
                                       +    stored locally. This can be used to avoid storing file-names with strange
                                       +    characters.
                                       +    
                                       +    $(package)_dependencies:
                                       +    Names of any other packages that this one depends on.
                                       +    
                                       +    $(package)_patches:
                                       +    Filenames of any patches needed to build the package
                                       +
                                       +    $(package)_extra_sources:
                                       +    Any extra files that will be fetched via $(package)_fetch_cmds. These are
                                       +    specified so that they can be fetched and verified via 'make download'.
                                       +
                                       +
                                       +## Build Variables:
                                       +After defining the main identifiers, build variables may be added or customized
                                       +before running the build commands. They should be added to a function called
                                       +$(package)_set_vars. For example:
                                       +
                                       +    define $(package)_set_vars
                                       +    ...
                                       +    endef
                                       +
                                       +Most variables can be prefixed with the host, architecture, or both, to make
                                       +the modifications specific to that case. For example:
                                       +
                                       +    Universal:     $(package)_cc=gcc
                                       +    Linux only:    $(package)_linux_cc=gcc
                                       +    x86_64 only:       $(package)_x86_64_cc = gcc
                                       +    x86_64 linux only: $(package)_x86_64_linux_cc = gcc
                                       +
                                       +These variables may be set to override or append their default values.
                                       +
                                       +    $(package)_cc
                                       +    $(package)_cxx
                                       +    $(package)_objc
                                       +    $(package)_objcxx
                                       +    $(package)_ar
                                       +    $(package)_ranlib
                                       +    $(package)_libtool
                                       +    $(package)_nm
                                       +    $(package)_cflags
                                       +    $(package)_cxxflags
                                       +    $(package)_ldflags
                                       +    $(package)_cppflags
                                       +    $(package)_config_env
                                       +    $(package)_build_env
                                       +    $(package)_stage_env
                                       +    $(package)_build_opts
                                       +    $(package)_config_opts
                                       +
                                       +The *_env variables are used to add environment variables to the respective
                                       +commands.
                                       +
                                       +Many variables respect a debug/release suffix as well, in order to use them for
                                       +only the appropriate build config. For example:
                                       +
                                       +    $(package)_cflags_release = -O3
                                       +    $(package)_cflags_i686_debug = -g
                                       +    $(package)_config_opts_release = --disable-debug
                                       +
                                       +These will be used in addition to the options that do not specify
                                       +debug/release. All builds are considered to be release unless DEBUG=1 is set by
                                       +the user. Other variables may be defined as needed.
                                       +
                                       +## Build commands:
                                       +
                                       +  For each build, a unique build dir and staging dir are created. For example,
                                       +  `work/build/mylib/1.0-1adac830f6e` and `work/staging/mylib/1.0-1adac830f6e`.
                                       +
                                       +  The following build commands are available for each recipe:
                                       +
                                       +    $(package)_fetch_cmds:
                                       +    Runs from: build dir
                                       +    Fetch the source file. If undefined, it will be fetched and verified
                                       +    against its hash.
                                       +
                                       +    $(package)_extract_cmds:
                                       +    Runs from: build dir
                                       +    Verify the source file against its hash and extract it. If undefined, the
                                       +    source is assumed to be a tarball.
                                       +
                                       +    $(package)_preprocess_cmds:
                                       +    Runs from: build dir/$(package)_build_subdir
                                       +    Preprocess the source as necessary. If undefined, does nothing.
                                       +
                                       +    $(package)_config_cmds:
                                       +    Runs from: build dir/$(package)_build_subdir
                                       +    Configure the source. If undefined, does nothing.
                                       +
                                       +    $(package)_build_cmds:
                                       +    Runs from: build dir/$(package)_build_subdir
                                       +    Build the source. If undefined, does nothing.
                                       +
                                       +    $(package)_stage_cmds:
                                       +    Runs from: build dir/$(package)_build_subdir
                                       +    Stage the build results. If undefined, does nothing.
                                       +
                                       +  The following variables are available for each recipe:
                                       +    
                                       +    $(1)_staging_dir: package's destination sysroot path
                                       +    $(1)_staging_prefix_dir: prefix path inside of the package's staging dir
                                       +    $(1)_extract_dir: path to the package's extracted sources
                                       +    $(1)_build_dir: path where configure/build/stage commands will be run
                                       +    $(1)_patch_dir: path where the package's patches (if any) are found
                                       +
                                       +Notes on build commands:
                                       +
                                       +For packages built with autotools, $($(package)_autoconf) can be used in the
                                       +configure step to (usually) correctly configure automatically. Any
                                       +$($(package)_config_opts) will be appended.
                                       +
                                       +Most autotools projects can be properly staged using:
                                       +
                                       +    $(MAKE) DESTDIR=$($(package)_staging_dir) install
                                      

                                      Code added

                                      1 Reply Last reply Reply Quote 0
                                      • wrapper
                                        wrapper Moderators last edited by

                                        Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                        Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                                        Auto build

                                        https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                                        depends/packages.md

                                         +Each recipe consists of 3 main parts: defining identifiers, setting build
                                         +variables, and defining build commands.
                                         +
                                         +The package "mylib" will be used here as an example
                                         +
                                         +General tips:
                                         +- mylib_foo is written as $(package)_foo in order to make recipes more similar.
                                         +
                                         +## Identifiers
                                         +Each package is required to define at least these variables:
                                         +
                                         +    $(package)_version:
                                         +    Version of the upstream library or program. If there is no version, a
                                         +    placeholder such as 1.0 can be used.
                                         +
                                         +    $(package)_download_path:
                                         +    Location of the upstream source, without the file-name. Usually http or
                                         +    ftp.
                                         +
                                         +    $(package)_file_name:
                                         +    The upstream source filename available at the download path.
                                         +
                                         +    $(package)_sha256_hash:
                                         +    The sha256 hash of the upstream file
                                         +
                                         +These variables are optional:
                                         +
                                         +    $(package)_build_subdir:
                                         +    cd to this dir before running configure/build/stage commands.
                                         +    
                                         +    $(package)_download_file:
                                         +    The file-name of the upstream source if it differs from how it should be
                                         +    stored locally. This can be used to avoid storing file-names with strange
                                         +    characters.
                                         +    
                                         +    $(package)_dependencies:
                                         +    Names of any other packages that this one depends on.
                                         +    
                                         +    $(package)_patches:
                                         +    Filenames of any patches needed to build the package
                                         +
                                         +    $(package)_extra_sources:
                                         +    Any extra files that will be fetched via $(package)_fetch_cmds. These are
                                         +    specified so that they can be fetched and verified via 'make download'.
                                         +
                                         +
                                         +## Build Variables:
                                         +After defining the main identifiers, build variables may be added or customized
                                         +before running the build commands. They should be added to a function called
                                         +$(package)_set_vars. For example:
                                         +
                                         +    define $(package)_set_vars
                                         +    ...
                                         +    endef
                                         +
                                         +Most variables can be prefixed with the host, architecture, or both, to make
                                         +the modifications specific to that case. For example:
                                         +
                                         +    Universal:     $(package)_cc=gcc
                                         +    Linux only:    $(package)_linux_cc=gcc
                                         +    x86_64 only:       $(package)_x86_64_cc = gcc
                                         +    x86_64 linux only: $(package)_x86_64_linux_cc = gcc
                                         +
                                         +These variables may be set to override or append their default values.
                                         +
                                         +    $(package)_cc
                                         +    $(package)_cxx
                                         +    $(package)_objc
                                         +    $(package)_objcxx
                                         +    $(package)_ar
                                         +    $(package)_ranlib
                                         +    $(package)_libtool
                                         +    $(package)_nm
                                         +    $(package)_cflags
                                         +    $(package)_cxxflags
                                         +    $(package)_ldflags
                                         +    $(package)_cppflags
                                         +    $(package)_config_env
                                         +    $(package)_build_env
                                         +    $(package)_stage_env
                                         +    $(package)_build_opts
                                         +    $(package)_config_opts
                                         +
                                         +The *_env variables are used to add environment variables to the respective
                                         +commands.
                                         +
                                         +Many variables respect a debug/release suffix as well, in order to use them for
                                         +only the appropriate build config. For example:
                                         +
                                         +    $(package)_cflags_release = -O3
                                         +    $(package)_cflags_i686_debug = -g
                                         +    $(package)_config_opts_release = --disable-debug
                                         +
                                         +These will be used in addition to the options that do not specify
                                         +debug/release. All builds are considered to be release unless DEBUG=1 is set by
                                         +the user. Other variables may be defined as needed.
                                         +
                                         +## Build commands:
                                         +
                                         +  For each build, a unique build dir and staging dir are created. For example,
                                         +  `work/build/mylib/1.0-1adac830f6e` and `work/staging/mylib/1.0-1adac830f6e`.
                                         +
                                         +  The following build commands are available for each recipe:
                                         +
                                         +    $(package)_fetch_cmds:
                                         +    Runs from: build dir
                                         +    Fetch the source file. If undefined, it will be fetched and verified
                                         +    against its hash.
                                         +
                                         +    $(package)_extract_cmds:
                                         +    Runs from: build dir
                                         +    Verify the source file against its hash and extract it. If undefined, the
                                         +    source is assumed to be a tarball.
                                         +
                                         +    $(package)_preprocess_cmds:
                                         +    Runs from: build dir/$(package)_build_subdir
                                         +    Preprocess the source as necessary. If undefined, does nothing.
                                         +
                                         +    $(package)_config_cmds:
                                         +    Runs from: build dir/$(package)_build_subdir
                                         +    Configure the source. If undefined, does nothing.
                                         +
                                         +    $(package)_build_cmds:
                                         +    Runs from: build dir/$(package)_build_subdir
                                         +    Build the source. If undefined, does nothing.
                                         +
                                         +    $(package)_stage_cmds:
                                         +    Runs from: build dir/$(package)_build_subdir
                                         +    Stage the build results. If undefined, does nothing.
                                         +
                                         +  The following variables are available for each recipe:
                                         +    
                                         +    $(1)_staging_dir: package's destination sysroot path
                                         +    $(1)_staging_prefix_dir: prefix path inside of the package's staging dir
                                         +    $(1)_extract_dir: path to the package's extracted sources
                                         +    $(1)_build_dir: path where configure/build/stage commands will be run
                                         +    $(1)_patch_dir: path where the package's patches (if any) are found
                                         +
                                         +Notes on build commands:
                                         +
                                         +For packages built with autotools, $($(package)_autoconf) can be used in the
                                         +configure step to (usually) correctly configure automatically. Any
                                         +$($(package)_config_opts) will be appended.
                                         +
                                         +Most autotools projects can be properly staged using:
                                         +
                                         +    $(MAKE) DESTDIR=$($(package)_staging_dir) install
                                          31 depends/packages/bdb.mk
                                          @@ -0,0      +1,31 @@
                                         +package=bdb
                                         +$(package)_version=4.8.30
                                         +$(package)_download_path=http://download.oracle.com/berkeley-db
                                         +$(package)_file_name=db-$($(package)_version).NC.tar.gz
                                         +$(package)_sha256_hash=12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef
                                         +$(package)_build_subdir=build_unix
                                         +
                                         +define $(package)_set_vars
                                         +$(package)_config_opts=--disable-shared --enable-cxx --disable-replication
                                         +$(package)_config_opts_mingw32=--enable-mingw
                                         +$(package)_config_opts_linux=--with-pic
                                         +$(package)_cxxflags=-std=c++11
                                         +endef
                                         +
                                         +define $(package)_preprocess_cmds
                                         +  sed -i.old 's/__atomic_compare_exchange/__atomic_compare_exchange_db/' dbinc/atomic.h && \
                                         +  sed -i.old 's/atomic_init/atomic_init_db/' dbinc/atomic.h mp/mp_region.c mp/mp_mvcc.c mp/mp_fget.c mutex/mut_method.c mutex/mut_tas.c && \
                                         +  cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub dist
                                         +endef
                                         +
                                         +define $(package)_config_cmds
                                         +  ../dist/$($(package)_autoconf)
                                         +endef
                                         +
                                         +define $(package)_build_cmds
                                         +  $(MAKE) libdb_cxx-4.8.a libdb-4.8.a
                                         +endef
                                         +
                                         +define $(package)_stage_cmds
                                         +  $(MAKE) DESTDIR=$($(package)_staging_dir) install_lib install_include
                                         +endef
                                        

                                        New file code added

                                        1 Reply Last reply Reply Quote 0
                                        • wrapper
                                          wrapper Moderators last edited by

                                          Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                          Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                                          Auto build

                                          https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                                          depends/packages/boost.mk

                                           +package=boost
                                           +$(package)_version=1_63_0
                                           +$(package)_download_path=https://sourceforge.net/projects/boost/files/boost/1.63.0
                                           +$(package)_file_name=$(package)_$($(package)_version).tar.bz2
                                           +$(package)_sha256_hash=beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0
                                           +
                                           +define $(package)_set_vars
                                           +$(package)_config_opts_release=variant=release
                                           +$(package)_config_opts_debug=variant=debug
                                           +$(package)_config_opts=--layout=tagged --build-type=complete --user-config=user-config.jam
                                           +$(package)_config_opts+=threading=multi link=static -sNO_BZIP2=1 -sNO_ZLIB=1
                                           +$(package)_config_opts_linux=threadapi=pthread runtime-link=shared
                                           +$(package)_config_opts_darwin=--toolset=darwin-4.2.1 runtime-link=shared
                                           +$(package)_config_opts_mingw32=binary-format=pe target-os=windows threadapi=win32 runtime-link=static
                                           +$(package)_config_opts_x86_64_mingw32=address-model=64
                                           +$(package)_config_opts_i686_mingw32=address-model=32
                                           +$(package)_config_opts_i686_linux=address-model=32 architecture=x86
                                           +$(package)_toolset_$(host_os)=gcc
                                           +$(package)_archiver_$(host_os)=$($(package)_ar)
                                           +$(package)_toolset_darwin=darwin
                                           +$(package)_archiver_darwin=$($(package)_libtool)
                                           +$(package)_config_libraries=chrono,filesystem,program_options,system,thread,test
                                           +$(package)_cxxflags=-std=c++11 -fvisibility=hidden
                                           +$(package)_cxxflags_linux=-fPIC
                                           +endef
                                           +
                                           +define $(package)_preprocess_cmds
                                           +  echo "using $(boost_toolset_$(host_os)) : : $($(package)_cxx) : <cxxflags>\"$($(package)_cxxflags) $($(package)_cppflags)\" <linkflags>\"$($(package)_ldflags)\" <archiver>\"$(boost_archiver_$(host_os))\" <striper>\"$(host_STRIP)\"  <ranlib>\"$(host_RANLIB)\" <rc>\"$(host_WINDRES)\" : ;" > user-config.jam
                                           +endef
                                           +
                                           +define $(package)_config_cmds
                                           +  ./bootstrap.sh --without-icu --with-libraries=$(boost_config_libraries)
                                           +endef
                                           +
                                           +define $(package)_build_cmds
                                           +  ./b2 -d2 -j2 -d1 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) stage
                                           +endef
                                           +
                                           +define $(package)_stage_cmds
                                           +  ./b2 -d0 -j4 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install
                                           +endef
                                          

                                          File added

                                          1 Reply Last reply Reply Quote 0
                                          • wrapper
                                            wrapper Moderators last edited by wrapper

                                            Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                                            Added depends folder from bitcoin’s tree to build all dependencies. :: commit

                                            Auto build

                                            https://github.com/FeatherCoin/Feathercoin/commit/e69efc079f1055dc5b12be5d41b82f518cd06a5a

                                            depends/packages/dbus.mk

                                             +package=dbus
                                             +$(package)_version=1.10.14
                                             +$(package)_download_path=http://dbus.freedesktop.org/releases/dbus
                                             +$(package)_file_name=$(package)-$($(package)_version).tar.gz
                                             +$(package)_sha256_hash=23238f70353e38ce5ca183ebc9525c0d97ac00ef640ad29cf794782af6e6a083
                                             +$(package)_dependencies=expat
                                             +
                                             +define $(package)_set_vars
                                             +  $(package)_config_opts=--disable-tests --disable-doxygen-docs --disable-xml-docs --disable-static --without-x
                                             +endef
                                             +
                                             +define $(package)_config_cmds
                                             +  $($(package)_autoconf)
                                             +endef
                                             +
                                             +define $(package)_build_cmds
                                             +  $(MAKE) -C dbus libdbus-1.la
                                             +endef
                                             +
                                             +define $(package)_stage_cmds
                                             +  $(MAKE) -C dbus DESTDIR=$($(package)_staging_dir) install-libLTLIBRARIES install-dbusincludeHEADERS install-nodist_dbusarchincludeHEADERS && \
                                             +  $(MAKE) DESTDIR=$($(package)_staging_dir) install-pkgconfigDATA
                                             +endef
                                            

                                            New file Added

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post