#!/bin/sh # # To compile BusyBox without touching the original sources # (as might be interesting for multi-target builds), create # an empty directory, cd into it, and run this program by # giving its explicit path (kind of like how you would run # configure, if BusyBox had one). Then you should be ready # to "make". Files in the build tree, in particular Config.h, # will override those in the pristine source tree. # # If you use a ? in your path name, you lose, see sed command below. export LC_ALL=POSIX export LC_CTYPE=POSIX DIR=${0%%/pristine_setup.sh} if [ ! -d $DIR ]; then echo "unexpected problem: $DIR is not a directory. Aborting pristine setup" exit fi echo " " if [ -e ./Config.h ]; then echo "./Config.h already exists: not overwriting" exit fi if [ -e ./Makefile ]; then echo "./Makefile already exists: not overwriting" fi sed -e "s?BB_SRC_DIR =.*?BB_SRC_DIR = $DIR?" <$DIR/Makefile >Makefile || exit cp $DIR/Config.h Config.h || exit #mkdir -p pwd_grp if [ ! -r $DIR/sh.c ]; then echo "Warning: no shell selected. You must make the symlink (sh.c to either" echo "lash.c or hush.c) in $DIR, not here." fi echo " " echo "You may now type 'make' to build busybox in this directory" echo "($PWD) using the pristine sources in $DIR" echo " "