This project contains evaluation-related material for busybox. It contains the scripting to run the TypeChef parser and type system on Busybox.
It does not include Busybox itself, nor header files, nor the KBuildMiner project.
Get sbt (tested with version 0.12.2) and run it in this directory. Sbt will automatically get the last release of TypeChef (You might still want to build a recent development release of TypeChef from the git repo).
Run sbt mkrun
to create a run.sbt
file, which sets the required build paths.
If you want to check other versions than 1.18.5 you need to download and build KBuildMiner (see README in that directory).
Check the paths to your header files in the redhat.properties
file. Currently, the configuration files point to a systems
directory for header files. That directory is not part of this repository. If you want to use the exact same headers that we are using, download them here http://www.cs.cmu.edu/~ckaestne/tmp/includes-redhat.tar.bz2
If you want to run just the 1.18.5 version of busybox, download that version and extract it to a busybox-1.18.5 directory. Subsequently run prepareBusybox.sh
to create the required .pc files.
Now you can execute TypeChef with ./analyzeBusybox.sh
Checkout the desired version of busybox from the git repo into the directory gitbusybox. Typically you would clone the busybox repo there
git clone git://busybox.net/busybox.git gitbusybox
Run prepareGit.sh
to extract the feature model and create .pc files.
You can run TypeChef with analyzeBusyboxGit.sh
Good luck. In case of problems contact someone of us.