summaryrefslogtreecommitdiff
path: root/mk/buildhlp.mk
AgeCommit message (Collapse)Author
2016-03-27reimplement package patching and update-patches logicPhil Sutter
This works by using git as backend for all the dirty work. This means that patches are not just applied, but committed separately on top of the base sources (which are put into an initial commit). A final empty commit marks the end of the applied patch series, which allows to have multiple sets of patches to apply on top of each other. So a git history might look like this: - OpenADK patch marker: 0000 (this is the initial commit, containing the unpatched sources) - patch 1 of series 1 - patch 2 of series 1 - patch 3 of series 1 - OpenADK patch marker: 0001 - patch 1 of series 2 - patch 2 of series 2 - OpenADK patch marker: 0002 In addition to the separating empty commits, for every patch series metadata files are added (which are used for update-patches): __patchfiles__: A list of the patches' file names __patchdir__: The directory containing the applied patches Since patches might have to be unzipped first and in order to allow calling git-am just once for each patch series, the patches (along with above metadata files) are cached in dedicated directories: .git/patch_tmp/NNNN (where NNNN is the series number with leading zeroes [so shell globbing returns them in the right order]). In case update-patches is called later, update_patches.sh works it's way reverse through the git history, searching for commits named 'OpenADK patch marker: NNNN'. For each one it finds, it uses the metadata info to first remove all source patch files, then export the history in between using git-format-patch. To change patches or add new ones, the user has to use git-rebase in order to get things where they need to be for update_patches.sh to put stuff at the right place. For an example, here is how to change patch 3 of series 1 in the sample history above: - make desired code changes - commit them, ideally using --fixup option - call 'git rebase -i --autosquash <hash of OpenADK patch marker: 0000>' Using --fixup and --autosquash is convenient, since it automatically edits the rebase todo as intended. It's optional though, editing the todo manually will do just fine as well. Signed-off-by: Phil Sutter <phil@nwl.cc>
2016-02-29add new PKG_GIT variableWaldemar Brodkorb
We can now clone git tags and branches in a more performant way. No change for specific hashes, other then PKG_GIT is required now. Do not remove .git dirs, as the downloaded code might be used to add a patch and send upstream. Add git as requirement for downloading. Remove unmaintained u-boot-git package.
2015-12-13rework prereq checkWaldemar Brodkorb
The new prereq check is completely implemented in POSIX shell in scripts/prereq.sh. It combines the old features from Makefile, scan-tools.sh, scan-pkgs.sh, reloc.sh and some wrappers for tools. The big benefit is to have all portability stuff in one place. Furthermore we can compile GNU make and bash on the fly, for systems lacking the required tools. All changes on the host are detected on the fly, no make prereq required anymore. The build process is separated in following three phases: 1. small wrapper Makefile is used for BSD make or GNU make 2. prereq.sh is called, doing all checking, calling Makefile.adk 3. old logic in Makefile.adk or mk/build.mk is used Tested successfully on Linux, MacOS X, Cygwin, FreeBSD, OpenBSD and NetBSD. An old depmaker bug was fixed, only optional host tools are compiled. For example, even when a host provides xz, a local xz was compiled in the past, because other packages had a build dependency on it. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
2015-12-11Revert "rework prereq check"Waldemar Brodkorb
This reverts commit fba2ff31928b18364c1934654169806f5c800e23.
2015-12-11rework prereq checkwbx
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
2015-12-06install config.sub and config.guess alwaysWaldemar Brodkorb
We need it for toolchain components. Add latest config.sub/config.guess from upstream with a minor patch for sh2eb detection.
2015-01-09use PKG_NOCHECKSUMWaldemar Brodkorb
2014-06-21s/TOPDIR/ADK_TOPDIR/Waldemar Brodkorb
to avoid namespace collisions in some packages, rename TOPDIR. Sorry you need to make cleandir && make prereq && make
2014-06-18use libc specific patching to avoid any side effects in the gcc patches, as ↵Waldemar Brodkorb
seen in buildroot recently
2014-06-11ignore config.sub/config.guess, do not create backup and restore it on ↵Waldemar Brodkorb
update-patches, fix some minor issues. PIE can only be used for binaries and need support in a package
2014-06-08fix arch specific patch applyWaldemar Brodkorb
2014-06-02refactor CPU_ARCH/ARCH variablesWaldemar Brodkorb
After Joerg asked me about the difference between ADK_TARGET_ARCH and ADK_TARGET_CPU_ARCH I recognized many duplication of variables for this information. These patch fixes this up. Use make cleandir && make menuconfig && make
2014-05-25non-verboseWaldemar Brodkorb
2014-05-03more flexible list of files to ignore when doing update-patchesThorsten Glaser
e.g. for use with autoconf, but also for build-time generated files that are part of the distfile Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
2014-05-03proper quoting in GNUmakefile as wellThorsten Glaser
Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
2014-05-03move calling update-patches into a separate mksh script update-patches2 ↵Thorsten Glaser
handling quoting much better Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
2014-05-03require mksh for the update-patches helper scriptThorsten Glaser
Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
2014-04-26use XZ tarballs as defaultWaldemar Brodkorb
2014-04-07only use patch for ARCH == sparcWaldemar Brodkorb
2014-03-31better fixWaldemar Brodkorb
2014-03-31need to export PATHWaldemar Brodkorb
2014-03-30build host tools on demand, when not available on the hostWaldemar Brodkorb
2014-03-30rework hosttools building, add tools into package stuffWaldemar Brodkorb
2014-02-18use bin directory for host binaries only, use new firmware directory for the ↵Waldemar Brodkorb
resulting firmware
2013-10-31forgot to import regular expression moduleWaldemar Brodkorb
2013-10-30fix update-patches when WRKDIST is overwritten in the MakefileWaldemar Brodkorb
2013-10-29inverse logic to avoid error messageWaldemar Brodkorb
2013-10-29Merge branch 'master' of git+ssh://openadk.org/git/openadkWaldemar Brodkorb
2013-10-29convert tslib to autotool infrastructure, downgrade m4, newest version have ↵Waldemar Brodkorb
problems generating correct Makefiles
2013-10-29update python2 and use new host infrastructureWaldemar Brodkorb
2013-10-28fix host build stuff and update-patches, convert cifs-utils and libaudiofile ↵Waldemar Brodkorb
to new autotool infrastructure
2011-08-22allow FETCH_STYLE=manual to succeed. simplify fetch loop.Waldemar Brodkorb
2011-04-03fix extraction problemsWaldemar Brodkorb
2011-01-10add LTO support to toolchain settings. Cleanup SYSROOT mess.Waldemar Brodkorb
- just use on sysroot directory for toolchain. - add missing patches from previos commit. (rpath/cflags cleanup)
2011-01-08fix make clean target ruleWaldemar Brodkorb
correct the wrong path and remove the correct files on clean. Finetune more directory creation rules.
2010-12-14avoid output on post-extractWaldemar Brodkorb
2010-10-16Merge branch 'master' of git+ssh://openadk.org/git/openadkWaldemar Brodkorb
Conflicts: package/freeradius-server/Makefile package/nss/patches/patch-mozilla_security_coreconf_Linux_mk
2010-09-15rebuild packages on flavour or choices changeWaldemar Brodkorb
add new target rebuild. make cpio and pacch quiet. Use bin/tools for cpio and mkcrypt.
2010-08-05update lemote to 2.6.35, enable version specific patches for kernel-header ↵Waldemar Brodkorb
patches
2010-02-28revert change, variable is used in update-patchesWaldemar Brodkorb
2010-02-27fix checksum check of toolchain archives after downloadWaldemar Brodkorb
and update alix/wrap targets to 2.6.33
2010-02-07change defaults for CONFIG/BUILD/INSTALL stylesWaldemar Brodkorb
All packages need an update, so here is a very huge commit. Most of the 460 source packages use automatic style for configuration, building and installing. Make these styles default to "auto". If you have a package, which does not conform to this, just use manual style and add a do-$task make target. I added a new style named AUTOTOOL style, which is needed for some broken packages, which needs to be updated via autoconf or automake. I renamed CONFIGURE_STYLE to CONFIG_STYLE. Updates for some packages, which have newer upstream versions. Renaming of all package/*/extra directories. Use the directory src/ to provide overwrites of source files or to add the code, when no upstream package is available or used. src directory will be automatically used.
2009-10-01some native build fixesLinux User
- git package needs a better fix. but existing symlinks are broken build without perl - update curl to latest upstream, including libcurl-dev package - add libopenssl-dev package
2009-06-01remove unused $Id$Waldemar Brodkorb
- $id$ substitution is not apropriate for git scm
2009-05-30optimize ipkg package managementWaldemar Brodkorb
- generate ipkg control file from PKG_* variables - automatically install init scripts from ./files/*.init set #PKG pkgname to set the binary package - rename FWINIT -> INIT - move postinst and conffiles meta data to ./files - update the packages to the latest upstream version - remove some unready or unused package (strongswan,..) more cleanups needed after allmodconfig
2009-05-23- cleanup and document PKG_template, ARCH parameter is not needed anymoreWaldemar Brodkorb
- use CPU_ARCH for fake dir and ipkg - enable DEBUG option in menu and rename to ADK_DEBUG
2009-05-17Initial importwbx