aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-04-22not all echo commands support escape expansionMark Ferrell
2012-04-22Remove trailing 's' from variable nameMark Ferrell
2012-04-22Fix prep state in makedepsMark Ferrell
2012-04-20Make build-archive executableMark Ferrell
2012-04-20Revert build-archive functionalityMark Ferrell
* Instead of merging prep/compile/archive into 1 command I have reversed direction slightly. The individual stages/commands will be maintained as separate scripts, but they will no longer create time-stamp files so that they always get executed every time.
2012-04-20Merge build-archive and build-compileMark Ferrell
2012-04-20The build-distclean command is no longer usefulMark Ferrell
2012-04-20Enhancement: process builds inside TMPDIRMark Ferrell
* In order to avoid thrashing a filesystem with transient objects during the build process, and thus getting stuck within the I/O scheduler, we now perform all builds themselves within BUILDER_TMPDIR. This way the tmpdir path can be mounted as a ramfs, such as tmpfs, and avoid thrashing physical storage, particularly journals on a journalled filesystem.
2012-04-20Bugfix: cleanup packages_fetchMark Ferrell
* The fetch target does not depend on any single package, instead it depends on all possible sources.
2012-04-20Bugfix: typo in variable nameMark Ferrell
2012-04-19Properly reference the category pathMark Ferrell
2012-04-18Correct variable typoMark Ferrell
2012-04-18Include package category in artifact pathMark Ferrell
* Instead of relying on CBUILD and CHOST it is easier to simply archive packages within their category inside of the artifact directory.
2012-04-17Pickup current variables as well as ENV varsMark Ferrell
2012-04-17Split the sync stage into fetch+prepMark Ferrell
* At the core of the issue is that multiple packages can depend on the same sources. To that end, the sources themselves need to be represented independant of the packages which require them, as well as needed to be archived/maintained independant of the packages. To do this we have split the fetch action out separate of the prep action, thus fetch actions are only related to the source archives, and the prep action is how a package extracts said archive for use by a specific package.
2012-04-17Do not exec 'make'Mark Ferrell
* exec()'ing 'make' results in losing our ability to cleanup temp files.
2012-04-17Properly enable debuggingMark Ferrell
2012-03-30Allow Category BuildrulesMark Ferrell
* A category directory can now contain a .buildrules file which is is evaluated before importing the package specific Buildrule. This allows packages to be organized based on common build information, such as toolchain data, or the 3 stages of producing the GCC compiler * Removed the hard-coded assumption of the buildtools category being a toolchain and instead moved the data back into the TOOLCHAIN variable which I am now setting via the CATEGORY buildrule
2012-03-30Don't query the 'all' psuedo packageMark Ferrell
2012-03-30Properly prep compile environmentMark Ferrell
2012-03-30Clobber the workdir w/out all the overheadMark Ferrell
2012-03-30Support toolchain pathMark Ferrell
* Properly split out installation based on packages being part of the toolchain or not.
2012-03-30Cleanup generated MakefileMark Ferrell
2012-03-28Build infrastructure change...Mark Ferrell
* Renamed build-info to build-query. The build-query tool is now responsible for looking up pretty much any and all package information, and all of the tools should use it instead of making assumptions about paths. * Redesigned the package structure to support <category>/<package>. When a request is made that excludes the <category> then the <project_name> is assumed to be the category. * Currently anything in the buildtools/ category is not cleaned up during build-clean. In the future there will be a NOCLEAN option as a category rule that the Buildrules file implicitly inherits.
2012-03-25Add .gitignoreMark Ferrell
2012-03-24Support build configsMark Ferrell
2012-03-24If no arguments are given build everythingMark Ferrell
* Changed builder to assume 'build all' when no arguments are given. This results in a 'build <package> all' assumption when within a package subdirectory
2012-03-23Fix resolution of package directoryMark Ferrell
* When no package is specified on the command line we check to see if the PWD is within a package path, if so we use that package name. Unfortunately the variable expansion wasn't removing sub-directories below the package from the name, which broke things.
2012-03-23Rename bin/ to scripts/Mark Ferrell
2012-03-23Fix cleanup during clean/distcleanMark Ferrell
* Added a workdir variable ${W} which references the ${BUILDER_PKGDIR}/${NAME}/build, which allows distclean to clobber the entire workdir directory structer as opposed to just the extracted source directory structure.
2012-03-23Fix argument orderingMark Ferrell
* Corrected the argument ordering so that they match the documentation and they are closer to what one would expect in any normal CLI * Enhanced the interface slightly so that when no target is specified, the target is picked based on ones current location within the tree. Thus 'build clean' outside of a package is the equvilant to 'build clean all', but 'build clean' while inside of package/foo is the same as 'build clean foo' * You can now specify multiple targets on the command line. I.e. build clean foo bar
2012-03-23Add support for a distclean targetMark Ferrell
* The 'clean' target will no longer destroy any packages flagged as members of the toolchain. Instead toolchain packages will be marked as no longer installed such that the toolchain artifacts will be extracted instead of rebuilding the toolchain. * To clean all packages including the toolchain a 'distclean' target has been added.
2012-03-23Improve handling of package pathsMark Ferrell
2012-03-23Make the archive time match the compile timeMark Ferrell
* Due to the nature of the parallel build process we need to make the timestamp on the archive match the timestamp on the log/.compiled file, else targets may be rebuilt unecesarily.
2012-03-23Do not run in a subshellMark Ferrell
* For whatever reason the subshell does not seem to obey 'set -e'. Removing execution of pkg_compile() from the subshell as we don't actually do anything after that which involves changing directories, which was the majority of the reason for running in a subshell to begin with.
2012-03-23Make the archive time match the compile timeMark Ferrell
* Due to the nature of the parallel build process we need to make the timestamp on the archive match the timestamp on the log/.compiled file, else targets may be rebuilt unecesarily.
2012-03-23Create directies as necessaryMark Ferrell
* Need to validate that our source and artifact directories are created before we attempt to use them.
2012-03-19Improve logging within build-compile.Mark Ferrell
* Bad redirection was truncating compiling log * Added ENV data to the start of the compile log to aid in debugging.
2012-03-19Do not pass down MAKEFLAGS.Mark Ferrell
* Do not allow child-processes to inherit MAKEFLAGS as the job control descriptor is lost when calling build-compile.
2012-03-19Be able to handle everything under the targetMark Ferrell
* The '*' pattern will fail to match .[a-zA-Z0-9]*, so instead we use find to traverse the target.
2012-03-19Move logging out of the generated Makefile.Mark Ferrell
* In the long run we need to have fine-grained control over the logging interface. To pull that off we need to migrate all logging out of the Makefile infrastructure and instead handle it within the build scripts.
2012-03-19Execute scripts with set -e.Mark Ferrell
* In order to avoid the entire "cmd || exit 1" scripting habbit on every line I am attempting tomodify the scripts so that they execute with set -e. Alas, this poses some interesting problems with pipes.
2012-03-19Set common compilation environment variables.Mark Ferrell
* This is a temporary stop-gap. All of these variables need to be set, but they need to be done so in a universal fashion relative to the target configurations for the build-tree. Currently setting them in build-compile to figure out what all is needed and to clean up the compilation process.
2012-03-19Allow multiple archives in the SOURCE_URIMark Ferrell
2012-03-14pkg_compile() fixupsMark Ferrell
* Allow Buildrules to specify CONFIG_OPTS instead of overloading pkg_compile() to specify a custom ./configure line * Default pkg_compile() should make use of the global MAKE_OPTS
2012-03-14Eliminate libbuilder.shMark Ferrell
* The 'build' command is now capable of acting as a script-wrapper for sub-commands. This elininates the libbuilder.sh script and the fairly verbose checking for libbuilder.sh in every sub-command.
2012-03-14Add support for handling http/ftp url'sMark Ferrell
2012-03-13Initial checkin of the Builder engine.Mark Ferrell
* The Builder build engine is now working sufficiently enough to warrent a proper SCM checkin. I have been adding enhanced functionality to the system that demonstrates that I am approaching the end of the proof-of-concept phase.