1#!/bin/sh 2# 3# To compile BusyBox without touching the original sources 4# (as might be interesting for multi-target builds), create 5# an empty directory, cd into it, and run this program by 6# giving its explicit path (kind of like how you would run 7# configure, if BusyBox had one). Then you should be ready 8# to "make". Files in the build tree, in particular Config.h, 9# will override those in the pristine source tree. 10# 11# If you use a ? in your path name, you lose, see sed command below. 12 13export LC_ALL=POSIX 14export LC_CTYPE=POSIX 15 16DIR=${0%%/pristine_setup.sh} 17if [ ! -d $DIR ]; then 18 echo "unexpected problem: $DIR is not a directory. Aborting pristine setup" 19 exit 20fi 21 22echo " " 23 24if [ -e ./Config.h ]; then 25 echo "./Config.h already exists: not overwriting" 26 exit 27fi 28 29if [ -e ./Makefile ]; then 30 echo "./Makefile already exists: not overwriting" 31fi 32 33sed -e "s?BB_SRC_DIR =.*?BB_SRC_DIR = $DIR?" <$DIR/Makefile >Makefile || exit 34cp $DIR/Config.h Config.h || exit 35#mkdir -p pwd_grp 36 37if [ ! -r $DIR/sh.c ]; then 38 echo "Warning: no shell selected. You must make the symlink (sh.c to either" 39 echo "lash.c or hush.c) in $DIR, not here." 40fi 41 42echo " " 43echo "You may now type 'make' to build busybox in this directory" 44echo "($PWD) using the pristine sources in $DIR" 45echo " " 46 47