aboutsummaryrefslogtreecommitdiff
path: root/depends/README.packages
diff options
context:
space:
mode:
authorShawn Wilkinson <me@super3.org>2015-04-22 00:06:39 -0400
committerWladimir J. van der Laan <laanwj@gmail.com>2015-05-15 12:35:20 +0200
commitcc3db874b5cdff4e31d11bacbf4db6986ff48805 (patch)
tree3e9948cead401719088f268811862db36b2b91bb /depends/README.packages
parentb4c219b622235e66fecd5dee1883908d5336a6c0 (diff)
downloadbitcoin-cc3db874b5cdff4e31d11bacbf4db6986ff48805.tar.xz
doc: Documentation in Markdown for Depends Dir
Documentation more readable when viewed on Github. Some extra changes by @laanwj: - Make README.usage the default README. This is more convenient from a user perspective. Link to other documentation in this default README - Add list of popular targets for cross compilation, change default to Win64 instead of Win32
Diffstat (limited to 'depends/README.packages')
-rw-r--r--depends/README.packages130
1 files changed, 0 insertions, 130 deletions
diff --git a/depends/README.packages b/depends/README.packages
deleted file mode 100644
index 6d87402ebc..0000000000
--- a/depends/README.packages
+++ /dev/null
@@ -1,130 +0,0 @@
-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