Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

clean master branch

  • Loading branch information...
commit 3a702dcf9e9ca3f62827f61ddfa22a94da205910 1 parent a755ddf
Botao Sun authored
Showing with 0 additions and 35,701 deletions.
  1. +0 −37 .gitignore
  2. +0 −33 .indent.pro
  3. +0 −176 AUTHORS
  4. +0 −139 INSTALL
  5. +0 −348 LICENSE
  6. +0 −1,341 Makefile
  7. +0 −178 Makefile.custom
  8. +0 −137 Makefile.flags
  9. +0 −48 Makefile.help
  10. +0 −204 README
  11. +0 −276 TODO
  12. +0 −45 TODO_unicode
  13. +0 −3  applets/.gitignore
  14. +0 −47 applets/Kbuild.src
  15. +0 −164 applets/applet_tables.c
  16. +0 −16 applets/applets.c
  17. +0 −24 applets/busybox.mkll
  18. +0 −24 applets/individual.c
  19. +0 −113 applets/install.sh
  20. +0 −55 applets/usage.c
  21. +0 −50 applets/usage_compressed
  22. +0 −111 applets/usage_pod.c
  23. +0 −7 arch/i386/Makefile
  24. +0 −388 archival/Config.src
  25. +0 −30 archival/Kbuild.src
  26. +0 −261 archival/ar.c
  27. +0 −472 archival/bbunzip.c
  28. +0 −61 archival/bbunzip_test.sh
  29. +0 −10 archival/bbunzip_test2.sh
  30. +0 −23 archival/bbunzip_test3.sh
  31. +0 −190 archival/bzip2.c
  32. +0 −458 archival/cpio.c
  33. +0 −1,920 archival/dpkg.c
  34. +0 −121 archival/dpkg_deb.c
  35. +0 −2,128 archival/gzip.c
  36. +0 −64 archival/libarchive/Kbuild.src
  37. +0 −44 archival/libarchive/bz/LICENSE
  38. +0 −90 archival/libarchive/bz/README
  39. +0 −1,072 archival/libarchive/bz/blocksort.c
  40. +0 −429 archival/libarchive/bz/bzlib.c
  41. +0 −65 archival/libarchive/bz/bzlib.h
  42. +0 −219 archival/libarchive/bz/bzlib_private.h
  43. +0 −680 archival/libarchive/bz/compress.c
  44. +0 −229 archival/libarchive/bz/huffman.c
  45. +0 −15 archival/libarchive/data_align.c
  46. +0 −200 archival/libarchive/data_extract_all.c
  47. +0 −138 archival/libarchive/data_extract_to_command.c
  48. +0 −14 archival/libarchive/data_extract_to_stdout.c
  49. +0 −12 archival/libarchive/data_skip.c
  50. +0 −822 archival/libarchive/decompress_bunzip2.c
  51. +0 −310 archival/libarchive/decompress_uncompress.c
  52. +0 −465 archival/libarchive/decompress_unlzma.c
  53. +0 −98 archival/libarchive/decompress_unxz.c
  54. +0 −1,252 archival/libarchive/decompress_unzip.c
  55. +0 −17 archival/libarchive/filter_accept_all.c
  56. +0 −19 archival/libarchive/filter_accept_list.c
  57. +0 −51 archival/libarchive/filter_accept_list_reassign.c
  58. +0 −36 archival/libarchive/filter_accept_reject_list.c
  59. +0 −54 archival/libarchive/find_list_entry.c
  60. +0 −133 archival/libarchive/get_header_ar.c
  61. +0 −186 archival/libarchive/get_header_cpio.c
  62. +0 −497 archival/libarchive/get_header_tar.c
  63. +0 −21 archival/libarchive/get_header_tar_bz2.c
  64. +0 −36 archival/libarchive/get_header_tar_gz.c
  65. +0 −24 archival/libarchive/get_header_tar_lzma.c
  66. +0 −12 archival/libarchive/header_list.c
  67. +0 −10 archival/libarchive/header_skip.c
  68. +0 −69 archival/libarchive/header_verbose_list.c
  69. +0 −22 archival/libarchive/init_handle.c
  70. +0 −93 archival/libarchive/liblzo.h
  71. +0 −35 archival/libarchive/lzo1x_1.c
  72. +0 −35 archival/libarchive/lzo1x_1o.c
  73. +0 −921 archival/libarchive/lzo1x_9x.c
  74. +0 −296 archival/libarchive/lzo1x_c.c
  75. +0 −420 archival/libarchive/lzo1x_d.c
  76. +0 −54 archival/libarchive/open_transformer.c
  77. +0 −19 archival/libarchive/seek_by_jump.c
  78. +0 −16 archival/libarchive/seek_by_read.c
  79. +0 −22 archival/libarchive/unpack_ar_archive.c
  80. +0 −135 archival/libarchive/unxz/README
  81. +0 −271 archival/libarchive/unxz/xz.h
  82. +0 −123 archival/libarchive/unxz/xz_config.h
  83. +0 −564 archival/libarchive/unxz/xz_dec_bcj.c
  84. +0 −1,175 archival/libarchive/unxz/xz_dec_lzma2.c
  85. +0 −822 archival/libarchive/unxz/xz_dec_stream.c
  86. +0 −204 archival/libarchive/unxz/xz_lzma2.h
  87. +0 −159 archival/libarchive/unxz/xz_private.h
  88. +0 −57 archival/libarchive/unxz/xz_stream.h
  89. +0 −1,100 archival/lzop.c
  90. +0 −394 archival/rpm.c
  91. +0 −38 archival/rpm.h
  92. +0 −119 archival/rpm2cpio.c
  93. +0 −1,135 archival/tar.c
  94. +0 −704 archival/unzip.c
  95. +0 −926 configs/TEST_nommu_defconfig
  96. +0 −927 configs/TEST_noprintf_defconfig
  97. +0 −941 configs/TEST_rh9_defconfig
  98. +0 −997 configs/android2_defconfig
  99. +0 −1,014 configs/android_defconfig
  100. +0 −997 configs/cygwin_defconfig
  101. +0 −970 configs/freebsd_defconfig
  102. +0 −176 console-tools/Config.src
  103. +0 −25 console-tools/Kbuild.src
  104. +0 −23 console-tools/chvt.c
  105. +0 −22 console-tools/clear.c
  106. +0 −38 console-tools/deallocvt.c
  107. +0 −82 console-tools/dumpkmap.c
  108. +0 −35 console-tools/fgconsole.c
  109. +0 −66 console-tools/kbd_mode.c
  110. +0 −492 console-tools/loadfont.c
  111. +0 −80 console-tools/loadkmap.c
  112. +0 −188 console-tools/openvt.c
  113. +0 −54 console-tools/reset.c
  114. +0 −78 console-tools/resize.c
  115. +0 −45 console-tools/setconsole.c
  116. +0 −59 console-tools/setkeycodes.c
  117. +0 −35 console-tools/setlogcons.c
  118. +0 −150 console-tools/showkey.c
  119. +0 −782 coreutils/Config.src
  120. +0 −85 coreutils/Kbuild.src
  121. +0 −79 coreutils/basename.c
  122. +0 −381 coreutils/cal.c
Sorry, we could not display the entire diff because too many files (1,751) changed.
View
37 .gitignore
@@ -1,37 +0,0 @@
-#
-# Kbuild ignores
-#
-.*
-*.o
-*.o.*
-*.a
-*.s
-Kbuild
-Config.in
-
-#
-# Never ignore these
-#
-!.gitignore
-
-#
-# Normal output
-#
-/busybox
-/busybox_old
-/busybox_unstripped*
-
-#
-# Backups / patches
-#
-*~
-*.orig
-*.rej
-/*.patch
-
-#
-# debugging stuff
-#
-core
-.gdb_history
-.gdbinit
View
33 .indent.pro
@@ -1,33 +0,0 @@
---blank-lines-after-declarations
---blank-lines-after-procedures
---break-before-boolean-operator
---no-blank-lines-after-commas
---braces-on-if-line
---braces-on-struct-decl-line
---comment-indentation25
---declaration-comment-column25
---no-comment-delimiters-on-blank-lines
---cuddle-else
---continuation-indentation4
---case-indentation0
---else-endif-column33
---space-after-cast
---line-comments-indentation0
---declaration-indentation1
---dont-format-first-column-comments
---dont-format-comments
---honour-newlines
---indent-level4
-/* changed from 0 to 4 */
---parameter-indentation4
---line-length78 /* changed from 75 */
---continue-at-parentheses
---no-space-after-function-call-names
---dont-break-procedure-type
---dont-star-comments
---leave-optional-blank-lines
---dont-space-special-semicolon
---tab-size4
-/* additions by Mark */
---case-brace-indentation0
---leave-preprocessor-space
View
176 AUTHORS
@@ -1,176 +0,0 @@
-List of the authors of code contained in BusyBox.
-
-If you have code in BusyBox, you should be listed here. If you should be
-listed, or the description of what you have done needs more detail, or is
-incorrect, _please_ let me know.
-
- -Erik
-
------------
-
-Peter Willis <psyphreak@phreaker.net>
- eject
-
-Emanuele Aina <emanuele.aina@tiscali.it>
- run-parts
-
-Erik Andersen <andersen@codepoet.org>
- Tons of new stuff, major rewrite of most of the
- core apps, tons of new apps as noted in header files.
- Lots of tedious effort writing these boring docs that
- nobody is going to actually read.
-
-Laurence Anderson <l.d.anderson@warwick.ac.uk>
- rpm2cpio, unzip, get_header_cpio, read_gz interface, rpm
-
-Jeff Angielski <jeff@theptrgroup.com>
- ftpput, ftpget
-
-Enrik Berkhan <Enrik.Berkhan@inka.de>
- setconsole
-
-Jim Bauer <jfbauer@nfr.com>
- modprobe shell dependency
-
-Edward Betts <edward@debian.org>
- expr, hostid, logname, whoami
-
-John Beppu <beppu@codepoet.org>
- du, nslookup, sort
-
-David Brownell <dbrownell@users.sourceforge.net>
- zcip
-
-Brian Candler <B.Candler@pobox.com>
- tiny-ls(ls)
-
-Randolph Chung <tausq@debian.org>
- fbset, ping, hostname
-
-Dave Cinege <dcinege@psychosis.com>
- more(v2), makedevs, dutmp, modularization, auto links file,
- various fixes, Linux Router Project maintenance
-
-Jordan Crouse <jordan@cosmicpenguin.net>
- ipcalc
-
-Magnus Damm <damm@opensource.se>
- tftp client
- insmod powerpc support
-
-Larry Doolittle <ldoolitt@recycle.lbl.gov>
- pristine source directory compilation, lots of patches and fixes.
-
-Glenn Engel <glenne@engel.org>
- httpd
-
-Gennady Feldman <gfeldman@gena01.com>
- Sysklogd (single threaded syslogd, IPC Circular buffer support,
- logread), various fixes.
-
-Robert Griebl <sandman@handhelds.org>
- modprobe, hwclock, suid/sgid handling, tinylogin integration
- many bugfixes and enhancements
-
-Karl M. Hegbloom <karlheg@debian.org>
- cp_mv.c, the test suite, various fixes to utility.c, &c.
-
-Daniel Jacobowitz <dan@debian.org>
- mktemp.c
-
-Matt Kraai <kraai@alumni.cmu.edu>
- documentation, bugfixes, test suite
-
-Rob Landley <rob@landley.net>
- Became busybox maintainer in 2006.
-
- sed (major rewrite in 2003, and I now maintain the thing)
- bunzip2 (complete from-scratch rewrite, then mjn3 optimized the result)
- sort (more or less from scratch rewrite in 2004, I now maintain it)
- mount (rewrite in 2005, I maintain the new one)
-
-Stephan Linz <linz@li-pro.net>
- ipcalc, Red Hat equivalence
-
-John Lombardo <john@deltanet.com>
- tr
-
-Glenn McGrath <glenn.l.mcgrath@gmail.com>
- Common unarchiving code and unarchiving applets, ifupdown, ftpgetput,
- nameif, sed, patch, fold, install, uudecode.
- Various bugfixes, review and apply numerous patches.
-
-Manuel Novoa III <mjn3@codepoet.org>
- cat, head, mkfifo, mknod, rmdir, sleep, tee, tty, uniq, usleep, wc, yes,
- mesg, vconfig, nice, renice,
- make_directory, parse_mode, dirname, mode_string,
- get_last_path_component, simplify_path, and a number trivial libbb routines
-
- also bug fixes, partial rewrites, and size optimizations in
- ash, basename, cal, cmp, cp, df, du, echo, env, ln, logname, md5sum, mkdir,
- mv, realpath, rm, sort, tail, touch, uname, watch, arith, human_readable,
- interface, dutmp, ifconfig, route
-
-Vladimir Oleynik <dzo@simtreas.ru>
- cmdedit; bb_mkdep, xargs(current), httpd(current);
- ports: ash, crond, fdisk (initial, unmaintained now), inetd, stty, traceroute,
- top;
- locale, various fixes
- and irreconcilable critic of everything not perfect.
-
-Bruce Perens <bruce@pixar.com>
- Original author of BusyBox in 1995, 1996. Some of his code can
- still be found hiding here and there...
-
-Rodney Radford <rradford@mindspring.com>
- ipcs, ipcrm
-
-Tim Riker <Tim@Rikers.org>
- bug fixes, member of fan club
-
-Kent Robotti <robotti@metconnect.com>
- reset, tons and tons of bug reports and patches.
-
-Chip Rosenthal <chip@unicom.com>, <crosenth@covad.com>
- wget - Contributed by permission of Covad Communications
-
-Pavel Roskin <proski@gnu.org>
- Lots of bugs fixes and patches.
-
-Gyepi Sam <gyepi@praxis-sw.com>
- Remote logging feature for syslogd
-
-Rob Sullivan <cogito.ergo.cogito@gmail.com>
- comm
-
-Linus Torvalds
- mkswap, fsck.minix, mkfs.minix
-
-Mark Whitley <markw@codepoet.org>
- grep, sed, cut, xargs(previous),
- style-guide, new-applet-HOWTO, bug fixes, etc.
-
-Charles P. Wright <cpwright@villagenet.com>
- gzip, mini-netcat(nc)
-
-Enrique Zanardi <ezanardi@ull.es>
- tarcat (since removed), loadkmap, various fixes, Debian maintenance
-
-Tito Ragusa <farmatito@tiscali.it>
- devfsd and size optimizations in strings, openvt, chvt, deallocvt, hdparm,
- fdformat, lsattr, chattr, id and eject.
-
-Paul Fox <pgf@foxharp.boston.ma.us>
- vi editing mode for ash, various other patches/fixes
-
-Roberto A. Foglietta <me@roberto.foglietta.name>
- port: dnsd
-
-Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
- misc
-
-Mike Frysinger <vapier@gentoo.org>
- initial e2fsprogs, printenv, setarch, sum, misc
-
-Jie Zhang <jie.zhang@analog.com>
- fixed two bugs in msh and hush (exitcode of killed processes)
View
139 INSTALL
@@ -1,139 +0,0 @@
-Building:
-=========
-
-The BusyBox build process is similar to the Linux kernel build:
-
- make menuconfig # This creates a file called ".config"
- make # This creates the "busybox" executable
- make install # or make CONFIG_PREFIX=/path/from/root install
-
-The full list of configuration and install options is available by typing:
-
- make help
-
-Quick Start:
-============
-
-The easy way to try out BusyBox for the first time, without having to install
-it, is to enable all features and then use "standalone shell" mode with a
-blank command $PATH.
-
-To enable all features, use "make defconfig", which produces the largest
-general-purpose configuration. It's allyesconfig minus debugging options,
-optional packaging choices, and a few special-purpose features requiring
-extra configuration to use. Then enable "standalone shell" feature:
-
- make defconfig
- make menuconfig
- # select Busybox Settings
- # then General Configuration
- # then exec prefers applets
- # exit back to top level menu
- # select Shells
- # then Standalone shell
- # exit back to top level menu
- # exit and save new configuration
- # OR
- # use these commands to modify .config directly:
- sed -e 's/.*FEATURE_PREFER_APPLETS.*/CONFIG_FEATURE_PREFER_APPLETS=y/' -i .config
- sed -e 's/.*FEATURE_SH_STANDALONE.*/CONFIG_FEATURE_SH_STANDALONE=y/' -i .config
- make
- PATH= ./busybox ash
-
-Standalone shell mode causes busybox's built-in command shell to run
-any built-in busybox applets directly, without looking for external
-programs by that name. Supplying an empty command path (as above) means
-the only commands busybox can find are the built-in ones.
-
-Note that the standalone shell requires CONFIG_BUSYBOX_EXEC_PATH
-to be set appropriately, depending on whether or not /proc/self/exe is
-available or not. If you do not have /proc, then point that config option
-to the location of your busybox binary, usually /bin/busybox.
-
-Configuring Busybox:
-====================
-
-Busybox is optimized for size, but enabling the full set of functionality
-still results in a fairly large executable -- more than 1 megabyte when
-statically linked. To save space, busybox can be configured with only the
-set of applets needed for each environment. The minimal configuration, with
-all applets disabled, produces a 4k executable. (It's useless, but very small.)
-
-The manual configurator "make menuconfig" modifies the existing configuration.
-(For systems without ncurses, try "make config" instead.) The two most
-interesting starting configurations are "make allnoconfig" (to start with
-everything disabled and add just what you need), and "make defconfig" (to
-start with everything enabled and remove what you don't need). If menuconfig
-is run without an existing configuration, make defconfig will run first to
-create a known starting point.
-
-Other starting configurations (mostly used for testing purposes) include
-"make allbareconfig" (enables all applets but disables all optional features),
-"make allyesconfig" (enables absolutely everything including debug features),
-and "make randconfig" (produce a random configuration). The configs/ directory
-contains a number of additional configuration files ending in _defconfig which
-are useful in specific cases. "make help" will list them.
-
-Configuring BusyBox produces a file ".config", which can be saved for future
-use. Run "make oldconfig" to bring a .config file from an older version of
-busybox up to date.
-
-Installing Busybox:
-===================
-
-Busybox is a single executable that can behave like many different commands,
-and BusyBox uses the name it was invoked under to determine the desired
-behavior. (Try "mv busybox ls" and then "./ls -l".)
-
-Installing busybox consists of creating symlinks (or hardlinks) to the busybox
-binary for each applet enabled in busybox, and making sure these symlinks are
-in the shell's command $PATH. Running "make install" creates these symlinks,
-or "make install-hardlinks" creates hardlinks instead (useful on systems with
-a limited number of inodes). This install process uses the file
-"busybox.links" (created by make), which contains the list of enabled applets
-and the path at which to install them.
-
-Installing links to busybox is not always necessary. The special applet name
-"busybox" (or with any optional suffix, such as "busybox-static") uses the
-first argument to determine which applet to behave as, for example
-"./busybox cat LICENSE". (Running the busybox applet with no arguments gives
-a list of all enabled applets.) The standalone shell can also call busybox
-applets without links to busybox under other names in the filesystem. You can
-also configure a standalone install capability into the busybox base applet,
-and then install such links at runtime with one of "busybox --install" (for
-hardlinks) or "busybox --install -s" (for symlinks).
-
-If you enabled the busybox shared library feature (libbusybox.so) and want
-to run tests without installing, set your LD_LIBRARY_PATH accordingly when
-running the executable:
-
- LD_LIBRARY_PATH=`pwd` ./busybox
-
-Building out-of-tree:
-=====================
-
-By default, the BusyBox build puts its temporary files in the source tree.
-Building from a read-only source tree, or building multiple configurations from
-the same source directory, requires the ability to put the temporary files
-somewhere else.
-
-To build out of tree, cd to an empty directory and configure busybox from there:
-
- make KBUILD_SRC=/path/to/source -f /path/to/source/Makefile defconfig
- make
- make install
-
-Alternately, use the O=$BUILDPATH option (with an absolute path) during the
-configuration step, as in:
-
- make O=/some/empty/directory allyesconfig
- cd /some/empty/directory
- make
- make CONFIG_PREFIX=. install
-
-More Information:
-=================
-
-Se also the busybox FAQ, under the questions "How can I get started using
-BusyBox" and "How do I build a BusyBox-based system?" The BusyBox FAQ is
-available from http://www.busybox.net/FAQ.html
View
348 LICENSE
@@ -1,348 +0,0 @@
---- A note on GPL versions
-
-BusyBox is distributed under version 2 of the General Public License (included
-in its entirety, below). Version 2 is the only version of this license which
-this version of BusyBox (or modified versions derived from this one) may be
-distributed under.
-
-------------------------------------------------------------------------
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
View
1,341 Makefile
@@ -1,1341 +0,0 @@
-VERSION = 1
-PATCHLEVEL = 20
-SUBLEVEL = 0
-EXTRAVERSION = .git
-NAME = Unnamed
-
-# *DOCUMENTATION*
-# To see a list of typical targets execute "make help"
-# More info can be located in ./README
-# Comments in this file are targeted only to the developer, do not
-# expect to learn how to build the kernel reading this file.
-
-# Do not print "Entering directory ..."
-MAKEFLAGS += --no-print-directory
-
-# We are using a recursive build, so we need to do a little thinking
-# to get the ordering right.
-#
-# Most importantly: sub-Makefiles should only ever modify files in
-# their own directory. If in some directory we have a dependency on
-# a file in another dir (which doesn't happen often, but it's often
-# unavoidable when linking the built-in.o targets which finally
-# turn into busybox), we will call a sub make in that other dir, and
-# after that we are sure that everything which is in that other dir
-# is now up to date.
-#
-# The only cases where we need to modify files which have global
-# effects are thus separated out and done before the recursive
-# descending is started. They are now explicitly listed as the
-# prepare rule.
-
-# To put more focus on warnings, be less verbose as default
-# Use 'make V=1' to see the full commands
-
-ifdef V
- ifeq ("$(origin V)", "command line")
- KBUILD_VERBOSE = $(V)
- endif
-endif
-ifndef KBUILD_VERBOSE
- KBUILD_VERBOSE = 0
-endif
-
-# Call sparse as part of compilation of C files
-# Use 'make C=1' to enable sparse checking
-
-ifdef C
- ifeq ("$(origin C)", "command line")
- KBUILD_CHECKSRC = $(C)
- endif
-endif
-ifndef KBUILD_CHECKSRC
- KBUILD_CHECKSRC = 0
-endif
-
-# Use make M=dir to specify directory of external module to build
-# Old syntax make ... SUBDIRS=$PWD is still supported
-# Setting the environment variable KBUILD_EXTMOD take precedence
-ifdef SUBDIRS
- KBUILD_EXTMOD ?= $(SUBDIRS)
-endif
-ifdef M
- ifeq ("$(origin M)", "command line")
- KBUILD_EXTMOD := $(M)
- endif
-endif
-
-
-# kbuild supports saving output files in a separate directory.
-# To locate output files in a separate directory two syntaxes are supported.
-# In both cases the working directory must be the root of the kernel src.
-# 1) O=
-# Use "make O=dir/to/store/output/files/"
-#
-# 2) Set KBUILD_OUTPUT
-# Set the environment variable KBUILD_OUTPUT to point to the directory
-# where the output files shall be placed.
-# export KBUILD_OUTPUT=dir/to/store/output/files/
-# make
-#
-# The O= assignment takes precedence over the KBUILD_OUTPUT environment
-# variable.
-
-
-# KBUILD_SRC is set on invocation of make in OBJ directory
-# KBUILD_SRC is not intended to be used by the regular user (for now)
-ifeq ($(KBUILD_SRC),)
-
-# OK, Make called in directory where kernel src resides
-# Do we want to locate output files in a separate directory?
-ifdef O
- ifeq ("$(origin O)", "command line")
- KBUILD_OUTPUT := $(O)
- endif
-endif
-
-# That's our default target when none is given on the command line
-PHONY := _all
-_all:
-
-ifneq ($(KBUILD_OUTPUT),)
-# Invoke a second make in the output directory, passing relevant variables
-# check that the output directory actually exists
-saved-output := $(KBUILD_OUTPUT)
-KBUILD_OUTPUT := $(shell cd $(KBUILD_OUTPUT) && /bin/pwd)
-$(if $(KBUILD_OUTPUT),, \
- $(error output directory "$(saved-output)" does not exist))
-
-PHONY += $(MAKECMDGOALS)
-
-$(filter-out _all,$(MAKECMDGOALS)) _all:
- $(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUTPUT) \
- KBUILD_SRC=$(CURDIR) \
- KBUILD_EXTMOD="$(KBUILD_EXTMOD)" -f $(CURDIR)/Makefile $@
-
-# Leave processing to above invocation of make
-skip-makefile := 1
-endif # ifneq ($(KBUILD_OUTPUT),)
-endif # ifeq ($(KBUILD_SRC),)
-
-# We process the rest of the Makefile if this is the final invocation of make
-ifeq ($(skip-makefile),)
-
-# If building an external module we do not care about the all: rule
-# but instead _all depend on modules
-PHONY += all
-ifeq ($(KBUILD_EXTMOD),)
-_all: all
-else
-_all: modules
-endif
-
-srctree := $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR))
-TOPDIR := $(srctree)
-# FIXME - TOPDIR is obsolete, use srctree/objtree
-objtree := $(CURDIR)
-src := $(srctree)
-obj := $(objtree)
-
-VPATH := $(srctree)$(if $(KBUILD_EXTMOD),:$(KBUILD_EXTMOD))
-
-export srctree objtree VPATH TOPDIR
-
-
-# Cross compiling and selecting different set of gcc/bin-utils
-# ---------------------------------------------------------------------------
-#
-# When performing cross compilation for other architectures ARCH shall be set
-# to the target architecture. (See arch/* for the possibilities).
-# ARCH can be set during invocation of make:
-# make ARCH=ia64
-# Another way is to have ARCH set in the environment.
-# The default ARCH is the host where make is executed.
-
-# CROSS_COMPILE specify the prefix used for all executables used
-# during compilation. Only gcc and related bin-utils executables
-# are prefixed with $(CROSS_COMPILE).
-# CROSS_COMPILE can be set on the command line
-# make CROSS_COMPILE=ia64-linux-
-# Alternatively CROSS_COMPILE can be set in the environment.
-# Default value for CROSS_COMPILE is not to prefix executables
-# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
-
-CROSS_COMPILE ?=
-# bbox: we may have CONFIG_CROSS_COMPILER_PREFIX in .config,
-# and it has not been included yet... thus using an awkward syntax.
-ifeq ($(CROSS_COMPILE),)
-CROSS_COMPILE := $(shell grep ^CONFIG_CROSS_COMPILER_PREFIX .config 2>/dev/null)
-CROSS_COMPILE := $(subst CONFIG_CROSS_COMPILER_PREFIX=,,$(CROSS_COMPILE))
-CROSS_COMPILE := $(subst ",,$(CROSS_COMPILE))
-#")
-endif
-
-# SUBARCH tells the usermode build what the underlying arch is. That is set
-# first, and if a usermode build is happening, the "ARCH=um" on the command
-# line overrides the setting of ARCH below. If a native build is happening,
-# then ARCH is assigned, getting whatever value it gets normally, and
-# SUBARCH is subsequently ignored.
-
-ifneq ($(CROSS_COMPILE),)
-SUBARCH := $(shell echo $(CROSS_COMPILE) | cut -d- -f1)
-else
-SUBARCH := $(shell uname -m)
-endif
-SUBARCH := $(shell echo $(SUBARCH) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
- -e s/arm.*/arm/ -e s/sa110/arm/ \
- -e s/s390x/s390/ -e s/parisc64/parisc/ \
- -e s/ppc.*/powerpc/ -e s/mips.*/mips/ )
-
-ARCH ?= $(SUBARCH)
-
-# Architecture as present in compile.h
-UTS_MACHINE := $(ARCH)
-
-# SHELL used by kbuild
-CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
- else if [ -x /bin/bash ]; then echo /bin/bash; \
- else echo sh; fi ; fi)
-
-# Decide whether to build built-in, modular, or both.
-# Normally, just do built-in.
-
-KBUILD_MODULES :=
-KBUILD_BUILTIN := 1
-
-# If we have only "make modules", don't compile built-in objects.
-# When we're building modules with modversions, we need to consider
-# the built-in objects during the descend as well, in order to
-# make sure the checksums are uptodate before we record them.
-
-ifeq ($(MAKECMDGOALS),modules)
- KBUILD_BUILTIN := $(if $(CONFIG_MODVERSIONS),1)
-endif
-
-# If we have "make <whatever> modules", compile modules
-# in addition to whatever we do anyway.
-# Just "make" or "make all" shall build modules as well
-
-ifneq ($(filter all _all modules,$(MAKECMDGOALS)),)
- KBUILD_MODULES := 1
-endif
-
-ifeq ($(MAKECMDGOALS),)
- KBUILD_MODULES := 1
-endif
-
-export KBUILD_MODULES KBUILD_BUILTIN
-export KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD
-
-# Beautify output
-# ---------------------------------------------------------------------------
-#
-# Normally, we echo the whole command before executing it. By making
-# that echo $($(quiet)$(cmd)), we now have the possibility to set
-# $(quiet) to choose other forms of output instead, e.g.
-#
-# quiet_cmd_cc_o_c = Compiling $(RELDIR)/$@
-# cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
-#
-# If $(quiet) is empty, the whole command will be printed.
-# If it is set to "quiet_", only the short version will be printed.
-# If it is set to "silent_", nothing wil be printed at all, since
-# the variable $(silent_cmd_cc_o_c) doesn't exist.
-#
-# A simple variant is to prefix commands with $(Q) - that's useful
-# for commands that shall be hidden in non-verbose mode.
-#
-# $(Q)ln $@ :<
-#
-# If KBUILD_VERBOSE equals 0 then the above command will be hidden.
-# If KBUILD_VERBOSE equals 1 then the above command is displayed.
-
-ifeq ($(KBUILD_VERBOSE),1)
- quiet =
- Q =
-else
- quiet=quiet_
- Q = @
-endif
-
-# If the user is running make -s (silent mode), suppress echoing of
-# commands
-
-ifneq ($(findstring s,$(MAKEFLAGS)),)
- quiet=silent_
-endif
-
-export quiet Q KBUILD_VERBOSE
-
-
-# Look for make include files relative to root of kernel src
-MAKEFLAGS += --include-dir=$(srctree)
-
-HOSTCC = gcc
-HOSTCXX = g++
-HOSTCFLAGS :=
-HOSTCXXFLAGS :=
-# We need some generic definitions
-include $(srctree)/scripts/Kbuild.include
-
-HOSTCFLAGS += $(call hostcc-option,-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer,)
-HOSTCXXFLAGS += -O2
-
-# For maximum performance (+ possibly random breakage, uncomment
-# the following)
-
-MAKEFLAGS += -rR
-
-# Make variables (CC, etc...)
-
-AS = $(CROSS_COMPILE)as
-CC = $(CROSS_COMPILE)gcc
-LD = $(CC) -nostdlib
-CPP = $(CC) -E
-AR = $(CROSS_COMPILE)ar
-NM = $(CROSS_COMPILE)nm
-STRIP = $(CROSS_COMPILE)strip
-OBJCOPY = $(CROSS_COMPILE)objcopy
-OBJDUMP = $(CROSS_COMPILE)objdump
-AWK = awk
-GENKSYMS = scripts/genksyms/genksyms
-DEPMOD = /sbin/depmod
-KALLSYMS = scripts/kallsyms
-PERL = perl
-CHECK = sparse
-
-CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise $(CF)
-MODFLAGS = -DMODULE
-CFLAGS_MODULE = $(MODFLAGS)
-AFLAGS_MODULE = $(MODFLAGS)
-LDFLAGS_MODULE = -r
-CFLAGS_KERNEL =
-AFLAGS_KERNEL =
-
-
-# Use LINUXINCLUDE when you must reference the include/ directory.
-# Needed to be compatible with the O= option
-CFLAGS := $(CFLAGS)
-# Added only to final link stage of busybox binary
-CFLAGS_busybox := $(CFLAGS_busybox)
-CPPFLAGS := $(CPPFLAGS)
-AFLAGS := $(AFLAGS)
-LDFLAGS := $(LDFLAGS)
-LDLIBS :=
-
-# Read KERNELRELEASE from .kernelrelease (if it exists)
-KERNELRELEASE = $(shell cat .kernelrelease 2> /dev/null)
-KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
-
-export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION \
- ARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \
- CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE \
- HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
-
-export CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
-export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
-export AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
-export FLTFLAGS
-
-# When compiling out-of-tree modules, put MODVERDIR in the module
-# tree rather than in the kernel tree. The kernel tree might
-# even be read-only.
-export MODVERDIR := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/).tmp_versions
-
-# Files to ignore in find ... statements
-
-RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS -o -name .pc -o -name .hg -o -name .git \) -prune -o
-export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn --exclude CVS --exclude .pc --exclude .hg --exclude .git
-
-# ===========================================================================
-# Rules shared between *config targets and build targets
-
-# Basic helpers built in scripts/
-PHONY += scripts_basic
-scripts_basic:
- $(Q)$(MAKE) $(build)=scripts/basic
-
-# To avoid any implicit rule to kick in, define an empty command.
-scripts/basic/%: scripts_basic ;
-
-# This target generates Kbuild's and Config.in's from *.c files
-PHONY += gen_build_files
-gen_build_files: $(wildcard $(srctree)/*/*.c) $(wildcard $(srctree)/*/*/*.c)
- $(Q)$(srctree)/scripts/gen_build_files.sh $(srctree) $(objtree)
-
-# bbox: we have helpers in applets/
-# we depend on scripts_basic, since scripts/basic/fixdep
-# must be built before any other host prog
-PHONY += applets_dir
-applets_dir: scripts_basic gen_build_files
- $(Q)$(MAKE) $(build)=applets
-
-applets/%: applets_dir ;
-
-PHONY += outputmakefile
-# outputmakefile generates a Makefile in the output directory, if using a
-# separate output directory. This allows convenient use of make in the
-# output directory.
-outputmakefile:
-ifneq ($(KBUILD_SRC),)
- $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile \
- $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)
-endif
-
-# To make sure we do not include .config for any of the *config targets
-# catch them early, and hand them over to scripts/kconfig/Makefile
-# It is allowed to specify more targets when calling make, including
-# mixing *config targets and build targets.
-# For example 'make oldconfig all'.
-# Detect when mixed targets is specified, and make a second invocation
-# of make so .config is not included in this case either (for *config).
-
-no-dot-config-targets := clean mrproper distclean \
- cscope TAGS tags help %docs
-#bbox# check% is removed from above
-
-config-targets := 0
-mixed-targets := 0
-dot-config := 1
-
-ifneq ($(filter $(no-dot-config-targets), $(MAKECMDGOALS)),)
- ifeq ($(filter-out $(no-dot-config-targets), $(MAKECMDGOALS)),)
- dot-config := 0
- endif
-endif
-
-ifeq ($(KBUILD_EXTMOD),)
- ifneq ($(filter config %config,$(MAKECMDGOALS)),)
- config-targets := 1
- ifneq ($(filter-out config %config,$(MAKECMDGOALS)),)
- mixed-targets := 1
- endif
- endif
-endif
-
-ifeq ($(mixed-targets),1)
-# ===========================================================================
-# We're called with mixed targets (*config and build targets).
-# Handle them one by one.
-
-%:: FORCE
- $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= $@
-
-else
-ifeq ($(config-targets),1)
-# ===========================================================================
-# *config targets only - make sure prerequisites are updated, and descend
-# in scripts/kconfig to make the *config target
-
-# Read arch specific Makefile to set KBUILD_DEFCONFIG as needed.
-# KBUILD_DEFCONFIG may point out an alternative default configuration
-# used for 'make defconfig'
--include $(srctree)/arch/$(ARCH)/Makefile
-export KBUILD_DEFCONFIG
-
-config: scripts_basic outputmakefile gen_build_files FORCE
- $(Q)mkdir -p include
- $(Q)$(MAKE) $(build)=scripts/kconfig $@
- $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
-
-%config: scripts_basic outputmakefile gen_build_files FORCE
- $(Q)mkdir -p include
- $(Q)$(MAKE) $(build)=scripts/kconfig $@
- $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
-
-else
-# ===========================================================================
-# Build targets only - this includes busybox, arch specific targets, clean
-# targets and others. In general all targets except *config targets.
-
-ifeq ($(KBUILD_EXTMOD),)
-# Additional helpers built in scripts/
-# Carefully list dependencies so we do not try to build scripts twice
-# in parallel
-PHONY += scripts
-scripts: gen_build_files scripts_basic include/config/MARKER
- $(Q)$(MAKE) $(build)=$(@)
-
-scripts_basic: include/autoconf.h
-
-# Objects we will link into busybox / subdirs we need to visit
-core-y := \
- applets/ \
-
-libs-y := \
- archival/ \
- archival/libarchive/ \
- console-tools/ \
- coreutils/ \
- coreutils/libcoreutils/ \
- debianutils/ \
- e2fsprogs/ \
- editors/ \
- findutils/ \
- init/ \
- libbb/ \
- libpwdgrp/ \
- loginutils/ \
- mailutils/ \
- miscutils/ \
- modutils/ \
- networking/ \
- networking/libiproute/ \
- networking/udhcp/ \
- printutils/ \
- procps/ \
- runit/ \
- selinux/ \
- shell/ \
- sysklogd/ \
- util-linux/ \
- util-linux/volume_id/ \
-
-endif # KBUILD_EXTMOD
-
-ifeq ($(dot-config),1)
-# In this section, we need .config
-
-# Read in dependencies to all Kconfig* files, make sure to run
-# oldconfig if changes are detected.
--include .kconfig.d
-
--include .config
-
-# If .config needs to be updated, it will be done via the dependency
-# that autoconf has on .config.
-# To avoid any implicit rule to kick in, define an empty command
-.config .kconfig.d: ;
-
-# Now we can define CFLAGS etc according to .config
-include $(srctree)/Makefile.flags
-
-# If .config is newer than include/autoconf.h, someone tinkered
-# with it and forgot to run make oldconfig.
-# If kconfig.d is missing then we are probarly in a cleaned tree so
-# we execute the config step to be sure to catch updated Kconfig files
-include/autoconf.h: .kconfig.d .config $(wildcard $(srctree)/*/*.c) $(wildcard $(srctree)/*/*/*.c) | gen_build_files
- $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
-
-include/usage.h: gen_build_files
-
-else
-# Dummy target needed, because used as prerequisite
-include/autoconf.h: ;
-endif
-
-# The all: target is the default when no target is given on the
-# command line.
-# This allow a user to issue only 'make' to build a kernel including modules
-# Defaults busybox but it is usually overridden in the arch makefile
-all: busybox doc
-
--include $(srctree)/arch/$(ARCH)/Makefile
-
-# arch Makefile may override CC so keep this after arch Makefile is included
-#bbox# NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
-CHECKFLAGS += $(NOSTDINC_FLAGS)
-
-# Default kernel image to build when no specific target is given.
-# KBUILD_IMAGE may be overruled on the commandline or
-# set in the environment
-# Also any assignments in arch/$(ARCH)/Makefile take precedence over
-# this default value
-export KBUILD_IMAGE ?= busybox
-
-#
-# INSTALL_PATH specifies where to place the updated kernel and system map
-# images. Default is /boot, but you can set it to other values
-export INSTALL_PATH ?= /boot
-
-#
-# INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory
-# relocations required by build roots. This is not defined in the
-# makefile but the arguement can be passed to make if needed.
-#
-
-MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
-export MODLIB
-
-
-ifeq ($(KBUILD_EXTMOD),)
-busybox-dirs := $(patsubst %/,%,$(filter %/, $(core-y) $(core-m) $(libs-y) $(libs-m)))
-
-busybox-alldirs := $(sort $(busybox-dirs) $(patsubst %/,%,$(filter %/, \
- $(core-n) $(core-) $(libs-n) $(libs-) \
- )))
-
-core-y := $(patsubst %/, %/built-in.o, $(core-y))
-libs-y1 := $(patsubst %/, %/lib.a, $(libs-y))
-libs-y2 := $(patsubst %/, %/built-in.o, $(libs-y))
-libs-y := $(libs-y1) $(libs-y2)
-
-# Build busybox
-# ---------------------------------------------------------------------------
-# busybox is build from the objects selected by $(busybox-init) and
-# $(busybox-main). Most are built-in.o files from top-level directories
-# in the kernel tree, others are specified in arch/$(ARCH)Makefile.
-# Ordering when linking is important, and $(busybox-init) must be first.
-#
-# busybox
-# ^
-# |
-# +-< $(busybox-init)
-# | +--< init/version.o + more
-# |
-# +--< $(busybox-main)
-# | +--< driver/built-in.o mm/built-in.o + more
-# |
-# +-< kallsyms.o (see description in CONFIG_KALLSYMS section)
-#
-# busybox version (uname -v) cannot be updated during normal
-# descending-into-subdirs phase since we do not yet know if we need to
-# update busybox.
-# Therefore this step is delayed until just before final link of busybox -
-# except in the kallsyms case where it is done just before adding the
-# symbols to the kernel.
-#
-# System.map is generated to document addresses of all kernel symbols
-
-busybox-all := $(core-y) $(libs-y)
-
-# Rule to link busybox - also used during CONFIG_KALLSYMS
-# May be overridden by arch/$(ARCH)/Makefile
-quiet_cmd_busybox__ ?= LINK $@
- cmd_busybox__ ?= $(srctree)/scripts/trylink \
- "$@" \
- "$(CC)" \
- "$(CFLAGS) $(CFLAGS_busybox)" \
- "$(LDFLAGS) $(EXTRA_LDFLAGS)" \
- "$(core-y)" \
- "$(libs-y)" \
- "$(LDLIBS)"
-
-# Generate System.map
-quiet_cmd_sysmap = SYSMAP
- cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap
-
-# Link of busybox
-# If CONFIG_KALLSYMS is set .version is already updated
-# Generate System.map and verify that the content is consistent
-# Use + in front of the busybox_version rule to silent warning with make -j2
-# First command is ':' to allow us to use + in front of the rule
-define rule_busybox__
- :
- $(call cmd,busybox__)
- $(Q)echo 'cmd_$@ := $(cmd_busybox__)' > $(@D)/.$(@F).cmd
-endef
-
-
-ifdef CONFIG_KALLSYMS
-# Generate section listing all symbols and add it into busybox $(kallsyms.o)
-# It's a three stage process:
-# o .tmp_busybox1 has all symbols and sections, but __kallsyms is
-# empty
-# Running kallsyms on that gives us .tmp_kallsyms1.o with
-# the right size - busybox version (uname -v) is updated during this step
-# o .tmp_busybox2 now has a __kallsyms section of the right size,
-# but due to the added section, some addresses have shifted.
-# From here, we generate a correct .tmp_kallsyms2.o
-# o The correct .tmp_kallsyms2.o is linked into the final busybox.
-# o Verify that the System.map from busybox matches the map from
-# .tmp_busybox2, just in case we did not generate kallsyms correctly.
-# o If CONFIG_KALLSYMS_EXTRA_PASS is set, do an extra pass using
-# .tmp_busybox3 and .tmp_kallsyms3.o. This is only meant as a
-# temporary bypass to allow the kernel to be built while the
-# maintainers work out what went wrong with kallsyms.
-
-ifdef CONFIG_KALLSYMS_EXTRA_PASS
-last_kallsyms := 3
-else
-last_kallsyms := 2
-endif
-
-kallsyms.o := .tmp_kallsyms$(last_kallsyms).o
-
-define verify_kallsyms
- $(Q)$(if $($(quiet)cmd_sysmap), \
- echo ' $($(quiet)cmd_sysmap) .tmp_System.map' &&) \
- $(cmd_sysmap) .tmp_busybox$(last_kallsyms) .tmp_System.map
- $(Q)cmp -s System.map .tmp_System.map || \
- (echo Inconsistent kallsyms data; \
- echo Try setting CONFIG_KALLSYMS_EXTRA_PASS; \
- rm .tmp_kallsyms* ; /bin/false )
-endef
-
-# Update busybox version before link
-# Use + in front of this rule to silent warning about make -j1
-# First command is ':' to allow us to use + in front of this rule
-cmd_ksym_ld = $(cmd_busybox__)
-define rule_ksym_ld
- :
- +$(call cmd,busybox_version)
- $(call cmd,busybox__)
- $(Q)echo 'cmd_$@ := $(cmd_busybox__)' > $(@D)/.$(@F).cmd
-endef
-
-# Generate .S file with all kernel symbols
-quiet_cmd_kallsyms = KSYM $@
- cmd_kallsyms = $(NM) -n $< | $(KALLSYMS) \
- $(if $(CONFIG_KALLSYMS_ALL),--all-symbols) > $@
-
-.tmp_kallsyms1.o .tmp_kallsyms2.o .tmp_kallsyms3.o: %.o: %.S scripts FORCE
- $(call if_changed_dep,as_o_S)
-
-.tmp_kallsyms%.S: .tmp_busybox% $(KALLSYMS)
- $(call cmd,kallsyms)
-
-# .tmp_busybox1 must be complete except kallsyms, so update busybox version
-.tmp_busybox1: $(busybox-lds) $(busybox-all) FORCE
- $(call if_changed_rule,ksym_ld)
-
-.tmp_busybox2: $(busybox-lds) $(busybox-all) .tmp_kallsyms1.o FORCE
- $(call if_changed,busybox__)
-
-.tmp_busybox3: $(busybox-lds) $(busybox-all) .tmp_kallsyms2.o FORCE
- $(call if_changed,busybox__)
-
-# Needs to visit scripts/ before $(KALLSYMS) can be used.
-$(KALLSYMS): scripts ;
-
-# Generate some data for debugging strange kallsyms problems
-debug_kallsyms: .tmp_map$(last_kallsyms)
-
-.tmp_map%: .tmp_busybox% FORCE
- ($(OBJDUMP) -h $< | $(AWK) '/^ +[0-9]/{print $$4 " 0 " $$2}'; $(NM) $<) | sort > $@
-
-.tmp_map3: .tmp_map2
-
-.tmp_map2: .tmp_map1
-
-endif # ifdef CONFIG_KALLSYMS
-
-# busybox image - including updated kernel symbols
-busybox_unstripped: $(busybox-all) FORCE
- $(call if_changed_rule,busybox__)
- $(Q)rm -f .old_version
-
-busybox: busybox_unstripped
-ifeq ($(SKIP_STRIP),y)
- $(Q)cp $< $@
-else
- $(Q)$(STRIP) -s --remove-section=.note --remove-section=.comment \
- busybox_unstripped -o $@
-# strip is confused by PIE executable and does not set exec bits
- $(Q)chmod a+x $@
-endif
-
-# The actual objects are generated when descending,
-# make sure no implicit rule kicks in
-$(sort $(busybox-all)): $(busybox-dirs) ;
-
-# Handle descending into subdirectories listed in $(busybox-dirs)
-# Preset locale variables to speed up the build process. Limit locale
-# tweaks to this spot to avoid wrong language settings when running
-# make menuconfig etc.
-# Error messages still appears in the original language
-
-PHONY += $(busybox-dirs)
-$(busybox-dirs): prepare scripts
- $(Q)$(MAKE) $(build)=$@
-
-# Build the kernel release string
-# The KERNELRELEASE is stored in a file named .kernelrelease
-# to be used when executing for example make install or make modules_install
-#
-# Take the contents of any files called localversion* and the config
-# variable CONFIG_LOCALVERSION and append them to KERNELRELEASE.
-# LOCALVERSION from the command line override all of this
-
-nullstring :=
-space := $(nullstring) # end of line
-
-___localver = $(objtree)/localversion* $(srctree)/localversion*
-__localver = $(sort $(wildcard $(___localver)))
-# skip backup files (containing '~')
-_localver = $(foreach f, $(__localver), $(if $(findstring ~, $(f)),,$(f)))
-
-localver = $(subst $(space),, \
- $(shell cat /dev/null $(_localver)) \
- $(patsubst "%",%,$(CONFIG_LOCALVERSION)))
-
-# If CONFIG_LOCALVERSION_AUTO is set scripts/setlocalversion is called
-# and if the SCM is know a tag from the SCM is appended.
-# The appended tag is determinded by the SCM used.
-#
-# Currently, only git is supported.
-# Other SCMs can edit scripts/setlocalversion and add the appropriate
-# checks as needed.
-ifdef _BB_DISABLED_CONFIG_LOCALVERSION_AUTO
- _localver-auto = $(shell $(CONFIG_SHELL) \
- $(srctree)/scripts/setlocalversion $(srctree))
- localver-auto = $(LOCALVERSION)$(_localver-auto)
-endif
-
-localver-full = $(localver)$(localver-auto)
-
-# Store (new) KERNELRELASE string in .kernelrelease
-kernelrelease = $(KERNELVERSION)$(localver-full)
-.kernelrelease: FORCE
- $(Q)rm -f $@
- $(Q)echo $(kernelrelease) > $@
-
-
-# Things we need to do before we recursively start building the kernel
-# or the modules are listed in "prepare".
-# A multi level approach is used. prepareN is processed before prepareN-1.
-# archprepare is used in arch Makefiles and when processed asm symlink,
-# version.h and scripts_basic is processed / created.
-
-# Listed in dependency order
-PHONY += prepare archprepare prepare0 prepare1 prepare2 prepare3
-
-# prepare-all is deprecated, use prepare as valid replacement
-PHONY += prepare-all
-
-# prepare3 is used to check if we are building in a separate output directory,
-# and if so do:
-# 1) Check that make has not been executed in the kernel src $(srctree)
-# 2) Create the include2 directory, used for the second asm symlink
-prepare3: .kernelrelease
-ifneq ($(KBUILD_SRC),)
- @echo ' Using $(srctree) as source for busybox'
- $(Q)if [ -f $(srctree)/.config ]; then \
- echo " $(srctree) is not clean, please run 'make mrproper'";\
- echo " in the '$(srctree)' directory.";\
- /bin/false; \
- fi;
- $(Q)if [ ! -d include2 ]; then mkdir -p include2; fi;
- $(Q)ln -fsn $(srctree)/include/asm-$(ARCH) include2/asm
-endif
-
-# prepare2 creates a makefile if using a separate output directory
-prepare2: prepare3 outputmakefile
-
-prepare1: prepare2 include/config/MARKER
-ifneq ($(KBUILD_MODULES),)
- $(Q)mkdir -p $(MODVERDIR)
- $(Q)rm -f $(MODVERDIR)/*
-endif
-
-archprepare: prepare1 scripts_basic applets_dir
-
-prepare0: archprepare FORCE
- $(Q)$(MAKE) $(build)=.
-
-# All the preparing..
-prepare prepare-all: prepare0
-
-# Leave this as default for preprocessing busybox.lds.S, which is now
-# done in arch/$(ARCH)/kernel/Makefile
-
-export CPPFLAGS_busybox.lds += -P -C -U$(ARCH)
-
-# FIXME: The asm symlink changes when $(ARCH) changes. That's
-# hard to detect, but I suppose "make mrproper" is a good idea
-# before switching between archs anyway.
-
-#bbox# include/asm:
-#bbox# @echo ' SYMLINK $@ -> include/asm-$(ARCH)'
-#bbox# $(Q)if [ ! -d include ]; then mkdir -p include; fi;
-#bbox# @ln -fsn asm-$(ARCH) $@
-
-# Split autoconf.h into include/linux/config/*
-quiet_cmd_gen_bbconfigopts = GEN include/bbconfigopts.h
- cmd_gen_bbconfigopts = $(srctree)/scripts/mkconfigs include/bbconfigopts.h include/bbconfigopts_bz2.h
-quiet_cmd_split_autoconf = SPLIT include/autoconf.h -> include/config/*
- cmd_split_autoconf = scripts/basic/split-include include/autoconf.h include/config
-#bbox# piggybacked generation of few .h files
-include/config/MARKER: scripts/basic/split-include include/autoconf.h
- $(call cmd,split_autoconf)
- $(call cmd,gen_bbconfigopts)
- @touch $@
-
-# Generate some files
-# ---------------------------------------------------------------------------
-
-# KERNELRELEASE can change from a few different places, meaning version.h
-# needs to be updated, so this check is forced on all builds
-
-uts_len := 64
-
-define filechk_version.h
- if [ `echo -n "$(KERNELRELEASE)" | wc -c ` -gt $(uts_len) ]; then \
- echo '"$(KERNELRELEASE)" exceeds $(uts_len) characters' >&2; \
- exit 1; \
- fi; \
- (echo \#define UTS_RELEASE \"$(KERNELRELEASE)\"; \
- echo \#define LINUX_VERSION_CODE `expr $(VERSION) \\* 65536 + $(PATCHLEVEL) \\* 256 + $(SUBLEVEL)`; \
- echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; \
- )
-endef
-
-# ---------------------------------------------------------------------------
-
-PHONY += depend dep
-depend dep:
- @echo '*** Warning: make $@ is unnecessary now.'
-
-# ---------------------------------------------------------------------------
-# Modules
-
-ifdef _BB_DISABLED_CONFIG_MODULES
-
-# By default, build modules as well
-
-all: modules
-
-# Build modules
-
-PHONY += modules
-modules: $(busybox-dirs) $(if $(KBUILD_BUILTIN),busybox)
- @echo ' Building modules, stage 2.';
- $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost
-
-
-# Target to prepare building external modules
-PHONY += modules_prepare
-modules_prepare: prepare scripts
-
-# Target to install modules
-PHONY += modules_install
-modules_install: _modinst_ _modinst_post
-
-PHONY += _modinst_
-_modinst_:
- @if [ -z "`$(DEPMOD) -V 2>/dev/null | grep module-init-tools`" ]; then \
- echo "Warning: you may need to install module-init-tools"; \
- echo "See http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt";\
- sleep 1; \
- fi
- @rm -rf $(MODLIB)/kernel
- @rm -f $(MODLIB)/source
- @mkdir -p $(MODLIB)/kernel
- @ln -s $(srctree) $(MODLIB)/source
- @if [ ! $(objtree) -ef $(MODLIB)/build ]; then \
- rm -f $(MODLIB)/build ; \
- ln -s $(objtree) $(MODLIB)/build ; \
- fi
- $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modinst
-
-# If System.map exists, run depmod. This deliberately does not have a
-# dependency on System.map since that would run the dependency tree on
-# busybox. This depmod is only for convenience to give the initial
-# boot a modules.dep even before / is mounted read-write. However the
-# boot script depmod is the master version.
-ifeq "$(strip $(INSTALL_MOD_PATH))" ""
-depmod_opts :=
-else
-depmod_opts := -b $(INSTALL_MOD_PATH) -r
-endif
-PHONY += _modinst_post
-_modinst_post: _modinst_
- if [ -r System.map -a -x $(DEPMOD) ]; then $(DEPMOD) -ae -F System.map $(depmod_opts) $(KERNELRELEASE); fi
-
-else # CONFIG_MODULES
-
-# Modules not configured
-# ---------------------------------------------------------------------------
-
-modules modules_install: FORCE
- @echo
- @echo "The present busybox configuration has modules disabled."
- @echo "Type 'make config' and enable loadable module support."
- @echo "Then build a kernel with module support enabled."
- @echo
- @exit 1
-
-endif # CONFIG_MODULES
-
-###
-# Cleaning is done on three levels.
-# make clean Delete most generated files
-# Leave enough to build external modules
-# make mrproper Delete the current configuration, and all generated files
-# make distclean Remove editor backup files, patch leftover files and the like
-
-# Directories & files removed with 'make clean'
-CLEAN_DIRS += $(MODVERDIR) _install 0_lib
-CLEAN_FILES += busybox busybox_unstripped* busybox.links \
- System.map .kernelrelease \
- .tmp_kallsyms* .tmp_version .tmp_busybox* .tmp_System.map
-
-# Directories & files removed with 'make mrproper'
-MRPROPER_DIRS += include/config include2
-MRPROPER_FILES += .config .config.old include/asm .version .old_version \
- include/NUM_APPLETS.h \
- include/autoconf.h \
- include/bbconfigopts.h \
- include/bbconfigopts_bz2.h \
- include/usage_compressed.h \
- include/applet_tables.h \
- include/applets.h \
- include/usage.h \
- applets/usage \
- .kernelrelease Module.symvers tags TAGS cscope* \
- busybox_old
-
-# clean - Delete most, but leave enough to build external modules
-#
-clean: rm-dirs := $(CLEAN_DIRS)
-clean: rm-files := $(CLEAN_FILES)
-clean-dirs := $(addprefix _clean_,$(srctree) $(busybox-alldirs))
-
-PHONY += $(clean-dirs) clean archclean
-$(clean-dirs):
- $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
-
-clean: archclean $(clean-dirs)
- $(call cmd,rmdirs)
- $(call cmd,rmfiles)
- @find . $(RCS_FIND_IGNORE) \
- \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
- -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \) \
- -type f -print | xargs rm -f
-
-PHONY += doc-clean
-doc-clean: rm-files := docs/busybox.pod \
- docs/BusyBox.html docs/busybox.1 docs/BusyBox.txt
-doc-clean:
- $(call cmd,rmfiles)
-
-# mrproper - Delete all generated files, including .config
-#
-mrproper: rm-dirs := $(wildcard $(MRPROPER_DIRS))
-mrproper: rm-files := $(wildcard $(MRPROPER_FILES))
-mrproper-dirs := $(addprefix _mrproper_,scripts)
-
-PHONY += $(mrproper-dirs) mrproper archmrproper
-$(mrproper-dirs):
- $(Q)$(MAKE) $(clean)=$(patsubst _mrproper_%,%,$@)
-
-mrproper: clean archmrproper $(mrproper-dirs)
- $(call cmd,rmdirs)
- $(call cmd,rmfiles)
- @find . -name Config.src | sed 's/.src$$/.in/' | xargs -r rm -f
- @find . -name Kbuild.src | sed 's/.src$$//' | xargs -r rm -f
-
-# distclean
-#
-PHONY += distclean
-
-distclean: mrproper
- @find $(srctree) $(RCS_FIND_IGNORE) \
- \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
- -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
- -o -name '.*.rej' -o -name '*.tmp' -o -size 0 \
- -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
- -type f -print | xargs rm -f
-
-
-# Packaging of the kernel to various formats
-# ---------------------------------------------------------------------------
-# rpm target kept for backward compatibility
-package-dir := $(srctree)/scripts/package
-
-%pkg: FORCE
- $(Q)$(MAKE) $(build)=$(package-dir) $@
-rpm: FORCE
- $(Q)$(MAKE) $(build)=$(package-dir) $@
-
-
-# Brief documentation of the typical targets used
-# ---------------------------------------------------------------------------
-
-boards := $(wildcard $(srctree)/configs/*_defconfig)
-boards := $(notdir $(boards))
-
--include $(srctree)/Makefile.help
-
-# Documentation targets
-# ---------------------------------------------------------------------------
-%docs: scripts_basic FORCE
- $(Q)$(MAKE) $(build)=Documentation/DocBook $@
-
-else # KBUILD_EXTMOD
-
-###
-# External module support.
-# When building external modules the kernel used as basis is considered
-# read-only, and no consistency checks are made and the make
-# system is not used on the basis kernel. If updates are required
-# in the basis kernel ordinary make commands (without M=...) must
-# be used.
-#
-# The following are the only valid targets when building external
-# modules.
-# make M=dir clean Delete all automatically generated files
-# make M=dir modules Make all modules in specified dir
-# make M=dir Same as 'make M=dir modules'
-# make M=dir modules_install
-# Install the modules build in the module directory
-# Assumes install directory is already created
-
-# We are always building modules
-KBUILD_MODULES := 1
-PHONY += crmodverdir
-crmodverdir:
- $(Q)mkdir -p $(MODVERDIR)
- $(Q)rm -f $(MODVERDIR)/*
-
-PHONY += $(objtree)/Module.symvers
-$(objtree)/Module.symvers:
- @test -e $(objtree)/Module.symvers || ( \
- echo; \
- echo " WARNING: Symbol version dump $(objtree)/Module.symvers"; \
- echo " is missing; modules will have no dependencies and modversions."; \
- echo )
-
-module-dirs := $(addprefix _module_,$(KBUILD_EXTMOD))
-PHONY += $(module-dirs) modules
-$(module-dirs): crmodverdir $(objtree)/Module.symvers
- $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
-
-modules: $(module-dirs)
- @echo ' Building modules, stage 2.';
- $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost
-
-PHONY += modules_install
-modules_install: _emodinst_ _emodinst_post
-
-install-dir := $(if $(INSTALL_MOD_DIR),$(INSTALL_MOD_DIR),extra)
-PHONY += _emodinst_
-_emodinst_:
- $(Q)mkdir -p $(MODLIB)/$(install-dir)
- $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modinst
-
-# Run depmod only is we have System.map and depmod is executable
-quiet_cmd_depmod = DEPMOD $(KERNELRELEASE)
- cmd_depmod = if [ -r System.map -a -x $(DEPMOD) ]; then \
- $(DEPMOD) -ae -F System.map \
- $(if $(strip $(INSTALL_MOD_PATH)), \
- -b $(INSTALL_MOD_PATH) -r) \
- $(KERNELRELEASE); \
- fi
-
-PHONY += _emodinst_post
-_emodinst_post: _emodinst_
- $(call cmd,depmod)
-
-clean-dirs := $(addprefix _clean_,$(KBUILD_EXTMOD))
-
-PHONY += $(clean-dirs) clean
-$(clean-dirs):
- $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
-
-clean: rm-dirs := $(MODVERDIR)
-clean: $(clean-dirs)
- $(call cmd,rmdirs)
- @find $(KBUILD_EXTMOD) $(RCS_FIND_IGNORE) \
- \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
- -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \) \
- -type f -print | xargs rm -f
-
-# Dummies...
-PHONY += prepare scripts
-prepare: ;
-scripts: ;
-endif # KBUILD_EXTMOD
-
-# Generate tags for editors
-# ---------------------------------------------------------------------------
-
-#We want __srctree to totally vanish out when KBUILD_OUTPUT is not set
-#(which is the most common case IMHO) to avoid unneeded clutter in the big tags file.
-#Adding $(srctree) adds about 20M on i386 to the size of the output file!
-
-ifeq ($(src),$(obj))
-__srctree =
-else
-__srctree = $(srctree)/
-endif
-
-ifeq ($(ALLSOURCE_ARCHS),)
-ifeq ($(ARCH),um)
-ALLINCLUDE_ARCHS := $(ARCH) $(SUBARCH)
-else
-ALLINCLUDE_ARCHS := $(ARCH)
-endif
-else
-#Allow user to specify only ALLSOURCE_PATHS on the command line, keeping existing behaviour.
-ALLINCLUDE_ARCHS := $(ALLSOURCE_ARCHS)
-endif
-
-ALLSOURCE_ARCHS := $(ARCH)
-
-define all-sources
- ( find $(__srctree) $(RCS_FIND_IGNORE) \
- \( -name include -o -name arch \) -prune -o \
- -name '*.[chS]' -print; \
- for ARCH in $(ALLSOURCE_ARCHS) ; do \
- find $(__srctree)arch/$${ARCH} $(RCS_FIND_IGNORE) \
- -name '*.[chS]' -print; \
- done ; \
- find $(__srctree)security/selinux/include $(RCS_FIND_IGNORE) \
- -name '*.[chS]' -print; \
- find $(__srctree)include $(RCS_FIND_IGNORE) \
- \( -name config -o -name 'asm-*' \) -prune \
- -o -name '*.[chS]' -print; \
- for ARCH in $(ALLINCLUDE_ARCHS) ; do \
- find $(__srctree)include/asm-$${ARCH} $(RCS_FIND_IGNORE) \
- -name '*.[chS]' -print; \
- done ; \
- find $(__srctree)include/asm-generic $(RCS_FIND_IGNORE) \
- -name '*.[chS]' -print )
-endef
-
-quiet_cmd_cscope-file = FILELST cscope.files
- cmd_cscope-file = (echo \-k; echo \-q; $(all-sources)) > cscope.files
-
-quiet_cmd_cscope = MAKE cscope.out
- cmd_cscope = cscope -b
-
-cscope: FORCE
- $(call cmd,cscope-file)
- $(call cmd,cscope)
-
-quiet_cmd_TAGS = MAKE $@
-define cmd_TAGS
- rm -f $@; \
- ETAGSF=`etags --version | grep -i exuberant >/dev/null && \
- echo "-I __initdata,__exitdata,__acquires,__releases \
- -I EXPORT_SYMBOL,EXPORT_SYMBOL_GPL \
- --extra=+f --c-kinds=+px"`; \
- $(all-sources) | xargs etags $$ETAGSF -a
-endef
-
-TAGS: FORCE
- $(call cmd,TAGS)
-
-
-quiet_cmd_tags = MAKE $@
-define cmd_tags
- rm -f $@; \
- CTAGSF=`ctags --version | grep -i exuberant >/dev/null && \
- echo "-I __initdata,__exitdata,__acquires,__releases \
- -I EXPORT_SYMBOL,EXPORT_SYMBOL_GPL \
- --extra=+f --c-kinds=+px"`; \
- $(all-sources) | xargs ctags $$CTAGSF -a
-endef
-
-tags: FORCE
- $(call cmd,tags)
-
-
-# Scripts to check various things for consistency
-# ---------------------------------------------------------------------------
-
-includecheck:
- find * $(RCS_FIND_IGNORE) \
- -name '*.[hcS]' -type f -print | sort \
- | xargs $(PERL) -w scripts/checkincludes.pl
-
-versioncheck:
- find * $(RCS_FIND_IGNORE) \
- -name '*.[hcS]' -type f -print | sort \
- | xargs $(PERL) -w scripts/checkversion.pl
-
-namespacecheck:
- $(PERL) $(srctree)/scripts/namespace.pl
-
-endif #ifeq ($(config-targets),1)
-endif #ifeq ($(mixed-targets),1)
-
-PHONY += checkstack
-checkstack:
- $(OBJDUMP) -d busybox $$(find . -name '*.ko') | \
- $(PERL) $(src)/scripts/checkstack.pl $(ARCH)
-
-kernelrelease:
- $(if $(wildcard .kernelrelease), $(Q)echo $(KERNELRELEASE), \
- $(error kernelrelease not valid - run 'make *config' to update it))
-kernelversion:
- @echo $(KERNELVERSION)
-
-# Single targets
-# ---------------------------------------------------------------------------
-# Single targets are compatible with:
-# - build whith mixed source and output
-# - build with separate output dir 'make O=...'
-# - external modules
-#
-# target-dir => where to store outputfile
-# build-dir => directory in kernel source tree to use
-
-ifeq ($(KBUILD_EXTMOD),)
- build-dir = $(patsubst %/,%,$(dir $@))
- target-dir = $(dir $@)
-else
- zap-slash=$(filter-out .,$(patsubst %/,%,$(dir $@)))
- build-dir = $(KBUILD_EXTMOD)$(if $(zap-slash),/$(zap-slash))
- target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
-endif
-
-%.s: %.c prepare scripts FORCE
- $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
-%.i: %.c prepare scripts FORCE
- $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
-%.o: %.c prepare scripts FORCE
- $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
-%.lst: %.c prepare scripts FORCE
- $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
-%.s: %.S prepare scripts FORCE
- $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
-%.o: %.S prepare scripts FORCE
- $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
-
-# Modules
-%/: prepare scripts FORCE
- $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
- $(build)=$(build-dir)
-/: prepare scripts FORCE
- $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
- $(build)=$(build-dir)
-
-%.ko: prepare scripts FORCE
- $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
- $(build)=$(build-dir) $(@:.ko=.o)
- $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost
-
-# FIXME Should go into a make.lib or something
-# ===========================================================================
-
-quiet_cmd_rmdirs = $(if $(wildcard $(rm-dirs)),CLEAN $(wildcard $(rm-dirs)))
- cmd_rmdirs = rm -rf $(rm-dirs)
-
-quiet_cmd_rmfiles = $(if $(wildcard $(rm-files)),CLEAN $(wildcard $(rm-files)))
- cmd_rmfiles = rm -f $(rm-files)
-
-
-a_flags = -Wp,-MD,$(depfile) $(AFLAGS) $(AFLAGS_KERNEL) \
- $(NOSTDINC_FLAGS) $(CPPFLAGS) \
- $(modkern_aflags) $(EXTRA_AFLAGS) $(AFLAGS_$(*F).o)
-
-quiet_cmd_as_o_S = AS $@
-cmd_as_o_S = $(CC) $(a_flags) -c -o $@ $<
-
-# read all saved command lines
-
-targets := $(wildcard $(sort $(targets)))
-cmd_files := $(wildcard .*.cmd $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd))
-
-ifneq ($(cmd_files),)
- $(cmd_files): ; # Do not try to update included dependency files
- include $(cmd_files)
-endif
-
-# Shorthand for $(Q)$(MAKE) -f scripts/Makefile.clean obj=dir
-# Usage:
-# $(Q)$(MAKE) $(clean)=dir
-clean := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.clean obj
-
-endif # skip-makefile
-
-PHONY += FORCE
-FORCE:
-
--include $(srctree)/Makefile.custom
-
-# Declare the contents of the .PHONY variable as phony. We keep that
-# information in a variable se we can use it in if_changed and friends.
-.PHONY: $(PHONY)
View
178 Makefile.custom
@@ -1,178 +0,0 @@
-# ==========================================================================
-# Build system
-# ==========================================================================
-
-busybox.links: $(srctree)/applets/busybox.mkll $(objtree)/include/autoconf.h include/applets.h
- $(Q)-$(SHELL) $^ >$@
-
-.PHONY: install
-ifeq ($(CONFIG_INSTALL_APPLET_SYMLINKS),y)
-INSTALL_OPTS:= --symlinks
-endif
-ifeq ($(CONFIG_INSTALL_APPLET_HARDLINKS),y)
-INSTALL_OPTS:= --hardlinks
-endif
-ifeq ($(CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS),y)
-ifeq ($(CONFIG_INSTALL_SH_APPLET_SYMLINK),y)
-INSTALL_OPTS:= --sw-sh-sym
-endif
-ifeq ($(CONFIG_INSTALL_SH_APPLET_HARDLINK),y)
-INSTALL_OPTS:= --sw-sh-hard
-endif
-ifeq ($(CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER),y)
-INSTALL_OPTS:= --scriptwrapper
-endif
-endif
-install: $(srctree)/applets/install.sh busybox busybox.links
- $(Q)DO_INSTALL_LIBS="$(strip $(LIBBUSYBOX_SONAME) $(DO_INSTALL_LIBS))" \
- $(SHELL) $< $(CONFIG_PREFIX) $(INSTALL_OPTS)
-ifeq ($(strip $(CONFIG_FEATURE_SUID)),y)
- @echo
- @echo
- @echo --------------------------------------------------
- @echo You will probably need to make your busybox binary
- @echo setuid root to ensure all configured applets will
- @echo work properly.
- @echo --------------------------------------------------
- @echo
-endif
-
-uninstall: busybox.links
- rm -f $(CONFIG_PREFIX)/bin/busybox
- for i in `cat busybox.links` ; do rm -f $(CONFIG_PREFIX)$$i; done
-ifneq ($(strip $(DO_INSTALL_LIBS)),n)
- for i in $(LIBBUSYBOX_SONAME) $(DO_INSTALL_LIBS); do \
- rm -f $(CONFIG_PREFIX)$$i; \
- done
-endif
-
-# Not very elegant: copies testsuite to objdir...
-# (cp -pPR is POSIX-compliant (cp -dpR or cp -a would not be))
-.PHONY: check
-.PHONY: test
-check test: busybox busybox.links
- test -d $(objtree)/testsuite || cp -pPR $(srctree)/testsuite $(objtree)
- bindir=$(objtree) srcdir=$(srctree)/testsuite \
- $(SHELL) -c "cd $(objtree)/testsuite && $(srctree)/testsuite/runtest $(if $(KBUILD_VERBOSE:0=),-v)"
-
-.PHONY: release
-release: distclean
- cd ..; \
- rm -r -f busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION); \
- cp -pPR busybox busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) && { \
- find busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ -type d \
- -name .svn \
- -print \
- -exec rm -r -f {} \; ; \
- find busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ -type d \
- -name .git \
- -print \
- -exec rm -r -f {} \; ; \
- find busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ -type f \
- -name .\#* \
- -print \
- -exec rm -f {} \; ; \
- tar -czf busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION).tar.gz \
- busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ ; }
-
-.PHONY: checkhelp
-checkhelp:
- $(Q)$(srctree)/scripts/checkhelp.awk \
- $(patsubst %,$(srctree)/%,$(wildcard $(patsubst %,%/Config.in,$(busybox-dirs) ./)))
-
-.PHONY: sizes
-sizes: busybox_unstripped
- $(NM) --size-sort $(<)
-
-.PHONY: bloatcheck
-bloatcheck: busybox_old busybox_unstripped
- @$(srctree)/scripts/bloat-o-meter busybox_old busybox_unstripped
- @$(CROSS_COMPILE)size busybox_old busybox_unstripped
-
-.PHONY: baseline
-baseline: busybox_unstripped
- @mv busybox_unstripped busybox_old
-
-.PHONY: objsizes
-objsizes: busybox_unstripped
- $(srctree)/scripts/objsizes
-
-.PHONY: stksizes
-stksizes: busybox_unstripped
- $(CROSS_COMPILE)objdump -d busybox_unstripped | $(srctree)/scripts/checkstack.pl $(ARCH) | uniq
-
-.PHONY: bigdata
-bigdata: busybox_unstripped
- $(CROSS_COMPILE)nm --size-sort busybox_unstripped | grep -vi ' [trw] '
-
-# Documentation Targets
-.PHONY: doc
-doc: docs/busybox.pod docs/BusyBox.txt docs/busybox.1 docs/BusyBox.html
-
-# FIXME: Doesn't belong here
- cmd_doc =
- quiet_cmd_doc = $(Q)echo " DOC $(@F)"
-silent_cmd_doc =
-disp_doc = $($(quiet)cmd_doc)
-
-# sed adds newlines after "Options:" etc,
-# this is needed in order to get good BusyBox.{1,txt,html}
-docs/busybox.pod: $(srctree)/docs/busybox_header.pod \
- include/usage.h \
- $(srctree)/docs/busybox_footer.pod \
- applets/usage_pod
- $(disp_doc)
- $(Q)-mkdir -p docs
- $(Q)-( \
- cat $(srctree)/docs/busybox_header.pod; \
- echo; \
- applets/usage_pod | sed 's/^[A-Za-z][A-Za-z ]*[a-z]:$$/&\n/'; \
- cat $(srctree)/docs/busybox_footer.pod; \
- ) > docs/busybox.pod
-
-docs/BusyBox.txt: docs/busybox.pod
- $(disp_doc)
- $(Q)-mkdir -p docs
- $(Q)-pod2text $< > $@
-
-docs/busybox.1: docs/busybox.pod
- $(disp_doc)
- $(Q)-mkdir -p docs
- $(Q)-pod2man --center=busybox --release="version $(KERNELVERSION)" $< > $@
-
-docs/BusyBox.html: docs/busybox.net/BusyBox.html
- $(disp_doc)
- $(Q)-mkdir -p docs
- $(Q)-rm -f docs/BusyBox.html
- $(Q)-cp docs/busybox.net/BusyBox.html docs/BusyBox.html
-
-docs/busybox.net/BusyBox.html: docs/busybox.pod
- $(Q)-mkdir -p docs/busybox.net
- $(Q)-pod2html --noindex $< > $@
- $(Q)-rm -f pod2htm*
-
-# documentation, cross-reference
-# Modern distributions already ship synopsis packages (e.g. debian)
-# If you have an old distribution go to http://synopsis.fresco.org/
-syn_tgt = $(wildcard $(patsubst %,%/*.c,$(busybox-alldirs)))
-syn = $(patsubst %.c, %.syn, $(syn_tgt))
-
-comma:= ,
-brace_open:= (
-brace_close:= )
-
-SYN_CPPFLAGS := $(strip $(CPPFLAGS) $(EXTRA_CPPFLAGS))
-SYN_CPPFLAGS := $(subst $(brace_open),\$(brace_open),$(SYN_CPPFLAGS))
-SYN_CPPFLAGS := $(subst $(brace_close),\$(brace_close),$(SYN_CPPFLAGS))
-#SYN_CPPFLAGS := $(subst ",\",$(SYN_CPPFLAGS))
-#")
-#SYN_CPPFLAGS := [$(patsubst %,'%'$(comma),$(SYN_CPPFLAGS))'']
-
-%.syn: %.c
- synopsis -p C -l Comments.SSDFilter,Comments.Previous -Wp,preprocess=True,cppflags="'$(SYN_CPPFLAGS)'" -o $@ $<
-
-.PHONY: html
-html: $(syn)
- synopsis -f HTML -Wf,title="'BusyBox Documentation'" -o $@ $^
-
--include $(srctree)/Makefile.local
View
137 Makefile.flags
@@ -1,137 +0,0 @@
-# ==========================================================================
-# Build system
-# ==========================================================================
-
-BB_VER = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
-export BB_VER
-SKIP_STRIP ?= n
-
-# -std=gnu99 needed for [U]LLONG_MAX on some systems
-CPPFLAGS += $(call cc-option,-std=gnu99,)
-
-CPPFLAGS += \
- -Iinclude -Ilibbb \
- $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include -I$(srctree)/libbb) \
- -include include/autoconf.h \
- -D_GNU_SOURCE -DNDEBUG \
- $(if $(CONFIG_LFS),-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64) \
- -D"BB_VER=KBUILD_STR($(BB_VER))" -DBB_BT=AUTOCONF_TIMESTAMP
-
-CFLAGS += $(call cc-option,-Wall,)
-CFLAGS += $(call cc-option,-Wshadow,)
-CFLAGS += $(call cc-option,-Wwrite-strings,)
-CFLAGS += $(call cc-option,-Wundef,)
-CFLAGS += $(call cc-option,-Wstrict-prototypes,)
-CFLAGS += $(call cc-option,-Wunused -Wunused-parameter,)
-CFLAGS += $(call cc-option,-Wunused-function -Wunused-value,)
-CFLAGS += $(call cc-option,-Wmissing-prototypes -Wmissing-declarations,)
-# warn about C99 declaration after statement
-CFLAGS += $(call cc-option,-Wdeclaration-after-statement,)
-# If you want to add more -Wsomething above, make sure that it is
-# still possible to build bbox without warnings.
-
-ifeq ($(CONFIG_WERROR),y)
-CFLAGS += $(call cc-option,-Werror,)
-## TODO:
-## gcc version 4.4.0 20090506 (Red Hat 4.4.0-4) (GCC) is a PITA:
-## const char *ptr; ... off_t v = *(off_t*)ptr; -> BOOM
-## and no easy way to convince it to shut the hell up.
-## We have a lot of such things all over the place.
-## Classic *(off_t*)(void*)ptr does not work,
-## and I am unwilling to do crazy gcc specific ({ void *ppp = ...; })
-## stuff in macros. This would obfuscate the code too much.
-## Maybe try __attribute__((__may_alias__))?
-#CFLAGS += $(call cc-ifversion, -eq, 0404, -fno-strict-aliasing)
-endif
-# gcc 3.x emits bogus "old style proto" warning on find.c:alloc_action()
-CFLAGS += $(call cc-ifversion, -ge, 0400, -Wold-style-definition)
-
-CFLAGS += $(call cc-option,-fno-builtin-strlen -finline-limit=0 -fomit-frame-pointer -ffunction-sections -fdata-sections,)
-# -fno-guess-branch-probability: prohibit pseudo-random guessing
-# of branch probabilities (hopefully makes bloatcheck more stable):
-CFLAGS += $(call cc-option,-fno-guess-branch-probability,)
-CFLAGS += $(call cc-option,-funsigned-char -static-libgcc,)
-CFLAGS += $(call cc-option,-falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1,)
-
-# FIXME: These warnings are at least partially to be concerned about and should
-# be fixed..
-#CFLAGS += $(call cc-option,-Wconversion,)
-
-ifneq ($(CONFIG_DEBUG),y)
-CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,))
-else
-CFLAGS += $(call cc-option,-g,)
-#CFLAGS += "-D_FORTIFY_SOURCE=2"
-ifeq ($(CONFIG_DEBUG_PESSIMIZE),y)
-CFLAGS += $(call cc-option,-O0,)
-else
-CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,))
-endif