Store a custom Rules.mak file to enable buildign static binaries
No binary (build failed)
—
(log yok)
| @@ -1,469 +0,0 @@ | |
| - | /* vi: set sw=4 ts=4: */ |
| - | // This file defines the feature set to be compiled into busybox. |
| - | // When you turn things off here, they won't be compiled in at all. |
| - | // |
| - | //// This file is parsed by sed. You MUST use single line comments. |
| - | // i.e., //#define CONFIG_BLAH |
| - | // |
| - | // |
| - | // BusyBox Applications |
| - | //#define CONFIG_ADJTIMEX |
| - | #define CONFIG_AR |
| - | //#define CONFIG_ASH |
| - | #define CONFIG_BASENAME |
| - | #define CONFIG_CAT |
| - | #define CONFIG_CHGRP |
| - | #define CONFIG_CHMOD |
| - | #define CONFIG_CHOWN |
| - | #define CONFIG_CHROOT |
| - | #define CONFIG_CHVT |
| - | #define CONFIG_CLEAR |
| - | //#define CONFIG_CMP |
| - | #define CONFIG_CP |
| - | //#define CONFIG_CPIO |
| - | #define CONFIG_CUT |
| - | #define CONFIG_DATE |
| - | //#define CONFIG_DC |
| - | #define CONFIG_DD |
| - | //#define CONFIG_DEALLOCVT |
| - | #define CONFIG_DF |
| - | #define CONFIG_DIRNAME |
| - | #define CONFIG_DMESG |
| - | //#define CONFIG_DOS2UNIX |
| - | //#define CONFIG_DPKG |
| - | //#define CONFIG_DPKG_DEB |
| - | //#define CONFIG_DUTMP |
| - | #define CONFIG_DU |
| - | //#define CONFIG_DUMPKMAP |
| - | #define CONFIG_ECHO |
| - | #define CONFIG_ENV |
| - | #define CONFIG_EXPR |
| - | //#define CONFIG_FBSET |
| - | //#define CONFIG_FDFLUSH |
| - | #define CONFIG_FIND |
| - | #define CONFIG_FREE |
| - | //#define CONFIG_FREERAMDISK |
| - | //#define CONFIG_FSCK_MINIX |
| - | //#define CONFIG_GETOPT |
| - | #define CONFIG_GREP |
| - | #define CONFIG_GUNZIP |
| - | #define CONFIG_GZIP |
| - | #define CONFIG_HALT |
| - | #define CONFIG_HEAD |
| - | //#define CONFIG_HOSTID |
| - | //#define CONFIG_HOSTNAME |
| - | //#define CONFIG_HUSH |
| - | #define CONFIG_ID |
| - | //#define CONFIG_IFCONFIG |
| - | #define CONFIG_INIT |
| - | //#define CONFIG_INSMOD |
| - | #define CONFIG_KILL |
| - | #define CONFIG_KILLALL |
| - | #define CONFIG_KLOGD |
| - | //#define CONFIG_LASH |
| - | //#define CONFIG_LENGTH |
| - | #define CONFIG_LN |
| - | //#define CONFIG_LOADACM |
| - | //#define CONFIG_LOADFONT |
| - | #define CONFIG_LOADKMAP |
| - | #define CONFIG_LOGGER |
| - | //#define CONFIG_LOGNAME |
| - | #define CONFIG_LS |
| - | #define CONFIG_LSMOD |
| - | //#define CONFIG_MAKEDEVS |
| - | #define CONFIG_MD5SUM |
| - | #define CONFIG_MKDIR |
| - | //#define CONFIG_MKFIFO |
| - | //#define CONFIG_MKFS_MINIX |
| - | #define CONFIG_MKNOD |
| - | #define CONFIG_MKSWAP |
| - | //#define CONFIG_MKTEMP |
| - | //#define CONFIG_MODPROBE |
| - | #define CONFIG_MORE |
| - | #define CONFIG_MOUNT |
| - | //#define CONFIG_MSH |
| - | //#define CONFIG_MT |
| - | #define CONFIG_MV |
| - | //#define CONFIG_NC |
| - | //#define CONFIG_NSLOOKUP |
| - | //#define CONFIG_PIDOF |
| - | #define CONFIG_PING |
| - | //#define CONFIG_PIVOT_ROOT |
| - | #define CONFIG_POWEROFF |
| - | //#define CONFIG_PRINTF |
| - | #define CONFIG_PS |
| - | #define CONFIG_PWD |
| - | //#define CONFIG_RDATE |
| - | //#define CONFIG_READLINK |
| - | #define CONFIG_REBOOT |
| - | //#define CONFIG_RENICE |
| - | #define CONFIG_RESET |
| - | #define CONFIG_RM |
| - | #define CONFIG_RMDIR |
| - | //#define CONFIG_RMMOD |
| - | //#define CONFIG_ROUTE |
| - | //#define CONFIG_RPM2CPIO |
| - | #define CONFIG_SED |
| - | //#define CONFIG_SETKEYCODES |
| - | #define CONFIG_SLEEP |
| - | #define CONFIG_SORT |
| - | //#define CONFIG_STTY |
| - | #define CONFIG_SWAPONOFF |
| - | #define CONFIG_SYNC |
| - | #define CONFIG_SYSLOGD |
| - | #define CONFIG_TAIL |
| - | #define CONFIG_TAR |
| - | //#define CONFIG_TEE |
| - | //#define CONFIG_TEST |
| - | #define CONFIG_TELNET |
| - | //#define CONFIG_TFTP |
| - | #define CONFIG_TOUCH |
| - | #define CONFIG_TR |
| - | //#define CONFIG_TRACEROUTE |
| - | #define CONFIG_TRUE_FALSE |
| - | #define CONFIG_TTY |
| - | //#define CONFIG_UNIX2DOS |
| - | //#define CONFIG_UUENCODE |
| - | //#define CONFIG_UUDECODE |
| - | #define CONFIG_UMOUNT |
| - | #define CONFIG_UNIQ |
| - | #define CONFIG_UNAME |
| - | //#define CONFIG_UPDATE |
| - | #define CONFIG_UPTIME |
| - | //#define CONFIG_USLEEP |
| - | #define CONFIG_VI |
| - | //#define CONFIG_WATCHDOG |
| - | #define CONFIG_WC |
| - | #define CONFIG_WGET |
| - | #define CONFIG_WHICH |
| - | #define CONFIG_WHOAMI |
| - | #define CONFIG_XARGS |
| - | #define CONFIG_YES |
| - | // End of Applications List |
| - | // |
| - | // |
| - | // |
| - | // --------------------------------------------------------- |
| - | // This is where feature definitions go. Generally speaking, |
| - | // turning this stuff off makes things a bit smaller (and less |
| - | // pretty/useful). |
| - | // |
| - | // |
| - | // If you enabled one or more of the shells, you may select which one |
| - | // should be run when sh is invoked: |
| - | //#define CONFIG_FEATURE_SH_IS_ASH |
| - | //#define CONFIG_FEATURE_SH_IS_HUSH |
| - | //#define CONFIG_FEATURE_SH_IS_LASH |
| - | #define CONFIG_FEATURE_SH_IS_MSH |
| - | // |
| - | // BusyBox will, by default, malloc space for its buffers. This costs code |
| - | // size for the call to xmalloc. You can use the following feature to have |
| - | // them put on the stack. For some very small machines with limited stack |
| - | // space, this can be deadly. For most folks, this works just fine... |
| - | //#define CONFIG_FEATURE_BUFFERS_GO_ON_STACK |
| - | // The third alternative for buffer allocation is to use BSS. This works |
| - | // beautifully for computers with a real MMU (and OS support), but wastes |
| - | // runtime RAM for uCLinux. This behavior was the only one available for |
| - | // BusyBox versions 0.48 and earlier. |
| - | //#define CONFIG_FEATURE_BUFFERS_GO_IN_BSS |
| - | // |
| - | // Turn this on to use Erik's very cool devps, and devmtab kernel drivers, |
| - | // thereby eliminating the need for the /proc filesystem and thereby saving |
| - | // lots and lots memory for more important things. NOTE: If you enable this |
| - | // feature, you _must_ have patched the kernel to include the devps patch that |
| - | // is included in the busybox/kernel-patches directory. You will also need to |
| - | // create some device special files in /dev on your embedded system: |
| - | // mknod /dev/mtab c 10 22 |
| - | // mknod /dev/ps c 10 21 |
| - | // I emailed Linus and this patch will not be going into the stock kernel. |
| - | //#define CONFIG_FEATURE_USE_DEVPS_PATCH |
| - | // |
| - | // show verbose usage messages |
| - | //#define CONFIG_FEATURE_VERBOSE_USAGE |
| - | // |
| - | // Use termios to manipulate the screen ('more' is prettier with this on) |
| - | #define CONFIG_FEATURE_USE_TERMIOS |
| - | // |
| - | // calculate terminal & column widths (for more and ls) |
| - | #define CONFIG_FEATURE_AUTOWIDTH |
| - | // |
| - | // show username/groupnames for ls |
| - | #define CONFIG_FEATURE_LS_USERNAME |
| - | // |
| - | // show file timestamps in ls |
| - | #define CONFIG_FEATURE_LS_TIMESTAMPS |
| - | // |
| - | // enable ls -p and -F |
| - | #define CONFIG_FEATURE_LS_FILETYPES |
| - | // |
| - | // sort the file names |
| - | #define CONFIG_FEATURE_LS_SORTFILES |
| - | // |
| - | // enable ls -R |
| - | #define CONFIG_FEATURE_LS_RECURSIVE |
| - | // |
| - | // enable ls -L |
| - | #define CONFIG_FEATURE_LS_FOLLOWLINKS |
| - | // |
| - | // Disable for a smaller (but less functional) ping |
| - | #define CONFIG_FEATURE_FANCY_PING |
| - | // |
| - | // Make init use a simplified /etc/inittab file (recommended). |
| - | #define CONFIG_FEATURE_USE_INITTAB |
| - | // |
| - | //Enable init being called as /linuxrc |
| - | #define CONFIG_FEATURE_INITRD |
| - | // |
| - | //Have init enable core dumping for child processes (for debugging only) |
| - | //#define CONFIG_FEATURE_INIT_COREDUMPS |
| - | // |
| - | //Make sure nothing is printed to the console on boot |
| - | //#define CONFIG_FEATURE_EXTRA_QUIET |
| - | // |
| - | // enable syslogd -R remotehost |
| - | #define CONFIG_FEATURE_REMOTE_LOG |
| - | // |
| - | // enable syslogd -C |
| - | //#define CONFIG_FEATURE_IPC_SYSLOG |
| - | // |
| - | //Disable for a simple tail implementation (2.34k vs 3k for the full one). |
| - | //Both provide 'tail -f', but this cuts out -c, -q, -s, and -v. |
| - | #define CONFIG_FEATURE_FANCY_TAIL |
| - | // |
| - | // Enable support for loop devices in mount |
| - | #define CONFIG_FEATURE_MOUNT_LOOP |
| - | // |
| - | // Enable support for a real /etc/mtab file instead of /proc/mounts |
| - | //#define CONFIG_FEATURE_MTAB_SUPPORT |
| - | // |
| - | // Enable support for mounting remote NFS volumes. |
| - | // You may need to mount with "-o nolock" if you are |
| - | // not running a local portmapper daemon... |
| - | #define CONFIG_FEATURE_NFSMOUNT |
| - | // |
| - | // Enable support forced filesystem unmounting |
| - | // (i.e., in case of an unreachable NFS system). |
| - | #define CONFIG_FEATURE_MOUNT_FORCE |
| - | // |
| - | // Enable support for creation of tar files. |
| - | #define CONFIG_FEATURE_TAR_CREATE |
| - | // |
| - | // Enable support for "--exclude" and "-X" for excluding files |
| - | #define CONFIG_FEATURE_TAR_EXCLUDE |
| - | // |
| - | // Enable support for tar -z option (currently only works for inflating) |
| - | #define CONFIG_FEATURE_TAR_GZIP |
| - | // |
| - | // Enable reverse sort |
| - | #define CONFIG_FEATURE_SORT_REVERSE |
| - | // |
| - | // Enable uniqe sort |
| - | #define CONFIG_FEATURE_SORT_UNIQUE |
| - | // |
| - | // Enable command line editing in the shell. |
| - | // Only relevant if a shell is enabled. On by default. |
| - | #define CONFIG_FEATURE_COMMAND_EDITING |
| - | // |
| - | // Enable tab completion in the shell. This is now working quite nicely. |
| - | // This feature adds a bit over 4k. Only relevant if a shell is enabled. |
| - | #define CONFIG_FEATURE_COMMAND_TAB_COMPLETION |
| - | // |
| - | // Attempts to match usernames in a ~-prefixed path |
| - | //#define CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION |
| - | // |
| - | //Allow the shell to invoke all the compiled in BusyBox applets as if they |
| - | //were shell builtins. Nice for staticly linking an emergency rescue shell, |
| - | //among other things. Off by default. |
| - | // Only relevant if a shell is enabled. |
| - | //#define CONFIG_FEATURE_SH_STANDALONE_SHELL |
| - | // |
| - | //When this is enabled, busybox shell applets can be called using full path |
| - | //names. This causes applets (i.e., most busybox commands) to override |
| - | //real commands on the filesystem. For example, if you run run /bin/cat, it |
| - | //will use BusyBox cat even if /bin/cat exists on the filesystem and is _not_ |
| - | //busybox. Some systems want this, others do not. Choose wisely. :-) This |
| - | //only has meaning when CONFIG_FEATURE_SH_STANDALONE_SHELL is enabled. |
| - | // Only relevant if a shell is enabled. Off by default. |
| - | //#define CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN |
| - | // |
| - | // Uncomment this option for a fancy shell prompt that includes the |
| - | // current username and hostname. On systems that don't have usernames |
| - | // or hostnames, this can look hideous. |
| - | // Only relevant if a shell is enabled. |
| - | //#define CONFIG_FEATURE_SH_FANCY_PROMPT |
| - | // |
| - | //Turn on extra fbset options |
| - | //#define CONFIG_FEATURE_FBSET_FANCY |
| - | // |
| - | //Turn on fbset readmode support |
| - | //#define CONFIG_FEATURE_FBSET_READMODE |
| - | // |
| - | // Support insmod/lsmod/rmmod for post 2.1 kernels |
| - | //#define CONFIG_FEATURE_NEW_MODULE_INTERFACE |
| - | // |
| - | // Support insmod/lsmod/rmmod for pre 2.1 kernels |
| - | //#define CONFIG_FEATURE_OLD_MODULE_INTERFACE |
| - | // |
| - | // Support module version checking |
| - | //#define CONFIG_FEATURE_INSMOD_VERSION_CHECKING |
| - | // |
| - | // Support for uClinux memory usage optimization, which will load the image |
| - | // directly into the kernel memory. This divides memory requrements by three. |
| - | // If you are not running uClinux (i.e., your CPU has an MMU) leave this |
| - | // disabled... |
| - | //#define CONFIG_FEATURE_INSMOD_LOADINKMEM |
| - | // |
| - | // Support for Minix filesystem, version 2 |
| - | //#define CONFIG_FEATURE_MINIX2 |
| - | // |
| - | // Enable ifconfig status reporting output -- this feature adds 12k. |
| - | #define CONFIG_FEATURE_IFCONFIG_STATUS |
| - | // |
| - | // Enable ifconfig slip-specific options "keepalive" and "outfill" |
| - | //#define CONFIG_FEATURE_IFCONFIG_SLIP |
| - | // |
| - | // Enable ifconfig options "mem_start", "io_addr", and "irq". |
| - | //#define CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ |
| - | // |
| - | // Enable ifconfig option "hw". Currently works for only with "ether". |
| - | #define CONFIG_FEATURE_IFCONFIG_HW |
| - | // |
| - | // Enable busybox --install [-s] |
| - | // to create links (or symlinks) for all the commands that are |
| - | // compiled into the binary. (needs /proc filesystem) |
| - | #define CONFIG_FEATURE_INSTALLER |
| - | // |
| - | // Enable a nifty progress meter in wget (adds just under 2k) |
| - | #define CONFIG_FEATURE_WGET_STATUSBAR |
| - | // |
| - | // Enable HTTP authentication in wget |
| - | #define CONFIG_FEATURE_WGET_AUTHENTICATION |
| - | // |
| - | // Clean up all memory before exiting -- usually not needed |
| - | // as the OS can clean up... Don't enable this unless you |
| - | // have a really good reason for cleaning things up manually. |
| - | //#define CONFIG_FEATURE_CLEAN_UP |
| - | // |
| - | // Support for human readable output by ls, du, etc.(example 13k, 23M, 235G) |
| - | #define CONFIG_FEATURE_HUMAN_READABLE |
| - | // |
| - | // Support for the find -type option. |
| - | #define CONFIG_FEATURE_FIND_TYPE |
| - | // |
| - | // Support for the find -perm option. |
| - | #define CONFIG_FEATURE_FIND_PERM |
| - | // |
| - | // Support for the find -mtine option. |
| - | #define CONFIG_FEATURE_FIND_MTIME |
| - | // |
| - | // Support for the -A -B and -C context flags in grep |
| - | //#define CONFIG_FEATURE_GREP_CONTEXT |
| - | // |
| - | // Support for the EGREP applet (alias to the grep applet) |
| - | //#define CONFIG_FEATURE_GREP_EGREP_ALIAS |
| - | // |
| - | // Tell tftp what commands that should be supported. |
| - | #define CONFIG_FEATURE_TFTP_PUT |
| - | #define CONFIG_FEATURE_TFTP_GET |
| - | // |
| - | // features for vi |
| - | #define CONFIG_FEATURE_VI_COLON // ":" colon commands, no "ex" mode |
| - | #define CONFIG_FEATURE_VI_YANKMARK // Yank/Put commands and Mark cmds |
| - | #define CONFIG_FEATURE_VI_SEARCH // search and replace cmds |
| - | #define CONFIG_FEATURE_VI_USE_SIGNALS // catch signals |
| - | #define CONFIG_FEATURE_VI_DOT_CMD // remember previous cmd and "." cmd |
| - | #define CONFIG_FEATURE_VI_READONLY // vi -R and "view" mode |
| - | #define CONFIG_FEATURE_VI_SETOPTS // set-able options, ai ic showmatch |
| - | #define CONFIG_FEATURE_VI_SET // :set |
| - | #define CONFIG_FEATURE_VI_WIN_RESIZE // handle window resize |
| - | // |
| - | // Enable a if you system have setuped locale |
| - | //#define CONFIG_LOCALE_SUPPORT |
| - | // |
| - | // Support for TELNET to pass TERM type to remote host. Adds 384 bytes. |
| - | #define CONFIG_FEATURE_TELNET_TTYPE |
| - | // |
| - | // End of Features List |
| - | // |
| - | // |
| - | // |
| - | // |
| - | // |
| - | // |
| - | //--------------------------------------------------- |
| - | // Nothing beyond this point should ever be touched by |
| - | // mere mortals so leave this stuff alone. |
| - | // |
| - | #include <features.h> |
| - | #if defined __UCLIBC__ && ! defined __UCLIBC_HAS_MMU__ |
| - | #undef CONFIG_RPM2CPIO /* Uses gz_open(), which uses fork() */ |
| - | #undef CONFIG_DPKG_DEB /* Uses gz_open(), which uses fork() */ |
| - | #undef CONFIG_ASH /* Uses fork() */ |
| - | #undef CONFIG_HUSH /* Uses fork() */ |
| - | #undef CONFIG_LASH /* Uses fork() */ |
| - | #undef CONFIG_INIT /* Uses fork() */ |
| - | #undef CONFIG_FEATURE_TAR_GZIP /* Uses fork() */ |
| - | #undef CONFIG_SYSLOGD /* Uses daemon() */ |
| - | #undef CONFIG_KLOGD /* Uses daemon() */ |
| - | #undef CONFIG_UPDATE /* Uses daemon() */ |
| - | #endif |
| - | #if defined CONFIG_ASH || defined CONFIG_HUSH || defined CONFIG_LASH || defined CONFIG_MSH |
| - | #if defined CONFIG_FEATURE_COMMAND_EDITING |
| - | #define CONFIG_CMDEDIT |
| - | #else |
| - | #undef CONFIG_FEATURE_COMMAND_EDITING |
| - | #undef CONFIG_FEATURE_COMMAND_TAB_COMPLETION |
| - | #undef CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION |
| - | #undef CONFIG_FEATURE_SH_FANCY_PROMPT |
| - | #endif |
| - | #else |
| - | #undef CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN |
| - | #undef CONFIG_FEATURE_SH_STANDALONE_SHELL |
| - | #undef CONFIG_FEATURE_SH_FANCY_PROMPT |
| - | #endif |
| - | // |
| - | #ifdef CONFIG_KILLALL |
| - | #ifndef CONFIG_KILL |
| - | #define CONFIG_KILL |
| - | #endif |
| - | #endif |
| - | // |
| - | #ifndef CONFIG_INIT |
| - | #undef CONFIG_FEATURE_INITRD |
| - | #endif |
| - | // |
| - | #if defined CONFIG_MOUNT && defined CONFIG_FEATURE_NFSMOUNT |
| - | #define CONFIG_NFSMOUNT |
| - | #endif |
| - | // |
| - | #if defined CONFIG_FEATURE_AUTOWIDTH |
| - | #ifndef CONFIG_FEATURE_USE_TERMIOS |
| - | #define CONFIG_FEATURE_USE_TERMIOS |
| - | #endif |
| - | #endif |
| - | // |
| - | #if defined CONFIG_INSMOD || defined CONFIG_LSMOD |
| - | #if ! defined CONFIG_FEATURE_NEW_MODULE_INTERFACE && ! defined CONFIG_FEATURE_OLD_MODULE_INTERFACE |
| - | #define CONFIG_FEATURE_NEW_MODULE_INTERFACE |
| - | #endif |
| - | #endif |
| - | // |
| - | #ifdef CONFIG_UNIX2DOS |
| - | #define CONFIG_DOS2UNIX |
| - | #endif |
| - | // |
| - | #ifdef CONFIG_SYSLOGD |
| - | #if defined CONFIG_FEATURE_IPC_SYSLOG |
| - | #define CONFIG_LOGREAD |
| - | #endif |
| - | #endif |
| - | // |
| - | #if defined CONFIG_ASH && defined CONFIG_FEATURE_SH_IS_ASH |
| - | # define shell_main ash_main |
| - | #elif defined CONFIG_HUSH && defined CONFIG_FEATURE_SH_IS_HUSH |
| - | # define shell_main hush_main |
| - | #elif defined CONFIG_LASH && defined CONFIG_FEATURE_SH_IS_LASH |
| - | # define shell_main lash_main |
| - | #elif defined CONFIG_MSH && defined CONFIG_FEATURE_SH_IS_MSH |
| - | # define shell_main msh_main |
| - | #endif |
| @@ -1,469 +0,0 @@ | |
| - | /* vi: set sw=4 ts=4: */ |
| - | // This file defines the feature set to be compiled into busybox. |
| - | // When you turn things off here, they won't be compiled in at all. |
| - | // |
| - | //// This file is parsed by sed. You MUST use single line comments. |
| - | // i.e., //#define CONFIG_BLAH |
| - | // |
| - | // |
| - | // BusyBox Applications |
| - | //#define CONFIG_ADJTIMEX |
| - | #define CONFIG_AR |
| - | #define CONFIG_ASH |
| - | #define CONFIG_BASENAME |
| - | #define CONFIG_CAT |
| - | #define CONFIG_CHGRP |
| - | #define CONFIG_CHMOD |
| - | #define CONFIG_CHOWN |
| - | #define CONFIG_CHROOT |
| - | #define CONFIG_CHVT |
| - | #define CONFIG_CLEAR |
| - | #define CONFIG_CMP |
| - | #define CONFIG_CP |
| - | #define CONFIG_CPIO |
| - | #define CONFIG_CUT |
| - | #define CONFIG_DATE |
| - | #define CONFIG_DC |
| - | #define CONFIG_DD |
| - | #define CONFIG_DEALLOCVT |
| - | #define CONFIG_DF |
| - | #define CONFIG_DIRNAME |
| - | #define CONFIG_DMESG |
| - | #define CONFIG_DOS2UNIX |
| - | #define CONFIG_DPKG |
| - | #define CONFIG_DPKG_DEB |
| - | #define CONFIG_DUTMP |
| - | #define CONFIG_DU |
| - | #define CONFIG_DUMPKMAP |
| - | #define CONFIG_ECHO |
| - | #define CONFIG_ENV |
| - | #define CONFIG_EXPR |
| - | #define CONFIG_FBSET |
| - | #define CONFIG_FDFLUSH |
| - | #define CONFIG_FIND |
| - | #define CONFIG_FREE |
| - | #define CONFIG_FREERAMDISK |
| - | #define CONFIG_FSCK_MINIX |
| - | #define CONFIG_GETOPT |
| - | #define CONFIG_GREP |
| - | #define CONFIG_GUNZIP |
| - | #define CONFIG_GZIP |
| - | #define CONFIG_HALT |
| - | #define CONFIG_HEAD |
| - | #define CONFIG_HOSTID |
| - | #define CONFIG_HOSTNAME |
| - | //#define CONFIG_HUSH |
| - | #define CONFIG_ID |
| - | #define CONFIG_IFCONFIG |
| - | #define CONFIG_INIT |
| - | //#define CONFIG_INSMOD |
| - | #define CONFIG_KILL |
| - | #define CONFIG_KILLALL |
| - | #define CONFIG_KLOGD |
| - | //#define CONFIG_LASH |
| - | #define CONFIG_LENGTH |
| - | #define CONFIG_LN |
| - | #define CONFIG_LOADACM |
| - | #define CONFIG_LOADFONT |
| - | #define CONFIG_LOADKMAP |
| - | #define CONFIG_LOGGER |
| - | #define CONFIG_LOGNAME |
| - | #define CONFIG_LS |
| - | #define CONFIG_LSMOD |
| - | #define CONFIG_MAKEDEVS |
| - | #define CONFIG_MD5SUM |
| - | #define CONFIG_MKDIR |
| - | #define CONFIG_MKFIFO |
| - | #define CONFIG_MKFS_MINIX |
| - | #define CONFIG_MKNOD |
| - | #define CONFIG_MKSWAP |
| - | #define CONFIG_MKTEMP |
| - | //#define CONFIG_MODPROBE |
| - | #define CONFIG_MORE |
| - | #define CONFIG_MOUNT |
| - | //#define CONFIG_MSH |
| - | #define CONFIG_MT |
| - | #define CONFIG_MV |
| - | #define CONFIG_NC |
| - | #define CONFIG_NSLOOKUP |
| - | #define CONFIG_PIDOF |
| - | #define CONFIG_PING |
| - | #define CONFIG_PIVOT_ROOT |
| - | #define CONFIG_POWEROFF |
| - | #define CONFIG_PRINTF |
| - | #define CONFIG_PS |
| - | #define CONFIG_PWD |
| - | #define CONFIG_RDATE |
| - | #define CONFIG_READLINK |
| - | #define CONFIG_REBOOT |
| - | #define CONFIG_RENICE |
| - | #define CONFIG_RESET |
| - | #define CONFIG_RM |
| - | #define CONFIG_RMDIR |
| - | #define CONFIG_RMMOD |
| - | #define CONFIG_ROUTE |
| - | #define CONFIG_RPM2CPIO |
| - | #define CONFIG_SED |
| - | #define CONFIG_SETKEYCODES |
| - | #define CONFIG_SLEEP |
| - | #define CONFIG_SORT |
| - | #define CONFIG_STTY |
| - | #define CONFIG_SWAPONOFF |
| - | #define CONFIG_SYNC |
| - | #define CONFIG_SYSLOGD |
| - | #define CONFIG_TAIL |
| - | #define CONFIG_TAR |
| - | #define CONFIG_TEE |
| - | #define CONFIG_TEST |
| - | #define CONFIG_TELNET |
| - | #define CONFIG_TFTP |
| - | #define CONFIG_TOUCH |
| - | #define CONFIG_TR |
| - | #define CONFIG_TRACEROUTE |
| - | #define CONFIG_TRUE_FALSE |
| - | #define CONFIG_TTY |
| - | #define CONFIG_UNIX2DOS |
| - | #define CONFIG_UUENCODE |
| - | #define CONFIG_UUDECODE |
| - | #define CONFIG_UMOUNT |
| - | #define CONFIG_UNIQ |
| - | #define CONFIG_UNAME |
| - | #define CONFIG_UPDATE |
| - | #define CONFIG_UPTIME |
| - | #define CONFIG_USLEEP |
| - | #define CONFIG_VI |
| - | #define CONFIG_WATCHDOG |
| - | #define CONFIG_WC |
| - | #define CONFIG_WGET |
| - | #define CONFIG_WHICH |
| - | #define CONFIG_WHOAMI |
| - | #define CONFIG_XARGS |
| - | #define CONFIG_YES |
| - | // End of Applications List |
| - | // |
| - | // |
| - | // |
| - | // --------------------------------------------------------- |
| - | // This is where feature definitions go. Generally speaking, |
| - | // turning this stuff off makes things a bit smaller (and less |
| - | // pretty/useful). |
| - | // |
| - | // |
| - | // If you enabled one or more of the shells, you may select which one |
| - | // should be run when sh is invoked: |
| - | #define CONFIG_FEATURE_SH_IS_ASH |
| - | //#define CONFIG_FEATURE_SH_IS_HUSH |
| - | //#define CONFIG_FEATURE_SH_IS_LASH |
| - | //#define CONFIG_FEATURE_SH_IS_MSH |
| - | // |
| - | // BusyBox will, by default, malloc space for its buffers. This costs code |
| - | // size for the call to xmalloc. You can use the following feature to have |
| - | // them put on the stack. For some very small machines with limited stack |
| - | // space, this can be deadly. For most folks, this works just fine... |
| - | //#define CONFIG_FEATURE_BUFFERS_GO_ON_STACK |
| - | // The third alternative for buffer allocation is to use BSS. This works |
| - | // beautifully for computers with a real MMU (and OS support), but wastes |
| - | // runtime RAM for uCLinux. This behavior was the only one available for |
| - | // BusyBox versions 0.48 and earlier. |
| - | //#define CONFIG_FEATURE_BUFFERS_GO_IN_BSS |
| - | // |
| - | // Turn this on to use Erik's very cool devps, and devmtab kernel drivers, |
| - | // thereby eliminating the need for the /proc filesystem and thereby saving |
| - | // lots and lots memory for more important things. NOTE: If you enable this |
| - | // feature, you _must_ have patched the kernel to include the devps patch that |
| - | // is included in the busybox/kernel-patches directory. You will also need to |
| - | // create some device special files in /dev on your embedded system: |
| - | // mknod /dev/mtab c 10 22 |
| - | // mknod /dev/ps c 10 21 |
| - | // I emailed Linus and this patch will not be going into the stock kernel. |
| - | //#define CONFIG_FEATURE_USE_DEVPS_PATCH |
| - | // |
| - | // show verbose usage messages |
| - | #define CONFIG_FEATURE_VERBOSE_USAGE |
| - | // |
| - | // Use termios to manipulate the screen ('more' is prettier with this on) |
| - | #define CONFIG_FEATURE_USE_TERMIOS |
| - | // |
| - | // calculate terminal & column widths (for more and ls) |
| - | #define CONFIG_FEATURE_AUTOWIDTH |
| - | // |
| - | // show username/groupnames for ls |
| - | #define CONFIG_FEATURE_LS_USERNAME |
| - | // |
| - | // show file timestamps in ls |
| - | #define CONFIG_FEATURE_LS_TIMESTAMPS |
| - | // |
| - | // enable ls -p and -F |
| - | #define CONFIG_FEATURE_LS_FILETYPES |
| - | // |
| - | // sort the file names |
| - | #define CONFIG_FEATURE_LS_SORTFILES |
| - | // |
| - | // enable ls -R |
| - | #define CONFIG_FEATURE_LS_RECURSIVE |
| - | // |
| - | // enable ls -L |
| - | #define CONFIG_FEATURE_LS_FOLLOWLINKS |
| - | // |
| - | // Disable for a smaller (but less functional) ping |
| - | #define CONFIG_FEATURE_FANCY_PING |
| - | // |
| - | // Make init use a simplified /etc/inittab file (recommended). |
| - | #define CONFIG_FEATURE_USE_INITTAB |
| - | // |
| - | //Enable init being called as /linuxrc |
| - | #define CONFIG_FEATURE_INITRD |
| - | // |
| - | //Have init enable core dumping for child processes (for debugging only) |
| - | //#define CONFIG_FEATURE_INIT_COREDUMPS |
| - | // |
| - | //Make sure nothing is printed to the console on boot |
| - | //#define CONFIG_FEATURE_EXTRA_QUIET |
| - | // |
| - | // enable syslogd -R remotehost |
| - | #define CONFIG_FEATURE_REMOTE_LOG |
| - | // |
| - | // enable syslogd -C |
| - | //#define CONFIG_FEATURE_IPC_SYSLOG |
| - | // |
| - | //Disable for a simple tail implementation (2.34k vs 3k for the full one). |
| - | //Both provide 'tail -f', but this cuts out -c, -q, -s, and -v. |
| - | #define CONFIG_FEATURE_FANCY_TAIL |
| - | // |
| - | // Enable support for loop devices in mount |
| - | #define CONFIG_FEATURE_MOUNT_LOOP |
| - | // |
| - | // Enable support for a real /etc/mtab file instead of /proc/mounts |
| - | //#define CONFIG_FEATURE_MTAB_SUPPORT |
| - | // |
| - | // Enable support for mounting remote NFS volumes. |
| - | // You may need to mount with "-o nolock" if you are |
| - | // not running a local portmapper daemon... |
| - | #define CONFIG_FEATURE_NFSMOUNT |
| - | // |
| - | // Enable support forced filesystem unmounting |
| - | // (i.e., in case of an unreachable NFS system). |
| - | #define CONFIG_FEATURE_MOUNT_FORCE |
| - | // |
| - | // Enable support for creation of tar files. |
| - | #define CONFIG_FEATURE_TAR_CREATE |
| - | // |
| - | // Enable support for "--exclude" and "-X" for excluding files |
| - | #define CONFIG_FEATURE_TAR_EXCLUDE |
| - | // |
| - | // Enable support for tar -z option (currently only works for inflating) |
| - | #define CONFIG_FEATURE_TAR_GZIP |
| - | // |
| - | // Enable reverse sort |
| - | #define CONFIG_FEATURE_SORT_REVERSE |
| - | // |
| - | // Enable uniqe sort |
| - | #define CONFIG_FEATURE_SORT_UNIQUE |
| - | // |
| - | // Enable command line editing in the shell. |
| - | // Only relevant if a shell is enabled. On by default. |
| - | #define CONFIG_FEATURE_COMMAND_EDITING |
| - | // |
| - | // Enable tab completion in the shell. This is now working quite nicely. |
| - | // This feature adds a bit over 4k. Only relevant if a shell is enabled. |
| - | #define CONFIG_FEATURE_COMMAND_TAB_COMPLETION |
| - | // |
| - | // Attempts to match usernames in a ~-prefixed path |
| - | //#define CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION |
| - | // |
| - | //Allow the shell to invoke all the compiled in BusyBox applets as if they |
| - | //were shell builtins. Nice for staticly linking an emergency rescue shell, |
| - | //among other things. Off by default. |
| - | // Only relevant if a shell is enabled. |
| - | #define CONFIG_FEATURE_SH_STANDALONE_SHELL |
| - | // |
| - | //When this is enabled, busybox shell applets can be called using full path |
| - | //names. This causes applets (i.e., most busybox commands) to override |
| - | //real commands on the filesystem. For example, if you run run /bin/cat, it |
| - | //will use BusyBox cat even if /bin/cat exists on the filesystem and is _not_ |
| - | //busybox. Some systems want this, others do not. Choose wisely. :-) This |
| - | //only has meaning when CONFIG_FEATURE_SH_STANDALONE_SHELL is enabled. |
| - | // Only relevant if a shell is enabled. Off by default. |
| - | #define CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN |
| - | // |
| - | // Uncomment this option for a fancy shell prompt that includes the |
| - | // current username and hostname. On systems that don't have usernames |
| - | // or hostnames, this can look hideous. |
| - | // Only relevant if a shell is enabled. |
| - | #define CONFIG_FEATURE_SH_FANCY_PROMPT |
| - | // |
| - | //Turn on extra fbset options |
| - | //#define CONFIG_FEATURE_FBSET_FANCY |
| - | // |
| - | //Turn on fbset readmode support |
| - | //#define CONFIG_FEATURE_FBSET_READMODE |
| - | // |
| - | // Support insmod/lsmod/rmmod for post 2.1 kernels |
| - | #define CONFIG_FEATURE_NEW_MODULE_INTERFACE |
| - | // |
| - | // Support insmod/lsmod/rmmod for pre 2.1 kernels |
| - | //#define CONFIG_FEATURE_OLD_MODULE_INTERFACE |
| - | // |
| - | // Support module version checking |
| - | //#define CONFIG_FEATURE_INSMOD_VERSION_CHECKING |
| - | // |
| - | // Support for uClinux memory usage optimization, which will load the image |
| - | // directly into the kernel memory. This divides memory requrements by three. |
| - | // If you are not running uClinux (i.e., your CPU has an MMU) leave this |
| - | // disabled... |
| - | //#define CONFIG_FEATURE_INSMOD_LOADINKMEM |
| - | // |
| - | // Support for Minix filesystem, version 2 |
| - | //#define CONFIG_FEATURE_MINIX2 |
| - | // |
| - | // Enable ifconfig status reporting output -- this feature adds 12k. |
| - | #define CONFIG_FEATURE_IFCONFIG_STATUS |
| - | // |
| - | // Enable ifconfig slip-specific options "keepalive" and "outfill" |
| - | //#define CONFIG_FEATURE_IFCONFIG_SLIP |
| - | // |
| - | // Enable ifconfig options "mem_start", "io_addr", and "irq". |
| - | //#define CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ |
| - | // |
| - | // Enable ifconfig option "hw". Currently works for only with "ether". |
| - | #define CONFIG_FEATURE_IFCONFIG_HW |
| - | // |
| - | // Enable busybox --install [-s] |
| - | // to create links (or symlinks) for all the commands that are |
| - | // compiled into the binary. (needs /proc filesystem) |
| - | #define CONFIG_FEATURE_INSTALLER |
| - | // |
| - | // Enable a nifty progress meter in wget (adds just under 2k) |
| - | #define CONFIG_FEATURE_WGET_STATUSBAR |
| - | // |
| - | // Enable HTTP authentication in wget |
| - | #define CONFIG_FEATURE_WGET_AUTHENTICATION |
| - | // |
| - | // Clean up all memory before exiting -- usually not needed |
| - | // as the OS can clean up... Don't enable this unless you |
| - | // have a really good reason for cleaning things up manually. |
| - | //#define CONFIG_FEATURE_CLEAN_UP |
| - | // |
| - | // Support for human readable output by ls, du, etc.(example 13k, 23M, 235G) |
| - | #define CONFIG_FEATURE_HUMAN_READABLE |
| - | // |
| - | // Support for the find -type option. |
| - | #define CONFIG_FEATURE_FIND_TYPE |
| - | // |
| - | // Support for the find -perm option. |
| - | #define CONFIG_FEATURE_FIND_PERM |
| - | // |
| - | // Support for the find -mtine option. |
| - | #define CONFIG_FEATURE_FIND_MTIME |
| - | // |
| - | // Support for the -A -B and -C context flags in grep |
| - | //#define CONFIG_FEATURE_GREP_CONTEXT |
| - | // |
| - | // Support for the EGREP applet (alias to the grep applet) |
| - | //#define CONFIG_FEATURE_GREP_EGREP_ALIAS |
| - | // |
| - | // Tell tftp what commands that should be supported. |
| - | #define CONFIG_FEATURE_TFTP_PUT |
| - | #define CONFIG_FEATURE_TFTP_GET |
| - | // |
| - | // features for vi |
| - | #define CONFIG_FEATURE_VI_COLON // ":" colon commands, no "ex" mode |
| - | #define CONFIG_FEATURE_VI_YANKMARK // Yank/Put commands and Mark cmds |
| - | #define CONFIG_FEATURE_VI_SEARCH // search and replace cmds |
| - | #define CONFIG_FEATURE_VI_USE_SIGNALS // catch signals |
| - | #define CONFIG_FEATURE_VI_DOT_CMD // remember previous cmd and "." cmd |
| - | #define CONFIG_FEATURE_VI_READONLY // vi -R and "view" mode |
| - | #define CONFIG_FEATURE_VI_SETOPTS // set-able options, ai ic showmatch |
| - | #define CONFIG_FEATURE_VI_SET // :set |
| - | #define CONFIG_FEATURE_VI_WIN_RESIZE // handle window resize |
| - | // |
| - | // Enable a if you system have setuped locale |
| - | //#define CONFIG_LOCALE_SUPPORT |
| - | // |
| - | // Support for TELNET to pass TERM type to remote host. Adds 384 bytes. |
| - | #define CONFIG_FEATURE_TELNET_TTYPE |
| - | // |
| - | // End of Features List |
| - | // |
| - | // |
| - | // |
| - | // |
| - | // |
| - | // |
| - | //--------------------------------------------------- |
| - | // Nothing beyond this point should ever be touched by |
| - | // mere mortals so leave this stuff alone. |
| - | // |
| - | #include <features.h> |
| - | #if defined __UCLIBC__ && ! defined __UCLIBC_HAS_MMU__ |
| - | #undef CONFIG_RPM2CPIO /* Uses gz_open(), which uses fork() */ |
| - | #undef CONFIG_DPKG_DEB /* Uses gz_open(), which uses fork() */ |
| - | #undef CONFIG_ASH /* Uses fork() */ |
| - | #undef CONFIG_HUSH /* Uses fork() */ |
| - | #undef CONFIG_LASH /* Uses fork() */ |
| - | #undef CONFIG_INIT /* Uses fork() */ |
| - | #undef CONFIG_FEATURE_TAR_GZIP /* Uses fork() */ |
| - | #undef CONFIG_SYSLOGD /* Uses daemon() */ |
| - | #undef CONFIG_KLOGD /* Uses daemon() */ |
| - | #undef CONFIG_UPDATE /* Uses daemon() */ |
| - | #endif |
| - | #if defined CONFIG_ASH || defined CONFIG_HUSH || defined CONFIG_LASH || defined CONFIG_MSH |
| - | #if defined CONFIG_FEATURE_COMMAND_EDITING |
| - | #define CONFIG_CMDEDIT |
| - | #else |
| - | #undef CONFIG_FEATURE_COMMAND_EDITING |
| - | #undef CONFIG_FEATURE_COMMAND_TAB_COMPLETION |
| - | #undef CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION |
| - | #undef CONFIG_FEATURE_SH_FANCY_PROMPT |
| - | #endif |
| - | #else |
| - | #undef CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN |
| - | #undef CONFIG_FEATURE_SH_STANDALONE_SHELL |
| - | #undef CONFIG_FEATURE_SH_FANCY_PROMPT |
| - | #endif |
| - | // |
| - | #ifdef CONFIG_KILLALL |
| - | #ifndef CONFIG_KILL |
| - | #define CONFIG_KILL |
| - | #endif |
| - | #endif |
| - | // |
| - | #ifndef CONFIG_INIT |
| - | #undef CONFIG_FEATURE_INITRD |
| - | #endif |
| - | // |
| - | #if defined CONFIG_MOUNT && defined CONFIG_FEATURE_NFSMOUNT |
| - | #define CONFIG_NFSMOUNT |
| - | #endif |
| - | // |
| - | #if defined CONFIG_FEATURE_AUTOWIDTH |
| - | #ifndef CONFIG_FEATURE_USE_TERMIOS |
| - | #define CONFIG_FEATURE_USE_TERMIOS |
| - | #endif |
| - | #endif |
| - | // |
| - | #if defined CONFIG_INSMOD || defined CONFIG_LSMOD |
| - | #if ! defined CONFIG_FEATURE_NEW_MODULE_INTERFACE && ! defined CONFIG_FEATURE_OLD_MODULE_INTERFACE |
| - | #define CONFIG_FEATURE_NEW_MODULE_INTERFACE |
| - | #endif |
| - | #endif |
| - | // |
| - | #ifdef CONFIG_UNIX2DOS |
| - | #define CONFIG_DOS2UNIX |
| - | #endif |
| - | // |
| - | #ifdef CONFIG_SYSLOGD |
| - | #if defined CONFIG_FEATURE_IPC_SYSLOG |
| - | #define CONFIG_LOGREAD |
| - | #endif |
| - | #endif |
| - | // |
| - | #if defined CONFIG_ASH && defined CONFIG_FEATURE_SH_IS_ASH |
| - | # define shell_main ash_main |
| - | #elif defined CONFIG_HUSH && defined CONFIG_FEATURE_SH_IS_HUSH |
| - | # define shell_main hush_main |
| - | #elif defined CONFIG_LASH && defined CONFIG_FEATURE_SH_IS_LASH |
| - | # define shell_main lash_main |
| - | #elif defined CONFIG_MSH && defined CONFIG_FEATURE_SH_IS_MSH |
| - | # define shell_main msh_main |
| - | #endif |
| @@ -1,469 +0,0 @@ | |
| - | /* vi: set sw=4 ts=4: */ |
| - | // This file defines the feature set to be compiled into busybox. |
| - | // When you turn things off here, they won't be compiled in at all. |
| - | // |
| - | //// This file is parsed by sed. You MUST use single line comments. |
| - | // i.e., //#define CONFIG_BLAH |
| - | // |
| - | // |
| - | // BusyBox Applications |
| - | //#define CONFIG_ADJTIMEX |
| - | //#define CONFIG_AR |
| - | //#define CONFIG_ASH |
| - | #define CONFIG_BASENAME |
| - | #define CONFIG_CAT |
| - | #define CONFIG_CHGRP |
| - | #define CONFIG_CHMOD |
| - | #define CONFIG_CHOWN |
| - | #define CONFIG_CHROOT |
| - | #define CONFIG_CHVT |
| - | #define CONFIG_CLEAR |
| - | //#define CONFIG_CMP |
| - | #define CONFIG_CP |
| - | //#define CONFIG_CPIO |
| - | #define CONFIG_CUT |
| - | #define CONFIG_DATE |
| - | //#define CONFIG_DC |
| - | #define CONFIG_DD |
| - | //#define CONFIG_DEALLOCVT |
| - | #define CONFIG_DF |
| - | #define CONFIG_DIRNAME |
| - | #define CONFIG_DMESG |
| - | //#define CONFIG_DOS2UNIX |
| - | //#define CONFIG_DPKG |
| - | //#define CONFIG_DPKG_DEB |
| - | //#define CONFIG_DUTMP |
| - | #define CONFIG_DU |
| - | //#define CONFIG_DUMPKMAP |
| - | #define CONFIG_ECHO |
| - | #define CONFIG_ENV |
| - | #define CONFIG_EXPR |
| - | //#define CONFIG_FBSET |
| - | //#define CONFIG_FDFLUSH |
| - | #define CONFIG_FIND |
| - | #define CONFIG_FREE |
| - | #define CONFIG_FREERAMDISK |
| - | //#define CONFIG_FSCK_MINIX |
| - | //#define CONFIG_GETOPT |
| - | #define CONFIG_GREP |
| - | #define CONFIG_GUNZIP |
| - | #define CONFIG_GZIP |
| - | #define CONFIG_HALT |
| - | #define CONFIG_HEAD |
| - | //#define CONFIG_HOSTID |
| - | //#define CONFIG_HOSTNAME |
| - | //#define CONFIG_HUSH |
| - | #define CONFIG_ID |
| - | //#define CONFIG_IFCONFIG |
| - | #define CONFIG_INIT |
| - | //#define CONFIG_INSMOD |
| - | #define CONFIG_KILL |
| - | #define CONFIG_KILLALL |
| - | #define CONFIG_KLOGD |
| - | //#define CONFIG_LASH |
| - | //#define CONFIG_LENGTH |
| - | #define CONFIG_LN |
| - | //#define CONFIG_LOADACM |
| - | //#define CONFIG_LOADFONT |
| - | #define CONFIG_LOADKMAP |
| - | #define CONFIG_LOGGER |
| - | //#define CONFIG_LOGNAME |
| - | #define CONFIG_LS |
| - | #define CONFIG_LSMOD |
| - | //#define CONFIG_MAKEDEVS |
| - | #define CONFIG_MD5SUM |
| - | #define CONFIG_MKDIR |
| - | //#define CONFIG_MKFIFO |
| - | //#define CONFIG_MKFS_MINIX |
| - | #define CONFIG_MKNOD |
| - | #define CONFIG_MKSWAP |
| - | //#define CONFIG_MKTEMP |
| - | //#define CONFIG_MODPROBE |
| - | #define CONFIG_MORE |
| - | #define CONFIG_MOUNT |
| - | //#define CONFIG_MSH |
| - | //#define CONFIG_MT |
| - | #define CONFIG_MV |
| - | //#define CONFIG_NC |
| - | //#define CONFIG_NSLOOKUP |
| - | //#define CONFIG_PIDOF |
| - | #define CONFIG_PING |
| - | #define CONFIG_PIVOT_ROOT |
| - | #define CONFIG_POWEROFF |
| - | //#define CONFIG_PRINTF |
| - | #define CONFIG_PS |
| - | #define CONFIG_PWD |
| - | //#define CONFIG_RDATE |
| - | //#define CONFIG_READLINK |
| - | #define CONFIG_REBOOT |
| - | //#define CONFIG_RENICE |
| - | #define CONFIG_RESET |
| - | #define CONFIG_RM |
| - | #define CONFIG_RMDIR |
| - | //#define CONFIG_RMMOD |
| - | //#define CONFIG_ROUTE |
| - | //#define CONFIG_RPM2CPIO |
| - | #define CONFIG_SED |
| - | //#define CONFIG_SETKEYCODES |
| - | #define CONFIG_SLEEP |
| - | #define CONFIG_SORT |
| - | //#define CONFIG_STTY |
| - | #define CONFIG_SWAPONOFF |
| - | #define CONFIG_SYNC |
| - | #define CONFIG_SYSLOGD |
| - | #define CONFIG_TAIL |
| - | #define CONFIG_TAR |
| - | //#define CONFIG_TEE |
| - | //#define CONFIG_TEST |
| - | #define CONFIG_TELNET |
| - | //#define CONFIG_TFTP |
| - | #define CONFIG_TOUCH |
| - | #define CONFIG_TR |
| - | //#define CONFIG_TRACEROUTE |
| - | #define CONFIG_TRUE_FALSE |
| - | #define CONFIG_TTY |
| - | //#define CONFIG_UNIX2DOS |
| - | //#define CONFIG_UUENCODE |
| - | //#define CONFIG_UUDECODE |
| - | #define CONFIG_UMOUNT |
| - | #define CONFIG_UNIQ |
| - | #define CONFIG_UNAME |
| - | //#define CONFIG_UPDATE |
| - | #define CONFIG_UPTIME |
| - | //#define CONFIG_USLEEP |
| - | #define CONFIG_VI |
| - | //#define CONFIG_WATCHDOG |
| - | #define CONFIG_WC |
| - | #define CONFIG_WGET |
| - | #define CONFIG_WHICH |
| - | #define CONFIG_WHOAMI |
| - | #define CONFIG_XARGS |
| - | #define CONFIG_YES |
| - | // End of Applications List |
| - | // |
| - | // |
| - | // |
| - | // --------------------------------------------------------- |
| - | // This is where feature definitions go. Generally speaking, |
| - | // turning this stuff off makes things a bit smaller (and less |
| - | // pretty/useful). |
| - | // |
| - | // |
| - | // If you enabled one or more of the shells, you may select which one |
| - | // should be run when sh is invoked: |
| - | //#define CONFIG_FEATURE_SH_IS_ASH |
| - | //#define CONFIG_FEATURE_SH_IS_HUSH |
| - | //#define CONFIG_FEATURE_SH_IS_LASH |
| - | #define CONFIG_FEATURE_SH_IS_MSH |
| - | // |
| - | // BusyBox will, by default, malloc space for its buffers. This costs code |
| - | // size for the call to xmalloc. You can use the following feature to have |
| - | // them put on the stack. For some very small machines with limited stack |
| - | // space, this can be deadly. For most folks, this works just fine... |
| - | //#define CONFIG_FEATURE_BUFFERS_GO_ON_STACK |
| - | // The third alternative for buffer allocation is to use BSS. This works |
| - | // beautifully for computers with a real MMU (and OS support), but wastes |
| - | // runtime RAM for uCLinux. This behavior was the only one available for |
| - | // BusyBox versions 0.48 and earlier. |
| - | //#define CONFIG_FEATURE_BUFFERS_GO_IN_BSS |
| - | // |
| - | // Turn this on to use Erik's very cool devps, and devmtab kernel drivers, |
| - | // thereby eliminating the need for the /proc filesystem and thereby saving |
| - | // lots and lots memory for more important things. NOTE: If you enable this |
| - | // feature, you _must_ have patched the kernel to include the devps patch that |
| - | // is included in the busybox/kernel-patches directory. You will also need to |
| - | // create some device special files in /dev on your embedded system: |
| - | // mknod /dev/mtab c 10 22 |
| - | // mknod /dev/ps c 10 21 |
| - | // I emailed Linus and this patch will not be going into the stock kernel. |
| - | //#define CONFIG_FEATURE_USE_DEVPS_PATCH |
| - | // |
| - | // show verbose usage messages |
| - | //#define CONFIG_FEATURE_VERBOSE_USAGE |
| - | // |
| - | // Use termios to manipulate the screen ('more' is prettier with this on) |
| - | #define CONFIG_FEATURE_USE_TERMIOS |
| - | // |
| - | // calculate terminal & column widths (for more and ls) |
| - | #define CONFIG_FEATURE_AUTOWIDTH |
| - | // |
| - | // show username/groupnames for ls |
| - | #define CONFIG_FEATURE_LS_USERNAME |
| - | // |
| - | // show file timestamps in ls |
| - | #define CONFIG_FEATURE_LS_TIMESTAMPS |
| - | // |
| - | // enable ls -p and -F |
| - | #define CONFIG_FEATURE_LS_FILETYPES |
| - | // |
| - | // sort the file names |
| - | #define CONFIG_FEATURE_LS_SORTFILES |
| - | // |
| - | // enable ls -R |
| - | #define CONFIG_FEATURE_LS_RECURSIVE |
| - | // |
| - | // enable ls -L |
| - | #define CONFIG_FEATURE_LS_FOLLOWLINKS |
| - | // |
| - | // Disable for a smaller (but less functional) ping |
| - | #define CONFIG_FEATURE_FANCY_PING |
| - | // |
| - | // Make init use a simplified /etc/inittab file (recommended). |
| - | #define CONFIG_FEATURE_USE_INITTAB |
| - | // |
| - | //Enable init being called as /linuxrc |
| - | #define CONFIG_FEATURE_INITRD |
| - | // |
| - | //Have init enable core dumping for child processes (for debugging only) |
| - | //#define CONFIG_FEATURE_INIT_COREDUMPS |
| - | // |
| - | //Make sure nothing is printed to the console on boot |
| - | //#define CONFIG_FEATURE_EXTRA_QUIET |
| - | // |
| - | // enable syslogd -R remotehost |
| - | #define CONFIG_FEATURE_REMOTE_LOG |
| - | // |
| - | // enable syslogd -C |
| - | //#define CONFIG_FEATURE_IPC_SYSLOG |
| - | // |
| - | //Disable for a simple tail implementation (2.34k vs 3k for the full one). |
| - | //Both provide 'tail -f', but this cuts out -c, -q, -s, and -v. |
| - | #define CONFIG_FEATURE_FANCY_TAIL |
| - | // |
| - | // Enable support for loop devices in mount |
| - | #define CONFIG_FEATURE_MOUNT_LOOP |
| - | // |
| - | // Enable support for a real /etc/mtab file instead of /proc/mounts |
| - | //#define CONFIG_FEATURE_MTAB_SUPPORT |
| - | // |
| - | // Enable support for mounting remote NFS volumes. |
| - | // You may need to mount with "-o nolock" if you are |
| - | // not running a local portmapper daemon... |
| - | #define CONFIG_FEATURE_NFSMOUNT |
| - | // |
| - | // Enable support forced filesystem unmounting |
| - | // (i.e., in case of an unreachable NFS system). |
| - | #define CONFIG_FEATURE_MOUNT_FORCE |
| - | // |
| - | // Enable support for creation of tar files. |
| - | #define CONFIG_FEATURE_TAR_CREATE |
| - | // |
| - | // Enable support for "--exclude" and "-X" for excluding files |
| - | #define CONFIG_FEATURE_TAR_EXCLUDE |
| - | // |
| - | // Enable support for tar -z option (currently only works for inflating) |
| - | #define CONFIG_FEATURE_TAR_GZIP |
| - | // |
| - | // Enable reverse sort |
| - | #define CONFIG_FEATURE_SORT_REVERSE |
| - | // |
| - | // Enable uniqe sort |
| - | #define CONFIG_FEATURE_SORT_UNIQUE |
| - | // |
| - | // Enable command line editing in the shell. |
| - | // Only relevant if a shell is enabled. On by default. |
| - | #define CONFIG_FEATURE_COMMAND_EDITING |
| - | // |
| - | // Enable tab completion in the shell. This is now working quite nicely. |
| - | // This feature adds a bit over 4k. Only relevant if a shell is enabled. |
| - | #define CONFIG_FEATURE_COMMAND_TAB_COMPLETION |
| - | // |
| - | // Attempts to match usernames in a ~-prefixed path |
| - | //#define CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION |
| - | // |
| - | //Allow the shell to invoke all the compiled in BusyBox applets as if they |
| - | //were shell builtins. Nice for staticly linking an emergency rescue shell, |
| - | //among other things. Off by default. |
| - | // Only relevant if a shell is enabled. |
| - | //#define CONFIG_FEATURE_SH_STANDALONE_SHELL |
| - | // |
| - | //When this is enabled, busybox shell applets can be called using full path |
| - | //names. This causes applets (i.e., most busybox commands) to override |
| - | //real commands on the filesystem. For example, if you run run /bin/cat, it |
| - | //will use BusyBox cat even if /bin/cat exists on the filesystem and is _not_ |
| - | //busybox. Some systems want this, others do not. Choose wisely. :-) This |
| - | //only has meaning when CONFIG_FEATURE_SH_STANDALONE_SHELL is enabled. |
| - | // Only relevant if a shell is enabled. Off by default. |
| - | //#define CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN |
| - | // |
| - | // Uncomment this option for a fancy shell prompt that includes the |
| - | // current username and hostname. On systems that don't have usernames |
| - | // or hostnames, this can look hideous. |
| - | // Only relevant if a shell is enabled. |
| - | //#define CONFIG_FEATURE_SH_FANCY_PROMPT |
| - | // |
| - | //Turn on extra fbset options |
| - | //#define CONFIG_FEATURE_FBSET_FANCY |
| - | // |
| - | //Turn on fbset readmode support |
| - | //#define CONFIG_FEATURE_FBSET_READMODE |
| - | // |
| - | // Support insmod/lsmod/rmmod for post 2.1 kernels |
| - | //#define CONFIG_FEATURE_NEW_MODULE_INTERFACE |
| - | // |
| - | // Support insmod/lsmod/rmmod for pre 2.1 kernels |
| - | //#define CONFIG_FEATURE_OLD_MODULE_INTERFACE |
| - | // |
| - | // Support module version checking |
| - | //#define CONFIG_FEATURE_INSMOD_VERSION_CHECKING |
| - | // |
| - | // Support for uClinux memory usage optimization, which will load the image |
| - | // directly into the kernel memory. This divides memory requrements by three. |
| - | // If you are not running uClinux (i.e., your CPU has an MMU) leave this |
| - | // disabled... |
| - | //#define CONFIG_FEATURE_INSMOD_LOADINKMEM |
| - | // |
| - | // Support for Minix filesystem, version 2 |
| - | //#define CONFIG_FEATURE_MINIX2 |
| - | // |
| - | // Enable ifconfig status reporting output -- this feature adds 12k. |
| - | #define CONFIG_FEATURE_IFCONFIG_STATUS |
| - | // |
| - | // Enable ifconfig slip-specific options "keepalive" and "outfill" |
| - | //#define CONFIG_FEATURE_IFCONFIG_SLIP |
| - | // |
| - | // Enable ifconfig options "mem_start", "io_addr", and "irq". |
| - | //#define CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ |
| - | // |
| - | // Enable ifconfig option "hw". Currently works for only with "ether". |
| - | #define CONFIG_FEATURE_IFCONFIG_HW |
| - | // |
| - | // Enable busybox --install [-s] |
| - | // to create links (or symlinks) for all the commands that are |
| - | // compiled into the binary. (needs /proc filesystem) |
| - | #define CONFIG_FEATURE_INSTALLER |
| - | // |
| - | // Enable a nifty progress meter in wget (adds just under 2k) |
| - | #define CONFIG_FEATURE_WGET_STATUSBAR |
| - | // |
| - | // Enable HTTP authentication in wget |
| - | #define CONFIG_FEATURE_WGET_AUTHENTICATION |
| - | // |
| - | // Clean up all memory before exiting -- usually not needed |
| - | // as the OS can clean up... Don't enable this unless you |
| - | // have a really good reason for cleaning things up manually. |
| - | //#define CONFIG_FEATURE_CLEAN_UP |
| - | // |
| - | // Support for human readable output by ls, du, etc.(example 13k, 23M, 235G) |
| - | #define CONFIG_FEATURE_HUMAN_READABLE |
| - | // |
| - | // Support for the find -type option. |
| - | #define CONFIG_FEATURE_FIND_TYPE |
| - | // |
| - | // Support for the find -perm option. |
| - | #define CONFIG_FEATURE_FIND_PERM |
| - | // |
| - | // Support for the find -mtine option. |
| - | #define CONFIG_FEATURE_FIND_MTIME |
| - | // |
| - | // Support for the -A -B and -C context flags in grep |
| - | //#define CONFIG_FEATURE_GREP_CONTEXT |
| - | // |
| - | // Support for the EGREP applet (alias to the grep applet) |
| - | //#define CONFIG_FEATURE_GREP_EGREP_ALIAS |
| - | // |
| - | // Tell tftp what commands that should be supported. |
| - | #define CONFIG_FEATURE_TFTP_PUT |
| - | #define CONFIG_FEATURE_TFTP_GET |
| - | // |
| - | // features for vi |
| - | #define CONFIG_FEATURE_VI_COLON // ":" colon commands, no "ex" mode |
| - | #define CONFIG_FEATURE_VI_YANKMARK // Yank/Put commands and Mark cmds |
| - | #define CONFIG_FEATURE_VI_SEARCH // search and replace cmds |
| - | #define CONFIG_FEATURE_VI_USE_SIGNALS // catch signals |
| - | #define CONFIG_FEATURE_VI_DOT_CMD // remember previous cmd and "." cmd |
| - | #define CONFIG_FEATURE_VI_READONLY // vi -R and "view" mode |
| - | #define CONFIG_FEATURE_VI_SETOPTS // set-able options, ai ic showmatch |
| - | #define CONFIG_FEATURE_VI_SET // :set |
| - | #define CONFIG_FEATURE_VI_WIN_RESIZE // handle window resize |
| - | // |
| - | // Enable a if you system have setuped locale |
| - | //#define CONFIG_LOCALE_SUPPORT |
| - | // |
| - | // Support for TELNET to pass TERM type to remote host. Adds 384 bytes. |
| - | #define CONFIG_FEATURE_TELNET_TTYPE |
| - | // |
| - | // End of Features List |
| - | // |
| - | // |
| - | // |
| - | // |
| - | // |
| - | // |
| - | //--------------------------------------------------- |
| - | // Nothing beyond this point should ever be touched by |
| - | // mere mortals so leave this stuff alone. |
| - | // |
| - | #include <features.h> |
| - | #if defined __UCLIBC__ && ! defined __UCLIBC_HAS_MMU__ |
| - | #undef CONFIG_RPM2CPIO /* Uses gz_open(), which uses fork() */ |
| - | #undef CONFIG_DPKG_DEB /* Uses gz_open(), which uses fork() */ |
| - | #undef CONFIG_ASH /* Uses fork() */ |
| - | #undef CONFIG_HUSH /* Uses fork() */ |
| - | #undef CONFIG_LASH /* Uses fork() */ |
| - | #undef CONFIG_INIT /* Uses fork() */ |
| - | #undef CONFIG_FEATURE_TAR_GZIP /* Uses fork() */ |
| - | #undef CONFIG_SYSLOGD /* Uses daemon() */ |
| - | #undef CONFIG_KLOGD /* Uses daemon() */ |
| - | #undef CONFIG_UPDATE /* Uses daemon() */ |
| - | #endif |
| - | #if defined CONFIG_ASH || defined CONFIG_HUSH || defined CONFIG_LASH || defined CONFIG_MSH |
| - | #if defined CONFIG_FEATURE_COMMAND_EDITING |
| - | #define CONFIG_CMDEDIT |
| - | #else |
| - | #undef CONFIG_FEATURE_COMMAND_EDITING |
| - | #undef CONFIG_FEATURE_COMMAND_TAB_COMPLETION |
| - | #undef CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION |
| - | #undef CONFIG_FEATURE_SH_FANCY_PROMPT |
| - | #endif |
| - | #else |
| - | #undef CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN |
| - | #undef CONFIG_FEATURE_SH_STANDALONE_SHELL |
| - | #undef CONFIG_FEATURE_SH_FANCY_PROMPT |
| - | #endif |
| - | // |
| - | #ifdef CONFIG_KILLALL |
| - | #ifndef CONFIG_KILL |
| - | #define CONFIG_KILL |
| - | #endif |
| - | #endif |
| - | // |
| - | #ifndef CONFIG_INIT |
| - | #undef CONFIG_FEATURE_INITRD |
| - | #endif |
| - | // |
| - | #if defined CONFIG_MOUNT && defined CONFIG_FEATURE_NFSMOUNT |
| - | #define CONFIG_NFSMOUNT |
| - | #endif |
| - | // |
| - | #if defined CONFIG_FEATURE_AUTOWIDTH |
| - | #ifndef CONFIG_FEATURE_USE_TERMIOS |
| - | #define CONFIG_FEATURE_USE_TERMIOS |
| - | #endif |
| - | #endif |
| - | // |
| - | #if defined CONFIG_INSMOD || defined CONFIG_LSMOD |
| - | #if ! defined CONFIG_FEATURE_NEW_MODULE_INTERFACE && ! defined CONFIG_FEATURE_OLD_MODULE_INTERFACE |
| - | #define CONFIG_FEATURE_NEW_MODULE_INTERFACE |
| - | #endif |
| - | #endif |
| - | // |
| - | #ifdef CONFIG_UNIX2DOS |
| - | #define CONFIG_DOS2UNIX |
| - | #endif |
| - | // |
| - | #ifdef CONFIG_SYSLOGD |
| - | #if defined CONFIG_FEATURE_IPC_SYSLOG |
| - | #define CONFIG_LOGREAD |
| - | #endif |
| - | #endif |
| - | // |
| - | #if defined CONFIG_ASH && defined CONFIG_FEATURE_SH_IS_ASH |
| - | # define shell_main ash_main |
| - | #elif defined CONFIG_HUSH && defined CONFIG_FEATURE_SH_IS_HUSH |
| - | # define shell_main hush_main |
| - | #elif defined CONFIG_LASH && defined CONFIG_FEATURE_SH_IS_LASH |
| - | # define shell_main lash_main |
| - | #elif defined CONFIG_MSH && defined CONFIG_FEATURE_SH_IS_MSH |
| - | # define shell_main msh_main |
| - | #endif |
| @@ -0,0 +1,237 @@ | |
| + | # Rules.make for busybox |
| + | # |
| + | # Copyright (C) 2002 Erik Andersen <[email protected]> |
| + | # |
| + | # This program is free software; you can redistribute it and/or modify |
| + | # it under the terms of the GNU General Public License as published by |
| + | # the Free Software Foundation; either version 2 of the License, or |
| + | # (at your option) any later version. |
| + | # |
| + | # This program is distributed in the hope that it will be useful, |
| + | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| + | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| + | # General Public License for more details. |
| + | # |
| + | # You should have received a copy of the GNU General Public License |
| + | # along with this program; if not, write to the Free Software |
| + | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| + | # |
| + | |
| + | PROG := busybox |
| + | VERSION := 0.61.pre |
| + | BUILDTIME := $(shell TZ=UTC date -u "+%Y.%m.%d-%H:%M%z") |
| + | HOSTCC := gcc |
| + | HOSTCFLAGS:= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer |
| + | |
| + | |
| + | # What OS are you compiling busybox for? This allows you to include |
| + | # OS specific things, syscall overrides, etc. |
| + | TARGET_OS:=linux |
| + | |
| + | # With a modern GNU make(1) (highly recommended, that's what all the |
| + | # developers use), all of the following configuration values can be |
| + | # overridden at the command line. For example: |
| + | # make CROSS=powerpc-linux- BB_SRC_DIR=$HOME/busybox PREFIX=/mnt/app |
| + | |
| + | # If you want to add some simple compiler switches (like -march=i686), |
| + | # especially from the command line, use this instead of CFLAGS directly. |
| + | # For optimization overrides, it's better still to set OPTIMIZATION. |
| + | CFLAGS_EXTRA:=#-Werror |
| + | |
| + | # If you want a static binary, turn this on. |
| + | DOSTATIC:=false |
| + | |
| + | # Set the following to `true' to make a debuggable build. |
| + | # Leave this set to `false' for production use. |
| + | DODEBUG:=false |
| + | |
| + | # This enables compiling with dmalloc ( http://dmalloc.com/ ) |
| + | # which is an excellent public domain mem leak and malloc problem |
| + | # detector. To enable dmalloc, before running busybox you will |
| + | # want to first set up your environment. |
| + | # eg: `export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile` |
| + | # The debug= value is generated using the following command |
| + | # dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \ |
| + | # -p check-fence -p check-heap -p check-lists -p check-blank \ |
| + | # -p check-funcs -p realloc-copy -p allow-free-null |
| + | # Do not enable this for production builds... |
| + | DODMALLOC:=false |
| + | |
| + | # Electric-fence is another very useful malloc debugging library. |
| + | # Do not enable this for production builds... |
| + | DOEFENCE:=false |
| + | |
| + | # If you want large file summit support, turn this on. |
| + | # This has no effect if you don't have a kernel with lfs |
| + | # support, and a system with libc-2.1.3 or later. |
| + | # Some of the programs that can benefit from lfs support |
| + | # are dd, gzip, mount, tar, and mkfs_minix. |
| + | # LFS allows you to use the above programs for files |
| + | # larger than 2GB! |
| + | DOLFS:=false |
| + | |
| + | # If you have a "pristine" source directory, point BB_SRC_DIR to it. |
| + | # Experimental and incomplete; tell the mailing list |
| + | # <[email protected]> if you do or don't like it so far. |
| + | BB_SRC_DIR:= |
| + | |
| + | # If you are running a cross compiler, you may want to set CROSS |
| + | # to something more interesting, like "arm-linux-". |
| + | CROSS:= |
| + | CC := $(CROSS)gcc |
| + | AR := $(CROSS)ar |
| + | AS := $(CROSS)as |
| + | LD := $(CROSS)ld |
| + | NM := $(CROSS)nm |
| + | STRIP := $(CROSS)strip |
| + | CPP := $(CC) -E |
| + | MAKEFILES := $(TOPDIR).config |
| + | export VERSION BUILDTIME TOPDIR HOSTCC HOSTCFLAGS CROSS CC AR AS LD NM STRIP CPP |
| + | |
| + | |
| + | # To compile vs uClibc, just use the compiler wrapper built by uClibc... |
| + | # Everything should compile and work as expected these days... |
| + | #CC:=/usr/i386-linux-uclibc/bin/i386-uclibc-gcc |
| + | |
| + | # To compile vs some other alternative libc, you may need to use/adjust |
| + | # the following lines to meet your needs... |
| + | # |
| + | # If you are using Red Hat 6.x with the compatible RPMs (for developing under |
| + | # Red Hat 5.x and glibc 2.0) uncomment the following. Be sure to read about |
| + | # using the compatible RPMs (compat-*) at http://www.redhat.com ! |
| + | #LIBCDIR:=/usr/i386-glibc20-linux |
| + | # |
| + | # The following is used for libc5 (if you install altgcc and libc5-altdev |
| + | # on a Debian system). |
| + | #LIBCDIR:=/usr/i486-linuxlibc1 |
| + | # |
| + | # For other libraries, you are on your own... |
| + | #LDFLAGS+=-nostdlib |
| + | #LIBRARIES:=$(LIBCDIR)/lib/libc.a -lgcc |
| + | #CROSS_CFLAGS+=-nostdinc -I$(LIBCDIR)/include -I$(GCCINCDIR) |
| + | #GCCINCDIR:=$(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp") |
| + | |
| + | WARNINGS:=-Wall -Wstrict-prototypes -Wshadow |
| + | CFLAGS:=-I$(TOPDIR)include |
| + | ARFLAGS:=-r |
| + | |
| + | TARGET_ARCH:=${shell $(CC) -dumpmachine | sed -e s'/-.*//' \ |
| + | -e 's/i.86/i386/' \ |
| + | -e 's/sparc.*/sparc/' \ |
| + | -e 's/arm.*/arm/g' \ |
| + | -e 's/m68k.*/m68k/' \ |
| + | -e 's/ppc/powerpc/g' \ |
| + | -e 's/v850.*/v850/g' \ |
| + | -e 's/sh[234]/sh/' \ |
| + | -e 's/mips.*/mips/' \ |
| + | } |
| + | # A nifty macro to make testing gcc features easier |
| + | check_gcc=$(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; \ |
| + | then echo "$(1)"; else echo "$(2)"; fi) |
| + | |
| + | #-------------------------------------------------------- |
| + | # Arch specific compiler optimization stuff should go here. |
| + | # Unless you want to override the defaults, do not set anything |
| + | # for OPTIMIZATION... |
| + | |
| + | # use '-Os' optimization if available, else use -O2 |
| + | OPTIMIZATION:= |
| + | OPTIMIZATION+=${call check_gcc,-Os,-O2} |
| + | |
| + | # Some nice architecture specific optimizations |
| + | ifeq ($(strip $(TARGET_ARCH)),arm) |
| + | OPTIMIZATION+=-fstrict-aliasing |
| + | endif |
| + | ifeq ($(strip $(TARGET_ARCH)),i386) |
| + | OPTIMIZATION+=-march=i386 |
| + | OPTIMIZATION+=$(call check_gcc,-mpreferred-stack-boundary=2,) |
| + | OPTIMIZATION+=$(call check_gcc,-falign-functions=0 -falign-jumps=0 -falign-loops=0,\ |
| + | -malign-functions=0 -malign-jumps=0 -malign-loops=0) |
| + | endif |
| + | OPTIMIZATIONS:=$(OPTIMIZATION) -fomit-frame-pointer |
| + | |
| + | # |
| + | #-------------------------------------------------------- |
| + | # If you're going to do a lot of builds with a non-vanilla configuration, |
| + | # it makes sense to adjust parameters above, so you can type "make" |
| + | # by itself, instead of following it by the same half-dozen overrides |
| + | # every time. The stuff below, on the other hand, is probably less |
| + | # prone to casual user adjustment. |
| + | # |
| + | |
| + | ifeq ($(strip $(DOLFS)),true) |
| + | # For large file summit support |
| + | CFLAGS+=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 |
| + | endif |
| + | ifeq ($(strip $(DODMALLOC)),true) |
| + | # For testing mem leaks with dmalloc |
| + | CFLAGS+=-DDMALLOC |
| + | LIBRARIES:=-ldmalloc |
| + | # Force debug=true, since this is useless when not debugging... |
| + | DODEBUG:=true |
| + | else |
| + | ifeq ($(strip $(DOEFENCE)),true) |
| + | LIBRARIES:=-lefence |
| + | # Force debug=true, since this is useless when not debugging... |
| + | DODEBUG:=true |
| + | endif |
| + | endif |
| + | ifeq ($(strip $(DODEBUG)),true) |
| + | CFLAGS +=$(WARNINGS) -g -D_GNU_SOURCE |
| + | LDFLAGS +=-Wl,-warn-common |
| + | STRIPCMD:=/bin/true -Not_stripping_since_we_are_debugging |
| + | else |
| + | CFLAGS += $(WARNINGS) $(OPTIMIZATIONS) -D_GNU_SOURCE |
| + | LDFLAGS += -s -Wl,-warn-common |
| + | STRIPCMD:=$(STRIP) --remove-section=.note --remove-section=.comment |
| + | endif |
| + | ifeq ($(strip $(DOSTATIC)),true) |
| + | LDFLAGS += --static |
| + | endif |
| + | |
| + | ifeq ($(strip $(PREFIX)),) |
| + | PREFIX:=`pwd`/_install |
| + | endif |
| + | |
| + | # Additional complications due to support for pristine source dir. |
| + | # Include files in the build directory should take precedence over |
| + | # the copy in BB_SRC_DIR, both during the compilation phase and the |
| + | # shell script that finds the list of object files. |
| + | # Work in progress by <[email protected]>. |
| + | # |
| + | ifneq ($(strip $(BB_SRC_DIR)),) |
| + | VPATH:=$(BB_SRC_DIR) |
| + | endif |
| + | |
| + | CFLAGS += -DBB_VER='"$(VERSION)"' |
| + | CFLAGS += -DBB_BT='"$(BUILDTIME)"' |
| + | OBJECTS:=$(APPLET_SOURCES:.c=.o) busybox.o usage.o applets.o |
| + | CFLAGS += $(CROSS_CFLAGS) |
| + | ifdef BB_INIT_SCRIPT |
| + | CFLAGS += -DINIT_SCRIPT='"$(BB_INIT_SCRIPT)"' |
| + | endif |
| + | |
| + | # Put user-supplied flags at the end, where they |
| + | # have a chance of winning. |
| + | CFLAGS += $(CFLAGS_EXTRA) |
| + | |
| + | %.o: %.c |
| + | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< |
| + | |
| + | ifdef _FASTDEP_ALL_SUB_DIRS |
| + | fastdep: dummy |
| + | $(TOPDIR)scripts/mkdep $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -- $(wildcard *.[chS]) > .depend |
| + | ifdef ALL_SUB_DIRS |
| + | $(MAKE) $(patsubst %,_sfdep_%,$(ALL_SUB_DIRS)) _FASTDEP_ALL_SUB_DIRS="$(ALL_SUB_DIRS)" |
| + | endif |
| + | |
| + | $(patsubst %,_sfdep_%,$(_FASTDEP_ALL_SUB_DIRS)): |
| + | $(MAKE) -C $(patsubst _sfdep_%,%,$@) fastdep |
| + | endif |
| + | |
| + | .PHONY: dummy |
| + | |
| + | |
| + | |
| + | .EXPORT_ALL_VARIABLES: |
| + | |
| @@ -0,0 +1,237 @@ | |
| + | # Rules.make for busybox |
| + | # |
| + | # Copyright (C) 2002 Erik Andersen <[email protected]> |
| + | # |
| + | # This program is free software; you can redistribute it and/or modify |
| + | # it under the terms of the GNU General Public License as published by |
| + | # the Free Software Foundation; either version 2 of the License, or |
| + | # (at your option) any later version. |
| + | # |
| + | # This program is distributed in the hope that it will be useful, |
| + | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| + | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| + | # General Public License for more details. |
| + | # |
| + | # You should have received a copy of the GNU General Public License |
| + | # along with this program; if not, write to the Free Software |
| + | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| + | # |
| + | |
| + | PROG := busybox |
| + | VERSION := 0.61.pre |
| + | BUILDTIME := $(shell TZ=UTC date -u "+%Y.%m.%d-%H:%M%z") |
| + | HOSTCC := gcc |
| + | HOSTCFLAGS:= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer |
| + | |
| + | |
| + | # What OS are you compiling busybox for? This allows you to include |
| + | # OS specific things, syscall overrides, etc. |
| + | TARGET_OS:=linux |
| + | |
| + | # With a modern GNU make(1) (highly recommended, that's what all the |
| + | # developers use), all of the following configuration values can be |
| + | # overridden at the command line. For example: |
| + | # make CROSS=powerpc-linux- BB_SRC_DIR=$HOME/busybox PREFIX=/mnt/app |
| + | |
| + | # If you want to add some simple compiler switches (like -march=i686), |
| + | # especially from the command line, use this instead of CFLAGS directly. |
| + | # For optimization overrides, it's better still to set OPTIMIZATION. |
| + | CFLAGS_EXTRA:=#-Werror |
| + | |
| + | # If you want a static binary, turn this on. |
| + | DOSTATIC:=true |
| + | |
| + | # Set the following to `true' to make a debuggable build. |
| + | # Leave this set to `false' for production use. |
| + | DODEBUG:=false |
| + | |
| + | # This enables compiling with dmalloc ( http://dmalloc.com/ ) |
| + | # which is an excellent public domain mem leak and malloc problem |
| + | # detector. To enable dmalloc, before running busybox you will |
| + | # want to first set up your environment. |
| + | # eg: `export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile` |
| + | # The debug= value is generated using the following command |
| + | # dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \ |
| + | # -p check-fence -p check-heap -p check-lists -p check-blank \ |
| + | # -p check-funcs -p realloc-copy -p allow-free-null |
| + | # Do not enable this for production builds... |
| + | DODMALLOC:=false |
| + | |
| + | # Electric-fence is another very useful malloc debugging library. |
| + | # Do not enable this for production builds... |
| + | DOEFENCE:=false |
| + | |
| + | # If you want large file summit support, turn this on. |
| + | # This has no effect if you don't have a kernel with lfs |
| + | # support, and a system with libc-2.1.3 or later. |
| + | # Some of the programs that can benefit from lfs support |
| + | # are dd, gzip, mount, tar, and mkfs_minix. |
| + | # LFS allows you to use the above programs for files |
| + | # larger than 2GB! |
| + | DOLFS:=false |
| + | |
| + | # If you have a "pristine" source directory, point BB_SRC_DIR to it. |
| + | # Experimental and incomplete; tell the mailing list |
| + | # <[email protected]> if you do or don't like it so far. |
| + | BB_SRC_DIR:= |
| + | |
| + | # If you are running a cross compiler, you may want to set CROSS |
| + | # to something more interesting, like "arm-linux-". |
| + | CROSS:= |
| + | CC := $(CROSS)gcc |
| + | AR := $(CROSS)ar |
| + | AS := $(CROSS)as |
| + | LD := $(CROSS)ld |
| + | NM := $(CROSS)nm |
| + | STRIP := $(CROSS)strip |
| + | CPP := $(CC) -E |
| + | MAKEFILES := $(TOPDIR).config |
| + | export VERSION BUILDTIME TOPDIR HOSTCC HOSTCFLAGS CROSS CC AR AS LD NM STRIP CPP |
| + | |
| + | |
| + | # To compile vs uClibc, just use the compiler wrapper built by uClibc... |
| + | # Everything should compile and work as expected these days... |
| + | #CC:=/usr/i386-linux-uclibc/bin/i386-uclibc-gcc |
| + | |
| + | # To compile vs some other alternative libc, you may need to use/adjust |
| + | # the following lines to meet your needs... |
| + | # |
| + | # If you are using Red Hat 6.x with the compatible RPMs (for developing under |
| + | # Red Hat 5.x and glibc 2.0) uncomment the following. Be sure to read about |
| + | # using the compatible RPMs (compat-*) at http://www.redhat.com ! |
| + | #LIBCDIR:=/usr/i386-glibc20-linux |
| + | # |
| + | # The following is used for libc5 (if you install altgcc and libc5-altdev |
| + | # on a Debian system). |
| + | #LIBCDIR:=/usr/i486-linuxlibc1 |
| + | # |
| + | # For other libraries, you are on your own... |
| + | #LDFLAGS+=-nostdlib |
| + | #LIBRARIES:=$(LIBCDIR)/lib/libc.a -lgcc |
| + | #CROSS_CFLAGS+=-nostdinc -I$(LIBCDIR)/include -I$(GCCINCDIR) |
| + | #GCCINCDIR:=$(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp") |
| + | |
| + | WARNINGS:=-Wall -Wstrict-prototypes -Wshadow |
| + | CFLAGS:=-I$(TOPDIR)include |
| + | ARFLAGS:=-r |
| + | |
| + | TARGET_ARCH:=${shell $(CC) -dumpmachine | sed -e s'/-.*//' \ |
| + | -e 's/i.86/i386/' \ |
| + | -e 's/sparc.*/sparc/' \ |
| + | -e 's/arm.*/arm/g' \ |
| + | -e 's/m68k.*/m68k/' \ |
| + | -e 's/ppc/powerpc/g' \ |
| + | -e 's/v850.*/v850/g' \ |
| + | -e 's/sh[234]/sh/' \ |
| + | -e 's/mips.*/mips/' \ |
| + | } |
| + | # A nifty macro to make testing gcc features easier |
| + | check_gcc=$(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; \ |
| + | then echo "$(1)"; else echo "$(2)"; fi) |
| + | |
| + | #-------------------------------------------------------- |
| + | # Arch specific compiler optimization stuff should go here. |
| + | # Unless you want to override the defaults, do not set anything |
| + | # for OPTIMIZATION... |
| + | |
| + | # use '-Os' optimization if available, else use -O2 |
| + | OPTIMIZATION:= |
| + | OPTIMIZATION+=${call check_gcc,-Os,-O2} |
| + | |
| + | # Some nice architecture specific optimizations |
| + | ifeq ($(strip $(TARGET_ARCH)),arm) |
| + | OPTIMIZATION+=-fstrict-aliasing |
| + | endif |
| + | ifeq ($(strip $(TARGET_ARCH)),i386) |
| + | OPTIMIZATION+=-march=i386 |
| + | OPTIMIZATION+=$(call check_gcc,-mpreferred-stack-boundary=2,) |
| + | OPTIMIZATION+=$(call check_gcc,-falign-functions=0 -falign-jumps=0 -falign-loops=0,\ |
| + | -malign-functions=0 -malign-jumps=0 -malign-loops=0) |
| + | endif |
| + | OPTIMIZATIONS:=$(OPTIMIZATION) -fomit-frame-pointer |
| + | |
| + | # |
| + | #-------------------------------------------------------- |
| + | # If you're going to do a lot of builds with a non-vanilla configuration, |
| + | # it makes sense to adjust parameters above, so you can type "make" |
| + | # by itself, instead of following it by the same half-dozen overrides |
| + | # every time. The stuff below, on the other hand, is probably less |
| + | # prone to casual user adjustment. |
| + | # |
| + | |
| + | ifeq ($(strip $(DOLFS)),true) |
| + | # For large file summit support |
| + | CFLAGS+=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 |
| + | endif |
| + | ifeq ($(strip $(DODMALLOC)),true) |
| + | # For testing mem leaks with dmalloc |
| + | CFLAGS+=-DDMALLOC |
| + | LIBRARIES:=-ldmalloc |
| + | # Force debug=true, since this is useless when not debugging... |
| + | DODEBUG:=true |
| + | else |
| + | ifeq ($(strip $(DOEFENCE)),true) |
| + | LIBRARIES:=-lefence |
| + | # Force debug=true, since this is useless when not debugging... |
| + | DODEBUG:=true |
| + | endif |
| + | endif |
| + | ifeq ($(strip $(DODEBUG)),true) |
| + | CFLAGS +=$(WARNINGS) -g -D_GNU_SOURCE |
| + | LDFLAGS +=-Wl,-warn-common |
| + | STRIPCMD:=/bin/true -Not_stripping_since_we_are_debugging |
| + | else |
| + | CFLAGS += $(WARNINGS) $(OPTIMIZATIONS) -D_GNU_SOURCE |
| + | LDFLAGS += -s -Wl,-warn-common |
| + | STRIPCMD:=$(STRIP) --remove-section=.note --remove-section=.comment |
| + | endif |
| + | ifeq ($(strip $(DOSTATIC)),true) |
| + | LDFLAGS += --static |
| + | endif |
| + | |
| + | ifeq ($(strip $(PREFIX)),) |
| + | PREFIX:=`pwd`/_install |
| + | endif |
| + | |
| + | # Additional complications due to support for pristine source dir. |
| + | # Include files in the build directory should take precedence over |
| + | # the copy in BB_SRC_DIR, both during the compilation phase and the |
| + | # shell script that finds the list of object files. |
| + | # Work in progress by <[email protected]>. |
| + | # |
| + | ifneq ($(strip $(BB_SRC_DIR)),) |
| + | VPATH:=$(BB_SRC_DIR) |
| + | endif |
| + | |
| + | CFLAGS += -DBB_VER='"$(VERSION)"' |
| + | CFLAGS += -DBB_BT='"$(BUILDTIME)"' |
| + | OBJECTS:=$(APPLET_SOURCES:.c=.o) busybox.o usage.o applets.o |
| + | CFLAGS += $(CROSS_CFLAGS) |
| + | ifdef BB_INIT_SCRIPT |
| + | CFLAGS += -DINIT_SCRIPT='"$(BB_INIT_SCRIPT)"' |
| + | endif |
| + | |
| + | # Put user-supplied flags at the end, where they |
| + | # have a chance of winning. |
| + | CFLAGS += $(CFLAGS_EXTRA) |
| + | |
| + | %.o: %.c |
| + | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< |
| + | |
| + | ifdef _FASTDEP_ALL_SUB_DIRS |
| + | fastdep: dummy |
| + | $(TOPDIR)scripts/mkdep $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -- $(wildcard *.[chS]) > .depend |
| + | ifdef ALL_SUB_DIRS |
| + | $(MAKE) $(patsubst %,_sfdep_%,$(ALL_SUB_DIRS)) _FASTDEP_ALL_SUB_DIRS="$(ALL_SUB_DIRS)" |
| + | endif |
| + | |
| + | $(patsubst %,_sfdep_%,$(_FASTDEP_ALL_SUB_DIRS)): |
| + | $(MAKE) -C $(patsubst _sfdep_%,%,$@) fastdep |
| + | endif |
| + | |
| + | .PHONY: dummy |
| + | |
| + | |
| + | |
| + | .EXPORT_ALL_VARIABLES: |
| + | |
| @@ -17,6 +17,7 @@ busybox-deb: | |
| dh_testroot | |
| $(MAKE) clean | |
| cp ./debian/config-deb .config | |
| + | cp ./debian/Rules.mak.shared Rules.mak |
| $(MAKE) dep | |
| $(MAKE) | |
| install -D busybox ./debian/busybox/bin/busybox | |
| @@ -36,6 +37,7 @@ busybox-udeb: | |
| dh_testroot | |
| $(MAKE) clean | |
| cp ./debian/config-udeb .config | |
| + | cp ./debian/Rules.mak.shared Rules.mak |
| $(MAKE) dep | |
| $(MAKE) | |
| install -D busybox ./debian/busybox-udeb/bin/busybox | |
| @@ -55,6 +57,7 @@ busybox-static: | |
| dh_testroot | |
| $(MAKE) clean | |
| cp ./debian/config-static .config | |
| + | cp ./debian/Rules.mak.static Rules.mak |
| $(MAKE) dep | |
| $(MAKE) | |
| install -D busybox ./debian/busybox-static/bin/busybox | |