and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
Sixteenth alpha version, released on 2004/07/04.
o Added preliminar support for work directories, which are used to put
all temporary files created during a build in them. This allows mak-
ing the source tree read only, as it won't get polluted in any way.
Note that existing packages may need some tweaks in their logic files
to support this completely. To help with testing, you should set the
BT_USE_WORKDIR variable in bt_config.conf to `yes', so that this fea-
ture is always used.
o Added a standard customizable `DOC' feature, which can be used by the
end user to disable installation of documentation. Existing packages
may need to be fixed to honour this, though.
o bt_logic's core has been rewritten. It is now much faster than
before and has better dependency control, which solves many stupid
bugs.
o A framework to run uninstalled programs (those which may be linked to
uninstalled libraries) has been readded. It is very similar to what
libtool does with its .libs directory, and is completely transparent
to the end user.
o Added (in fact, readded, as it was lost during the conversion to
bt_logic) support to install packages in a fake root directory,
needed in many package systems to support Buildtool-ized programs.
o Definitions' names (those written to the configuration header) have
been changed to include the language name they refer to in them.
This provides better support when the C and C++ compilers do not
match. Note that for this to take effect you need to set BT_REQUIRE
to (at least) `0.16'; otherwise, the previous behavior is kept.
o Multiple fixes have been done in the bt_check_bits() function.
o Fixed the link command in bt_logic so that library directories
appearing under the same project hierarchy (and manually specified by
the -L flag) are not converted to an rpath.
o Fixed build under OpenBSD 3.4, HP-UX and Tru64.
o Added the bt_check_prog_make() check in bt_config, which looks for a
make utility.
o Added the bt_echo() and bt_source() functions to bt_swcgen.
o The installation was changed to use unversioned directories and bina-
ries.
Fifteenth alpha version, released on 2004/02/04.
o Finally dropped bt_make and bt_wrap, together with all compatibility
code introduced around them.
o M4 is no longer needed. It was introduced to clean up code, but it
has proven to only ofuscate it. As a side effect, bt_swcgen uses
shell scripts instead of macro files to generate system wide configu-
ration.
o Added some checks to bt_config: bt_check_hdr_time(),
bt_check_prog_cc_flag() and bt_check_prog_cxx_flag().
o Support for the `+=' operator (append text to a variable) was added
to bt_sh. This can be used to simplify syntax when writting scripts.
o Support for pkgconfig files was added to bt_pkgflags.
o Support for pkgconfig command line syntax was added to bt_pkgflags
(it is not exactly the same, but we now support operators in their
real form, like `=' or `!=', plus spaces to separate keywords).
o Multiple portability problems fixed.
o Added the `qt_program' type to bt_logic as a replacement for the old
qt.moc.mk makefile.
o Added logging functionality to bt_logic, to help debugging problems
present in it and to tell the developer what is happening during a
build.
o Added a standard customizable directory (named `doc') where a package
may install documents. Package documents (those registered in the
docs() function) will get installed in this directory by default.
o Removed all uses of the getopt(1) command. This means that all mod-
ules that still used it now support long options, aside from the
standard short ones.
o Multiple bug fixes.
o All Buildtool control files (the ones in the buildtool.d subdirecto-
ry) were unified into a single file, Generic.bt, which is placed in
the top level directory for simplicity. Everything is now controlled
from shell functions defined in that file. Buildtool will assist you
in this conversion when needed.
o The bt_sh module was added, a very fast and small shell interpreter.
o The bt_logic module was extended (really, rewritten from scratch) to
provide a shell based program to track dependancies and build tar-
gets. It still acts as a wrapper for compilation and linking com-
mands. As a side effect, the old code was readded as the bt_wrap
module, needed to keep bt_make working until both can be safely re-
moved.
o bt_config will now check for several programs to generate dependancy
files. Aside from the standard cpp(1), it also searches for fastdep,
which will give better results on slow computers.
o Some bug fixes.
Released on 2003/07/24, its state was alpha.
o The bt_wizard module was added, which creates the basic structure
needed for a project based on a serie of interactive questions.
o Added cache support for many checks in bt_config. This makes the
program run a lot faster if checks are duplicated, and more impor-
tant, lets the administrator define check results beforehand in the
system wide bt_config.conf configuration file.
o The bt_swcgen module was added, which aids the system administrator
in the creation of system-wide configuration files for bt_config
(that is, files that store check results to avoid rechecking the same
thing over and over again).
o The buildtool.d/config_init file was deprecated. The entire configu-
ration script is now read from a single file, buildtool.d/config, as
the old framework was confusing and error prone. Compatibility will
be kept for some time.
o The TeXinfo documentation was removed. The manual is now distributed
in its own `buildtool-doc' package, written using Docbook/XML.
o The buildtool.spec file was added, needed to create RPM packages. It
actually supports building binary packages for RedHat Linux and SuSE
Linux.
o Improved user experience: better usage messages and support for long
options added.
o A developer mode was added to all configure scripts (disabled by de-
fault). It enables extra functionality during the build process,
ideal for developers but which may annoy end users.
o Removed license description files. bt_dist will suggest a COPYING
file instead, as this is the most common practice suggested by li-
censes.
o New standard checks in the bt_config module, specially
bt_check_prog_m4() and bt_check_attribute().
o Code cleanup and simplification (using M4 in some places).
o Lots of bugfixes.
o The bt_pkgflags module was added, which provides a replacement for
the pkg-config utility (not compatible).
o The bt_msg_summary() function was added to bt_config, which provides
an homogeneous way to output diagnostic messages at the end of the
configuration process.
o The bt_err() function in bt_config does not accept error codes any
more as its first argument.
o The buildtool(1) manpage was rewrote, including a simple user refer-
ence so people can easily learn how to build packages without having
to dig into the big manual.
o The bt_logic module was added. It parses each call to the compiler
and linker, sorts arguments, adapts them to the current platform and
runs the resulting converted command. It also provides generation of
dependancy files and installation of stuff.
o Initial support of shared libraries through bt_logic's framework.
Buildtool can now build them on different platforms and use different
naming schemes (needed for Darwin), set rpaths automatically, and
more. Note that this is still very experimental.
o New tunable features related with libraries are available for Build-
tool-ized packages. They are called SHARED and STATIC, and tune
which kind of libraries you want to build.
o Standalone bt_mkdep and bt_install modules were removed. All their
functionality is now superseded by bt_logic.
o The x11.subr module was added to bt_config. It provides checks for
automatic detection of the X Window System.
o The pkgconfig.subr module was added to bt_config. It provides a
frontend to the pkg-config(1) program. The bt_check_pkgflags() func-
tion has been deprecated in favour of this module.
o Added functions to automate the detection of a C/C++ compilation en-
vironment in bt_config. They are called bt_check_env_c() and
bt_check_env_cxx().
o Distribution documents converted to mdoc.
o Improved the bt_generate_output() function in bt_config; it now gen-
erates an external script, called bt_output, that can be used to
recreate files at any time.
o Implemented Buildtool version checking (BT_REQUIRE can be used now).
We cannot wait until 1.0 to have this feature.
o Miscellaneous bug fixes (in bt_config and bt_lint).
o Automatically generated configuration files have been prefixed with
`bt_' to avoid conflicts with user files. For example, config.h is
now named bt_config.h by default.
o Support for shared libraries has now been disabled by default. It is
still too incomplete.
Changes in 0.8, state: alpha
----------------------------
* Full rewrite of Buildtool's own build system, which should
improve maintenance and portability.
* New module bt_install, which provides a portable install program
to not depend on specific system details to do installation.
* New pthread.subr module for bt_config, which provides functions
for automatic detection of a pthreads implementation in the
current system.
* Added checks in bt_config: bt_check_func, to check for generic
functions (not specific to any library), and bt_check_type, to
check for the presence of a generic type.
* Fixes in bt_config's loadable module support. It was severely
broken in the previous version.
Changes in 0.7, state: alpha
----------------------------
* New check bt_check_bits, which determines appropiate C types for
different sizes.
* New check bt_check_hdr_std, which searches standard headers.
You *must* use this function, as it is now required for further
checks (improves portability).
* Addition of the `siteinfo' target to the main program. It allows
to get specific information about where Buildtool is installed
by third party programs.
* Default name of Makefile's changed to Makefile.bt. This allows
Automake and Buildtool to coexist in the same package and also
avoids running a regular Make tool within a Buildtool-ized
package (which will confuse the user).
* Build fixes under MacOS X (Darwin).
* Minor bug fixes to run cleanly under Win32, using Cygwin.
* Runtime fixes under GNU-based systems (the `getopt' command did
not behave properly).
While I'm here, fix some things: force the package to use TeXinfo 4.0 and
make it use PKG_SYSCONFDIR.
Provided in PR 18042 by Julio Merino.
Buildtool is a set of helper tools designed to make easy to
configure source packages and build them, also making them more
portable.
Buildtool can be tought as the BSD replacement of GNU automake,
autoconf and libtool.