Compare commits

..

1 Commits

Author SHA1 Message Date
Peter Korsgaard
79ba278358 buildroot: fix version for 2009.02-rc4 2009-02-09 15:52:49 +00:00
1289 changed files with 200990 additions and 22466 deletions

10
.gitignore vendored
View File

@@ -1,10 +0,0 @@
/output
/dl
/.auto.deps
/.config.cmd
/.config.old
/.config
*.depend
*.o
*.orig
*~

296
CHANGES
View File

@@ -1,296 +0,0 @@
2009.11-rc2, Released November 29th, 2009:
Additional fixes and cleanups.
Updated/fixed packages: busybox, dbus, fltk, gvfs, ltrace
2009.11-rc1, Released November 23rd, 2009:
Fixes all over the tree and new features.
Cleaned up / Simplified build directory layout. Refer to
docs/buildroot.html#using for details.
Target defconfig files moved to configs/ and listed in 'make help'
output.
Fixed *clean targets. Now clean removes everything generated,
so you can do a fresh rebuild. Distclean furthermore removes
kbuild tools and .config, bringing the source tree back in a
pristine state.
Toolchain: ARM cortex A8 support, GCC 4.4.2, sensible default
soft / hardfloat setting for architecture, ensure target-ldd
gets installed.
New packages: divine, gvfs, libarchive, libmicrohttpd,
sdl_sound, swfdec, sysstat
Updated/fixed packages: alsa-lib, alsamixergui, autoconf, bootutils,
busybox, gcc, directfb, dnsmasq, e2fsprogs, festival, gamin, gperf,
gqview, gstreamer, gst-plugins-bad, gst-plugins-base, gst-plugins-good,
imagemagick, ipkg, iptables, iw, kernel-headers, kismet, leafpad,
libelf, libevent, libglib2, libidn, liblockfile, libmad, libpcap,
libupnp, libuuid, libxml2, lighttpd, ltrace, lua, lzma, magiccube4d,
matchbox, mdadm, nbd, ncftp, ncurses, netkittelnet, netsnmp,
ng-spice-rework, ntfs-3g, openntp, openssl, pcmanfm, php, psmisc,
python, quagga, radvd, rpm, rsync, rubix, samba, sawman, sdl, sdl_image,
shared-mime-info, sfdisk, spawn-fcgi, speech-tools, sqlite, squashfs,
synergy, syslinux, sysklogd, target-binutils, tcpdump, torsmo, u-boot,
udpcast, util-linux, valgrind, vsftpd, wipe, wpa-supplicant, x11vnc,
xdata_xcursor-themes, xboard, xfsprogs, xstroke, zlib
Removed package: mdnsresponder, mpatrol, gcc 3.4.6 + 4.0.4, vice
Issues resolved (http://bugs.uclibc.org):
#301: allow to install libsmbclient
#303: add gvfs package
#477: Add sdl_sound package
#487: Make kismet package sexier
#511: New package usb_modeswitch
#527: misc fixes for dnsmasq package
#565: libevent: Bump version and clean up makefile
#587: Use iptables multipurpose binaries and bump to 1.4.4
#593: Missing early check for patch(1)
#597: (REOP) Selecting busybox in buildroot's config clobbers ar ...
#609: libmicrohttpd: New package
#615: python: Don't delete .py files unless asked
#617: netkit/inetd requires RPC and fails to build if RPC is disabled
#619: netkittelnet requires netkitbase to install, but there's no ...
#645: allow to build nbd-server with NBD package
#653: [SECURITY] Update php package to version 5.2.11
#655: Update sqlite package to version 3.6.18
#657: Bug in imagemagick-clean target
#663: Add option for NAND flash with 512B Page and 16 kB erasesize ...
#665: [PATCH] Samba package
#667: [PATCH] e2fsprogs
#683: SDL-dfb does not select directfb
#701: make install problem with unstripped binaries
#703: [SECURITY] Update openssl package to 0.9.8l
#705: Bump spawn-fcgi package to 1.6.3
#709: Bump lighttpd package to 1.4.24
#713: Migrate openntpd package to Makefile.autotools.in
#715: Bump libidn package to 1.15 and other fixes
#717: Bump dnsmasq to 2.51 and introduce new IDN option
#731: Bump iw package to 0.9.17
2009.08, Released August 31th, 2009:
Additional fixes and cleanups.
Updated/fixed packages: ctorrent, saveconfig/getconfig,
sdl_net, util-linux.
Issues resolved (http://bugs.uclibc.org):
#529: util-linux doesn't find headers and include libs correctly
#557: Build ctorrent with SSL support if available
2009.08-rc3, Released August 26th, 2009:
Additional fixes and cleanups.
Updated/fixed packages: alsa-utils, berkeleydb, busybox, dbus,
directfb, enchant, kernel headers.
Issues resolved (http://bugs.uclibc.org):
#471: Allow directfb compilation with debug
#541: Removal of CVS directories in target filesystem broken
#547: berkeleydb: Update config.{sub, guess}
#549: enchant: Fix dependencies.
#569: Fix alsa-utils build for x86 on x86-64
2009.08-rc2, Released August 6th, 2009:
Additional fixes and new features.
New packages: libuuid, gcc 4.3.4.
Updated/fixed packages: busybox, classpath, gzip, ipsec-tools,
jamvm, libusb, microperl, neon, popt, sed, webkit.
Fixed issue with 'make oldconfig'
Issues resolved (http://bugs.uclibc.org):
#525: sed broken with external toolchain
#537: Fix gzip build with recent glibc
2009.08-rc1, Released August 2nd, 2009:
Fixes all over the tree and new features.
Improvement of external toolchain support:
- Support for glibc toolchains.
- The toolchain configuration announced to Buildroot is
verified against the real toolchain configuration.
- Fixes, documentation.
Cleanup X.org support: clarified configuration options, and
removed mandatory dependency on useless libraries such as
libXt or libXaw.
New QT-based configurator, usable using 'make xconfig'.
Support for the Xtensa architecture.
Toolchain: GCC 4.4.1, 2.6.30 kernel headers, removed < 2.6.26
headers.
New packages: bmon, ctorrent, dosfstools, enchant,
gst-plugins-bad, iw, libmms, libnl, netstat-nat, ntfsprogs,
sdl_gfx, spawn-fcgi.
Updated packages: bind, busybox, coreutils, sqlite, directfb,
expat, gamin, gnuconfig, haserl, ipsec-tools, classpath,
libcurl, libglib2, liblockfile, libpng, libsoup, libxml2,
lighttpd, ltp-testsuite, lvm2, matchbox, memstat,
gst-plugins-good, gstreamer, libogg, libvorbis, mplayer,
neon, openssl, pciutils, php, qt, ruby, sawman, webkit,
wpa-supplicant, xdriver_xf86-input-synaptics,
xdriver_xf86-video-intel, xlib_libXfont, xlib_libXft,
xlib_libXt, xproto_xproto, xserver-xorg, xutil_makedepend,
xutil_util-macros.
Issues resolved (http://bugs.uclibc.org):
#83: liblockfile fails to compile due to eaccess redefinition
#163: Xtensa architecture port
#171: xorg-server / kernel headers 2.6.26 - vm86.c compilation issue
#241: device mapper + lvm2: build together
#243: ctorrent: new package
#247: ntfsprogs: new package
#271: Library 'libgcc_s.so.1' not installed in search path
#287: New package libnl
#289: New package iw
#331: Update MPlayer to version 1.0rc2
#333: Bump sqlite package to 3.6.15
#349: update libsoup to version 2.26.2
#357: New package netstat-nat
#359,#413: Upgrade openvpn to Makefile.autotools.in
#367: linux kernel compile error for arm926t
#369: Add SDL_gfx package
#373: Support for building gstreamer without libxml
#379: update DirectFB to version 1.4.0
#383: gst-plugins-good: Allow soup plugin to be configured
#385: neon: Fix pkgconfig dependency
#387: Tremor not installed to toolchain
#389: New package bmon
#391: gstreamer: Bump version to 0.10.23
#393: gst-plugins-base: Bump version to 0.10.23
#395: gst-plugins-bad: New package
#403: Error while building iso9660 image
#409: Bump php package to 5.2.10
#411: ipsec-tools: Bump version to 0.7.2
#417: New package spawn-fcgi
#419: Bump lighttpd package to 1.4.23
#421: toolchain: Clean up toolchain locale support menu
#427: webkit: Update to WebKit svn r44552
#437: ltp-testsuite: Bump version to 20090630
#451: Upgrade from unmaintained dosfstools-2.11 to dosfstools-3.0.3
#467: DirectFB 1.4.1
#473: memstat_0.5.tar.gz has install with -D and that fails "make"
#491: libxml2: Bump version to 0.7.3
#495: Bump bind package to 9.5.1-P3 (security)
#497: OpenSSL RSA key generation hangs on x86_64
#509: Bump sqlite package to 3.6.16
#523: pciutils broken with external toolchain
#533: Update gamin to 0.1.10 to fix compilation
2009.05, Released June 1st, 2009:
Fixes for dropbear & diffutils, bump linux-advanced 2.6.29.x
version and marked ubifsroot as broken.
2009.05-rc3, Released May 27th, 2009:
Fixes for toolchain (gcc arm pr37436), stable kernel versions,
busybox, curl, libusb, readline, python and strace.
Issues resolved (http://bugs.uclibc.org):
#345: libcurl package needs a urandom fix
2009.05-rc2, Released May 19th, 2009:
Fixes for toolchain (gcc w/softfloat on ppc, 3.4.6 buildfix
for newer hosts), stable kernel versions, busybox, cups,
dmraid, docker, mesa3d, rsync and updated defconfigs.
xserver marked as broken on AVR32 and atngw100-expanded
config removed.
Issues resolved (http://bugs.uclibc.org):
#167: metacity does not build
#295: gamin installs python support even if python is disabled
#323: gen_matypes fails to execute during build of Mesa when us...
2009.05-rc1, Released May 5th, 2009:
Fixes all over the tree, further conversion of packages to
Makefile.autotools.in and we now build host versions of
packages where needed for build time dependencies instead of
relying on the correct versions being available on the build
host. Ancient toolchain / busybox versions have furthermore
been removed as announced in the 2009.02 release notes.
New packages: flac, gob2, lzop, taglib, wpa_supplicant
Updated packages: avahi, bind, binutils, busybox, dbus, dbus-glib,
directfb, dnsmasq, freetype, gcc, gmp, gstreamer, iptables, kernel
headers, kexec, libglib2, libpng, libsndfile, lua, mpfr, ntfs-3g,
openssl, php, qtopia4, rsync, samba, sqlite, tar, uboot, uclibc,
util-linux, xorg7, xerces
Issues resolved (http://bugs.uclibc.org):
#5,#77,#141,#143: Convert php package to Makefile.autotools.in
and a ton of other improvements
#19: page.h missing by util-linux
#37: update libglib2 to version 2.18.4
#61: tslib puts staging_dir into pkgconfig file
#69: tar refuses to build
#71,#175: ./wchar.h:41:12: error: empty filename in #include
#73: Bump openssl package to the latest version
#81: New package wpa_supplicant
#99: new package: flac
#101: update gstreamer packages
#105,#313: menuconfig segfaults on tinyx if wchar is not
selected
#107: convert libvorbis to Makefile.autotools.in
#109: Make pppd package avoid bsd err
#111: binutils 2.17 fails to build when texinfo >= 4.10
#133: Modify ncurses5-config to get correct include path
#137: Bump php to version 5.2.9
#139: Bump sqlite to 3.6.11 and convert to
Makefile.autotools.in
#145: Bump bind package to 9.5.1-P1 (security)
#147: buildroot toolchain fails to build w/binutils-2.19.1
#151: openssl package trivial fixes
#161: vim fails on patching with errors in configure.patch
#169: blackbox-0.70.1 does not build
#177: xdriver_xf86-input-keyboard does not build
#179: Upgrade dropbear to Makefile.autotools.in
#181: Update to Xorg 7.4
#187: ntfs-3g: could not build cross
#191: alsa-lib ARM binaries always built with EABI
#213: Bump wpa_supplicant package to version 0.6.9
#217: Bump openssl package to 0.9.8k (security)
#219: Toolchain build fails on m4
#225: m4 macros are out of place
#233: make ipv6 optional in iptables
#237: ncftp: convert to Makefile.autotools.in
#239: ntfs-3g: convert to Makefile.autotools.in
#245: lzop: new package
#271: Bump bind package to 9.5.1-P2 (security)
#277: Bump sqlite package to 3.6.16
#279: update libglib2 to version 2.20.1
#281: update DirectFB to version 1.2.8
#283: add taglib
#285: compilation of samba fails if IPV6 support is missing
#293: update samba to version 3.3.3
#299: add shared-mime-info package
#307: make openssl package respect build flags

339
COPYING
View File

@@ -1,339 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, 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 Lesser 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 Street, 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 Lesser General
Public License instead of this License.

View File

@@ -8,7 +8,7 @@ config BR2_HAVE_DOT_CONFIG
config BR2_VERSION
string
default "2009.11-rc2"
default "2009.02-rc4"
source "target/Config.in.arch"
source "target/device/Config.in"
@@ -27,14 +27,6 @@ config BR2_SVN_UP
string "Subversion (svn) command to update source tree"
default "svn up"
config BR2_BZR_CO
string "Bazaar (bzr) command to download source tree"
default "bzr co"
config BR2_BZR_UP
string "Bazaar (bzr) command to update source tree"
default "bzr up"
config BR2_GIT
string "Git command to download source tree"
default "git clone"
@@ -69,13 +61,13 @@ config BR2_TAR_OPTIONS
config BR2_DL_DIR
string "Download dir"
default "$(TOPDIR)/dl"
default "$(BASE_DIR)/dl"
help
Directory to store all the source files that we need to fetch.
If the Linux shell environment has defined the BUILDROOT_DL_DIR
environment variable, then this overrides this configuration item.
The default is $(TOPDIR)/dl
The default is $(BASE_DIR)/dl
config BR2_COPYTO
string "Copy result to..."
@@ -88,7 +80,7 @@ source "target/device/Config.in.mirrors"
config BR2_STAGING_DIR
string "Toolchain and header file location?"
default "$(BASE_DIR)/staging"
default "$(BUILD_DIR)/staging_dir"
help
This is the location where the toolchain will be installed. The
toolchain will not work if it is moved from this location.
@@ -97,7 +89,32 @@ config BR2_STAGING_DIR
will be used.
Most people will leave this set to the default value of
"$(BASE_DIR)/staging".
"$(BUILD_DIR)/staging_dir".
config BR2_FPU_SUFFIX
bool "Add '_nofpu' suffix for softfloat toolchains"
help
If the toolchain is configured to use softfloat, then
the "_nofpu" suffix will be added to the toolchain build
directory name and to any rootfs image name
config BR2_TOPDIR_PREFIX
string "Custom build dir prefix"
default ""
help
Add a custom string to the beginning of the build directories.
build_ARCH -> [PREFIX]_build_ARCH
toolchain_build_ARCH -> [PREFIX]_toolchain_build_ARCH
config BR2_TOPDIR_SUFFIX
string "Custom build dir suffix"
default ""
help
Add a custom string to the end of the build directories.
build_ARCH -> build_ARCH_[SUFFIX]
toolchain_build_ARCH -> toolchain_build_ARCH_[SUFFIX]
config BR2_GNU_BUILD_SUFFIX
string "GNU build hostname suffix"
@@ -160,7 +177,6 @@ config BR2_RECENT
config BR2_CONFIG_CACHE
bool "Use a central configure cache file"
default y
help
This determines if a central config cache is used by
packages, reducing the configure time for packages as each

301
Makefile
View File

@@ -22,20 +22,23 @@
# Just run 'make menuconfig', configure stuff, then run 'make'.
# You shouldn't need to mess with anything beyond this point...
#--------------------------------------------------------------
TOPDIR:=.
TOPDIR=./
CONFIG_CONFIG_IN=Config.in
CONFIG_DEFCONFIG=.defconfig
CONFIG=package/config
DATE:=$(shell date +%Y%m%d)
noconfig_targets:=menuconfig xconfig config oldconfig randconfig \
defconfig allyesconfig allnoconfig release \
randpackageconfig allyespackageconfig allnopackageconfig \
noconfig_targets:=menuconfig config oldconfig randconfig \
defconfig allyesconfig allnoconfig release tags \
source-check help
# Strip quotes and then whitespaces
qstrip=$(strip $(subst ",,$(1)))
#"))
# Use shell variables, if defined
ifneq ($(BUILDROOT_LOCAL),)
BR2_LOCAL:=$(BUILDROOT_LOCAL)
else
BR2_LOCAL:=$(TOPDIR)/local
endif
# Variables for use in Make constructs
comma:=,
@@ -45,13 +48,20 @@ space:=$(empty) $(empty)
# $(shell find . -name *_defconfig |sed 's/.*\///')
# Pull in the user's configuration file
ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
ifeq ($(BOARD),)
# if "make BOARD=xyz" command
-include .config
else
# if "make" command
-include $(BR2_LOCAL)/$(BOARD)/$(BOARD).config
endif
endif
# Override BR2_DL_DIR if shell variable defined
ifneq ($(BUILDROOT_DL_DIR),)
BR2_DL_DIR:=$(BUILDROOT_DL_DIR)
endif
LOCAL:=$(BR2_LOCAL)
# To put more focus on warnings, be less verbose as default
# Use 'make V=1' to see the full commands
@@ -203,67 +213,10 @@ BASE_TARGETS:=uclibc
endif
TARGETS:=
# silent mode requested?
QUIET:=$(if $(findstring s,$(MAKEFLAGS)),-q)
# setup our paths
include project/Makefile.in
# Strip off the annoying quoting
ARCH:=$(call qstrip,$(BR2_ARCH))
ifeq ($(ARCH),xtensa)
ARCH:=$(ARCH)_$(call qstrip,$(BR2_xtensa_core_name))
endif
WGET:=$(call qstrip,$(BR2_WGET)) $(SPIDER) $(QUIET)
SVN_CO:=$(call qstrip,$(BR2_SVN_CO)) $(QUIET)
SVN_UP:=$(call qstrip,$(BR2_SVN_UP)) $(QUIET)
BZR_CO:=$(call qstrip,$(BR2_BZR_CO)) $(QUIET)
BZR_UP:=$(call qstrip,$(BR2_BZR_UP)) $(QUIET)
GIT:=$(call qstrip,$(BR2_GIT)) $(QUIET)
ZCAT:=$(call qstrip,$(BR2_ZCAT))
BZCAT:=$(call qstrip,$(BR2_BZCAT))
TAR_OPTIONS=$(call qstrip,$(BR2_TAR_OPTIONS)) -xf
ifneq ("$(origin O)", "command line")
O:=output
else
# other packages might also support Linux-style out of tree builds
# with the O=<dir> syntax (E.G. Busybox does). As make automatically
# forwards command line variable definitions those packages get very
# confused. Fix this by telling make to not do so
MAKEOVERRIDES =
endif
BASE_DIR := $(shell mkdir -p $(O) && cd $(O) && pwd)
$(if $(BASE_DIR),, $(error output directory "$(O)" does not exist))
DL_DIR=$(call qstrip,$(BR2_DL_DIR))
ifeq ($(DL_DIR),)
DL_DIR:=$(TOPDIR)/dl
endif
BUILD_DIR:=$(BASE_DIR)/build
GNU_TARGET_SUFFIX:=-$(call qstrip,$(BR2_GNU_TARGET_SUFFIX))
STAGING_DIR:=$(call qstrip,$(BR2_STAGING_DIR))
# packages compiled for the host goes here
HOST_DIR:=$(BASE_DIR)/host
# stamp (dependency) files go here
STAMP_DIR:=$(BASE_DIR)/stamps
BINARIES_DIR:=$(BASE_DIR)/images
TARGET_DIR:=$(BASE_DIR)/target
# define values for prepatched source trees for toolchains
VENDOR_SITE:=$(call qstrip,$(BR2_VENDOR_SITE))
VENDOR_SUFFIX:=$(call qstrip,$(BR2_VENDOR_SUFFIX))
VENDOR_BINUTILS_RELEASE:=$(call qstrip,$(BR2_VENDOR_BINUTILS_RELEASE))
VENDOR_GCC_RELEASE:=$(call qstrip,$(BR2_VENDOR_GCC_RELEASE))
VENDOR_UCLIBC_RELEASE:=$(call qstrip,$(BR2_VENDOR_UCLIBC_RELEASE))
VENDOR_GDB_RELEASE:=$(call qstrip,$(BR2_VENDOR_GDB_RELEASE))
VENDOR_PATCH_DIR:=$(call qstrip,$(BR2_VENDOR_PATCH_DIR))
BR2_DEPENDS_DIR=$(BUILD_DIR)/buildroot-config
BR2_DEPENDS_DIR=$(PROJECT_BUILD_DIR)/buildroot-config
include toolchain/Makefile.in
include package/Makefile.in
@@ -280,6 +233,8 @@ all: world
# In this section, we need .config
include .config.cmd
include project/*.mk
# We also need the various per-package makefiles, which also add
# each selected package to TARGETS if that package was selected
# in the .config file.
@@ -307,11 +262,7 @@ endif
include package/*/*.mk
TARGETS+=target-finalize
ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
TARGETS+=target-purgelocales
endif
TARGETS+=target-devfiles
# target stuff is last so it can override anything else
include target/Makefile.in
@@ -330,19 +281,21 @@ $(BR2_DEPENDS_DIR): .config
mkdir -p $(@D)
cp -dpRf $(CONFIG)/buildroot-config $@
dirs: $(DL_DIR) $(TOOLCHAIN_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
$(HOST_DIR) $(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(STAMP_DIR)
dirs: $(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
$(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(PROJECT_BUILD_DIR) \
$(PROJECT_BUILD_DIR)/autotools-stamps
$(BASE_TARGETS): dirs
world: dependencies dirs $(BASE_TARGETS) $(TARGETS_ALL)
world: dependencies dirs target-host-info $(BASE_TARGETS) $(TARGETS_ALL)
.PHONY: all world dirs clean distclean source \
.PHONY: all world dirs clean dirclean distclean source \
$(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \
$(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \
$(DL_DIR) $(TOOLCHAIN_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
$(HOST_DIR) $(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(STAMP_DIR)
$(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
$(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(PROJECT_BUILD_DIR) \
$(PROJECT_BUILD_DIR)/autotools-stamps
#############################################################
#
@@ -350,7 +303,8 @@ world: dependencies dirs $(BASE_TARGETS) $(TARGETS_ALL)
# dependencies anywhere else
#
#############################################################
$(DL_DIR) $(TOOLCHAIN_DIR) $(BUILD_DIR) $(HOST_DIR) $(BINARIES_DIR) $(STAMP_DIR):
$(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(PROJECT_BUILD_DIR) \
$(PROJECT_BUILD_DIR)/autotools-stamps $(BINARIES_DIR):
@mkdir -p $@
$(STAGING_DIR):
@@ -368,66 +322,32 @@ endif
endif
@mkdir -p $(STAGING_DIR)/usr/include
$(BUILD_DIR)/.root:
$(PROJECT_BUILD_DIR)/.root:
mkdir -p $(TARGET_DIR)
if ! [ -d "$(TARGET_DIR)/bin" ]; then \
if [ -d "$(TARGET_SKELETON)" ]; then \
cp -fa $(TARGET_SKELETON)/* $(TARGET_DIR)/; \
fi; \
if [ -d "$(TARGET_SKELETON_PATCH)" ]; then \
toolchain/patch-kernel.sh $(TARGET_DIR) $(TARGET_SKELETON_PATCH)/ \*patch\*; \
fi; \
touch $(STAGING_DIR)/.fakeroot.00000; \
fi
-find $(TARGET_DIR) -type d -name CVS -print0 -o -name .svn -print0 | xargs -0 rm -rf
-find $(TARGET_DIR) -type f -name .empty -print0 | xargs -0 rm -rf
-find $(TARGET_DIR) -type d -name CVS -o -name .svn | xargs rm -rf
-find $(TARGET_DIR) -type f -name .empty | xargs rm -rf
touch $@
$(TARGET_DIR): $(BUILD_DIR)/.root
$(TARGET_DIR): $(PROJECT_BUILD_DIR)/.root
erase-fakeroots:
rm -f $(BUILD_DIR)/.fakeroot*
rm -f $(PROJECT_BUILD_DIR)/.fakeroot*
target-finalize:
target-devfiles:
ifeq ($(BR2_HAVE_DEVFILES),y)
( scripts/copy.sh $(STAGING_DIR) $(TARGET_DIR) )
else
rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/lib/pkgconfig
find $(TARGET_DIR)/lib \( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
find $(TARGET_DIR)/usr/lib \( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
endif
ifneq ($(BR2_HAVE_MANPAGES),y)
rm -rf $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/man
endif
ifneq ($(BR2_HAVE_INFOPAGES),y)
rm -rf $(TARGET_DIR)/usr/info $(TARGET_DIR)/usr/share/info
endif
find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIPCMD) 2>/dev/null || true
$(TARGET_LDCONFIG) -r $(TARGET_DIR) 2>/dev/null
mkdir -p $(TARGET_DIR)/etc
echo $(BR2_VERSION)$(shell $(TOPDIR)/scripts/setlocalversion) > \
$(TARGET_DIR)/etc/br-version
ifneq ($(BR2_ROOTFS_POST_BUILD_SCRIPT),"")
$(BR2_ROOTFS_POST_BUILD_SCRIPT) $(TARGET_DIR)
endif
ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
LOCALE_WHITELIST=$(BUILD_DIR)/locales.nopurge
LOCALE_NOPURGE=$(call qstrip,$(BR2_ENABLE_LOCALE_WHITELIST))
target-purgelocales:
rm -f $(LOCALE_WHITELIST)
for i in $(LOCALE_NOPURGE); do echo $$i >> $(LOCALE_WHITELIST); done
for dir in $(wildcard $(addprefix $(TARGET_DIR),/usr/share/locale /usr/share/X11/locale /usr/man /usr/share/man)); \
do \
for lang in $$(cd $$dir; ls .|grep -v man); \
do \
grep -qx $$lang $(LOCALE_WHITELIST) || rm -rf $$dir/$$lang; \
done; \
done
find $(TARGET_DIR)/usr/lib -name '*.a' -delete
find $(TARGET_DIR)/lib -name '*.a' -delete
find $(TARGET_DIR)/usr/lib -name '*.la' -delete
find $(TARGET_DIR)/lib -name '*.la' -delete
endif
source: $(TARGETS_SOURCE) $(HOST_SOURCE)
@@ -439,6 +359,35 @@ external-deps:
@$(MAKE) -Bs BR2_WGET=$(TOPDIR)/toolchain/wget-show-external-deps.sh \
SPIDER=--spider source
#############################################################
#
# Cleanup and misc junk
#
#############################################################
clean: $(TARGETS_CLEAN)
rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps
dirclean: $(TARGETS_DIRCLEAN)
rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps
distclean:
ifeq ($(DL_DIR),$(BASE_DIR)/dl)
rm -rf $(DL_DIR)
endif
rm -rf $(BUILD_DIR) $(PROJECT_BUILD_DIR) $(BINARIES_DIR) \
$(LINUX_KERNEL) $(BASE_DIR)/include \
.config.cmd
$(MAKE) -C $(CONFIG) clean
sourceball:
rm -rf $(BUILD_DIR) $(PROJECT_BUILD_DIR) $(BINARIES_DIR)
set -e; \
cd ..; \
rm -f buildroot.tar.bz2; \
tar -cvf buildroot.tar buildroot; \
bzip2 -9 buildroot.tar; \
else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
all: menuconfig
@@ -455,29 +404,13 @@ $(CONFIG)/conf:
-@if [ ! -f .config ]; then \
cp $(CONFIG_DEFCONFIG) .config; \
fi
$(CONFIG)/mconf:
@mkdir -p $(CONFIG)/buildroot-config
$(MAKE) CC="$(HOSTCC)" -C $(CONFIG) mconf
$(MAKE) CC="$(HOSTCC)" -C $(CONFIG) conf mconf
-@if [ ! -f .config ]; then \
cp $(CONFIG_DEFCONFIG) .config; \
fi
$(CONFIG)/qconf:
@mkdir -p $(CONFIG)/buildroot-config
$(MAKE) CC="$(HOSTCC)" -C $(CONFIG) qconf
-@if [ ! -f .config ]; then \
cp $(CONFIG_DEFCONFIG) .config; \
fi
xconfig: $(CONFIG)/qconf
@mkdir -p $(CONFIG)/buildroot-config
@if ! KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
$(CONFIG)/qconf $(CONFIG_CONFIG_IN); then \
test -f .config.cmd || rm -f .config; \
fi
menuconfig: $(CONFIG)/mconf
@mkdir -p $(CONFIG)/buildroot-config
@if ! KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
@@ -510,6 +443,7 @@ allyesconfig: $(CONFIG)/conf
@KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
$(CONFIG)/conf -y $(CONFIG_CONFIG_IN)
#sed -i -e "s/^CONFIG_DEBUG.*/# CONFIG_DEBUG is not set/" .config
allnoconfig: $(CONFIG)/conf
@mkdir -p $(CONFIG)/buildroot-config
@@ -517,33 +451,6 @@ allnoconfig: $(CONFIG)/conf
KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
$(CONFIG)/conf -n $(CONFIG_CONFIG_IN)
randpackageconfig: $(CONFIG)/conf
@mkdir -p $(CONFIG)/buildroot-config
@grep -v BR2_PACKAGE_ .config > .config.nopkg
@KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
KCONFIG_ALLCONFIG=.config.nopkg \
$(CONFIG)/conf -r $(CONFIG_CONFIG_IN)
@rm -f .config.nopkg
allyespackageconfig: $(CONFIG)/conf
@mkdir -p $(CONFIG)/buildroot-config
@grep -v BR2_PACKAGE_ .config > .config.nopkg
@KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
KCONFIG_ALLCONFIG=.config.nopkg \
$(CONFIG)/conf -y $(CONFIG_CONFIG_IN)
@rm -f .config.nopkg
allnopackageconfig: $(CONFIG)/conf
@mkdir -p $(CONFIG)/buildroot-config
@grep -v BR2_PACKAGE_ .config > .config.nopkg
@KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
KCONFIG_ALLCONFIG=.config.nopkg \
$(CONFIG)/conf -n $(CONFIG_CONFIG_IN)
@rm -f .config.nopkg
defconfig: $(CONFIG)/conf
@mkdir -p $(CONFIG)/buildroot-config
@KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
@@ -554,43 +461,49 @@ defconfig: $(CONFIG)/conf
source-check: allyesconfig
$(MAKE) _source-check
endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
#############################################################
#
# Cleanup and misc junk
#
#############################################################
clean:
rm -rf $(STAGING_DIR) $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \
$(STAMP_DIR) $(BUILD_DIR) $(TOOLCHAIN_DIR)
distclean: clean
ifeq ($(DL_DIR),$(TOPDIR)/dl)
rm -rf $(DL_DIR)
endif
ifeq ($(O),output)
rm -rf $(O)
endif
rm -rf .config .config.old .config.cmd .auto.deps
rm -f .config .config.old .config.cmd .tmpconfig.h .lognr.*
-$(MAKE) -C $(CONFIG) clean
flush:
rm -f $(BUILD_DIR)/tgt-config.cache
distclean: clean
rm -rf sources/*
%_defconfig: $(TOPDIR)/configs/%_defconfig
cp $^ .config
@$(MAKE) oldconfig
endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
flush:
rm -f $(PROJECT_BUILD_DIR)/tgt-config.cache
%_defconfig: $(CONFIG)/conf
cp $(shell find ./target/ -name $@) .config
-@$(MAKE) oldconfig
update:
cp .config $(BOARD_PATH)/$(PROJECT)_defconfig
configured: dirs host-sed kernel-headers uclibc-config busybox-config linux26-config
prepatch: gcc-patched binutils-patched gdb-patched uclibc-patched
.lognr.$(PROJECT):
@echo "0" > .lognr.$(PROJECT)
log: .lognr.$(PROJECT)
@expr `cat .lognr.$(PROJECT)` + 1 > .lognr.$(PROJECT)
@echo Creating $(PROJECT)-`cat .lognr.$(PROJECT)`.log
@$(MAKE) > $(PROJECT)-`cat .lognr.$(PROJECT)`.log 2>&1
cross: $(BASE_TARGETS)
help:
@echo 'Cleaning:'
@echo ' clean - delete all files created by build'
@echo ' clean - delete temporary files created by build'
@echo ' distclean - delete all non-source files (including .config)'
@echo
@echo 'Build:'
@@ -598,16 +511,10 @@ help:
@echo
@echo 'Configuration:'
@echo ' menuconfig - interactive curses-based configurator'
@echo ' xconfig - interactive Qt-based configurator'
@echo ' oldconfig - resolve any unresolved symbols in .config'
@echo ' randconfig - New config with random answer to all options'
@echo ' defconfig - New config with default answer to all options'
@echo ' allyesconfig - New config where all options are accepted with yes'
@echo ' allnoconfig - New config where all options are answered with no'
@echo ' randpackageconfig - New config with random answer to package options'
@echo ' allyespackageconfig - New config where pkg options are accepted with yes'
@echo ' allnopackageconfig - New config where package options are answered with no'
@echo ' configured - make {uclibc/busybox/linux26}-config'
@echo ' saveconfig - save current configuration under local/<project>'
@echo ' getconfig - restore saved configuration from local/<project>'
@echo
@echo 'Miscellaneous:'
@echo ' source - download all sources needed for offline-build'
@@ -615,9 +522,6 @@ help:
@echo ' external-deps - list external packages used'
@echo ' flush - flush configuration cache'
@echo
@$(foreach b, $(notdir $(wildcard $(TOPDIR)/configs/*_defconfig)), \
printf " %-35s - Build for %s\\n" $(b) $(b:_defconfig=);)
@echo
@echo 'See docs/README and docs/buildroot.html for further details'
@echo
@@ -627,5 +531,6 @@ release: distclean
tar cfz $$OUT.tar.gz --exclude .svn --exclude .git --exclude \*~ $$OUT; \
rm -rf $$OUT
.PHONY: $(noconfig_targets)
.PHONY: dummy subdirs release distclean clean config oldconfig \
menuconfig tags check test depend defconfig help

15
TODO
View File

@@ -6,12 +6,9 @@ Buildroot2 TODOs
packages/Makefile.autotools.in
- fix setting of flags for packages
- coreutils: use make install-strip to install the packages. For now,
it fails beause even if we pass STRIP="/path/to/$(ARCH)-strip", the
coreutils build system uses the host strip to strip target
binaries. The ./configure execution done by Buildroot properly
detects the cross-strip, but when running make, build-aux/missing
gets run, complains about aclocal-1.10c and atuomake-1.10c not being
present, and rerun the configuration... with the wrong environment
variables (STRIP= is missing). An autoreconf on this package is
probably necessary.
- stabilize for a 0.10.0 release
- think about using a common --config-cache for configure
Should take care of expanding TARGET_CONFIGURE_ARGS for cross compiles
to working presets.

View File

@@ -16,10 +16,11 @@
<h1>U-boot extensions in 2009.01-rc1</h1>
</div>
<p><a href="http://buildroot.net/">U-Boot</a>
<p><a href="http://buildroot.uclibc.org/">U-Boot</a>
usage and documentation by Ulf Samuelsson.
</p>
<p><small>$LastChangedDate: 2008-12-16 10:00:11 +0100 (tis, 16 dec 2008) $</small></p>
<ul>
<li><a href="#about">About U-Boot</a></li>
<li><a href="#at91rm9200dk">Board Support for AT91RM9200DK</a></li>

View File

@@ -3,31 +3,24 @@
<!-- Begin Introduction section -->
<h3>Buildroot: making Embedded Linux easy</h3>
<h3>buildroot: making Embedded Linux easy</h3>
<div align="center">
<a href="images/menuconfig.png">
<img src="images/menuconfig_small.png" width="340" height="220"
alt="Buildroot menuconfig" border="0">
</a>
</div>
Buildroot is a set of Makefiles and patches that makes it easy to generate a
Buildroot is a set of Makefiles and patches that makes it easy generate a
cross-compilation toolchain and root filesystem for your target Linux
system using the <a href= "http://www.uclibc.org/">uClibc C library</a>.
Buildroot is useful mainly for people working with small or embedded
systems. Embedded systems often use processors that are not the regular
x86 processors everyone is used to using on their PC. It can be PowerPC
processors, MIPS processors, ARM processors, etc. And to be extra safe,
you do not need to be root to build or run Buildroot.
you do not need to be root to build or run buildroot.
<p>
Buildroot is maintained by <a href=
buildroot is maintained by <a href=
"mailto:jacmet@uclibc.org">Peter Korsgaard</a>, and
licensed under the
<a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU
GENERAL PUBLIC LICENSE V2 (Or later)</a>.
<a href="http://www.gnu.org/copyleft/lgpl.html">GNU LIBRARY GENERAL PUBLIC LICENSE</a>.
<!--#include file="footer.html" -->

File diff suppressed because it is too large Load Diff

View File

@@ -25,6 +25,6 @@ HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
You have been warned.
You can contact the webmaster at <buildroot@uclibc.org> if you have some sort
You can contact the webmaster at <andersen@codepoet.org> if you have some sort
of problem with this.

View File

@@ -1,46 +1,64 @@
<!--#include file="header.html" -->
<h3>Developer Access</h3>
<h3>Subversion Read/Write Access</h3>
Because we use Git for version control, you don't need developer (ssh)
access on uclibc.org to contribute to Buildroot, but you can request
it if needed.
If you want to be able to commit things to Subversion, first contribute some
stuff to show you are serious. Then, very nicely ask <a
href="mailto:buildroot@uclibc.org">The Buildroot Developers</a> to set you up
with commit access to the Subversion repository. To access Subversion, you
will want to add the following to set up your environment:
<p>
To obtain developer access, you will need to demonstrate you are
serious by submitting a few good patches first. Then, you will need
to select a username to use when logging in, you will need to send me
the username you have selected, you must send me your preferred
contact email address, and finally, you must send me an ssh version 2
DSA key with 1024 bits (the default) or more. If you do not currently
have an ssh version 2 DSA key, you can generate a key using the
command<pre>ssh-keygen -t dsa</pre> This will create the
files <pre>/home/&lt;USERNAME&gt;/ssh/id_dsa
/home/&lt;USERNAME&gt;/.ssh/id_dsa.pub</pre> It is recommended that
you generate a key with a "passphrase" for security reasons.
To obtain commit access, you will need to demonstrate you are serious by
submitting a few good patches first. Then, you will need to select a username
to use when committing changes to SVN, you will need to send me the username
you have selected, you must send me your preferred contact email address, and
finally, you must send me an ssh version 2 DSA key with 1024 bits (the default)
or more. If you do not currently have an ssh version 2 DSA key, you can
generate a key using the command<pre>ssh-keygen -t dsa</pre> This will
create the files <pre>/home/&lt;USERNAME&gt;/ssh/id_dsa
/home/&lt;USERNAME&gt;/.ssh/id_dsa.pub</pre>
It is recommended that you generate a key with a "passphrase" for security reasons.
<p>
Make the file known to the system by running
<pre>ssh-add ~/.ssh/id_dsa</pre>
You must then send the content of 'id_dsa.pub' to me so I can setup your account.
You must then send the content of 'id_dsa.pub' to me so I can setup your account.
The content of 'id_dsa' should of course be kept secret.
<p>
Once you have an account, you can use it to store Git
repositories. Simply put them in subdirectories of your ~/git, and
touch ~/git/<repo>/git-daemon-export-ok, after which the hourly
cronjob will pick them up and show them in cgit. They are also
available though git-daemon:
Once you are setup with an account, you will need to use your account to
checkout a copy of buildroot from Subversion:
<pre>git clone git://git.buildroot.net/~&lt;USERNAME&gt/git/&lt;REPO&gt;</pre>
<pre>
svn list svn+ssh://username@svn.uclibc.org/svn/trunk/buildroot</pre>
<br>
It goes without saying you must change <em>username</em> to your own
username...
<p>
You can then enter the newly checked out buildroot directory, make changes, check
your changes, diff your changes, revert your changes, and and commit your
changes usine commands such as:
<pre>
svn diff
svn status
svn revert
svn commit</pre>
<p>
For additional detail on how to use Subversion, please visit the
<a href="http://subversion.tigris.org/">the Subversion website</a>.
You might also want to read online or buy a copy of <a
href="http://svnbook.red-bean.com/">the Subversion Book</a>...
For additional detail on how to use Git, please visit the
<a href="http://git-scm.org/">the Git website</a>.
<!--#include file="footer.html" -->

View File

@@ -2,21 +2,15 @@
<h3>Documentation</h3>
Documentation for buildroot includes:
Current documentation for buildroot includes:
<ul>
<li>
Usage and documentation is where you want to start reading if you
wish to understand how buildroot work, or wish to
change/extend/fix things. If you find any errors (factual,
grammatical, whatever) please report them. Choose between:
<p>
<ul>
<li><a href="/downloads/buildroot.html">Latest stable release</a></li>
<li><a href="buildroot.html">GIT head revision</a></li>
</ul>
<p>
<a href= "buildroot.html">Buildroot - Usage and
documentation</a> is where you want to start reading if you wish to
understand how buildroot work, or wish to change/extend/fix things. If you
find any errors (factual, grammatical, whatever) please report them.
</li>
<li>
@@ -26,7 +20,7 @@ Documentation for buildroot includes:
<li>
If you find that you need help with buildroot, you can ask for help on the
<a href= "lists.html">buildroot mailing list</a> at buildroot at uclibc.org.
<a href= "lists/uClibc/">buildroot mailing list</a> at buildroot at mail.uclibc.org.
In addition the BusyBox, uClibc, and buildroot developers are also known to
hang out on the uClibc IRC channel: #uclibc on irc.freenode.net.
</li>

View File

@@ -6,40 +6,30 @@
<p>
The latest stable release is <b>2009.08</b>, which can be downloaded
here:<p>
<a href="/downloads/buildroot-2009.08.tar.gz">buildroot-2009.08.tar.gz</a>
or
<a href="/downloads/buildroot-2009.08.tar.bz2">buildroot-2009.08.tar.bz2</a>.
<p>
The latest release candidate is <b>2009.11-rc2</b>, which can be
downloaded here:<p>
<a href="/downloads/buildroot-2009.11-rc2.tar.gz">buildroot-2009.11-rc2.tar.gz</a>
or
<a href="/downloads/buildroot-2009.11-rc2.tar.bz2">buildroot-2009.11-rc2.tar.bz2</a>.
<p>
This and earlier releases can always be downloaded from
<a href="/downloads/">http://buildroot.net/downloads/</a>.
The latest release can always be dowloaded from
<a href="/downloads/">http://buildroot.uclibc.org/downloads/</a>.
<p>
You can also obtain <a href="/downloads/snapshots/">Daily
Snapshots</a> of the latest Buildroot source tree if you want to to
follow development, but cannot or do not wish to use Git.
follow development, but cannot or do not wish to use Subversion (svn).
<ul>
<li> Click here to <a href="downloads/snapshots/">Daily Snapshots</a>.
</li>
<li> Click here to <a href="http://git.buildroot.net/buildroot">browse the source tree</a>.
<li> Click here to <a href="http://sources.busybox.net/index.py/trunk/buildroot/">browse the source tree</a>.
</li>
<li>Anonymous <a href="git.html">Git access</a> is available.
<li>Anonymous <a href="subversion.html">Subversion access</a> is available.
</li>
<li>For those that are actively contributing obtaining
<a href="developer.html">Subversion read/write access</a> is also possible.
</li>
</ul>
<!--#include file="footer.html" -->

View File

@@ -1,39 +0,0 @@
<!--#include file="header.html" -->
<h3>Git Access</h3>
The buildroot repository can be browsed online through cgit at
<a href="http://git.buildroot.net/buildroot">http://git.buildroot.net/buildroot</a>.
To grab a copy of the repository use
<pre>
git clone git://git.buildroot.net/buildroot</pre>
Or if you're behind a firewall blocking git:
<pre>
git clone http://git.buildroot.net/buildroot</pre>
<p>
If you are not already familiar with using Git, we recommend you visit <a
href="http://git-scm.org">the Git website</a>.
<p>
Once you've checked out a copy of the source tree, you can update your source
tree at any time so it is in sync with the latest and greatest by entering your
buildroot directory and running the command:
<pre>
git pull
</pre>
Because you've only been granted anonymous access to the tree, you won't be
able to commit any changes. Changes can be submitted for inclusion by posting
them to the buildroot mailing list or to the <a
href="https://bugs.uclibc.org/">Bug and Patch Tracking System</a>.
<!--#include file="footer.html" -->

View File

@@ -27,16 +27,28 @@
<tr>
<td valign="TOP">
<a href="/"><IMG SRC="images/logo_small.png" alt="Buildroot"
border="0" width="200" height="100"></a><BR>
<td>
<div class="c3">
<table border="0" cellspacing="1" cellpadding="2">
<tr>
<td class="c1">BUILDROOT</td>
</tr>
</table>
</div>
<a href="/"><IMG SRC="images/busybox1.png" alt="Buildroot" border="0"></a><BR>
</td>
</tr>
<tr>
<td valign="TOP">
<br><a href="/about.html">About</a>
<br><a href="/news.html">Latest News</a>
<br><a href="/download.html">Download</a>
<br><a href="http://git.buildroot.net/buildroot">Browse Source</a>
<br><a href="/git.html">Accessing Source</a>
<br><a href="https://bugs.uclibc.org/">Bug Tracking</a>
<br><a href="http://sources.busybox.net/index.py/trunk/buildroot/">Browse Source</a>
<br><a href="/subversion.html">Accessing Source</a>
<br><a href="http://bugs.uclibc.org/">Bug Tracking</a>
<br><a href="/docs.html">Documentation</a>
<br><a href="/lists.html">Mailing Lists</a>

BIN
docs/images/busybox1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -1 +1 @@
<!--#include file="about.html" -->
<!--#include file="news.html" -->

View File

@@ -8,9 +8,7 @@ development. You can subscribe by visiting
<a href="http://lists.busybox.net/mailman/listinfo/buildroot">this page</a>.
Only subscribers to the Buildroot mailing list are allowed to post
to this list.
<p>
The list is also available through <a
href="http://gmane.org">Gmane</a> at <a href="http://dir.gmane.org/gmane.comp.lib.uclibc.buildroot">gmane.comp.lib.uclibc.buildroot</a>.
<p>
<h3>Search the List Archives</h3>
@@ -22,8 +20,8 @@ list with frequently asked questions...
<center>
<form method="GET" action="http://www.google.com/custom">
<input type="hidden" name="domains" value="lists.busybox.net">
<input type="hidden" name="sitesearch" value="lists.busybox.net">
<input type="hidden" name="domains" value="buildroot.uclibc.org">
<input type="hidden" name="sitesearch" value="buildroot.uclibc.org">
<input type="text" name="q" size="31" maxlength="255" value="">
<br>
<input type="submit" name="sa" value="search the mailing list archives">

View File

@@ -1,199 +1,7 @@
<!--#include file="header.html" -->
<h3>News</h3>
<p>
<ul>
<li><b>29 November 2009 -- 2009.11-rc2 released</b>
<p>RC2 is out with more cleanups and bugfixes, see the <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.11_rc2">CHANGES</a>
file for details.
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2009.11-rc2.tar.bz2">2009.11-rc2
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>23 November 2009 -- 2009.11-rc1 released</b>
<p>We have a new release candidate! Lots of changes all over the
tree, see the <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.11_rc1">CHANGES</a>
file for details.
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2009.11-rc1.tar.bz2">2009.11-rc1
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>7 September 2009 -- First Buildroot Developer Day</b>
<p>The first <i>Buildroot Developer Day</i> will take place on
Saturday, October 17th in Grenoble, France, just the day after
Embedded Linux Conference Europe. This <i>Developer Day</i> aims
at allowing Buildroot developers to meet and exchange ideas on the
project and its future.</p>
<p>As the number of places is limited, interested candidates are
invited to send an e-mail to Peter Korsgaard (<code>jacmet at
uclibc dot org</code>) and Thomas Petazzoni (<code>thomas dot
petazzoni at free-electrons dot com</code>).</p>
<p>This <i>Developer Day</i> will take place thanks to the
sponsoring of <a href="http://www.calao-systems.com">Calao
Systems</a> and <a href="http://www.free-electrons.com">Free
Electrons</a>.</p>
<li><b>31 August 2009 -- 2009.08 released</b>
<p>The stable 2009.08 release is out - Thanks to everyone
contributing and testing the release candidates. See the
<a href="http://lists.busybox.net/pipermail/buildroot/2009-August/029018.html">announcement</a>
or <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08">CHANGES</a>
for more details, and go to the <a href="/downloads/">downloads page</a>
to pick up the <a href="/downloads/buildroot-2009.08.tar.bz2">2009.08
release</a>.</p>
<li><b>26 August 2009 -- 2009.08-rc3 released</b>
<p>A number of bugfixes have been added to the tree since RC2
(especially thanks to Thomas Petazzoni) - See the <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08_rc3">CHANGES</a>
file for details. This is very much expected to be the final release
candidate, so give it a good test and expect a final 2009.08
release next weekend unless critical issues are found.</p>
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2009.08-rc3.tar.bz2">2009.08-rc3
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>6 August 2009 -- 2009.08-rc2 released</b>
<p>RC2 is out with more cleanups and bugfixes, see the <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08_rc2">CHANGES</a>
file for details.
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2009.08-rc2.tar.bz2">2009.08-rc2
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>2 August 2009 -- 2009.08-rc1 released</b>
<p>We have a new release candidate! Lots of changes all over the
tree, see the <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08_rc1">CHANGES</a>
file for details.
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2009.08-rc1.tar.bz2">2009.08-rc1
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>1 June 2009 -- 2009.05 released</b>
<p>The stable 2009.05 release is out - Thanks to everyone
contributing and testing the release candidates. See the
<a href="http://lists.busybox.net/pipermail/buildroot/2009-June/027640.html">announcement</a>
or <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05">CHANGES</a>
for more details, and go to the <a href="/downloads/">downloads page</a>
to pick up the <a href="/downloads/buildroot-2009.05.tar.bz2">2009.05
release</a>.</p>
<li><b>27 May 2009 -- 2009.05-rc3 released</b>
<p>We had a number of fixes post-RC2, so RC3 is out (see <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc3">CHANGES</a>
for details). Now is the moment to test and verify that everything
is working for your favorite config - Expect a final 2009.05 very soon.</p>
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2009.05-rc3.tar.bz2">2009.05-rc3
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>19 May 2009 -- 2009.05-rc2 released</b>
<p>RC2 is out with more cleanups and bug fixes (see <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc2">CHANGES</a>).
Unless big issues are found, expect this to be the last release
candidate before the release - So give it a good test.</p>
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2009.05-rc2.tar.bz2">2009.05-rc2
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>14 May 2009 -- Buildroot.org</b>
<p>Earl Levine has been so kind to donate the <b>buildroot.org</b>
domain to us, so the website can now also be reached at <a
href="http://www.buildroot.org">www.buildroot.org</a> (and git at
<a href="http://git.buildroot.org/buildroot">git.buildroot.org</a>).
Thanks a lot Earl!</p>
<li><b>5 May 2009 -- 2009.05-rc1 released</b>
<p>We have a new release candidate! Lots of changes all over the
tree, see the <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc1">CHANGES</a>
file for details.
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2009.05-rc1.tar.bz2">2009.05-rc1
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>3 May 2009 -- Moved to git</b>
<p>We've moved the source code from <a
href="http://subversion.tigris.org">Subversion</a> to <a
href="http://git-scm.org">Git</a>. You can browse the repo online
<a href="http://git.buildroot.net/buildroot">here</a>, and clone
the repo using:
<pre>git clone git://git.buildroot.net/buildroot</pre>
See the <a href="/git.html">Git Access</a> page for more details.
</p>
<li><b>27 March 2009 -- new Logo</b>
<p>We have a <a href="images/logo.png">logo</a>! We have so far
been using the <a href="http://busybox.net">Busybox</a> logo on
the website, as the website was a copy of the <a
href="http://busybox.net">Busybox</a> one - But not anymore, we
now have a shiny new logo of our own.</p>
<li><b>12 February 2009 -- 2009.02 released</b>
<p>The stable 2009.02 release is out - Thanks to everyone
contributing and testing the release candidates. See the
<a href="http://lists.busybox.net/pipermail/buildroot/2009-February/025974.html">announcement</a>
for more details, and go to the <a href="/downloads/">downloads page</a>
to pick up the <a href="/downloads/buildroot-2009.02.tar.bz2">2009.02
release</a>.</p>
<li><b>9 February 2009 -- 2009.02-rc4 released</b>
<p>We had more than 50 changes since RC3, several of them
toolchain related, so decided to make a RC4 as well. This is
very much expected to be the final release candidate, so give it
a good test and expect a final 2009.02 release this week unless
critical issues are found.</p>
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2009.02-rc4.tar.bz2">2009.02-rc4
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>31 January 2009 -- 2009.02-rc3 released</b>
<p>RC3 is out with more cleanups and bug fixes. Unless big issues
@@ -204,7 +12,7 @@
<a href="/downloads/buildroot-2009.02-rc3.tar.bz2">2009.02-rc3
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
href="http://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>23 January 2009 -- 2009.02-rc2 released</b>
<p>Another week, another release candidate with a bunch of
@@ -214,7 +22,7 @@
<a href="/downloads/buildroot-2009.02-rc2.tar.bz2">2009.02-rc2
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
href="http://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>16 January 2009 -- Release candidate and new maintainer</b>
<p>It has been a long time coming, but we finally have a new
@@ -224,7 +32,7 @@
<a href="/downloads/buildroot-2009.02-rc1.tar.bz2">2009.02-rc1
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>. The plan is to
href="http://bugs.uclibc.org">bug tracker</a>. The plan is to
release 2009.02 in time for <a
href="http://www.fosdem.org/2009/">FOSDEM</a>.</p>
@@ -252,7 +60,7 @@
If you find a bug in buildroot, or wish to submit a patch to fix a problem
or add a shiny new feature, please use the <a
href="https://bugs.uclibc.org/">Bug and Patch Tracking System</a> to post
href="http://bugs.uclibc.org/">Bug and Patch Tracking System</a> to post
the details, to make certain your work is not lost.

40
docs/subversion.html Normal file
View File

@@ -0,0 +1,40 @@
<!--#include file="header.html" -->
<h3>Anonymous Subversion Access</h3>
We allow anonymous (read-only) Subversion (svn) access to everyone. To
grab a copy of the latest version of buildroot using anonymous svn access:
<pre>
svn co svn://uclibc.org/trunk/buildroot</pre>
<p>
If you are not already familiar with using Subversion, I recommend you visit <a
href="http://subversion.tigris.org/">the Subversion website</a>. You might
also want to read online or buy a copy of <a
href="http://svnbook.red-bean.com/">the Subversion Book</a>. If you are
already comfortable with using CVS, you may want to skip ahead to the <a
href="http://svnbook.red-bean.com/en/1.1/apa.html">Subversion for CVS Users</a>
part of the Subversion Book.
<p>
Once you've checked out a copy of the source tree, you can update your source
tree at any time so it is in sync with the latest and greatest by entering your
buildroot directory and running the command:
<pre>
svn update</pre>
Because you've only been granted anonymous access to the tree, you won't be
able to commit any changes. Changes can be submitted for inclusion by posting
them to the buildroot mailing list or to the <a
href="http://bugs.uclibc.org/">Bug and Patch Tracking System</a>.
For those that are actively contributing <a
href="developer.html">Subversion commit access</a> can be made available.
<!--#include file="footer.html" -->

View File

@@ -4,7 +4,7 @@ source "package/busybox/Config.in"
comment "The minimum needed to build a uClibc development system"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/bash/Config.in"
source "package/bzip2/Config.in"
source "package/coreutils/Config.in"
@@ -12,15 +12,15 @@ source "package/diffutils/Config.in"
source "package/findutils/Config.in"
endif
source "package/flex/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/gawk/Config.in"
endif
source "toolchain/gcc/Config.in.2"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/grep/Config.in"
endif
source "package/make/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/patch/Config.in"
source "package/sed/Config.in"
source "package/tar/Config.in"
@@ -41,8 +41,9 @@ source "package/gperf/Config.in"
source "package/mpfr/Config.in"
source "package/libtool/Config.in"
source "package/m4/Config.in"
source "package/mpatrol/Config.in"
source "package/oprofile/Config.in"
source "package/pkg-config/Config.in"
source "package/pkgconfig/Config.in"
source "package/readline/Config.in"
source "package/valgrind/Config.in"
source "package/pcre/Config.in"
@@ -52,20 +53,19 @@ source "package/at/Config.in"
source "package/beecrypt/Config.in"
source "package/berkeleydb/Config.in"
source "package/bsdiff/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/bootutils/Config.in"
endif
source "package/cups/Config.in"
source "package/customize/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/dash/Config.in"
endif
source "package/enchant/Config.in"
source "package/file/Config.in"
source "package/gamin/Config.in"
source "package/icu/Config.in"
source "package/kexec/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/less/Config.in"
endif
source "package/libconfig/Config.in"
@@ -87,24 +87,23 @@ source "package/lsof/Config.in"
source "package/ltp-testsuite/Config.in"
source "package/ltrace/Config.in"
source "package/memstat/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/module-init-tools/Config.in"
source "package/modutils/Config.in"
endif
source "package/ng-spice-rework/Config.in"
source "package/popt/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/procps/Config.in"
endif
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/psmisc/Config.in"
endif
source "package/screen/Config.in"
source "package/shared-mime-info/Config.in"
source "package/startup-notification/Config.in"
source "package/strace/Config.in"
source "package/sudo/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/sysklogd/Config.in"
# busybox has init and the runit stuff
source "package/sysvinit/Config.in"
@@ -114,23 +113,26 @@ endif
source "package/database/Config.in"
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
# busybox has an editor
# text editors
source "package/editors/Config.in"
endif
menu "Networking"
comment "Networking applications"
source "package/argus/Config.in"
source "package/avahi/Config.in"
source "package/axel/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/boa/Config.in"
endif
source "package/bind/Config.in"
source "package/bmon/Config.in"
source "package/bridge-utils/Config.in"
source "package/ctorrent/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/dhcp/Config.in"
endif
source "package/dnsmasq/Config.in"
@@ -139,11 +141,11 @@ source "package/ethtool/Config.in"
source "package/haserl/Config.in"
source "package/hostap/Config.in"
source "package/ifplugd/Config.in"
#source "package/irda-utils/Config.in"
source "package/iperf/Config.in"
source "package/iproute2/Config.in"
source "package/ipsec-tools/Config.in"
source "package/iptables/Config.in"
source "package/iw/Config.in"
source "package/kismet/Config.in"
source "package/l2tp/Config.in"
source "package/libcgi/Config.in"
@@ -151,18 +153,16 @@ source "package/libcgicc/Config.in"
source "package/libcurl/Config.in"
source "package/libdnet/Config.in"
source "package/libeXosip2/Config.in"
source "package/libmicrohttpd/Config.in"
source "package/libnl/Config.in"
source "package/libosip2/Config.in"
source "package/libpcap/Config.in"
source "package/libsoup/Config.in"
source "package/libupnp/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/lighttpd/Config.in"
endif
source "package/links/Config.in"
source "package/lrzsz/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
source "package/mdnsresponder/Config.in"
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS || !BR2_PACKAGE_BUSYBOX_SNAPSHOT
source "package/microcom/Config.in"
endif
source "package/mii-diag/Config.in"
@@ -171,14 +171,13 @@ source "package/mutt/Config.in"
source "package/nbd/Config.in"
source "package/ncftp/Config.in"
source "package/neon/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/netcat/Config.in"
endif
source "package/netkitbase/Config.in"
source "package/netkittelnet/Config.in"
endif
source "package/netplug/Config.in"
source "package/netsnmp/Config.in"
source "package/netstat-nat/Config.in"
source "package/nfs-utils/Config.in"
source "package/ntp/Config.in"
source "package/olsr/Config.in"
@@ -197,26 +196,28 @@ source "package/quagga/Config.in"
source "package/rsync/Config.in"
source "package/samba/Config.in"
source "package/socat/Config.in"
source "package/spawn-fcgi/Config.in"
source "package/stunnel/Config.in"
source "package/tcpdump/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
source "package/tftpd/Config.in"
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/thttpd/Config.in"
source "package/tinyhttpd/Config.in"
endif
source "package/tn5250/Config.in"
source "package/ttcp/Config.in"
#if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
# ATTENTION! This was merged into busybox!
#source "package/udhcp/Config.in"
#endif
source "package/udpcast/Config.in"
source "package/vpnc/Config.in"
source "package/vsftpd/Config.in"
source "package/vtun/Config.in"
source "package/webif/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/wget/Config.in"
endif
source "package/wireless-tools/Config.in"
source "package/wpa_supplicant/Config.in"
endmenu
@@ -224,21 +225,17 @@ menu "Hardware handling / blockdevices and filesystem maintenance"
source "package/acpid/Config.in"
source "package/dbus/Config.in"
source "package/dbus-glib/Config.in"
source "package/dbus-python/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
source "package/devmem2/Config.in"
endif
source "package/dm/Config.in"
source "package/dmraid/Config.in"
source "package/dosfstools/Config.in"
source "package/e2fsprogs/Config.in"
source "package/eeprog/Config.in"
source "package/fconfig/Config.in"
source "package/fis/Config.in"
source "package/fuse/Config.in"
source "package/gadgetfs-test/Config.in"
source "package/gvfs/Config.in"
source "package/hal/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/hdparm/Config.in"
source "package/hotplug/Config.in"
endif
@@ -253,23 +250,21 @@ source "package/lm-sensors/Config.in"
source "package/lvm2/Config.in"
source "package/mdadm/Config.in"
source "package/memtester/Config.in"
source "package/mkdosfs/Config.in"
source "package/mtd/Config.in"
source "package/ntfs-3g/Config.in"
source "package/ntfsprogs/Config.in"
source "package/pciutils/Config.in"
source "package/pcmcia/Config.in"
source "package/setserial/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
# busybox has fdisk
source "package/sfdisk/Config.in"
endif
source "package/smartmontools/Config.in"
source "package/sysstat/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
# mdev
source "package/udev/Config.in"
endif
source "package/usb_modeswitch/Config.in"
source "package/usbmount/Config.in"
source "package/usbutils/Config.in"
source "package/wipe/Config.in"
@@ -291,7 +286,6 @@ source "package/dialog/Config.in"
comment "graphic libraries"
source "package/directfb/Config.in"
source "package/directfb-examples/Config.in"
source "package/divine/Config.in"
source "package/fbdump/Config.in"
source "package/imagemagick/Config.in"
source "package/jpeg/Config.in"
@@ -305,10 +299,8 @@ source "package/sawman/Config.in"
source "package/sdl/Config.in"
source "package/sdl_image/Config.in"
source "package/sdl_mixer/Config.in"
source "package/sdl_sound/Config.in"
source "package/sdl_net/Config.in"
source "package/sdl_ttf/Config.in"
source "package/sdl_gfx/Config.in"
source "package/tiff/Config.in"
comment "busybox graphic applications"
@@ -317,13 +309,46 @@ source "package/fbv/Config.in"
source "package/fbset/Config.in"
comment "other GUIs"
source "package/qt/Config.in"
source "package/qte/Config.in"
source "package/qtopia4/Config.in"
#source "package/microwin/Config.in"
choice
prompt "X Window System server"
default BR2_PACKAGE_XSERVER_none
help
Select the X Window System server to use
config BR2_PACKAGE_XSERVER_none
bool "none"
config BR2_PACKAGE_XSERVER_xorg
bool "modular xorg"
depends on BR2_USE_WCHAR # && BR2_ENABLE_LOCALE
# depending on BR2_ENABLE_LOCALE gives a recursion error with dbus
comment "xorg requires a toolchain with LOCALE and WCHAR support"
depends on !(BR2_USE_WCHAR && BR2_ENABLE_LOCALE)
config BR2_PACKAGE_XSERVER_tinyx
bool "tinyx"
depends on BR2_USE_WCHAR
comment "tinyx requires a toolchain with WCHAR support"
depends on !BR2_USE_WCHAR
endchoice
config BR2_X11_PREFIX
string
default "/usr/X11R6" if BR2_PACKAGE_XSERVER_xorg
default "/usr" if BR2_PACKAGE_XSERVER_tinyx
help
X11 apps root location
if !BR2_PACKAGE_XSERVER_none
source "package/x11r7/Config.in"
endif
comment "X libraries and helper libraries"
#XXX: maybe some of these should depend on !BR2_PACKAGE_XSERVER_none
source "package/atk/Config.in"
source "package/cairo/Config.in"
source "package/pango/Config.in"
@@ -355,7 +380,6 @@ source "package/dillo/Config.in"
source "package/docker/Config.in"
source "package/gqview/Config.in"
source "package/gmpc/Config.in"
source "package/gob2/Config.in"
source "package/gtkperf/Config.in"
source "package/leafpad/Config.in"
source "package/midori/Config.in"
@@ -373,12 +397,10 @@ endmenu
menu "Compressors / decompressors"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/gzip/Config.in"
endif
source "package/libarchive/Config.in"
source "package/lzo/Config.in"
source "package/lzop/Config.in"
source "package/lzma/Config.in"
source "package/zlib/Config.in"
endmenu
@@ -387,7 +409,7 @@ menu "Package managers"
source "package/ipkg/Config.in"
source "package/portage/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/rpm/Config.in"
endif
endmenu

View File

@@ -10,7 +10,7 @@
# | FOO_VERSION = 1.0
# | FOO_SOURCE = foo-$(FOO_VERSION).tar.gz
# | FOO_SITE = http://www.libfoo.org/dist
# | $(eval $(call AUTOTARGETS,package,foo))
# | $(eval $(call AUTOTARGETS,foo))
#
## The following targets can be called from the shell:
#
@@ -30,8 +30,6 @@
# list of (package) targets that must be built before foo
# FOO_AUTORECONF [YES/NO, default NO]
# run <autoreconf> before <configure>
# FOO_AUTORECONF_OPT [default empty]
# arguments passed to the <autoreconf> script
# FOO_LIBTOOL_PATCH [YES/NO, default YES]
# Do you want the standard buildroot patch applied to ltmain.sh? (libtool)
# FOO_USE_CONFIG_CACHE [YES/NO default $(BR2_CONFIG_CACHE)]
@@ -142,7 +140,7 @@ DOWNLOAD=$(WGET) -P $(DL_DIR) $(1)/$(2)
else
define DOWNLOAD
$(Q)test -e $(DL_DIR)/$(2) || \
for site in $(call qstrip,$(BR2_PRIMARY_SITE)) $(1) $(call qstrip,$(BR2_BACKUP_SITE)); \
for site in $(strip $(subst ",,$(BR2_PRIMARY_SITE))) $(1) $(strip $(subst ",,$(BR2_BACKUP_SITE))); \
do $(WGET) -P $(DL_DIR) $$site/$(2) && exit; done
endef
endif
@@ -188,8 +186,7 @@ $(BUILD_DIR)/%/.stamp_extracted:
$(BUILD_DIR)/%/.stamp_libtool_patch:
$(call MESSAGE,"Patching libtool")
# if the package uses libtool, patch it for cross-compiling in buildroot
$(Q)if test "$($(PKG)_LIBTOOL_PATCH)" = "YES" -a \
"$($(PKG)_AUTORECONF)" != "YES"; then \
$(Q)if test "$($(PKG)_LIBTOOL_PATCH)" = "YES"; then \
for i in `find $(@D) -name ltmain.sh`; do \
toolchain/patch-kernel.sh $${i%/*} package buildroot-libtool.patch; \
done \
@@ -228,7 +225,7 @@ endif
# Running autoreconf
$(BUILD_DIR)/%/.stamp_autoconfigured:
$(call MESSAGE,"Running autoreconf")
$(Q)cd $(@D)/$($(PKG)_SUBDIR) && $(AUTORECONF) $($(PKG)_AUTORECONF_OPT)
$(Q)cd $(@D)/$($(PKG)_SUBDIR) && $(AUTORECONF)
# if the package uses libtool, patch it for cross-compiling in buildroot
$(Q)if test "$($(PKG)_LIBTOOL_PATCH)" = "YES"; then \
for i in `find $(@D)/$($(PKG)_SUBDIR) -name ltmain.sh`; do \
@@ -246,7 +243,7 @@ $(BUILD_DIR)/%/.stamp_configured:
$(TARGET_CONFIGURE_ENV) \
$($(PKG)_CONF_ENV) \
$(if $(THIS_SRCDIR),$(THIS_SRCDIR)/,./)configure \
$(if $(filter YES,$($(PKG)_USE_CONFIG_CACHE)),--cache-file="$(BUILD_DIR)/tgt-config.cache",) \
$(if $(filter YES,$($(PKG)_USE_CONFIG_CACHE)),--cache-file="$(PROJECT_BUILD_DIR)/tgt-config.cache",) \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
@@ -256,14 +253,13 @@ $(BUILD_DIR)/%/.stamp_configured:
$(DISABLE_DOCUMENTATION) \
$(DISABLE_NLS) \
$(DISABLE_LARGEFILE) \
$(DISABLE_IPV6) \
$(QUIET) $($(PKG)_CONF_OPT)
$(Q)touch $@
# Build
$(BUILD_DIR)/%/.stamp_built:
$(call MESSAGE,"Building")
PATH=$(TARGET_PATH) $($(PKG)_MAKE_ENV) $($(PKG)_MAKE) $($(PKG)_MAKE_OPT) -C $(@D)/$($(PKG)_SUBDIR)
$($(PKG)_MAKE_ENV) $($(PKG)_MAKE) $($(PKG)_MAKE_OPT) -C $(@D)/$($(PKG)_SUBDIR)
$(Q)touch $@
# Install to staging dir
@@ -278,7 +274,7 @@ $(BUILD_DIR)/%/.stamp_staging_installed:
touch $@
# Install to target dir
$(BUILD_DIR)/%/.stamp_target_installed:
$(PROJECT_BUILD_DIR)/autotools-stamps/%_target_installed:
$(call MESSAGE,"Installing to target")
$($(PKG)_MAKE_ENV) $($(PKG)_MAKE) $($(PKG)_INSTALL_TARGET_OPT) -C $($(PKG)_DIR)/$($(PKG)_SUBDIR)
$(if $(BR2_HAVE_MANPAGES),,for d in man share/man; do \
@@ -333,7 +329,6 @@ $(2)_SITE ?= \
http://$$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/$(1)
$(2)_DEPENDENCIES ?=
$(2)_AUTORECONF ?= NO
$(2)_AUTORECONF_OPT ?=
$(2)_LIBTOOL_PATCH ?= YES
$(2)_USE_CONFIG_CACHE ?= $(if $(BR2_CONFIG_CACHE),YES,NO)
$(2)_CONF_ENV ?=
@@ -357,7 +352,8 @@ $(2)_DIR_PREFIX = $(if $(3),$(3),$(TOP_SRCDIR)/package)
# define sub-target stamps
$(2)_TARGET_INSTALL_TARGET = $$($(2)_DIR)/.stamp_target_installed
# targets which affect $(TARGET_DIR) must use a unique stamp for each $(PROJECT)
$(2)_TARGET_INSTALL_TARGET = $(PROJECT_BUILD_DIR)/autotools-stamps/$(1)_target_installed
$(2)_TARGET_INSTALL_STAGING = $$($(2)_DIR)/.stamp_staging_installed
$(2)_TARGET_BUILD = $$($(2)_DIR)/.stamp_built
$(2)_TARGET_CONFIGURE = $$($(2)_DIR)/.stamp_configured
@@ -373,7 +369,7 @@ $(2)_TARGET_DIRCLEAN = $$($(2)_DIR)/.stamp_dircleaned
$(2)_HOOK_POST_EXTRACT = $$($(2)_DIR)/.stamp_hook_post_extract
$(2)_HOOK_POST_CONFIGURE = $$($(2)_DIR)/.stamp_hook_post_configure
$(2)_HOOK_POST_BUILD = $$($(2)_DIR)/.stamp_hook_post_build
$(2)_HOOK_POST_INSTALL = $$($(2)_DIR)/.stamp_hook_post_install
$(2)_HOOK_POST_INSTALL = $(PROJECT_BUILD_DIR)/autotools-stamps/$(1)_hook_post_install
# human-friendly targets and target sequencing
$(1): $(1)-install

View File

@@ -45,10 +45,12 @@ TARGET_CFLAGS+= $(BR2_SYSROOT) $(BR2_ISYSROOT)
TARGET_LDFLAGS+= $(BR2_SYSROOT)
endif
CC_TARGET_TUNE_:=$(call qstrip,$(BR2_GCC_TARGET_TUNE))
CC_TARGET_ARCH_:=$(call qstrip,$(BR2_GCC_TARGET_ARCH))
CC_TARGET_ABI_:=$(call qstrip,$(BR2_GCC_TARGET_ABI))
CC_TARGET_TUNE_:=$(strip $(subst ",,$(BR2_GCC_TARGET_TUNE)))
#"))
CC_TARGET_ARCH_:=$(strip $(subst ",,$(BR2_GCC_TARGET_ARCH)))
#"))
CC_TARGET_ABI_:=$(strip $(subst ",,$(BR2_GCC_TARGET_ABI)))
#"))
ifneq ($(CC_TARGET_TUNE_),)
TARGET_CFLAGS+=-mtune=$(CC_TARGET_TUNE_)
endif
@@ -91,13 +93,13 @@ TARGET_CXXFLAGS=$(TARGET_CFLAGS)
# else it's an external toolchain
#########################################################################
else
TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) --sysroot $(STAGING_DIR)/
TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include -I$(TOOLCHAIN_EXTERNAL_PATH)/$(TOOLCHAIN_EXTERNAL_PREFIX)/include --sysroot $(STAGING_DIR)/
TARGET_CXXFLAGS=$(TARGET_CFLAGS)
TARGET_LDFLAGS=--sysroot $(STAGING_DIR)/
TARGET_LDFLAGS=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib
endif
#########################################################################
#ifeq ($(BR2_ROOTFS_SUFFIX),)
ROOTFS_SUFFIX:=$(call qstrip,$(BR2_ROOTFS_SUFFIX))
ROOTFS_SUFFIX:=$(strip $(subst ",, $(BR2_ROOTFS_SUFFIX)))
ifeq ($(ROOTFS_SUFFIX),)
ROOTFS_SUFFIX:=
else
@@ -105,23 +107,32 @@ XXXX=xxxx
ROOTFS_SUFFIX:=-$(BR2_ROOTFS_SUFFIX)
endif
ifeq ($(strip $(subst ",, $(BR2_FPU_SUFFIX))),y)
COND_ARCH_FPU_SUFFIX:=$(ARCH_FPU_SUFFIX)
else
COND_ARCH_FPU_SUFFIX:=
endif
ifeq ($(BR2_TOOLCHAIN_SOURCE),y)
TOOLCHAIN_DIR=$(BASE_DIR)/toolchain
TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
# Quotes are needed for spaces et al in path components.
TARGET_PATH="$(TOOLCHAIN_DIR)/bin:$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(PATH)"
IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(ARCH)$(ROOTFS_SUFFIX)
TARGET_PATH="$(TOOL_BUILD_DIR)/bin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(PATH)"
IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(ROOTFS_SUFFIX)
GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)$(GNU_TARGET_SUFFIX)
TARGET_CROSS=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-
KERNEL_CROSS=$(TARGET_CROSS)
else
TOOLCHAIN_EXTERNAL_PREFIX:=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX))
TOOLCHAIN_EXTERNAL_PATH:=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH))
TOOLCHAIN_DIR=$(BASE_DIR)/toolchain
TARGET_PATH="$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(TOOLCHAIN_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)"
TOOLCHAIN_EXTERNAL_PREFIX:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PREFIX)))
#"))
TOOLCHAIN_EXTERNAL_PATH:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PATH)))
#"))
#TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(TOOLCHAIN_EXTERNAL_PREFIX)
TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
TARGET_PATH="$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)"
#IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(TOOLCHAIN_EXTERNAL_PREFIX)$(ROOTFS_SUFFIX)
IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(ARCH)$(ROOTFS_SUFFIX)
IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(ROOTFS_SUFFIX)
REAL_GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX)
GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX)
@@ -133,7 +144,11 @@ TARGET_AS=$(TARGET_CROSS)as
TARGET_CC=$(TARGET_CROSS)gcc
TARGET_CPP=$(TARGET_CROSS)cpp
TARGET_CXX=$(TARGET_CROSS)g++
ifeq ($(BR2_GCC_VERSION_3_4_6),y)
TARGET_FC=$(TARGET_CROSS)g77
else
TARGET_FC=$(TARGET_CROSS)gfortran
endif
TARGET_LD=$(TARGET_CROSS)ld
TARGET_NM=$(TARGET_CROSS)nm
TARGET_RANLIB=$(TARGET_CROSS)ranlib
@@ -163,18 +178,13 @@ TARGET_STRIP=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-sstrip
STRIPCMD=$(TARGET_STRIP)
endif
ifeq ($(BR2_STRIP_none),y)
TARGET_STRIP=true Not_stripping
TARGET_STRIP=true -Not_stripping
STRIPCMD=$(TARGET_STRIP)
endif
INSTALL:=$(shell which install || type -p install)
INSTALL=/usr/bin/install
FLEX:=$(shell which flex || type -p flex)
BISON:=$(shell which bison || type -p bison)
HOST_CFLAGS += -I$(HOST_DIR)/include -I$(HOST_DIR)/usr/include
HOST_CXXFLAGS += -I$(HOST_DIR)/include -I$(HOST_DIR)/usr/include
HOST_LDFLAGS += -L$(HOST_DIR)/lib -L$(HOST_DIR)/usr/lib
HOST_PATH=$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(PATH)
# hostcc version as an integer - E.G. 4.3.2 => 432
HOSTCC_VERSION:=$(shell $(HOSTCC) --version | \
sed -n 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)[ ]*.*$$/\1\2\3/p')
@@ -190,9 +200,19 @@ HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
-e 's/mipsel-.*/mipsel/' \
-e 's/cris.*/cris/' \
-e 's/i[3-9]86/i386/' \
-e 's/xtensa.*/xtensa/' \
)
GNU_HOST_NAME:=$(HOST_ARCH)-$(call qstrip,$(BR2_GNU_BUILD_SUFFIX))
GNU_HOST_NAME:=$(HOST_ARCH)-$(subst ",,$(BR2_GNU_BUILD_SUFFIX))
#")
AUTO_CONFIGURE_TARGET=\
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
$(TARGET_CONFIGURE_ENV) \
$(if $(THIS_SRCDIR),$(THIS_SRCDIR)/,./)configure \
$(if $(BR2_CONFIG_CACHE),--cache-file="$(PROJECT_BUILD_DIR)/tgt-config.cache",) \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME)
TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
AR="$(TARGET_AR)" \
@@ -226,7 +246,7 @@ TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
DEFAULT_ASSEMBLER="$(TARGET_AS)" \
DEFAULT_LINKER="$(TARGET_LD)" \
PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
PKG_CONFIG="$(STAGING_DIR)/usr/bin/pkg-config" \
PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \
STAGING_DIR="$(STAGING_DIR)"
@@ -236,7 +256,7 @@ TARGET_CONFIGURE_ENV=\
LDFLAGS="$(TARGET_LDFLAGS)" \
FCFLAGS="$(TARGET_FCFLAGS)" \
HOST_CONFIGURE_OPTS=PATH=$(HOST_PATH) \
HOST_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
AR="$(HOSTAR)" \
AS="$(HOSTAS)" \
LD="$(HOSTLD) $(HOST_LDFLAGS)" \
@@ -270,14 +290,7 @@ HOST_CONFIGURE_OPTS=PATH=$(HOST_PATH) \
ORIGINAL_AS_FOR_TARGET="$(TARGET_AS)" \
ORIGINAL_LD_FOR_TARGET="$(TARGET_LD)" \
ORIGINAL_NM_FOR_TARGET="$(TARGET_NM)" \
ORIGINAL_OBJDUMP_FOR_TARGET="$(TARGET_OBJDUMP)" \
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig"
HOST_MAKE_ENV=PATH=$(HOST_PATH) \
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig"
ORIGINAL_OBJDUMP_FOR_TARGET="$(TARGET_OBJDUMP)"
#######################################################################
# settings we need to pass to configure
@@ -341,7 +354,7 @@ DISABLE_LARGEFILE= --disable-largefile
endif
ifneq ($(BR2_HAVE_DOCUMENTATION),y)
DISABLE_DOCUMENTATION=--disable-gtk-doc
DISABLE_DOCUMENTATION=--without-html-dir --disable-gtk-doc
endif
ifneq ($(BR2_INET_IPV6),y)
@@ -349,7 +362,7 @@ DISABLE_IPV6= --disable-ipv6
endif
ifneq ($(BR2_GCC_CROSS_CXX),y)
TARGET_CONFIGURE_OPTS+=CXX=false
TARGET_CONFIGURE_OPTS+=CXX=""
endif
ifeq ($(BR2_ENABLE_DEBUG),y)
@@ -358,8 +371,24 @@ else
ENABLE_DEBUG:=
endif
# X Windowing system
X11_PREFIX:=$(call qstrip,$(BR2_X11_PREFIX))
XSERVER:=
ifeq ($(BR2_PACKAGE_TINYX),y)
XSERVER+=tinyx
endif
ifeq ($(BR2_PACKAGE_XORG),y)
XSERVER+=xorg
endif
ifeq ($(BR2_PACKAGE_XORG7),y)
XSERVER+=xserver_xorg-server
endif
ifeq ($(BR2_PACKAGE_XGGI),y)
XSERVER+=xggi
endif
X11_PREFIX:=$(strip $(subst ",, $(BR2_X11_PREFIX)))
#"))
include package/Makefile.autotools.in

View File

@@ -1,5 +1,4 @@
config BR2_PACKAGE_ALSAMIXERGUI
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_FLTK
bool "alsamixergui"
help

View File

@@ -12,7 +12,7 @@ ALSAMIXERGUI_INSTALL_TARGET = YES
ALSAMIXERGUI_CONF_OPT = LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib -lstdc++ -lX11"
ALSAMIXERGUI_DEPENDENCIES = fltk
ALSAMIXERGUI_DEPENDENCIES = uclibc fltk
$(eval $(call AUTOTARGETS,package,alsamixergui))

View File

@@ -35,7 +35,7 @@ $(ARGUS_DIR)/.configured: $(ARGUS_DIR)/.unpacked
(cd $(ARGUS_DIR); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
./configure $(QUIET) \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
@@ -51,7 +51,7 @@ $(TARGET_DIR)/$(ARGUS_TARGET_BINARY): $(ARGUS_DIR)/$(ARGUS_BINARY)
cp -dpf $(ARGUS_DIR)/$(ARGUS_BINARY) $@
$(STRIPCMD) $(STRIP_STRIP_ALL) $@
argus: libpcap $(TARGET_DIR)/$(ARGUS_TARGET_BINARY)
argus: uclibc libpcap $(TARGET_DIR)/$(ARGUS_TARGET_BINARY)
argus-clean:
-$(MAKE) -C $(ARGUS_DIR) clean

View File

@@ -25,7 +25,7 @@ $(AT_DIR)/.configured: $(AT_DIR)/.unpacked
(cd $(AT_DIR); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
./configure $(QUIET) \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
@@ -49,14 +49,14 @@ $(TARGET_DIR)/$(AT_TARGET_SCRIPT): $(AT_DIR)/$(AT_BINARY)
# Use fakeroot to pretend to do 'make install' as root
echo '$(MAKE) DAEMON_USERNAME=root DAEMON_GROUPNAME=root ' \
'$(TARGET_CONFIGURE_OPTS) DESTDIR=$(TARGET_DIR) -C $(AT_DIR) install' \
> $(BUILD_DIR)/.fakeroot.at
> $(PROJECT_BUILD_DIR)/.fakeroot.at
ifneq ($(BR2_HAVE_MANPAGES),y)
echo 'rm -rf $(TARGET_DIR)/usr/man' >> $(BUILD_DIR)/.fakeroot.at
echo 'rm -rf $(TARGET_DIR)/usr/man' >> $(PROJECT_BUILD_DIR)/.fakeroot.at
endif
echo 'rm -rf $(TARGET_DIR)/usr/doc/at' >> $(BUILD_DIR)/.fakeroot.at
echo 'rm -rf $(TARGET_DIR)/usr/doc/at' >> $(PROJECT_BUILD_DIR)/.fakeroot.at
$(INSTALL) -m 0755 -D $(AT_DIR)/debian/rc $(TARGET_DIR)/$(AT_TARGET_SCRIPT)
at: host-fakeroot $(TARGET_DIR)/$(AT_TARGET_SCRIPT)
at: uclibc host-fakeroot $(TARGET_DIR)/$(AT_TARGET_SCRIPT)
at-clean:
-$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(AT_DIR) uninstall

View File

@@ -1,5 +1,6 @@
config BR2_PACKAGE_ATK
bool "atk"
select BR2_PACKAGE_PKGCONFIG
select BR2_PACKAGE_LIBGLIB2
help
The ATK accessibility toolkit, needed to build GTK+-2.x.

View File

@@ -38,67 +38,24 @@ ATK_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes \
am_cv_func_working_getline=yes gl_cv_func_mkdir_trailing_slash_bug=no \
gl_cv_func_mkstemp_limitations=no ac_cv_func_working_mktime=yes \
jm_cv_func_working_re_compile_pattern=yes ac_use_included_regex=no \
gl_cv_c_restrict=no ac_cv_prog_F77=no
gl_cv_c_restrict=no ac_cv_path_GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal \
ac_cv_prog_F77=no
ATK_CONF_OPT = --enable-shared \
--enable-static
--disable-glibtest --enable-explicit-deps=no \
--disable-debug
ifeq ($(BR2_PACKAGE_XORG7),y)
ATK_CONF_OPT += --with-x \
ifneq ($(BR2_PACKAGE_XSERVER_none),y)
ATK_CONF_OPT_X = --with-x \
--x-includes=$(STAGING_DIR)/usr/include/X11 \
--x-libraries=$(STAGING_DIR)/usr/lib --disable-glibtest
else
ATK_CONF_OPT += --without-x
ATK_CONF_OPT_X = --without-x
endif
ATK_DEPENDENCIES = libglib2 host-pkgconfig
ATK_CONF_OPT = --enable-shared \
--enable-static $(ATK_CONF_OPT_X) \
--disable-glibtest --enable-explicit-deps=no \
--disable-debug
ATK_MAKE_OPT = GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal GLIB_MKENUMS=$(HOST_GLIB)/bin/glib-mkenums
ATK_DEPENDENCIES = libglib2 pkgconfig
$(eval $(call AUTOTARGETS,package,atk))
# atk for the host
ATK_HOST_DIR:=$(BUILD_DIR)/atk-$(ATK_VERSION)-host
$(DL_DIR)/$(ATK_SOURCE):
$(call DOWNLOAD,$(ATK_SITE),$(ATK_SOURCE))
$(STAMP_DIR)/host_atk_unpacked: $(DL_DIR)/$(ATK_SOURCE)
mkdir -p $(ATK_HOST_DIR)
$(INFLATE$(suffix $(ATK_SOURCE))) $< | \
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(ATK_HOST_DIR) $(TAR_OPTIONS) -
touch $@
$(STAMP_DIR)/host_atk_configured: $(STAMP_DIR)/host_atk_unpacked $(STAMP_DIR)/host_libglib2_installed $(STAMP_DIR)/host_pkgconfig_installed
(cd $(ATK_HOST_DIR); rm -rf config.cache; \
$(HOST_CONFIGURE_OPTS) \
CFLAGS="$(HOST_CFLAGS)" \
LDFLAGS="$(HOST_LDFLAGS)" \
./configure $(QUIET) \
--prefix="$(HOST_DIR)/usr" \
--sysconfdir="$(HOST_DIR)/etc" \
--enable-shared \
--disable-static \
--disable-glibtest \
)
touch $@
$(STAMP_DIR)/host_atk_compiled: $(STAMP_DIR)/host_atk_configured
$(HOST_MAKE_ENV) $(MAKE) -C $(ATK_HOST_DIR)
touch $@
$(STAMP_DIR)/host_atk_installed: $(STAMP_DIR)/host_atk_compiled
$(HOST_MAKE_ENV) $(MAKE) -C $(ATK_HOST_DIR) install
touch $@
host-atk: $(STAMP_DIR)/host_atk_installed
host-atk-source: atk-source
host-atk-clean:
rm -f $(addprefix $(STAMP_DIR)/host_atk_,unpacked configured compiled installed)
-$(MAKE) -C $(ATK_HOST_DIR) uninstall
-$(MAKE) -C $(ATK_HOST_DIR) clean
host-atk-dirclean:
rm -rf $(ATK_HOST_DIR)

View File

@@ -1,6 +1,5 @@
config BR2_PACKAGE_AUTOCONF
bool "autoconf"
select BR2_PACKAGE_MICROPERL
help
Extensible program for developing configure scripts. These
scripts handle all the mundane system/feature detection.

View File

@@ -3,63 +3,136 @@
# autoconf
#
#############################################################
AUTOCONF_VERSION = 2.64
AUTOCONF_SOURCE = autoconf-$(AUTOCONF_VERSION).tar.bz2
AUTOCONF_SITE = $(BR2_GNU_MIRROR)/autoconf
ifeq ($(BR2_ENABLE_DEBUG),y) # install-exec doesn't install aclocal stuff
AUTOCONF_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install
endif
AUTOCONF_CONF_ENV = EMACS="no"
AUTOCONF_DEPENDENCIES = microperl
$(eval $(call AUTOTARGETS,package,autoconf))
# autoconf for the host
AUTOCONF_HOST_DIR:=$(BUILD_DIR)/autoconf-$(AUTOCONF_VERSION)-host
AUTOCONF_VERSION:=2.63
AUTOCONF_SOURCE:=autoconf-$(AUTOCONF_VERSION).tar.bz2
AUTOCONF_SITE:=$(BR2_GNU_MIRROR)/autoconf
AUTOCONF_CAT:=$(BZCAT)
AUTOCONF_SRC_DIR:=$(TOOL_BUILD_DIR)/autoconf-$(AUTOCONF_VERSION)
AUTOCONF_DIR:=$(BUILD_DIR)/autoconf-$(AUTOCONF_VERSION)
AUTOCONF_HOST_DIR:=$(TOOL_BUILD_DIR)/autoconf-$(AUTOCONF_VERSION)-host
AUTOCONF_BINARY:=autoconf
AUTOCONF_TARGET_BINARY:=usr/bin/autoconf
AUTOCONF:=$(STAGING_DIR)/usr/bin/autoconf
# variables used by other packages
AUTOCONF:=$(HOST_DIR)/usr/bin/autoconf
AUTORECONF=$(HOST_CONFIGURE_OPTS) ACLOCAL="$(ACLOCAL)" $(HOST_DIR)/usr/bin/autoreconf -v -f -i -I "$(ACLOCAL_DIR)"
AUTORECONF=$(HOST_CONFIGURE_OPTS) ACLOCAL="$(ACLOCAL)" autoreconf -v -f -i -I "$(ACLOCAL_DIR)"
$(DL_DIR)/$(AUTOCONF_SOURCE):
$(call DOWNLOAD,$(AUTOCONF_SITE),$(AUTOCONF_SOURCE))
$(call DOWNLOAD,$(AUTOCONF_SITE),$(AUTOCONF_SOURCE))
$(STAMP_DIR)/host_autoconf_unpacked: $(DL_DIR)/$(AUTOCONF_SOURCE)
mkdir -p $(AUTOCONF_HOST_DIR)
$(INFLATE$(suffix $(AUTOCONF_SOURCE))) $< | \
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(AUTOCONF_HOST_DIR) $(TAR_OPTIONS) -
toolchain/patch-kernel.sh $(AUTOCONF_HOST_DIR) package/autoconf/ \*.patch
autoconf-source: $(DL_DIR)/$(AUTOCONF_SOURCE)
$(AUTOCONF_SRC_DIR)/.unpacked: $(DL_DIR)/$(AUTOCONF_SOURCE)
$(AUTOCONF_CAT) $(DL_DIR)/$(AUTOCONF_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
$(CONFIG_UPDATE) $(AUTOCONF_SRC_DIR)
touch $@
$(STAMP_DIR)/host_autoconf_configured: $(STAMP_DIR)/host_autoconf_unpacked $(STAMP_DIR)/host_m4_installed $(STAMP_DIR)/host_libtool_installed
#############################################################
#
# autoconf for the target
#
#############################################################
$(AUTOCONF_DIR)/.configured: $(AUTOCONF_SRC_DIR)/.unpacked
mkdir -p $(AUTOCONF_DIR)
(cd $(AUTOCONF_DIR); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
EMACS="no" \
$(AUTOCONF_SRC_DIR)/configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libdir=/lib \
--libexecdir=/usr/lib \
--sysconfdir=/etc \
--datadir=/usr/share \
--localstatedir=/var \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
)
touch $@
$(AUTOCONF_DIR)/bin/$(AUTOCONF_BINARY): $(AUTOCONF_DIR)/.configured
$(MAKE1) -C $(AUTOCONF_DIR)
$(TARGET_DIR)/$(AUTOCONF_TARGET_BINARY): $(AUTOCONF_DIR)/bin/$(AUTOCONF_BINARY)
$(MAKE) \
prefix=$(TARGET_DIR)/usr \
exec_prefix=$(TARGET_DIR)/usr \
bindir=$(TARGET_DIR)/usr/bin \
sbindir=$(TARGET_DIR)/usr/sbin \
libexecdir=$(TARGET_DIR)/usr/lib \
datadir=$(TARGET_DIR)/usr/share \
sysconfdir=$(TARGET_DIR)/etc \
localstatedir=$(TARGET_DIR)/var \
libdir=$(TARGET_DIR)/usr/lib \
infodir=$(TARGET_DIR)/usr/share/info \
mandir=$(TARGET_DIR)/usr/share/man \
includedir=$(TARGET_DIR)/usr/include \
-C $(AUTOCONF_DIR) install
ifneq ($(BR2_HAVE_INFOPAGES),y)
rm -rf $(TARGET_DIR)/usr/share/info
endif
ifneq ($(BR2_HAVE_MANPAGES),y)
rm -rf $(TARGET_DIR)/usr/share/man
endif
rm -rf $(TARGET_DIR)/share/locale
rm -rf $(TARGET_DIR)/usr/share/doc
touch -c $@
autoconf: uclibc $(TARGET_DIR)/$(AUTOCONF_TARGET_BINARY)
autoconf-clean:
$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(AUTOCONF_DIR) uninstall
-$(MAKE) -C $(AUTOCONF_DIR) clean
autoconf-dirclean:
rm -rf $(AUTOCONF_DIR)
#############################################################
#
# autoconf for the host
#
#############################################################
$(AUTOCONF_HOST_DIR)/.configured: $(AUTOCONF_SRC_DIR)/.unpacked
mkdir -p $(AUTOCONF_HOST_DIR)
(cd $(AUTOCONF_HOST_DIR); rm -rf config.cache; \
$(HOST_CONFIGURE_OPTS) \
CFLAGS="$(HOST_CFLAGS)" \
LDFLAGS="$(HOST_LDFLAGS)" \
./configure $(QUIET) \
--prefix="$(HOST_DIR)/usr" \
--sysconfdir="$(HOST_DIR)/etc" \
--disable-static \
EMACS="no" \
$(AUTOCONF_SRC_DIR)/configure \
--prefix=$(STAGING_DIR)/usr \
)
touch $@
$(STAMP_DIR)/host_autoconf_compiled: $(STAMP_DIR)/host_autoconf_configured
$(MAKE) -C $(AUTOCONF_HOST_DIR)
touch $@
$(AUTOCONF_HOST_DIR)/bin/$(AUTOCONF_BINARY): $(AUTOCONF_HOST_DIR)/.configured
$(MAKE1) -C $(AUTOCONF_HOST_DIR)
$(STAMP_DIR)/host_autoconf_installed: $(STAMP_DIR)/host_autoconf_compiled
$(AUTOCONF): $(AUTOCONF_HOST_DIR)/bin/$(AUTOCONF_BINARY)
$(MAKE) -C $(AUTOCONF_HOST_DIR) install
touch $@
host-autoconf: $(STAMP_DIR)/host_autoconf_installed
host-autoconf: host-m4 host-libtool $(AUTOCONF)
host-autoconf-clean:
rm -f $(addprefix $(STAMP_DIR)/host_autoconf_,unpacked configured compiled installed)
-$(MAKE) -C $(AUTOCONF_HOST_DIR) uninstall
$(MAKE) CC=$(HOST_CC) -C $(AUTOCONF_HOST_DIR) uninstall
-$(MAKE) -C $(AUTOCONF_HOST_DIR) clean
host-autoconf-dirclean:
rm -rf $(AUTOCONF_HOST_DIR)
#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(BR2_PACKAGE_AUTOCONF),y)
TARGETS+=autoconf
endif

View File

@@ -1,7 +1,5 @@
config BR2_PACKAGE_AUTOMAKE
bool "automake"
select BR2_PACKAGE_AUTOCONF
select BR2_PACKAGE_MICROPERL
help
Tool for automatically generating Makefile's for input to
configure scripts (made by autoconf).

View File

@@ -3,63 +3,139 @@
# automake
#
#############################################################
AUTOMAKE_VERSION = 1.10
AUTOMAKE_SOURCE = automake-$(AUTOMAKE_VERSION).tar.bz2
AUTOMAKE_SITE = $(BR2_GNU_MIRROR)/automake
ifeq ($(BR2_ENABLE_DEBUG),y) # install-exec doesn't install aclocal stuff
AUTOMAKE_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install
endif
AUTOMAKE_DEPENDENCIES = autoconf microperl
$(eval $(call AUTOTARGETS,package,automake))
# automake for the host
AUTOMAKE_HOST_DIR:=$(BUILD_DIR)/automake-$(AUTOMAKE_VERSION)-host
AUTOMAKE_VERSION:=1.10
AUTOMAKE_SOURCE:=automake-$(AUTOMAKE_VERSION).tar.bz2
AUTOMAKE_SITE:=$(BR2_GNU_MIRROR)/automake
AUTOMAKE_CAT:=$(BZCAT)
AUTOMAKE_SRC_DIR:=$(TOOL_BUILD_DIR)/automake-$(AUTOMAKE_VERSION)
AUTOMAKE_DIR:=$(BUILD_DIR)/automake-$(AUTOMAKE_VERSION)
AUTOMAKE_HOST_DIR:=$(TOOL_BUILD_DIR)/automake-$(AUTOMAKE_VERSION)-host
AUTOMAKE_BINARY:=automake
AUTOMAKE_TARGET_BINARY:=usr/bin/automake
AUTOMAKE:=$(STAGING_DIR)/usr/bin/automake
# variables used by other packages
AUTOMAKE:=$(HOST_DIR)/usr/bin/automake
ACLOCAL_DIR = $(STAGING_DIR)/usr/share/aclocal
ACLOCAL = $(HOST_DIR)/usr/bin/aclocal -I $(ACLOCAL_DIR)
ACLOCAL = aclocal -I $(ACLOCAL_DIR)
$(DL_DIR)/$(AUTOMAKE_SOURCE):
$(call DOWNLOAD,$(AUTOMAKE_SITE),$(AUTOMAKE_SOURCE))
$(call DOWNLOAD,$(AUTOMAKE_SITE),$(AUTOMAKE_SOURCE))
$(STAMP_DIR)/host_automake_unpacked: $(DL_DIR)/$(AUTOMAKE_SOURCE)
mkdir -p $(AUTOMAKE_HOST_DIR)
$(INFLATE$(suffix $(AUTOMAKE_SOURCE))) $< | \
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(AUTOMAKE_HOST_DIR) $(TAR_OPTIONS) -
toolchain/patch-kernel.sh $(AUTOMAKE_HOST_DIR) package/automake/ \*.patch
automake-source: $(DL_DIR)/$(AUTOMAKE_SOURCE)
$(AUTOMAKE_SRC_DIR)/.unpacked: $(DL_DIR)/$(AUTOMAKE_SOURCE)
$(AUTOMAKE_CAT) $(DL_DIR)/$(AUTOMAKE_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
$(CONFIG_UPDATE) $(AUTOMAKE_SRC_DIR)
touch $@
$(STAMP_DIR)/host_automake_configured: $(STAMP_DIR)/host_automake_unpacked $(STAMP_DIR)/host_autoconf_installed
#############################################################
#
# automake for the target
#
#############################################################
$(AUTOMAKE_DIR)/.configured: $(AUTOMAKE_SRC_DIR)/.unpacked
mkdir -p $(AUTOMAKE_DIR)
(cd $(AUTOMAKE_DIR); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
WANT_AUTOCONF=2.5 \
$(AUTOMAKE_SRC_DIR)/configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libdir=/lib \
--libexecdir=/usr/lib \
--sysconfdir=/etc \
--datadir=/usr/share \
--localstatedir=/var \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--includedir=/usr/include \
)
touch $@
$(AUTOMAKE_DIR)/$(AUTOMAKE_BINARY): $(AUTOMAKE_DIR)/.configured
$(MAKE) -C $(AUTOMAKE_DIR)
touch -c $@
$(TARGET_DIR)/$(AUTOMAKE_TARGET_BINARY): $(AUTOMAKE_DIR)/$(AUTOMAKE_BINARY)
$(MAKE) \
prefix=$(TARGET_DIR)/usr \
exec_prefix=$(TARGET_DIR)/usr \
bindir=$(TARGET_DIR)/usr/bin \
sbindir=$(TARGET_DIR)/usr/sbin \
libexecdir=$(TARGET_DIR)/usr/lib \
datadir=$(TARGET_DIR)/usr/share \
sysconfdir=$(TARGET_DIR)/etc \
localstatedir=$(TARGET_DIR)/var \
libdir=$(TARGET_DIR)/usr/lib \
infodir=$(TARGET_DIR)/usr/share/info \
mandir=$(TARGET_DIR)/usr/share/man \
includedir=$(TARGET_DIR)/usr/include \
-C $(AUTOMAKE_DIR) install
ifneq ($(BR2_HAVE_INFOPAGES),y)
rm -rf $(TARGET_DIR)/usr/share/info
endif
ifneq ($(BR2_HAVE_MANPAGES),y)
rm -rf $(TARGET_DIR)/usr/share/man
endif
rm -rf $(TARGET_DIR)/share/locale
rm -rf $(TARGET_DIR)/usr/share/doc
touch -c $@
automake: uclibc autoconf $(TARGET_DIR)/$(AUTOMAKE_TARGET_BINARY)
automake-clean:
$(MAKE) DESTDIR=$(TARGET_DIR) -C $(AUTOMAKE_DIR) uninstall
-$(MAKE) -C $(AUTOMAKE_DIR) clean
automake-dirclean:
rm -rf $(AUTOMAKE_DIR)
#############################################################
#
# automake for the host
#
#############################################################
$(AUTOMAKE_HOST_DIR)/.configured: $(AUTOMAKE_SRC_DIR)/.unpacked
mkdir -p $(AUTOMAKE_HOST_DIR)
(cd $(AUTOMAKE_HOST_DIR); rm -rf config.cache; \
$(HOST_CONFIGURE_OPTS) \
CFLAGS="$(HOST_CFLAGS)" \
LDFLAGS="$(HOST_LDFLAGS)" \
./configure $(QUIET) \
--prefix="$(HOST_DIR)/usr" \
--sysconfdir="$(HOST_DIR)/etc" \
--disable-static \
WANT_AUTOCONF=2.5 \
$(AUTOMAKE_SRC_DIR)/configure \
--prefix=$(STAGING_DIR)/usr \
)
touch $@
$(STAMP_DIR)/host_automake_compiled: $(STAMP_DIR)/host_automake_configured
$(AUTOMAKE_HOST_DIR)/$(AUTOMAKE_BINARY): $(AUTOMAKE_HOST_DIR)/.configured
$(MAKE) -C $(AUTOMAKE_HOST_DIR)
touch $@
touch -c $@
$(STAMP_DIR)/host_automake_installed: $(STAMP_DIR)/host_automake_compiled
$(AUTOMAKE): $(AUTOMAKE_HOST_DIR)/$(AUTOMAKE_BINARY)
$(MAKE) -C $(AUTOMAKE_HOST_DIR) install
mkdir -p $(STAGING_DIR)/usr/share/aclocal
touch $@
host-automake: $(STAMP_DIR)/host_automake_installed
host-automake: host-autoconf host-libtool $(AUTOMAKE)
host-automake-clean:
rm -f $(addprefix $(STAMP_DIR)/host_automake_,unpacked configured compiled installed)
-$(MAKE) -C $(AUTOMAKE_HOST_DIR) uninstall
$(MAKE) -C $(AUTOMAKE_HOST_DIR) uninstall
-$(MAKE) -C $(AUTOMAKE_HOST_DIR) clean
host-automake-dirclean:
rm -rf $(AUTOMAKE_HOST_DIR)
#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(BR2_PACKAGE_AUTOMAKE),y)
TARGETS+=automake
endif

View File

@@ -1,5 +1,6 @@
config BR2_PACKAGE_AVAHI
bool "avahi"
select BR2_PACKAGE_LIBDAEMON
select BR2_PACKAGE_GETTEXT if BR2_ENABLE_LOCALE
select BR2_PACKAGE_LIBINTL if BR2_ENABLE_LOCALE
help
@@ -12,7 +13,6 @@ config BR2_PACKAGE_AVAHI_AUTOIPD
bool "IPv4LL network address configuration daemon"
default y
depends on BR2_PACKAGE_AVAHI
select BR2_PACKAGE_LIBDAEMON
help
Avahi-autoipd implements IPv4LL, "Dynamic Configuration of
IPv4 Link-Local Addresses" (IETF RFC3927), a protocol for
@@ -24,7 +24,6 @@ config BR2_PACKAGE_AVAHI_AUTOIPD
config BR2_PACKAGE_AVAHI_DAEMON
bool "mDNS/DNS-SD daemon"
depends on BR2_PACKAGE_AVAHI
select BR2_PACKAGE_LIBDAEMON
select BR2_PACKAGE_EXPAT
help
The Avahi mDNS/DNS-SD daemon implementing Apple's ZeroConf

View File

@@ -10,13 +10,54 @@
# either version 2.1 of the License, or (at your option) any
# later version.
AVAHI_VERSION = 0.6.23
AVAHI_SOURCE = avahi-$(AVAHI_VERSION).tar.gz
AVAHI_SITE = http://www.avahi.org/download/
AVAHI_INSTALL_STAGING = YES
AVAHI_INSTALL_TARGET = YES
AVAHI_VERSION:=0.6.22
AVAHI_DIR:=$(BUILD_DIR)/avahi-$(AVAHI_VERSION)
AVAHI_SITE:=http://www.avahi.org/download/
AVAHI_SOURCE:=avahi-$(AVAHI_VERSION).tar.gz
AVAHI_CAT:=$(ZCAT)
AVAHI_CONF_ENV = ac_cv_func_strtod=yes \
AVAHI_TARGETS:=
ifeq ($(BR2_PACKAGE_AVAHI_AUTOIPD),y)
AVAHI_TARGETS+=$(TARGET_DIR)/usr/sbin/avahi-autoipd
endif
AVAHI_EXTRA_DEPS:=
ifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y)
AVAHI_TARGETS+=$(TARGET_DIR)/usr/sbin/avahi-daemon
AVAHI_DISABLE_EXPAT:=--with-xml=expat
# depend on the exact library file instead of expat so avahi isn't always
# considered out-of-date
AVAHI_EXTRA_DEPS+=$(STAGING_DIR)/usr/lib/libexpat.so.1
else
AVAHI_DISABLE_EXPAT:=--disable-expat --with-xml=none
endif
ifeq ($(BR2_PACKAGE_DBUS),y)
AVAHI_DISABLE_DBUS:=
AVAHI_EXTRA_DEPS+=$(STAGING_DIR)/usr/bin/dbus-daemon
else
AVAHI_DISABLE_DBUS:=--disable-dbus
endif
$(DL_DIR)/$(AVAHI_SOURCE):
$(call DOWNLOAD,$(AVAHI_SITE),$(AVAHI_SOURCE))
avahi-source: $(DL_DIR)/$(AVAHI_SOURCE)
$(AVAHI_DIR)/.unpacked: $(DL_DIR)/$(AVAHI_SOURCE)
$(AVAHI_CAT) $(DL_DIR)/$(AVAHI_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
toolchain/patch-kernel.sh $(AVAHI_DIR) package/avahi/ \*.patch
touch $@
$(AVAHI_DIR)/.configured: $(AVAHI_DIR)/.unpacked $(AVAHI_EXTRA_DEPS)
(cd $(AVAHI_DIR) && rm -rf config.cache && PATH=$(TARGET_PATH) autoconf)
(cd $(AVAHI_DIR) && \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
ac_cv_func_strtod=yes \
ac_fsusage_space=yes \
fu_cv_sys_stat_statfs2_bsize=yes \
ac_cv_func_closedir_void=no \
@@ -69,90 +110,94 @@ AVAHI_CONF_ENV = ac_cv_func_strtod=yes \
ac_cv_func_working_mktime=yes \
jm_cv_func_working_re_compile_pattern=yes \
ac_use_included_regex=no \
avahi_cv_sys_cxx_works=yes
AVAHI_CONF_OPT = --localstatedir=/var \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(REAL_GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
$(DISABLE_NLS) \
$(DISABLE_LARGEFILE) \
--disable-glib \
--disable-gobject \
--disable-qt3 \
--disable-qt4 \
--disable-gtk \
$(AVAHI_DISABLE_DBUS) \
$(AVAHI_DISABLE_EXPAT) \
--disable-gdbm \
--disable-python \
--disable-python-dbus \
--disable-pygtk \
--disable-mono \
--disable-monodoc \
--disable-stack-protector \
--with-distro=none \
$(if $(BR2_HAVE_MANPAGES),--enable,--disable)-manpages \
$(if $(BR2_PACKAGE_AVAHI_AUTOIPD),--enable,--disable)-autoipd \
--with-avahi-user=default \
--with-avahi-group=default \
--with-autoipd-user=default \
--with-autoipd-group=default
--with-autoipd-group=default \
)
touch $@
AVAHI_DEPENDENCIES = $(if $(BR2_PACKAGE_GETTEXT),gettext)
$(AVAHI_DIR)/.compiled: $(AVAHI_DIR)/.configured
$(MAKE) -C $(AVAHI_DIR) $(if $(BR2_ENABLE_LOCALE),LIBS=-lintl)
touch $@
ifneq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_AVAHI_AUTOIPD),)
AVAHI_DEPENDENCIES += libdaemon
else
AVAHI_CONF_OPT += --disable-libdaemon
endif
$(AVAHI_DIR)/.installed: $(AVAHI_DIR)/.compiled
mkdir -p $(STAGING_DIR)/etc/avahi
$(MAKE) DESTDIR=$(STAGING_DIR) -C $(AVAHI_DIR) install
touch $@
ifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y)
AVAHI_DEPENDENCIES += expat
AVAHI_CONF_OPT += --with-xml=expat
else
AVAHI_CONF_OPT += --with-xml=none
endif
ifeq ($(BR2_PACKAGE_DBUS),y)
AVAHI_DEPENDENCIES += dbus
else
AVAHI_CONF_OPT += --disable-dbus
endif
ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
AVAHI_DEPENDENCIES += libglib2
else
AVAHI_CONF_OPT += --disable-glib --disable-gobject
endif
ifeq ($(BR2_PACKAGE_LIBGLADE),y)
AVAHI_DEPENDENCIES += libglade
else
AVAHI_CONF_OPT += --disable-gtk
endif
ifeq ($(BR2_PACKAGE_PYTHON),y)
AVAHI_CONF_ENV += am_cv_pathless_PYTHON=python \
am_cv_path_PYTHON=$(PYTHON_TARGET_BINARY) \
am_cv_python_version=$(PYTHON_VERSION) \
am_cv_python_platform=linux2 \
am_cv_python_pythondir=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \
am_cv_python_pyexecdir=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \
py_cv_mod_socket_=yes
AVAHI_DEPENDENCIES += libpython
AVAHI_CONF_OPT += --enable-python
else
AVAHI_CONF_OPT += --disable-python
endif
ifeq ($(BR2_PACKAGE_LIBINTL),y)
AVAHI_DEPENDENCIES += libintl
AVAHI_MAKE_OPT = LIBS=-lintl
endif
$(eval $(call AUTOTARGETS,package,avahi))
$(AVAHI_HOOK_POST_INSTALL):
rm -rf $(TARGET_DIR)/etc/init.d/avahi-*
ifeq ($(BR2_PACKAGE_AVAHI_AUTOIPD),y)
rm -rf $(TARGET_DIR)/etc/dhcp3/
$(INSTALL) -D -m 0755 package/avahi/busybox-udhcpc-default.script $(TARGET_DIR)/usr/share/udhcpc/default.script
$(INSTALL) -m 0755 package/avahi/S05avahi-setup.sh $(TARGET_DIR)/etc/init.d/
$(TARGET_DIR)/usr/sbin/avahi-autoipd: $(AVAHI_DIR)/.installed
mkdir -p $(addprefix $(TARGET_DIR),\
/etc/avahi /etc/init.d /var/lib /usr/share/udhcpc /usr/sbin)
cp -af $(STAGING_DIR)/etc/avahi/avahi-autoipd.action $(TARGET_DIR)/etc/avahi/
cp -af package/avahi/busybox-udhcpc-default.script $(TARGET_DIR)/usr/share/udhcpc/default.script
chmod 0755 $(TARGET_DIR)/usr/share/udhcpc/default.script
cp -af package/avahi/S05avahi-setup.sh $(TARGET_DIR)/etc/init.d/
cp $(STAGING_DIR)/usr/sbin/avahi-autoipd $@
rm -f $(TARGET_DIR)/var/lib/avahi-autoipd
ln -sf /tmp/avahi-autoipd $(TARGET_DIR)/var/lib/avahi-autoipd
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
$(TARGET_DIR)/usr/sbin/avahi-daemon: $(AVAHI_DIR)/.installed
mkdir -p $(addprefix $(TARGET_DIR),\
/etc/avahi/services /usr/lib /usr/bin /usr/sbin)
cp -dpf $(STAGING_DIR)/usr/lib/libavahi-*.so* $(TARGET_DIR)/usr/lib/
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libavahi-*.so*
cp -af $(STAGING_DIR)/etc/avahi/avahi-daemon.conf $(TARGET_DIR)/etc/avahi/
cp -af package/avahi/S50avahi-daemon $(TARGET_DIR)/etc/init.d/
ifeq ($(BR2_PACKAGE_DBUS),y)
cp -dpf $(STAGING_DIR)/usr/bin/avahi-* $(TARGET_DIR)/usr/bin
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/bin/avahi-*
mkdir -p $(TARGET_DIR)/etc/dbus-1/system.d/
cp -r $(STAGING_DIR)/etc/dbus-1/system.d/avahi-* \
$(TARGET_DIR)/etc/dbus-1/system.d/
endif
ifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y)
$(INSTALL) -m 0755 package/avahi/S50avahi-daemon $(TARGET_DIR)/etc/init.d/
cp $(STAGING_DIR)/usr/sbin/avahi-daemon $@
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
avahi: host-autoconf uclibc libdaemon $(if $(BR2_ENABLE_LOCALE),gettext libintl) $(AVAHI_TARGETS)
avahi-clean:
-$(MAKE) -C $(AVAHI_DIR) distclean
-rm -rf $(TARGET_DIR)/etc/avahi
-rm -f $(TARGET_DIR)/var/lib/avahi-autoipd
-rm -f $(TARGET_DIR)/etc/init.d/S*avahi*
-rm -f $(TARGET_DIR)/usr/sbin/avahi-*
-rm -f $(TARGET_DIR)/usr/bin/avahi-*
-rm -f $(TARGET_DIR)/usr/lib/libavahi-*
avahi-dirclean:
rm -rf $(AVAHI_DIR)
#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(BR2_PACKAGE_AVAHI),y)
TARGETS+=avahi
endif
touch $@

View File

@@ -18,12 +18,6 @@ case "$1" in
if [ $? -eq 0 ]; then
/sbin/ifconfig $interface 0.0.0.0
fi
if [ -x /usr/sbin/avahi-autoipd ]; then
/usr/sbin/avahi-autoipd -k $interface
fi
;;
leasefail|nak)
if [ -x /usr/sbin/avahi-autoipd ]; then
/usr/sbin/avahi-autoipd -wD $interface --no-chroot
fi

View File

@@ -0,0 +1,77 @@
--- avahi/ltmain.sh.orig 2004-11-23 09:19:19.000000000 -0700
+++ avahi/ltmain.sh 2007-01-13 14:36:53.000000000 -0700
@@ -231,8 +231,9 @@
# line option must be used.
if test -z "$tagname"; then
$echo "$modename: unable to infer tagged configuration"
- $echo "$modename: specify a tag with \`--tag'" 1>&2
- exit $EXIT_FAILURE
+ $echo "$modename: defaulting to \`CC'"
+ $echo "$modename: if this is not correct, specify a tag with \`--tag'"
+# exit $EXIT_FAILURE
# else
# $echo "$modename: using $tagname tagged configuration"
fi
@@ -2279,8 +2280,14 @@
absdir="$abs_ladir"
libdir="$abs_ladir"
else
- dir="$libdir"
- absdir="$libdir"
+ # Adding 'libdir' from the .la file to our library search paths
+ # breaks crosscompilation horribly. We cheat here and don't add
+ # it, instead adding the path where we found the .la. -CL
+ dir="$abs_ladir"
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ #dir="$libdir"
+ #absdir="$libdir"
fi
else
if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
@@ -2754,6 +2761,16 @@
esac
if grep "^installed=no" $deplib > /dev/null; then
path="$absdir/$objdir"
+# This interferes with crosscompilation. -CL
+# else
+# eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+# if test -z "$libdir"; then
+# $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+# exit 1
+# fi
+# if test "$absdir" != "$libdir"; then
+# $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+# fi
else
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
if test -z "$libdir"; then
@@ -5141,6 +5158,10 @@
# Replace all uninstalled libtool libraries with the installed ones
newdependency_libs=
for deplib in $dependency_libs; do
+ # Replacing uninstalled with installed can easily break crosscompilation,
+ # since the installed path is generally the wrong architecture. -CL
+ newdependency_libs="$newdependency_libs $deplib"
+ continue
case $deplib in
*.la)
name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
@@ -5459,10 +5480,13 @@
# At present, this check doesn't affect windows .dll's that
# are installed into $libdir/../bin (currently, that works fine)
# but it's something to keep an eye on.
- if test "$inst_prefix_dir" = "$destdir"; then
- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
- exit $EXIT_FAILURE
- fi
+ #
+ # This breaks install into our staging area. -PB
+ #
+ # if test "$inst_prefix_dir" = "$destdir"; then
+ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+ # exit $EXIT_FAILURE
+ # fi
if test -n "$inst_prefix_dir"; then
# Stick the inst_prefix_dir data into the link command.

View File

@@ -36,7 +36,7 @@ ifeq ($(BR2_HAVE_MANPAGES),y)
$(MAKE) DESTDIR=$(TARGET_DIR) -C $(AXEL_DIR) install-man
endif
axel: $(TARGET_DIR)/$(AXEL_TARGET_BINARY)
axel: uclibc $(TARGET_DIR)/$(AXEL_TARGET_BINARY)
axel-clean:
$(MAKE) DESTDIR=$(TARGET_DIR) -C $(AXEL_DIR) uninstall

View File

@@ -46,7 +46,7 @@ $(BASH_DIR)/.configured: $(BASH_DIR)/.unpacked
bash_cv_getcwd_malloc=yes \
bash_cv_func_sigsetjmp=present \
bash_cv_printf_a_format=yes \
./configure $(QUIET) \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
@@ -92,9 +92,9 @@ endif
# If both bash and busybox are selected, make certain bash wins
# the fight over who gets to own the /bin/sh symlink.
ifeq ($(BR2_PACKAGE_BUSYBOX),y)
bash: ncurses busybox $(TARGET_DIR)/$(BASH_TARGET_BINARY)
bash: ncurses uclibc busybox $(TARGET_DIR)/$(BASH_TARGET_BINARY)
else
bash: ncurses $(TARGET_DIR)/$(BASH_TARGET_BINARY)
bash: ncurses uclibc $(TARGET_DIR)/$(BASH_TARGET_BINARY)
endif
# If both bash and busybox are selected, the /bin/sh symlink

View File

@@ -20,11 +20,10 @@ $(DB_DIR)/.dist: $(DL_DIR)/$(DB_SOURCE)
touch $@
$(DB_DIR)/.configured: $(DB_DIR)/.dist
$(CONFIG_UPDATE) $(DB_DIR)/dist
(cd $(DB_DIR)/build_unix; rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
../dist/configure $(QUIET) \
../dist/configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
@@ -90,7 +89,7 @@ berkeleydb-clean:
berkeleydb-dirclean:
rm -rf $(DB_DIR)
berkeleydb: $(TARGET_DIR)/lib/$(DB_SHARLIB)
berkeleydb: uclibc $(TARGET_DIR)/lib/$(DB_SHARLIB)
#############################################################
#

View File

@@ -3,7 +3,6 @@ comment "bind has no inherent support for AVR32"
config BR2_PACKAGE_BIND
bool "bind"
depends on BR2_LARGEFILE
help
BIND (Berkeley Internet Name Domain) is an implementation of
the Domain Name System (DNS) protocols and provides an openly
@@ -23,12 +22,3 @@ config BR2_PACKAGE_BIND
intended to be linked with applications requiring name service.
http://www.isc.org/sw/bind/
config BR2_PACKAGE_BIND_TOOLS
bool "Install tools"
depends on BR2_PACKAGE_BIND
help
Install tools (host, nslookup, dig, nsupdate)
comment "bind requires a toolchain with LARGEFILE support"
depends on !BR2_LARGEFILE

View File

@@ -0,0 +1,33 @@
---
lib/isc/unix/ifiter_ioctl.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
Index: bind-9.3.2/lib/isc/unix/ifiter_ioctl.c
===================================================================
--- bind-9.3.2.orig/lib/isc/unix/ifiter_ioctl.c
+++ bind-9.3.2/lib/isc/unix/ifiter_ioctl.c
@@ -17,11 +17,12 @@
/* $Id: ifiter_ioctl.c,v 1.19.2.5.2.17 2005/10/14 02:13:07 marka Exp $ */
+#include <string.h>
+
/*
* Obtain the list of network interfaces using the SIOCGLIFCONF ioctl.
* See netintro(4).
*/
-
#if defined(SIOCGLIFCONF) && defined(SIOCGLIFADDR)
#ifdef ISC_PLATFORM_HAVEIF_LADDRCONF
#define lifc_len iflc_len
@@ -478,8 +479,8 @@
for (i = 0; i < 16; i++) {
unsigned char byte;
static const char hex[] = "0123456789abcdef";
- byte = ((index(hex, address[i * 2]) - hex) << 4) |
- (index(hex, address[i * 2 + 1]) - hex);
+ byte = ((strchr(hex, address[i * 2]) - hex) << 4) |
+ (strchr(hex, address[i * 2 + 1]) - hex);
addr6.s6_addr[i] = byte;
}
iter->current.af = AF_INET6;

View File

@@ -0,0 +1,11 @@
--- bind-9.3.2/lib/dns/Makefile.in
+++ bind-9.3.2/lib/dns/Makefile.in
@@ -156,7 +156,7 @@
./gen -s ${srcdir} > code.h
gen: gen.c
- ${CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}
+ cc ${ALL_CFLAGS} -o $@ ${srcdir}/gen.c
rbtdb64.@O@: rbtdb.c

View File

@@ -1,14 +0,0 @@
diff -Nura bind-9.5.1-P1/lib/dns/Makefile.in bind-9.5.1-P1.gencross/lib/dns/Makefile.in
--- bind-9.5.1-P1/lib/dns/Makefile.in 2007-09-11 22:09:08.000000000 -0300
+++ bind-9.5.1-P1.gencross/lib/dns/Makefile.in 2009-03-04 16:35:23.000000000 -0200
@@ -160,8 +160,8 @@
./gen -s ${srcdir} > code.h
gen: gen.c
- ${BUILD_CC} ${BUILD_CFLAGS} -I${top_srcdir}/lib/isc/include \
- ${BUILD_CPPFLAGS} ${BUILD_LDFLAGS} -o $@ ${srcdir}/gen.c ${BUILD_LIBS}
+ ${HOSTCC} ${HOST_CFLAGS} -I${top_srcdir}/lib/isc/include \
+ ${HOST_LDFLAGS} -o $@ ${srcdir}/gen.c
rbtdb64.@O@: rbtdb.c

View File

@@ -1,23 +0,0 @@
diff -Nura bind-9.5.1-P1/lib/isc/unix/ifiter_ioctl.c bind-9.5.1-P1.nosusv3/lib/isc/unix/ifiter_ioctl.c
--- bind-9.5.1-P1/lib/isc/unix/ifiter_ioctl.c 2007-08-30 03:02:28.000000000 -0300
+++ bind-9.5.1-P1.nosusv3/lib/isc/unix/ifiter_ioctl.c 2009-03-04 16:31:20.000000000 -0200
@@ -17,6 +17,8 @@
/* $Id: ifiter_ioctl.c,v 1.58 2007/08/30 06:02:28 marka Exp $ */
+#include <string.h>
+
/*! \file
* \brief
* Obtain the list of network interfaces using the SIOCGLIFCONF ioctl.
@@ -479,8 +481,8 @@
for (i = 0; i < 16; i++) {
unsigned char byte;
static const char hex[] = "0123456789abcdef";
- byte = ((index(hex, address[i * 2]) - hex) << 4) |
- (index(hex, address[i * 2 + 1]) - hex);
+ byte = ((strchr(hex, address[i * 2]) - hex) << 4) |
+ (strchr(hex, address[i * 2 + 1]) - hex);
addr6.s6_addr[i] = byte;
}
iter->current.af = AF_INET6;

View File

@@ -3,45 +3,99 @@
# bind
#
#############################################################
BIND_VERSION = 9.5.1-P3
BIND_SOURCE = bind-$(BIND_VERSION).tar.gz
BIND_SITE = ftp://ftp.isc.org/isc/bind9/$(BIND_VERSION)
BIND_LIBTOOL_PATCH = NO
BIND_INSTALL_STAGING = NO
BIND_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install
BIND_TARGET_SBINS = lwresd named named-checkconf named-checkzone
BIND_TARGET_SBINS += named-compilezone rndc rndc-confgen
BIND_TARGET_SBINS += dnssec-keygen dnssec-signzone
BIND_TARGET_BINS = dig host nslookup nsupdate
BIND_TARGET_LIBS = libbind9.* libdns.* libisccc.* libisccfg.* libisc.* liblwres.*
BIND_CONF_ENV = BUILD_CC="$(TARGET_CC)" \
BUILD_CFLAGS="$(TARGET_CFLAGS)"
BIND_CONF_OPT = $(DISABLE_IPV6) \
--sysconfdir=/etc \
--localstatedir=/var \
--with-randomdev=/dev/urandom \
--with-openssl=no \
--with-libxml2=no \
--with-pic \
--with-libtool \
--disable-epoll \
--disable-threads
BIND_VERSION:=9.3.2
BIND_SOURCE:=bind-$(BIND_VERSION).tar.gz
BIND_SITE:=ftp://ftp.isc.org/isc/bind9/$(BIND_VERSION)
BIND_DIR1:=$(TOOL_BUILD_DIR)/bind-$(BIND_VERSION)
BIND_DIR2:=$(BUILD_DIR)/bind-$(BIND_VERSION)
BIND_CAT:=$(ZCAT)
BIND_BINARY:=bin/named/named
BIND_TARGET_BINARY:=usr/sbin/named
$(eval $(call AUTOTARGETS,package,bind))
$(DL_DIR)/$(BIND_SOURCE):
$(call DOWNLOAD,$(BIND_SITE),$(BIND_SOURCE))
$(BIND_HOOK_POST_INSTALL):
rm -f $(TARGET_DIR)/usr/bin/isc-config.sh
ifneq ($(BR2_PACKAGE_BIND_TOOLS),y)
rm -rf $(addprefix $(TARGET_DIR)/usr/bin/, $(BIND_TARGET_BINS))
endif
$(INSTALL) -m 0755 -D package/bind/bind.sysvinit $(TARGET_DIR)/etc/init.d/S81named
bind-source: $(DL_DIR)/$(BIND_SOURCE)
#############################################################
#
# build bind for use on the target system
#
#############################################################
$(BIND_DIR2)/.unpacked: $(DL_DIR)/$(BIND_SOURCE)
$(BIND_CAT) $(DL_DIR)/$(BIND_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
toolchain/patch-kernel.sh $(BIND_DIR2) package/bind/ bind\*.patch
touch $@
$(BIND_TARGET_UNINSTALL):
$(call MESSAGE,"Uninstalling")
rm -rf $(addprefix $(TARGET_DIR)/usr/sbin/, $(BIND_TARGET_SBINS))
rm -rf $(addprefix $(TARGET_DIR)/usr/bin/, $(BIND_TARGET_BINS))
rm -rf $(addprefix $(TARGET_DIR)/usr/lib/, $(BIND_TARGET_LIBS))
rm -f $(TARGET_DIR)/etc/init.d/S81named
rm -f $(BIND_TARGET_INSTALL_TARGET) $(BIND_HOOK_POST_INSTALL)
$(BIND_DIR2)/Makefile: $(BIND_DIR2)/.unpacked
(cd $(BIND_DIR2); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
--prefix=/usr \
--libdir=/lib \
--libexecdir=/usr/lib \
--libdir=/lib \
--includedir=/include \
--sysconfdir=/etc \
--localstatedir=/var \
--without-openssl \
--with-randomdev=/dev/random \
$(DISABLE_IPV6) \
--with-libtool \
--with-pic \
)
$(BIND_DIR2)/$(BIND_BINARY): $(BIND_DIR2)/Makefile
$(MAKE) $(TARGET_CONFIGURE_OPTS) -j1 -C $(BIND_DIR2)
touch -c $@
#############################################################
#
# install bind binaries
#
#############################################################
$(TARGET_DIR)/$(BIND_TARGET_BINARY): $(BIND_DIR2)/$(BIND_BINARY)
$(MAKE) $(TARGET_CONFIGURE_OPTS) -j1 MAKEDEFS="INSTALL_DATA=true" \
DESTDIR=$(TARGET_DIR) -C $(BIND_DIR2)/bin install
cd $(TARGET_DIR)/usr/man; rmdir --ignore-fail-on-non-empty man8 man5 `pwd`
$(INSTALL) -m 0755 -D package/bind/bind.sysvinit $(TARGET_DIR)/etc/init.d/S81named
bind-bin: $(TARGET_DIR)/$(BIND_TARGET_BINARY) bind-lib
#############################################################
#
# install bind libraries
#
#############################################################
$(STAGING_DIR)/lib/libdns.so: $(BIND_DIR2)/$(BIND_BINARY)
$(MAKE) $(TARGET_CONFIGURE_OPTS) -j1 DESTDIR=$(STAGING_DIR) -C $(BIND_DIR2)/lib install
$(TARGET_DIR)/lib/libdns.so: $(STAGING_DIR)/lib/libdns.so
mkdir -p $(TARGET_DIR)/lib
cd $(STAGING_DIR)/lib; \
cp -a libdns*so* libisc*so* libbind9*so* \
liblwres*so* $(TARGET_DIR)/lib
bind-lib: $(STAGING_DIR)/lib/libdns.so $(TARGET_DIR)/lib/libdns.so
bind: uclibc bind-bin bind-lib
bind-clean:
-$(MAKE) -C $(BIND_DIR2) clean
bind-dirclean:
rm -rf $(BIND_DIR2)
#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(BR2_PACKAGE_BIND),y)
TARGETS+=bind
endif

View File

@@ -26,7 +26,7 @@ $(BISON_DIR)/.configured: $(BISON_DIR)/.unpacked
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
gt_cv_func_gnugettext2_libintl=yes \
./configure $(QUIET) \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
@@ -62,7 +62,7 @@ endif
rm -rf $(TARGET_DIR)/usr/share/doc
cp -a package/bison/yacc $(TARGET_DIR)/usr/bin/yacc
bison: $(TARGET_DIR)/$(BISON_TARGET_BINARY)
bison: uclibc $(TARGET_DIR)/$(BISON_TARGET_BINARY)
bison-clean:
-$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BISON_DIR) uninstall

View File

@@ -1,7 +1,6 @@
config BR2_PACKAGE_BLACKBOX
bool "blackbox"
depends on BR2_PACKAGE_XORG7
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_PACKAGE_XORG||BR2_PACKAGE_XORG7
help
Blackbox is a fast, lightweight window manager for the X
Window System.

View File

@@ -1,106 +0,0 @@
diff -Naupr blackbox-0.70.1.orig/lib/Image.cc blackbox-0.70.1/lib/Image.cc
--- blackbox-0.70.1.orig/lib/Image.cc 2005-04-08 17:41:09.000000000 +0200
+++ blackbox-0.70.1/lib/Image.cc 2008-02-24 08:31:28.000000000 +0100
@@ -42,8 +42,9 @@
#include <assert.h>
#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
// #define COLORTABLE_DEBUG
// #define MITSHM_DEBUG
diff -Naupr blackbox-0.70.1.orig/lib/Resource.cc blackbox-0.70.1/lib/Resource.cc
--- blackbox-0.70.1.orig/lib/Resource.cc 2005-04-06 23:16:50.000000000 +0200
+++ blackbox-0.70.1/lib/Resource.cc 2008-02-24 08:33:11.000000000 +0100
@@ -28,7 +28,8 @@
#include <X11/Xlib.h>
#include <X11/Xresource.h>
-#include <stdio.h>
+#include <cstdio>
+#include <cstring>
bt::Resource::Resource(void)
diff -Naupr blackbox-0.70.1.orig/lib/XDG.cc blackbox-0.70.1/lib/XDG.cc
--- blackbox-0.70.1.orig/lib/XDG.cc 2005-04-06 16:04:38.000000000 +0200
+++ blackbox-0.70.1/lib/XDG.cc 2008-02-24 08:34:11.000000000 +0100
@@ -25,7 +25,8 @@
#include "Util.hh"
#include "XDG.hh"
-#include <stdlib.h>
+#include <cstdlib>
+#include <algorithm>
// make sure directory names end with a slash
diff -Naupr blackbox-0.70.1.orig/src/BlackboxResource.cc blackbox-0.70.1/src/BlackboxResource.cc
--- blackbox-0.70.1.orig/src/BlackboxResource.cc 2005-10-18 09:34:46.000000000 +0200
+++ blackbox-0.70.1/src/BlackboxResource.cc 2008-02-24 08:34:49.000000000 +0100
@@ -33,6 +33,8 @@
#include <X11/Xutil.h>
#include <X11/cursorfont.h>
+#include <cstring>
+
BlackboxResource::BlackboxResource(const std::string& rc): rc_file(rc) {
screen_resources = 0;
diff -Naupr blackbox-0.70.1.orig/src/main.cc blackbox-0.70.1/src/main.cc
--- blackbox-0.70.1.orig/src/main.cc 2005-01-03 10:42:57.000000000 +0100
+++ blackbox-0.70.1/src/main.cc 2008-02-24 08:37:16.000000000 +0100
@@ -34,7 +34,8 @@
#include "blackbox.hh"
#include "../version.h"
-#include <stdio.h>
+#include <cstdio>
+#include <cstring>
static void showHelp(int exitval) {
diff -Naupr blackbox-0.70.1.orig/src/Screen.cc blackbox-0.70.1/src/Screen.cc
--- blackbox-0.70.1.orig/src/Screen.cc 2005-10-18 10:07:22.000000000 +0200
+++ blackbox-0.70.1/src/Screen.cc 2008-02-24 08:35:46.000000000 +0100
@@ -45,8 +45,9 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <assert.h>
-#include <ctype.h>
#include <dirent.h>
+#include <cctype>
+#include <cstring>
static bool running = true;
diff -Naupr blackbox-0.70.1.orig/src/ScreenResource.cc blackbox-0.70.1/src/ScreenResource.cc
--- blackbox-0.70.1.orig/src/ScreenResource.cc 2005-04-13 07:54:08.000000000 +0200
+++ blackbox-0.70.1/src/ScreenResource.cc 2008-02-24 08:36:31.000000000 +0100
@@ -33,6 +33,8 @@
#include <assert.h>
+#include <cstring>
+
static const int iconify_width = 9;
static const int iconify_height = 9;
diff -Naupr blackbox-0.70.1.orig/util/bsetroot.cc blackbox-0.70.1/util/bsetroot.cc
--- blackbox-0.70.1.orig/util/bsetroot.cc 2005-03-15 08:01:37.000000000 +0100
+++ blackbox-0.70.1/util/bsetroot.cc 2008-02-24 08:38:41.000000000 +0100
@@ -30,7 +30,9 @@
#include <cctype>
#include <X11/Xatom.h>
-#include <stdio.h>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
// ignore all X errors

View File

@@ -14,6 +14,6 @@ BLACKBOX_INSTALL_TARGET:=YES
BLACKBOX_CONF_OPT:=--x-includes=$(STAGING_DIR)/usr/include/X11 \
--x-libraries=$(STAGING_DIR)/usr/lib
BLACKBOX_DEPENDENCIES:=xserver_xorg-server
BLACKBOX_DEPENDENCIES:=uclibc $(XSERVER)
$(eval $(call AUTOTARGETS,package,blackbox))

View File

@@ -1,5 +0,0 @@
config BR2_PACKAGE_BMON
bool "bmon"
select BR2_PACKAGE_NCURSES
help
Linux bandwidth monitor

View File

@@ -1,36 +0,0 @@
diff -ru bmon-2.1.0~/src/out_audio.c bmon-2.1.0/src/out_audio.c
--- bmon-2.1.0~/src/out_audio.c 2008-07-26 20:06:24.000000000 +0200
+++ bmon-2.1.0/src/out_audio.c 2008-07-26 20:09:42.000000000 +0200
@@ -141,7 +141,7 @@
.om_draw = audio_draw,
.om_set_opts = audio_set_opts,
.om_probe = audio_probe,
- .om_shutdown audio_shutdown,
+ .om_shutdown = audio_shutdown
};
static void __init audio_init(void)
diff -ru bmon-2.1.0~/src/out_db.c bmon-2.1.0/src/out_db.c
--- bmon-2.1.0~/src/out_db.c 2008-07-26 20:06:24.000000000 +0200
+++ bmon-2.1.0/src/out_db.c 2008-07-26 20:07:44.000000000 +0200
@@ -679,7 +679,7 @@
.om_draw = db_draw,
.om_set_opts = db_set_opts,
.om_probe = db_probe,
- .om_shutdown db_shutdown,
+ .om_shutdown = db_shutdown,
};
static void __init db_init(void)
diff -ru bmon-2.1.0~/src/out_xml_event.c bmon-2.1.0/src/out_xml_event.c
--- bmon-2.1.0~/src/out_xml_event.c 2008-07-26 20:06:24.000000000 +0200
+++ bmon-2.1.0/src/out_xml_event.c 2008-07-26 20:09:42.000000000 +0200
@@ -127,7 +127,7 @@
.om_draw = xml_event_draw,
.om_set_opts = xml_event_set_opts,
.om_probe = xml_event_probe,
- .om_shutdown xml_event_shutdown,
+ .om_shutdown = xml_event_shutdown
};
static void __init xml_event_init(void)

View File

@@ -1,24 +0,0 @@
diff -Nura bmon/configure bmon.libnl/configure
--- bmon/configure 2005-04-05 12:01:33.000000000 -0300
+++ bmon.libnl/configure 2009-06-10 16:10:52.000000000 -0300
@@ -7327,13 +7327,13 @@
echo "${ECHO_T}$ac_cv_lib_nl_nl_connect" >&6
if test $ac_cv_lib_nl_nl_connect = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_NL "1"
-_ACEOF
-
- LIBNL="-lnl"
- NL="Yes"
+ case ${target_os} in
+ *linux*)
+ echo
+ echo "*** Warning: Building bmon on Linux w/o libnl ***"
+ echo
+ ;;
+ esac
else

View File

@@ -1,12 +0,0 @@
diff -Nura bmon/GNUmakefile bmon.nostrip/GNUmakefile
--- bmon/GNUmakefile 2005-04-05 12:01:33.000000000 -0300
+++ bmon.nostrip/GNUmakefile 2009-06-10 16:12:04.000000000 -0300
@@ -50,7 +50,7 @@
install:
./install-sh -d -m 0755 $(DESTDIR)$(prefix)/bin
./install-sh -d -m 0755 $(DESTDIR)$(mandir)/man1
- ./install-sh -c -s -m 0755 src/bmon $(DESTDIR)$(prefix)/bin
+ ./install-sh -c -m 0755 src/bmon $(DESTDIR)$(prefix)/bin
./install-sh -c -m 0644 man/bmon.1 $(DESTDIR)$(mandir)/man1
show: Makefile.opts

View File

@@ -1,18 +0,0 @@
#############################################################
#
# bmon
#
#############################################################
BMON_VERSION = 2.1.0
BMON_SOURCE = bmon-$(BMON_VERSION).tar.gz
BMON_SITE = http://distfiles.gentoo.org/distfiles
BMON_DEPENDENCIES = ncurses
BMON_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install
$(eval $(call AUTOTARGETS,package,bmon))
$(BMON_TARGET_UNINSTALL):
$(call MESSAGE,"Uninstalling")
rm -f $(TARGET_DIR)/usr/bin/bmon
rm -f $(BMON_TARGET_INSTALL_TARGET) $(BMON_HOOK_POST_INSTALL)

View File

@@ -29,7 +29,7 @@ $(BOA_WORKDIR)/Makefile: $(BOA_DIR)/.unpacked
(cd $(BOA_WORKDIR); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
$(BOA_DIR)/configure $(QUIET) \
$(BOA_DIR)/configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
@@ -63,7 +63,7 @@ $(BOA_WORKDIR)/.installed: $(BOA_WORKDIR)/src/boa $(BOA_WORKDIR)/src/boa_indexer
$(STRIPCMD) $(STRIP_STRIP_ALL) $(TARGET_DIR)/usr/sbin/boa $(TARGET_DIR)/usr/lib/boa/boa_indexer
touch $(BOA_WORKDIR)/.installed
boa: $(BOA_WORKDIR)/.installed
boa: uclibc $(BOA_WORKDIR)/.installed
boa-source: $(DL_DIR)/$(BOA_SOURCE)

View File

@@ -1,6 +1,5 @@
config BR2_PACKAGE_BOOTUTILS
bool "bootutils"
depends on BR2_LARGEFILE
help
BootUtils is a collection of utilities to facilitate booting of
Linux 2.6-based systems. The process of finding the root volume
@@ -9,5 +8,3 @@ config BR2_PACKAGE_BOOTUTILS
http://bootutils.pr.linuxrulz.org/
comment "bootutils requires a toolchain with LARGEFILE support"
depends on !BR2_LARGEFILE

View File

@@ -12,6 +12,7 @@ BRIDGE_INSTALL_STAGING:=NO
BRIDGE_INSTALL_TARGET:=YES
BRIDGE_INSTALL_TARGET_OPT:=DESTDIR=$(TARGET_DIR) install
BRIDGE_CONF_OPT:=--with-linux-headers=$(LINUX_HEADERS_DIR)
BRIDGE_DEPENDENCIES:=uclibc
$(eval $(call AUTOTARGETS,package,bridge))

View File

@@ -33,7 +33,7 @@ $(TARGET_DIR)/$(BSDIFF_TARGET_BINARY): $(BSDIFF_DIR)/$(BSDIFF_BINARY)
cp -dpf $(BSDIFF_DIR)/bsdiff $(TARGET_DIR)/usr/bin/.
cp -dpf $(BSDIFF_DIR)/bspatch $(TARGET_DIR)/usr/bin/.
bsdiff: bzip2 $(TARGET_DIR)/$(BSDIFF_TARGET_BINARY)
bsdiff: uclibc bzip2 $(TARGET_DIR)/$(BSDIFF_TARGET_BINARY)
bsdiff-source: $(DL_DIR)/$(BSDIFF_SOURCE)

View File

@@ -12,24 +12,44 @@ config BR2_PACKAGE_BUSYBOX
choice
prompt "BusyBox Version"
depends on BR2_PACKAGE_BUSYBOX
default BR2_BUSYBOX_VERSION_1_15_X
default BR2_BUSYBOX_VERSION_1_13_X
help
Select the version of BusyBox you wish to use.
config BR2_BUSYBOX_VERSION_1_2_2_1
bool "BusyBox 1.2.2.1"
depends on BR2_DEPRECATED
config BR2_BUSYBOX_VERSION_1_6_1
bool "BusyBox 1.6.1"
depends on BR2_DEPRECATED
config BR2_BUSYBOX_VERSION_1_7_X
bool "BusyBox 1.7.x"
depends on BR2_DEPRECATED
config BR2_BUSYBOX_VERSION_1_8_X
bool "BusyBox 1.8.x"
depends on BR2_DEPRECATED
config BR2_BUSYBOX_VERSION_1_9_X
bool "BusyBox 1.9.x"
depends on BR2_DEPRECATED
config BR2_BUSYBOX_VERSION_1_10_X
bool "BusyBox 1.10.x"
depends on BR2_DEPRECATED
config BR2_BUSYBOX_VERSION_1_11_X
bool "BusyBox 1.11.x"
depends on BR2_DEPRECATED
config BR2_BUSYBOX_VERSION_1_12_X
bool "BusyBox 1.12.x"
depends on BR2_DEPRECATED
depends on BR2_DEPRECATED || BR2_RECENT
config BR2_BUSYBOX_VERSION_1_13_X
bool "BusyBox 1.13.x"
depends on BR2_RECENT
config BR2_BUSYBOX_VERSION_1_14_X
bool "BusyBox 1.14.x"
depends on BR2_DEPRECATED || BR2_RECENT
config BR2_BUSYBOX_VERSION_1_15_X
bool "BusyBox 1.15.x"
config BR2_PACKAGE_BUSYBOX_SNAPSHOT
bool "daily snapshot"
@@ -38,10 +58,15 @@ endchoice
config BR2_BUSYBOX_VERSION
string
default "1.2.2.1" if BR2_BUSYBOX_VERSION_1_2_2_1
default "1.6.1" if BR2_BUSYBOX_VERSION_1_6_1
default "1.7.5" if BR2_BUSYBOX_VERSION_1_7_X
default "1.8.3" if BR2_BUSYBOX_VERSION_1_8_X
default "1.9.2" if BR2_BUSYBOX_VERSION_1_9_X
default "1.10.4" if BR2_BUSYBOX_VERSION_1_10_X
default "1.11.3" if BR2_BUSYBOX_VERSION_1_11_X
default "1.12.4" if BR2_BUSYBOX_VERSION_1_12_X
default "1.13.4" if BR2_BUSYBOX_VERSION_1_13_X
default "1.14.4" if BR2_BUSYBOX_VERSION_1_14_X
default "1.15.2" if BR2_BUSYBOX_VERSION_1_15_X
default "1.13.2" if BR2_BUSYBOX_VERSION_1_13_X
config BR2_PACKAGE_BUSYBOX_FULLINSTALL
bool "Run BusyBox's own full installation"
@@ -59,22 +84,28 @@ config BR2_PACKAGE_BUSYBOX_FULLINSTALL
config BR2_PACKAGE_BUSYBOX_CONFIG
string "BusyBox configuration file to use?"
depends on BR2_PACKAGE_BUSYBOX
default "package/busybox/busybox-1.13.x.config" if BR2_PACKAGE_BUSYBOX_SNAPSHOT
default "target/device/x86/i386/busybox.config" if BR2_PACKAGE_BUSYBOX_SNAPSHOT
default "package/busybox/busybox-1.2.2.1.config" if BR2_BUSYBOX_VERSION_1_2_2_1
default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_6_1
default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_7_X
default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_8_X
default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_9_X
default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_10_X
default "package/busybox/busybox-1.11.x.config" if BR2_BUSYBOX_VERSION_1_11_X
default "package/busybox/busybox-1.11.x.config" if BR2_BUSYBOX_VERSION_1_12_X
default "package/busybox/busybox-1.13.x.config" if BR2_BUSYBOX_VERSION_1_13_X
default "package/busybox/busybox-1.13.x.config" if BR2_BUSYBOX_VERSION_1_14_X
default "package/busybox/busybox-1.13.x.config" if BR2_BUSYBOX_VERSION_1_15_X
help
Some people may wish to use their own modified BusyBox configuration
file, and will specify their config file location with this option.
Most people will just use the default BusyBox configuration file.
config BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
bool "Show packages that are also provided by busybox" if BR2_PACKAGE_BUSYBOX
default y if !BR2_PACKAGE_BUSYBOX
config BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
bool "Hide applications that are provided by busybox"
depends on BR2_PACKAGE_BUSYBOX
default y
help
Show packages in menuconfig that are potentially also provided
Do not show packages in menuconfig that are potentially provided
by busybox.
config BR2_PACKAGE_BUSYBOX_SKELETON

View File

@@ -0,0 +1,121 @@
--- busybox-1.13.2/modutils/depmod.c Sun Nov 9 18:28:03 2008
+++ busybox-1.13.2-depmod/modutils/depmod.c Mon Jan 12 23:12:59 2009
@@ -33,7 +33,7 @@
enum {
ARG_a = (1<<0), /* All modules, ignore mods in argv */
ARG_A = (1<<1), /* Only emit .ko that are newer than modules.dep file */
- ARG_b = (1<<2), /* not /lib/modules/$(uname -r)/ but this base-dir */
+ ARG_b = (1<<2), /* base directory when modules are in staging area */
ARG_e = (1<<3), /* with -F, print unresolved symbols */
ARG_F = (1<<4), /* System.map that contains the symbols */
ARG_n = (1<<5) /* dry-run, print to stdout only */
@@ -57,7 +57,7 @@
*first = info;
info->dnext = info->dprev = info;
- info->name = xstrdup(fname);
+ info->name = xasprintf("/%s", fname);
info->modname = filename2modname(fname, NULL);
for (ptr = image; ptr < image + len - 10; ptr++) {
if (strncmp(ptr, "depends=", 8) == 0) {
@@ -123,44 +123,61 @@
}
}
+static void xfreopen_write(const char *file, FILE *f)
+{
+ if (freopen(file, "w", f) == NULL)
+ bb_perror_msg_and_die("can't open '%s'", file);
+}
+
int depmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int depmod_main(int argc UNUSED_PARAM, char **argv)
{
module_info *modules = NULL, *m, *dep;
- char *moddir_base = (char *)CONFIG_DEFAULT_MODULES_DIR;
+ const char *moddir_base = "/";
+ char *moddir, *version;
+ struct utsname uts;
int tmp;
getopt32(argv, "aAb:eF:n", &moddir_base, NULL);
argv += optind;
/* goto modules location */
+ xchdir(moddir_base);
/* If a version is provided, then that kernel version's module directory
* is used, rather than the current kernel version (as returned by
* "uname -r"). */
- xchdir(moddir_base);
- if (*argv && (sscanf(*argv, "%d.%d.%d", &tmp, &tmp, &tmp) == 3)) {
- xchdir(*argv++);
+ if (*argv && sscanf(*argv, "%d.%d.%d", &tmp, &tmp, &tmp) == 3) {
+ version = *argv++;
} else {
- struct utsname uts;
uname(&uts);
- xchdir(uts.release);
+ version = uts.release;
}
- /* If no modules are given on the command-line, -a is on per default. */
- option_mask32 |= *argv == NULL;
+ moddir = concat_path_file(&CONFIG_DEFAULT_MODULES_DIR[1], version);
/* Scan modules */
- moddir_base = xrealloc_getcwd_or_warn(NULL);
- do {
- recursive_action((option_mask32 & ARG_a) ? moddir_base : *argv,
- ACTION_RECURSE, parse_module, NULL, &modules, 0);
- } while (!(option_mask32 & ARG_a) && *(++argv));
+ if (*argv) {
+ char *modfile;
+ struct stat sb;
+ do {
+ modfile = concat_path_file(moddir, *argv);
+ xstat(modfile, &sb);
+ parse_module(modfile, &sb, &modules, 0);
+ free(modfile);
+ } while (*(++argv));
+ } else {
+ recursive_action(moddir, ACTION_RECURSE,
+ parse_module, NULL, &modules, 0);
+ }
+
+ /* Prepare for writing out the dep files */
+ xchdir(moddir);
if (ENABLE_FEATURE_CLEAN_UP)
- free(moddir_base);
+ free(moddir);
/* Generate dependency and alias files */
if (!(option_mask32 & ARG_n))
- freopen(CONFIG_DEFAULT_DEPMOD_FILE, "w", stdout);
+ xfreopen_write(CONFIG_DEFAULT_DEPMOD_FILE, stdout);
for (m = modules; m != NULL; m = m->next) {
printf("%s:", m->name);
@@ -174,12 +191,12 @@
dep->dprev->dnext = dep->dnext;
dep->dnext = dep->dprev = dep;
}
- puts("");
+ bb_putchar('\n');
}
#if ENABLE_FEATURE_MODUTILS_ALIAS
if (!(option_mask32 & ARG_n))
- freopen("modules.alias", "w", stdout);
+ xfreopen_write("modules.alias", stdout);
for (m = modules; m != NULL; m = m->next) {
while (m->aliases) {
printf("alias %s %s\n",
@@ -190,7 +207,7 @@
#endif
#if ENABLE_FEATURE_MODUTILS_SYMBOLS
if (!(option_mask32 & ARG_n))
- freopen("modules.symbols", "w", stdout);
+ xfreopen_write("modules.symbols", stdout);
for (m = modules; m != NULL; m = m->next) {
while (m->symbols) {
printf("alias symbol:%s %s\n",

View File

@@ -0,0 +1,50 @@
--- busybox-1.13.2/init/init.c Wed Dec 31 04:06:45 2008
+++ busybox-1.13.2-init/init/init.c Thu Jan 29 03:02:13 2009
@@ -671,15 +671,14 @@
*/
static void parse_inittab(void)
{
+#if ENABLE_FEATURE_USE_INITTAB
char *token[4];
- /* order must correspond to SYSINIT..RESTART constants */
- static const char actions[] ALIGN1 =
- "sysinit\0""respawn\0""askfirst\0""wait\0""once\0"
- "ctrlaltdel\0""shutdown\0""restart\0";
+ parser_t *parser = config_open2("/etc/inittab", fopen_for_read);
- parser_t *parser = config_open2(INITTAB, fopen_for_read);
- /* No inittab file -- set up some default behavior */
- if (parser == NULL) {
+ if (parser == NULL)
+#endif
+ {
+ /* No inittab file -- set up some default behavior */
/* Reboot on Ctrl-Alt-Del */
new_init_action(CTRLALTDEL, "reboot", "");
/* Umount all filesystems on halt/reboot */
@@ -699,11 +698,17 @@
new_init_action(SYSINIT, INIT_SCRIPT, "");
return;
}
+
+#if ENABLE_FEATURE_USE_INITTAB
/* optional_tty:ignored_runlevel:action:command
* Delims are not to be collapsed and need exactly 4 tokens
*/
while (config_read(parser, token, 4, 0, "#:",
PARSE_NORMAL & ~(PARSE_TRIM | PARSE_COLLAPSE))) {
+ /* order must correspond to SYSINIT..RESTART constants */
+ static const char actions[] ALIGN1 =
+ "sysinit\0""respawn\0""askfirst\0""wait\0""once\0"
+ "ctrlaltdel\0""shutdown\0""restart\0";
int action;
char *tty = token[0];
@@ -727,6 +732,7 @@
parser->lineno);
}
config_close(parser);
+#endif
}
#if ENABLE_FEATURE_USE_INITTAB

View File

@@ -0,0 +1,39 @@
--- busybox-1.13.2/testsuite/mdev.tests Sun Nov 9 18:28:19 2008
+++ busybox-1.13.2-mdev/testsuite/mdev.tests Mon Jan 12 08:59:15 2009
@@ -111,6 +111,22 @@
# continuing to use directory structure from prev test
rm -rf mdev.testdir/dev/*
+echo "sda 0:0 644 =block/ @echo @echo TEST" >mdev.testdir/etc/mdev.conf
+testing "mdev move and command" \
+ "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
+ ls -lnR mdev.testdir/dev | $FILTER_LS2" \
+"\
+@echo TEST
+mdev.testdir/dev:
+drwxr-xr-x 2 0 0 block
+
+mdev.testdir/dev/block:
+brw-r--r-- 1 0 0 sda
+" \
+ "" ""
+
+# continuing to use directory structure from prev test
+rm -rf mdev.testdir/dev/*
echo "@8,0 :1 644" >mdev.testdir/etc/mdev.conf
testing "mdev #maj,min and no explicit uid" \
"env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
--- busybox-1.13.2/util-linux/mdev.c Sun Nov 9 18:28:22 2008
+++ busybox-1.13.2-mdev/util-linux/mdev.c Mon Jan 12 08:59:15 2009
@@ -179,8 +179,9 @@
unsigned i, n;
#endif
char *a = val;
- s = strchr(val, ' ');
- val = (s && s[1]) ? s+1 : NULL;
+ s = strchrnul(val, ' ');
+ val = (s[0] && s[1]) ? s+1 : NULL;
+ s[0] = '\0';
#if ENABLE_FEATURE_MDEV_RENAME_REGEXP
/* substitute %1..9 with off[1..9], if any */
n = 0;

View File

@@ -0,0 +1,99 @@
--- busybox-1.13.2/modutils/modutils-24.c Sat Nov 29 07:48:56 2008
+++ busybox-1.13.2-modprobe/modutils/modutils-24.c Sun Feb 1 00:08:26 2009
@@ -2150,7 +2150,7 @@
sec->name = name;
sec->idx = newidx;
if (size)
- sec->contents = xmalloc(size);
+ sec->contents = xzalloc(size);
obj_insert_section_load_order(f, sec);
@@ -2165,7 +2165,7 @@
int newidx = f->header.e_shnum++;
struct obj_section *sec;
- f->sections = xrealloc(f->sections, (newidx + 1) * sizeof(sec));
+ f->sections = xrealloc_vector(f->sections, 2, newidx);
f->sections[newidx] = sec = arch_new_section();
sec->header.sh_type = SHT_PROGBITS;
@@ -2175,7 +2175,7 @@
sec->name = name;
sec->idx = newidx;
if (size)
- sec->contents = xmalloc(size);
+ sec->contents = xzalloc(size);
sec->load_next = f->load_order;
f->load_order = sec;
@@ -2571,8 +2571,7 @@
/* Collect the modules' symbols. */
if (nmod) {
- ext_modules = modules = xmalloc(nmod * sizeof(*modules));
- memset(modules, 0, nmod * sizeof(*modules));
+ ext_modules = modules = xzalloc(nmod * sizeof(*modules));
for (i = 0, mn = module_names, m = modules;
i < nmod; ++i, ++m, mn += strlen(mn) + 1) {
struct new_module_info info;
@@ -2652,13 +2651,14 @@
}
-static void new_create_this_module(struct obj_file *f, const char *m_name)
+static void new_create_this_module(struct obj_file *f, const char *m_name)
{
struct obj_section *sec;
sec = obj_create_alloced_section_first(f, ".this", tgt_sizeof_long,
sizeof(struct new_module));
- memset(sec->contents, 0, sizeof(struct new_module));
+ /* done by obj_create_alloced_section_first: */
+ /*memset(sec->contents, 0, sizeof(struct new_module));*/
obj_add_symbol(f, SPFX "__this_module", -1,
ELF_ST_INFO(STB_LOCAL, STT_OBJECT), sec->idx, 0,
@@ -2965,9 +2965,9 @@
if (i == f->header.e_shnum) {
struct obj_section *sec;
+ f->header.e_shnum++;
f->sections = xrealloc_vector(f->sections, 2, i);
f->sections[i] = sec = arch_new_section();
- f->header.e_shnum = i + 1;
sec->header.sh_type = SHT_PROGBITS;
sec->header.sh_flags = SHF_WRITE | SHF_ALLOC;
@@ -3006,12 +3006,9 @@
for (i = 0; i < f->header.e_shnum; ++i) {
struct obj_section *s = f->sections[i];
if (s->header.sh_type == SHT_NOBITS) {
+ s->contents = NULL;
if (s->header.sh_size != 0)
- s->contents = memset(xmalloc(s->header.sh_size),
- 0, s->header.sh_size);
- else
- s->contents = NULL;
-
+ s->contents = xzalloc(s->header.sh_size);
s->header.sh_type = SHT_PROGBITS;
}
}
@@ -3275,14 +3272,13 @@
case SHT_SYMTAB:
case SHT_STRTAB:
case SHT_RELM:
+ sec->contents = NULL;
if (sec->header.sh_size > 0) {
- sec->contents = xmalloc(sec->header.sh_size);
+ sec->contents = xzalloc(sec->header.sh_size);
fseek(fp, sec->header.sh_offset, SEEK_SET);
if (fread(sec->contents, sec->header.sh_size, 1, fp) != 1) {
bb_perror_msg_and_die("error reading ELF section data");
}
- } else {
- sec->contents = NULL;
}
break;

View File

@@ -0,0 +1,11 @@
--- busybox-1.13.2/archival/tar.c Sun Nov 9 18:28:02 2008
+++ busybox-1.13.2-tar/archival/tar.c Tue Jan 20 03:52:04 2009
@@ -591,8 +591,6 @@
struct TarBallInfo tbInfo;
tbInfo.hlInfoHead = NULL;
-
- fchmod(tar_fd, 0644);
tbInfo.tarFd = tar_fd;
tbInfo.verboseFlag = verboseFlag;

View File

@@ -562,7 +562,7 @@ CONFIG_DC=y
# CONFIG_DEVFSD_FG_NP is not set
# CONFIG_DEVFSD_VERBOSE is not set
# CONFIG_FEATURE_DEVFS is not set
CONFIG_DEVMEM=y
# CONFIG_DEVMEM is not set
CONFIG_EJECT=y
# CONFIG_FEATURE_EJECT_SCSI is not set
# CONFIG_FBSPLASH is not set

View File

@@ -1,104 +0,0 @@
From 86cfb70ca5f2bde11f2d071bc59db75291d8552f Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Fri, 27 Nov 2009 13:26:17 +0100
Subject: [PATCH] flash_eraseall: stop using obsolete mtd/jffs2-user.h; code shrink
function old new delta
show_progress 68 67 -1
flash_eraseall_main 1007 882 -125
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-126) Total: -126 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
miscutils/flash_eraseall.c | 47 ++++++++++++++++++++++++++++---------------
1 files changed, 30 insertions(+), 17 deletions(-)
diff --git a/miscutils/flash_eraseall.c b/miscutils/flash_eraseall.c
index ba0a6b5..ca00a13 100644
--- a/miscutils/flash_eraseall.c
+++ b/miscutils/flash_eraseall.c
@@ -12,22 +12,35 @@
#include "libbb.h"
#include <mtd/mtd-user.h>
-#include <mtd/jffs2-user.h>
+#include <linux/jffs2.h>
#define OPTION_J (1 << 0)
#define OPTION_Q (1 << 1)
#define IS_NAND (1 << 2)
#define BBTEST (1 << 3)
-struct globals {
- /* This is used in the cpu_to_je/je_to_cpu macros in jffs2_user.h */
- int tgt_endian;
-};
-#define G (*(struct globals*)&bb_common_bufsiz1)
-#define target_endian (G.tgt_endian)
-#define INIT_G() do { \
- target_endian = __BYTE_ORDER; \
-} while (0)
+/* mtd/jffs2-user.h used to have this atrocity:
+extern int target_endian;
+
+#define t16(x) ({ __u16 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_16(__b); })
+#define t32(x) ({ __u32 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_32(__b); })
+
+#define cpu_to_je16(x) ((jint16_t){t16(x)})
+#define cpu_to_je32(x) ((jint32_t){t32(x)})
+#define cpu_to_jemode(x) ((jmode_t){t32(x)})
+
+#define je16_to_cpu(x) (t16((x).v16))
+#define je32_to_cpu(x) (t32((x).v32))
+#define jemode_to_cpu(x) (t32((x).m))
+
+but mtd/jffs2-user.h is gone now (at least 2.6.31.6 does not have it anymore)
+*/
+
+/* We always use native endianness */
+#undef cpu_to_je16
+#undef cpu_to_je32
+#define cpu_to_je16(v) ((jint16_t){(v)})
+#define cpu_to_je32(v) ((jint32_t){(v)})
static uint32_t crc32(uint32_t val, const void *ss, int len,
uint32_t *crc32_table)
@@ -40,9 +53,11 @@ static uint32_t crc32(uint32_t val, const void *ss, int len,
static void show_progress(mtd_info_t *meminfo, erase_info_t *erase)
{
- printf("\rErasing %d Kibyte @ %x -- %2llu %% complete.",
- (unsigned)meminfo->erasesize / 1024, erase->start,
- (unsigned long long) erase->start * 100 / meminfo->size);
+ printf("\rErasing %u Kibyte @ %x - %2u%% complete.",
+ (unsigned)meminfo->erasesize / 1024,
+ erase->start,
+ (unsigned) ((unsigned long long) erase->start * 100 / meminfo->size)
+ );
fflush(stdout);
}
@@ -57,17 +72,15 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv)
unsigned int flags;
char *mtd_name;
- INIT_G();
opt_complementary = "=1";
flags = BBTEST | getopt32(argv, "jq");
mtd_name = argv[optind];
- xstat(mtd_name, &st);
+ fd = xopen(mtd_name, O_RDWR);
+ fstat(fd, &st);
if (!S_ISCHR(st.st_mode))
bb_error_msg_and_die("%s: not a char device", mtd_name);
- fd = xopen(mtd_name, O_RDWR);
-
xioctl(fd, MEMGETINFO, &meminfo);
erase.length = meminfo.erasesize;
if (meminfo.type == MTD_NANDFLASH)
--
1.6.5

View File

@@ -0,0 +1,61 @@
diff -ur busybox-1.2.2.1/networking/dnsd.c busybox-1.2.2.1-patched/networking/dnsd.c
--- busybox-1.2.2.1/networking/dnsd.c 2006-10-24 15:21:17.000000000 -0500
+++ busybox-1.2.2.1-patched/networking/dnsd.c 2007-04-12 12:49:53.000000000 -0500
@@ -31,11 +31,11 @@
#define is_daemon() (flags&16)
#define is_verbose() (flags&32)
-//#define DEBUG
+#undef DEBUG
enum {
- MAX_HOST_LEN = 16, // longest host name allowed is 15
+ MAX_HOST_LEN = 41, // longest host name allowed is 40
IP_STRING_LEN = 18, // .xxx.xxx.xxx.xxx\0
//must be strlen('.in-addr.arpa') larger than IP_STRING_LEN
@@ -229,19 +229,23 @@
{
int i;
struct dns_entry *d = dnsentry;
+ char *p,*q;
+
+ q = (char *)&(qs[1]);
+ p = &(d->name[1]);
if(d) do {
#ifdef DEBUG
if(qs && d) {
- char *p,*q;
- q = (char *)&(qs[1]);
- p = &(d->name[1]);
fprintf(stderr, "\n%s: %d/%d p:%s q:%s %d",
__FUNCTION__, strlen(p), (int)(d->name[0]),
p, q, strlen(q));
}
#endif
if (type == REQ_A) { /* search by host name */
+ p = &(d->name[1]);
+ if(strlen(q) != strlen(p))
+ continue;
for(i = 1; i <= (int)(d->name[0]); i++)
if(tolower(qs[i]) != d->name[i])
break;
@@ -398,13 +402,15 @@
fprintf(stderr,"fileconf: %s\n", fileconf);
}
- if(is_daemon())
+ if(is_daemon()) {
#ifdef BB_NOMMU
/* reexec for vfork() do continue parent */
vfork_daemon_rexec(1, 0, argc, argv, "-d");
#else
bb_xdaemon(1, 0);
#endif
+ daemonmode = 1;
+ }
dnsentryinit(is_verbose());

View File

@@ -0,0 +1,643 @@
#
# Automatically generated make config: don't edit
#
HAVE_DOT_CONFIG=y
#
# Busybox Settings
#
#
# General Configuration
#
# CONFIG_NITPICK is not set
# CONFIG_FEATURE_BUFFERS_USE_MALLOC is not set
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
CONFIG_SHOW_USAGE=y
CONFIG_FEATURE_VERBOSE_USAGE=y
# CONFIG_FEATURE_COMPRESS_USAGE is not set
# CONFIG_FEATURE_INSTALLER is not set
# CONFIG_LOCALE_SUPPORT is not set
CONFIG_GETOPT_LONG=y
CONFIG_FEATURE_DEVPTS=y
# CONFIG_FEATURE_CLEAN_UP is not set
CONFIG_FEATURE_SUID=y
# CONFIG_FEATURE_SUID_CONFIG is not set
# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
# CONFIG_SELINUX is not set
CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
#
# Build Options
#
# CONFIG_STATIC is not set
# CONFIG_BUILD_LIBBUSYBOX is not set
# CONFIG_FEATURE_FULL_LIBBUSYBOX is not set
# CONFIG_FEATURE_SHARED_BUSYBOX is not set
CONFIG_LFS=y
# USING_CROSS_COMPILER is not set
CROSS_COMPILER_PREFIX=""
# CONFIG_BUILD_AT_ONCE is not set
#
# Debugging Options
#
# CONFIG_DEBUG is not set
# CONFIG_DEBUG_PESSIMIZE is not set
# CONFIG_NO_DEBUG_LIB is not set
# CONFIG_DMALLOC is not set
# CONFIG_EFENCE is not set
CONFIG_DEBUG_YANK_SUSv2=y
#
# Installation Options
#
# CONFIG_INSTALL_NO_USR is not set
CONFIG_INSTALL_APPLET_SYMLINKS=y
# CONFIG_INSTALL_APPLET_HARDLINKS is not set
# CONFIG_INSTALL_APPLET_DONT is not set
PREFIX="./_install"
#
# Busybox Library Tuning
#
CONFIG_MD5_SIZE_VS_SPEED=2
#
# Applets
#
#
# Archival Utilities
#
# CONFIG_AR is not set
# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
CONFIG_BUNZIP2=y
# CONFIG_CPIO is not set
# CONFIG_DPKG is not set
# CONFIG_DPKG_DEB is not set
# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
CONFIG_GUNZIP=y
# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
CONFIG_GZIP=y
# CONFIG_RPM2CPIO is not set
# CONFIG_RPM is not set
CONFIG_TAR=y
CONFIG_FEATURE_TAR_CREATE=y
CONFIG_FEATURE_TAR_BZIP2=y
# CONFIG_FEATURE_TAR_LZMA is not set
# CONFIG_FEATURE_TAR_FROM is not set
CONFIG_FEATURE_TAR_GZIP=y
# CONFIG_FEATURE_TAR_COMPRESS is not set
# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
# CONFIG_UNCOMPRESS is not set
# CONFIG_UNLZMA is not set
# CONFIG_FEATURE_LZMA_FAST is not set
CONFIG_UNZIP=y
#
# Common options for cpio and tar
#
# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
# CONFIG_FEATURE_DEB_TAR_GZ is not set
# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
# CONFIG_FEATURE_DEB_TAR_LZMA is not set
#
# Coreutils
#
CONFIG_BASENAME=y
# CONFIG_CAL is not set
CONFIG_CAT=y
# CONFIG_CATV is not set
CONFIG_CHGRP=y
CONFIG_CHMOD=y
CONFIG_CHOWN=y
CONFIG_CHROOT=y
# CONFIG_CKSUM is not set
CONFIG_CMP=y
# CONFIG_COMM is not set
CONFIG_CP=y
CONFIG_CUT=y
CONFIG_DATE=y
CONFIG_FEATURE_DATE_ISOFMT=y
CONFIG_DD=y
# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
# CONFIG_FEATURE_DD_IBS_OBS is not set
CONFIG_DF=y
# CONFIG_DIFF is not set
# CONFIG_FEATURE_DIFF_BINARY is not set
# CONFIG_FEATURE_DIFF_DIR is not set
# CONFIG_FEATURE_DIFF_MINIMAL is not set
CONFIG_DIRNAME=y
CONFIG_DOS2UNIX=y
CONFIG_UNIX2DOS=y
CONFIG_DU=y
CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
CONFIG_ECHO=y
CONFIG_FEATURE_FANCY_ECHO=y
CONFIG_ENV=y
# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
CONFIG_EXPR=y
CONFIG_EXPR_MATH_SUPPORT_64=y
CONFIG_FALSE=y
# CONFIG_FOLD is not set
CONFIG_HEAD=y
# CONFIG_FEATURE_FANCY_HEAD is not set
CONFIG_HOSTID=y
CONFIG_ID=y
CONFIG_INSTALL=y
# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
# CONFIG_LENGTH is not set
CONFIG_LN=y
CONFIG_LOGNAME=y
CONFIG_LS=y
CONFIG_FEATURE_LS_FILETYPES=y
CONFIG_FEATURE_LS_FOLLOWLINKS=y
CONFIG_FEATURE_LS_RECURSIVE=y
CONFIG_FEATURE_LS_SORTFILES=y
CONFIG_FEATURE_LS_TIMESTAMPS=y
CONFIG_FEATURE_LS_USERNAME=y
CONFIG_FEATURE_LS_COLOR=y
CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
CONFIG_MD5SUM=y
CONFIG_MKDIR=y
# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
# CONFIG_MKFIFO is not set
CONFIG_MKNOD=y
CONFIG_MV=y
# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
# CONFIG_NICE is not set
# CONFIG_NOHUP is not set
# CONFIG_OD is not set
# CONFIG_PRINTENV is not set
# CONFIG_PRINTF is not set
CONFIG_PWD=y
# CONFIG_REALPATH is not set
CONFIG_RM=y
CONFIG_RMDIR=y
# CONFIG_SEQ is not set
CONFIG_SHA1SUM=y
CONFIG_SLEEP=y
# CONFIG_FEATURE_FANCY_SLEEP is not set
CONFIG_SORT=y
CONFIG_FEATURE_SORT_BIG=y
# CONFIG_STAT is not set
# CONFIG_FEATURE_STAT_FORMAT is not set
CONFIG_STTY=y
# CONFIG_SUM is not set
CONFIG_SYNC=y
CONFIG_TAIL=y
CONFIG_FEATURE_FANCY_TAIL=y
CONFIG_TEE=y
CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
CONFIG_TEST=y
CONFIG_FEATURE_TEST_64=y
CONFIG_TOUCH=y
# CONFIG_TR is not set
# CONFIG_FEATURE_TR_CLASSES is not set
# CONFIG_FEATURE_TR_EQUIV is not set
CONFIG_TRUE=y
CONFIG_TTY=y
CONFIG_UNAME=y
CONFIG_UNIQ=y
CONFIG_USLEEP=y
CONFIG_UUDECODE=y
CONFIG_UUENCODE=y
# CONFIG_WATCH is not set
CONFIG_WC=y
# CONFIG_WHO is not set
CONFIG_WHOAMI=y
CONFIG_YES=y
#
# Common options for cp and mv
#
CONFIG_FEATURE_PRESERVE_HARDLINKS=y
#
# Common options for ls, more and telnet
#
CONFIG_FEATURE_AUTOWIDTH=y
#
# Common options for df, du, ls
#
CONFIG_FEATURE_HUMAN_READABLE=y
#
# Common options for md5sum, sha1sum
#
CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
#
# Console Utilities
#
CONFIG_CHVT=y
CONFIG_CLEAR=y
CONFIG_DEALLOCVT=y
# CONFIG_DUMPKMAP is not set
# CONFIG_LOADFONT is not set
# CONFIG_LOADKMAP is not set
CONFIG_OPENVT=y
CONFIG_RESET=y
# CONFIG_SETCONSOLE is not set
# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
# CONFIG_SETKEYCODES is not set
# CONFIG_SETLOGCONS is not set
#
# Debian Utilities
#
CONFIG_MKTEMP=y
# CONFIG_PIPE_PROGRESS is not set
CONFIG_READLINK=y
CONFIG_FEATURE_READLINK_FOLLOW=y
CONFIG_RUN_PARTS=y
CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
CONFIG_START_STOP_DAEMON=y
CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
CONFIG_WHICH=y
#
# Editors
#
# CONFIG_AWK is not set
# CONFIG_FEATURE_AWK_MATH is not set
# CONFIG_ED is not set
# CONFIG_PATCH is not set
CONFIG_SED=y
CONFIG_VI=y
CONFIG_FEATURE_VI_COLON=y
CONFIG_FEATURE_VI_YANKMARK=y
CONFIG_FEATURE_VI_SEARCH=y
CONFIG_FEATURE_VI_USE_SIGNALS=y
CONFIG_FEATURE_VI_DOT_CMD=y
CONFIG_FEATURE_VI_READONLY=y
CONFIG_FEATURE_VI_SETOPTS=y
CONFIG_FEATURE_VI_SET=y
CONFIG_FEATURE_VI_WIN_RESIZE=y
CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
#
# Finding Utilities
#
CONFIG_FIND=y
CONFIG_FEATURE_FIND_PRINT0=y
CONFIG_FEATURE_FIND_MTIME=y
# CONFIG_FEATURE_FIND_MMIN is not set
CONFIG_FEATURE_FIND_PERM=y
CONFIG_FEATURE_FIND_TYPE=y
CONFIG_FEATURE_FIND_XDEV=y
# CONFIG_FEATURE_FIND_NEWER is not set
# CONFIG_FEATURE_FIND_INUM is not set
CONFIG_FEATURE_FIND_EXEC=y
CONFIG_GREP=y
CONFIG_FEATURE_GREP_EGREP_ALIAS=y
CONFIG_FEATURE_GREP_FGREP_ALIAS=y
CONFIG_FEATURE_GREP_CONTEXT=y
CONFIG_XARGS=y
# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
#
# Init Utilities
#
CONFIG_INIT=y
# CONFIG_DEBUG_INIT is not set
CONFIG_FEATURE_USE_INITTAB=y
CONFIG_FEATURE_INIT_SCTTY=y
CONFIG_FEATURE_EXTRA_QUIET=y
# CONFIG_FEATURE_INIT_COREDUMPS is not set
CONFIG_FEATURE_INITRD=y
CONFIG_HALT=y
# CONFIG_MESG is not set
#
# Login/Password Management Utilities
#
CONFIG_FEATURE_SHADOWPASSWDS=y
# CONFIG_USE_BB_SHADOW is not set
# CONFIG_USE_BB_PWD_GRP is not set
CONFIG_ADDGROUP=y
CONFIG_DELGROUP=y
CONFIG_ADDUSER=y
CONFIG_DELUSER=y
CONFIG_GETTY=y
# CONFIG_FEATURE_UTMP is not set
# CONFIG_FEATURE_WTMP is not set
CONFIG_LOGIN=y
CONFIG_FEATURE_SECURETTY=y
CONFIG_PASSWD=y
CONFIG_SU=y
CONFIG_SULOGIN=y
CONFIG_VLOCK=y
#
# Linux Ext2 FS Progs
#
# CONFIG_CHATTR is not set
# CONFIG_E2FSCK is not set
# CONFIG_FSCK is not set
# CONFIG_LSATTR is not set
# CONFIG_MKE2FS is not set
# CONFIG_TUNE2FS is not set
# CONFIG_E2LABEL is not set
# CONFIG_FINDFS is not set
#
# Linux Module Utilities
#
CONFIG_INSMOD=y
# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
CONFIG_RMMOD=y
CONFIG_LSMOD=y
CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
CONFIG_MODPROBE=y
CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
#
# Options common to multiple modutils
#
CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
CONFIG_FEATURE_2_4_MODULES=y
CONFIG_FEATURE_2_6_MODULES=y
# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
#
# Linux System Utilities
#
CONFIG_DMESG=y
# CONFIG_FBSET is not set
# CONFIG_FEATURE_FBSET_FANCY is not set
# CONFIG_FEATURE_FBSET_READMODE is not set
# CONFIG_FDFLUSH is not set
CONFIG_FDFORMAT=y
CONFIG_FDISK=y
FDISK_SUPPORT_LARGE_DISKS=y
CONFIG_FEATURE_FDISK_WRITABLE=y
# CONFIG_FEATURE_AIX_LABEL is not set
# CONFIG_FEATURE_SGI_LABEL is not set
# CONFIG_FEATURE_SUN_LABEL is not set
# CONFIG_FEATURE_OSF_LABEL is not set
# CONFIG_FEATURE_FDISK_ADVANCED is not set
# CONFIG_FREERAMDISK is not set
# CONFIG_FSCK_MINIX is not set
# CONFIG_MKFS_MINIX is not set
# CONFIG_FEATURE_MINIX2 is not set
CONFIG_GETOPT=y
CONFIG_HEXDUMP=y
CONFIG_HWCLOCK=y
# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
# CONFIG_IPCRM is not set
# CONFIG_IPCS is not set
# CONFIG_LOSETUP is not set
# CONFIG_MDEV is not set
# CONFIG_FEATURE_MDEV_CONF is not set
# CONFIG_FEATURE_MDEV_EXEC is not set
# CONFIG_MKSWAP is not set
# CONFIG_FEATURE_MKSWAP_V0 is not set
CONFIG_MORE=y
CONFIG_FEATURE_USE_TERMIOS=y
CONFIG_MOUNT=y
CONFIG_FEATURE_MOUNT_NFS=y
CONFIG_PIVOT_ROOT=y
CONFIG_RDATE=y
# CONFIG_READPROFILE is not set
# CONFIG_SETARCH is not set
CONFIG_SWAPONOFF=y
CONFIG_SWITCH_ROOT=y
CONFIG_UMOUNT=y
CONFIG_FEATURE_UMOUNT_ALL=y
#
# Common options for mount/umount
#
CONFIG_FEATURE_MOUNT_LOOP=y
# CONFIG_FEATURE_MTAB_SUPPORT is not set
#
# Miscellaneous Utilities
#
# CONFIG_ADJTIMEX is not set
# CONFIG_BBCONFIG is not set
# CONFIG_CROND is not set
# CONFIG_DEBUG_CROND_OPTION is not set
# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
# CONFIG_CRONTAB is not set
CONFIG_DC=y
# CONFIG_DEVFSD is not set
# CONFIG_DEVFSD_MODLOAD is not set
# CONFIG_DEVFSD_FG_NP is not set
# CONFIG_DEVFSD_VERBOSE is not set
# CONFIG_FEATURE_DEVFS is not set
# CONFIG_EJECT is not set
# CONFIG_LAST is not set
CONFIG_LESS=y
# CONFIG_FEATURE_LESS_BRACKETS is not set
# CONFIG_FEATURE_LESS_FLAGS is not set
# CONFIG_FEATURE_LESS_FLAGCS is not set
# CONFIG_FEATURE_LESS_MARKS is not set
CONFIG_FEATURE_LESS_REGEXP=y
# CONFIG_HDPARM is not set
# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
# CONFIG_MAKEDEVS is not set
# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
# CONFIG_MOUNTPOINT is not set
CONFIG_MT=y
# CONFIG_RUNLEVEL is not set
# CONFIG_RX is not set
CONFIG_STRINGS=y
# CONFIG_SETSID is not set
# CONFIG_TASKSET is not set
CONFIG_TIME=y
# CONFIG_WATCHDOG is not set
#
# Networking Utilities
#
# CONFIG_FEATURE_IPV6 is not set
# CONFIG_ARPING is not set
# CONFIG_DNSD is not set
# CONFIG_ETHER_WAKE is not set
# CONFIG_FAKEIDENTD is not set
# CONFIG_FTPGET is not set
# CONFIG_FTPPUT is not set
# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
CONFIG_HOSTNAME=y
# CONFIG_HTTPD is not set
# CONFIG_FEATURE_HTTPD_WITHOUT_INETD is not set
# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
# CONFIG_FEATURE_HTTPD_SETUID is not set
# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
# CONFIG_FEATURE_HTTPD_CGI is not set
# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
CONFIG_IFCONFIG=y
CONFIG_FEATURE_IFCONFIG_STATUS=y
# CONFIG_FEATURE_IFCONFIG_SLIP is not set
# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
# CONFIG_FEATURE_IFCONFIG_HW is not set
# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
CONFIG_IFUPDOWN=y
# CONFIG_FEATURE_IFUPDOWN_IP is not set
CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
CONFIG_FEATURE_IFUPDOWN_IPV4=y
# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
# CONFIG_FEATURE_IFUPDOWN_IPX is not set
# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
# CONFIG_INETD is not set
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
# CONFIG_FEATURE_INETD_RPC is not set
# CONFIG_IP is not set
# CONFIG_FEATURE_IP_ADDRESS is not set
# CONFIG_FEATURE_IP_LINK is not set
# CONFIG_FEATURE_IP_ROUTE is not set
# CONFIG_FEATURE_IP_TUNNEL is not set
# CONFIG_FEATURE_IP_SHORT_FORMS is not set
# CONFIG_IPADDR is not set
# CONFIG_IPLINK is not set
# CONFIG_IPROUTE is not set
# CONFIG_IPTUNNEL is not set
# CONFIG_IPCALC is not set
# CONFIG_FEATURE_IPCALC_FANCY is not set
# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
# CONFIG_NAMEIF is not set
# CONFIG_NC is not set
# CONFIG_NC_GAPING_SECURITY_HOLE is not set
CONFIG_NETSTAT=y
CONFIG_NSLOOKUP=y
CONFIG_PING=y
CONFIG_FEATURE_FANCY_PING=y
# CONFIG_PING6 is not set
# CONFIG_FEATURE_FANCY_PING6 is not set
CONFIG_ROUTE=y
CONFIG_TELNET=y
CONFIG_FEATURE_TELNET_TTYPE=y
# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
# CONFIG_TELNETD is not set
# CONFIG_FEATURE_TELNETD_INETD is not set
# CONFIG_TFTP is not set
# CONFIG_FEATURE_TFTP_GET is not set
# CONFIG_FEATURE_TFTP_PUT is not set
# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
# CONFIG_DEBUG_TFTP is not set
# CONFIG_TRACEROUTE is not set
# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
#
# udhcp Server/Client
#
# CONFIG_APP_UDHCPD is not set
CONFIG_APP_UDHCPC=y
# CONFIG_APP_DUMPLEASES is not set
CONFIG_FEATURE_UDHCP_SYSLOG=y
# CONFIG_FEATURE_UDHCP_DEBUG is not set
# CONFIG_VCONFIG is not set
CONFIG_WGET=y
CONFIG_FEATURE_WGET_STATUSBAR=y
CONFIG_FEATURE_WGET_AUTHENTICATION=y
# CONFIG_FEATURE_WGET_IP6_LITERAL is not set
# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
# CONFIG_ZCIP is not set
#
# Process Utilities
#
CONFIG_FREE=y
# CONFIG_FUSER is not set
CONFIG_KILL=y
CONFIG_KILLALL=y
CONFIG_PIDOF=y
# CONFIG_FEATURE_PIDOF_SINGLE is not set
# CONFIG_FEATURE_PIDOF_OMIT is not set
CONFIG_PS=y
CONFIG_FEATURE_PS_WIDE=y
# CONFIG_RENICE is not set
# CONFIG_BB_SYSCTL is not set
# CONFIG_TOP is not set
# CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set
CONFIG_UPTIME=y
#
# Shells
#
CONFIG_FEATURE_SH_IS_ASH=y
# CONFIG_FEATURE_SH_IS_HUSH is not set
# CONFIG_FEATURE_SH_IS_LASH is not set
# CONFIG_FEATURE_SH_IS_MSH is not set
# CONFIG_FEATURE_SH_IS_NONE is not set
CONFIG_ASH=y
#
# Ash Shell Options
#
CONFIG_ASH_JOB_CONTROL=y
CONFIG_ASH_READ_NCHARS=y
CONFIG_ASH_READ_TIMEOUT=y
CONFIG_ASH_ALIAS=y
CONFIG_ASH_MATH_SUPPORT=y
CONFIG_ASH_MATH_SUPPORT_64=y
# CONFIG_ASH_GETOPTS is not set
CONFIG_ASH_BUILTIN_ECHO=y
CONFIG_ASH_BUILTIN_TEST=y
# CONFIG_ASH_CMDCMD is not set
# CONFIG_ASH_MAIL is not set
CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
# CONFIG_ASH_RANDOM_SUPPORT is not set
CONFIG_ASH_EXPAND_PRMT=y
# CONFIG_HUSH is not set
# CONFIG_LASH is not set
# CONFIG_MSH is not set
#
# Bourne Shell Options
#
# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
# CONFIG_FEATURE_SH_STANDALONE_SHELL is not set
CONFIG_FEATURE_COMMAND_EDITING=y
# CONFIG_FEATURE_COMMAND_EDITING_VI is not set
CONFIG_FEATURE_COMMAND_HISTORY=15
CONFIG_FEATURE_COMMAND_SAVEHISTORY=y
CONFIG_FEATURE_COMMAND_TAB_COMPLETION=y
# CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION is not set
CONFIG_FEATURE_SH_FANCY_PROMPT=y
#
# System Logging Utilities
#
CONFIG_SYSLOGD=y
CONFIG_FEATURE_ROTATE_LOGFILE=y
# CONFIG_FEATURE_REMOTE_LOG is not set
# CONFIG_FEATURE_IPC_SYSLOG is not set
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
# CONFIG_LOGREAD is not set
# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
CONFIG_KLOGD=y
CONFIG_LOGGER=y

View File

@@ -0,0 +1,690 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.5.0
# Wed Mar 14 13:42:28 2007
#
CONFIG_HAVE_DOT_CONFIG=y
#
# Busybox Settings
#
#
# General Configuration
#
CONFIG_NITPICK=y
CONFIG_DESKTOP=y
CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
CONFIG_SHOW_USAGE=y
CONFIG_FEATURE_VERBOSE_USAGE=y
# CONFIG_FEATURE_COMPRESS_USAGE is not set
CONFIG_FEATURE_INSTALLER=y
# CONFIG_LOCALE_SUPPORT is not set
CONFIG_GETOPT_LONG=y
CONFIG_FEATURE_DEVPTS=y
CONFIG_FEATURE_CLEAN_UP=y
CONFIG_FEATURE_SUID=y
CONFIG_FEATURE_SYSLOG=y
# CONFIG_FEATURE_SUID_CONFIG is not set
# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
# CONFIG_FEATURE_HAVE_RPC is not set
# CONFIG_SELINUX is not set
# CONFIG_FEATURE_EXEC_PREFER_APPLETS is not set
CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
#
# Build Options
#
# CONFIG_STATIC is not set
# CONFIG_BUILD_LIBBUSYBOX is not set
# CONFIG_FEATURE_FULL_LIBBUSYBOX is not set
# CONFIG_FEATURE_SHARED_BUSYBOX is not set
# CONFIG_LFS is not set
CONFIG_BUILD_AT_ONCE=y
#
# Debugging Options
#
# CONFIG_DEBUG is not set
# CONFIG_WERROR is not set
# CONFIG_NO_DEBUG_LIB is not set
# CONFIG_DMALLOC is not set
# CONFIG_EFENCE is not set
CONFIG_INCLUDE_SUSv2=y
#
# Installation Options
#
# CONFIG_INSTALL_NO_USR is not set
CONFIG_INSTALL_APPLET_SYMLINKS=y
# CONFIG_INSTALL_APPLET_HARDLINKS is not set
# CONFIG_INSTALL_APPLET_DONT is not set
CONFIG_PREFIX="./_install"
#
# Busybox Library Tuning
#
CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SIZE_VS_SPEED=2
CONFIG_FEATURE_EDITING=y
CONFIG_FEATURE_EDITING_FANCY_KEYS=y
CONFIG_FEATURE_EDITING_VI=y
CONFIG_FEATURE_EDITING_HISTORY=999
CONFIG_FEATURE_EDITING_SAVEHISTORY=y
CONFIG_FEATURE_TAB_COMPLETION=y
# CONFIG_FEATURE_USERNAME_COMPLETION is not set
CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
#
# Applets
#
#
# Archival Utilities
#
CONFIG_AR=y
# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
CONFIG_BUNZIP2=y
CONFIG_CPIO=y
# CONFIG_DPKG is not set
# CONFIG_DPKG_DEB is not set
# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
CONFIG_GUNZIP=y
# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
CONFIG_GZIP=y
# CONFIG_RPM2CPIO is not set
# CONFIG_RPM is not set
CONFIG_TAR=y
CONFIG_FEATURE_TAR_CREATE=y
CONFIG_FEATURE_TAR_BZIP2=y
CONFIG_FEATURE_TAR_LZMA=y
CONFIG_FEATURE_TAR_FROM=y
CONFIG_FEATURE_TAR_GZIP=y
# CONFIG_FEATURE_TAR_COMPRESS is not set
# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
CONFIG_FEATURE_TAR_LONG_OPTIONS=y
# CONFIG_UNCOMPRESS is not set
CONFIG_UNLZMA=y
# CONFIG_FEATURE_LZMA_FAST is not set
CONFIG_UNZIP=y
#
# Common options for cpio and tar
#
# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
# CONFIG_FEATURE_DEB_TAR_GZ is not set
# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
# CONFIG_FEATURE_DEB_TAR_LZMA is not set
#
# Coreutils
#
CONFIG_BASENAME=y
# CONFIG_CAL is not set
CONFIG_CAT=y
CONFIG_CATV=y
CONFIG_CHGRP=y
CONFIG_CHMOD=y
CONFIG_CHOWN=y
CONFIG_CHROOT=y
CONFIG_CKSUM=y
CONFIG_CMP=y
# CONFIG_COMM is not set
CONFIG_CP=y
CONFIG_CUT=y
CONFIG_DATE=y
CONFIG_FEATURE_DATE_ISOFMT=y
CONFIG_DD=y
CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
CONFIG_FEATURE_DD_IBS_OBS=y
CONFIG_DF=y
CONFIG_DIFF=y
CONFIG_FEATURE_DIFF_BINARY=y
CONFIG_FEATURE_DIFF_DIR=y
# CONFIG_FEATURE_DIFF_MINIMAL is not set
CONFIG_DIRNAME=y
CONFIG_DOS2UNIX=y
CONFIG_UNIX2DOS=y
CONFIG_DU=y
CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
CONFIG_ECHO=y
CONFIG_FEATURE_FANCY_ECHO=y
CONFIG_ENV=y
# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
CONFIG_EXPR=y
CONFIG_EXPR_MATH_SUPPORT_64=y
CONFIG_FALSE=y
CONFIG_FOLD=y
CONFIG_HEAD=y
CONFIG_FEATURE_FANCY_HEAD=y
CONFIG_HOSTID=y
CONFIG_ID=y
CONFIG_INSTALL=y
CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
CONFIG_LENGTH=y
CONFIG_LN=y
CONFIG_LOGNAME=y
CONFIG_LS=y
CONFIG_FEATURE_LS_FILETYPES=y
CONFIG_FEATURE_LS_FOLLOWLINKS=y
CONFIG_FEATURE_LS_RECURSIVE=y
CONFIG_FEATURE_LS_SORTFILES=y
CONFIG_FEATURE_LS_TIMESTAMPS=y
CONFIG_FEATURE_LS_USERNAME=y
CONFIG_FEATURE_LS_COLOR=y
CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
CONFIG_MD5SUM=y
CONFIG_MKDIR=y
CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
CONFIG_MKFIFO=y
CONFIG_MKNOD=y
CONFIG_MV=y
CONFIG_FEATURE_MV_LONG_OPTIONS=y
CONFIG_NICE=y
CONFIG_NOHUP=y
CONFIG_OD=y
CONFIG_PRINTENV=y
CONFIG_PRINTF=y
CONFIG_PWD=y
CONFIG_REALPATH=y
CONFIG_RM=y
CONFIG_RMDIR=y
CONFIG_SEQ=y
CONFIG_SHA1SUM=y
CONFIG_SLEEP=y
# CONFIG_FEATURE_FANCY_SLEEP is not set
CONFIG_SORT=y
CONFIG_FEATURE_SORT_BIG=y
# CONFIG_STAT is not set
# CONFIG_FEATURE_STAT_FORMAT is not set
CONFIG_STTY=y
# CONFIG_SUM is not set
CONFIG_SYNC=y
CONFIG_TAIL=y
CONFIG_FEATURE_FANCY_TAIL=y
CONFIG_TEE=y
CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
CONFIG_TEST=y
CONFIG_FEATURE_TEST_64=y
CONFIG_TOUCH=y
CONFIG_TR=y
CONFIG_FEATURE_TR_CLASSES=y
CONFIG_FEATURE_TR_EQUIV=y
CONFIG_TRUE=y
CONFIG_TTY=y
CONFIG_UNAME=y
CONFIG_UNIQ=y
CONFIG_USLEEP=y
CONFIG_UUDECODE=y
CONFIG_UUENCODE=y
CONFIG_WATCH=y
CONFIG_WC=y
# CONFIG_FEATURE_WC_LARGE is not set
CONFIG_WHO=y
CONFIG_WHOAMI=y
CONFIG_YES=y
#
# Common options for cp and mv
#
CONFIG_FEATURE_PRESERVE_HARDLINKS=y
#
# Common options for ls, more and telnet
#
CONFIG_FEATURE_AUTOWIDTH=y
#
# Common options for df, du, ls
#
CONFIG_FEATURE_HUMAN_READABLE=y
#
# Common options for md5sum, sha1sum
#
CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
#
# Console Utilities
#
CONFIG_CHVT=y
CONFIG_CLEAR=y
CONFIG_DEALLOCVT=y
CONFIG_DUMPKMAP=y
CONFIG_LOADFONT=y
CONFIG_LOADKMAP=y
CONFIG_OPENVT=y
CONFIG_RESET=y
CONFIG_RESIZE=y
CONFIG_FEATURE_RESIZE_PRINT=y
CONFIG_SETCONSOLE=y
# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
CONFIG_SETKEYCODES=y
CONFIG_SETLOGCONS=y
#
# Debian Utilities
#
CONFIG_MKTEMP=y
CONFIG_PIPE_PROGRESS=y
CONFIG_READLINK=y
CONFIG_FEATURE_READLINK_FOLLOW=y
CONFIG_RUN_PARTS=y
CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
CONFIG_START_STOP_DAEMON=y
CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
CONFIG_WHICH=y
#
# Editors
#
CONFIG_AWK=y
CONFIG_FEATURE_AWK_MATH=y
# CONFIG_ED is not set
CONFIG_PATCH=y
CONFIG_SED=y
CONFIG_VI=y
CONFIG_FEATURE_VI_COLON=y
CONFIG_FEATURE_VI_YANKMARK=y
CONFIG_FEATURE_VI_SEARCH=y
CONFIG_FEATURE_VI_USE_SIGNALS=y
CONFIG_FEATURE_VI_DOT_CMD=y
CONFIG_FEATURE_VI_READONLY=y
CONFIG_FEATURE_VI_SETOPTS=y
CONFIG_FEATURE_VI_SET=y
CONFIG_FEATURE_VI_WIN_RESIZE=y
CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
CONFIG_FEATURE_ALLOW_EXEC=y
#
# Finding Utilities
#
CONFIG_FIND=y
CONFIG_FEATURE_FIND_PRINT0=y
CONFIG_FEATURE_FIND_MTIME=y
CONFIG_FEATURE_FIND_MMIN=y
CONFIG_FEATURE_FIND_PERM=y
CONFIG_FEATURE_FIND_TYPE=y
CONFIG_FEATURE_FIND_XDEV=y
CONFIG_FEATURE_FIND_NEWER=y
# CONFIG_FEATURE_FIND_INUM is not set
CONFIG_FEATURE_FIND_EXEC=y
CONFIG_FEATURE_FIND_USER=y
CONFIG_FEATURE_FIND_NOT=y
CONFIG_GREP=y
CONFIG_FEATURE_GREP_EGREP_ALIAS=y
CONFIG_FEATURE_GREP_FGREP_ALIAS=y
CONFIG_FEATURE_GREP_CONTEXT=y
CONFIG_XARGS=y
# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
#
# Init Utilities
#
CONFIG_INIT=y
# CONFIG_DEBUG_INIT is not set
CONFIG_FEATURE_USE_INITTAB=y
CONFIG_FEATURE_INIT_SCTTY=y
CONFIG_FEATURE_INIT_SYSLOG=y
CONFIG_FEATURE_EXTRA_QUIET=y
# CONFIG_FEATURE_INIT_COREDUMPS is not set
CONFIG_FEATURE_INITRD=y
CONFIG_HALT=y
CONFIG_MESG=y
#
# Login/Password Management Utilities
#
CONFIG_FEATURE_SHADOWPASSWDS=y
# CONFIG_USE_BB_SHADOW is not set
# CONFIG_USE_BB_PWD_GRP is not set
CONFIG_ADDGROUP=y
CONFIG_DELGROUP=y
CONFIG_ADDUSER=y
CONFIG_DELUSER=y
CONFIG_GETTY=y
CONFIG_FEATURE_UTMP=y
CONFIG_FEATURE_WTMP=y
CONFIG_LOGIN=y
# CONFIG_LOGIN_SCRIPTS is not set
CONFIG_FEATURE_SECURETTY=y
CONFIG_PASSWD=y
CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
CONFIG_SU=y
CONFIG_FEATURE_SU_SYSLOG=y
CONFIG_FEATURE_SU_CHECKS_SHELLS=y
CONFIG_SULOGIN=y
CONFIG_VLOCK=y
#
# Linux Ext2 FS Progs
#
CONFIG_CHATTR=y
CONFIG_FSCK=y
CONFIG_LSATTR=y
#
# Linux Module Utilities
#
CONFIG_INSMOD=y
# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
CONFIG_FEATURE_INSMOD_LOAD_MAP=y
CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL=y
CONFIG_RMMOD=y
CONFIG_LSMOD=y
CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
CONFIG_MODPROBE=y
CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
#
# Options common to multiple modutils
#
CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
# CONFIG_FEATURE_2_4_MODULES is not set
CONFIG_FEATURE_2_6_MODULES=y
# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
#
# Linux System Utilities
#
CONFIG_DMESG=y
CONFIG_FEATURE_DMESG_PRETTY=y
# CONFIG_FBSET is not set
# CONFIG_FEATURE_FBSET_FANCY is not set
# CONFIG_FEATURE_FBSET_READMODE is not set
CONFIG_FDFLUSH=y
CONFIG_FDFORMAT=y
# CONFIG_FDISK is not set
CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
CONFIG_FEATURE_FDISK_WRITABLE=y
# CONFIG_FEATURE_AIX_LABEL is not set
# CONFIG_FEATURE_SGI_LABEL is not set
# CONFIG_FEATURE_SUN_LABEL is not set
# CONFIG_FEATURE_OSF_LABEL is not set
# CONFIG_FEATURE_FDISK_ADVANCED is not set
CONFIG_FREERAMDISK=y
# CONFIG_FSCK_MINIX is not set
# CONFIG_MKFS_MINIX is not set
# CONFIG_FEATURE_MINIX2 is not set
CONFIG_GETOPT=y
CONFIG_HEXDUMP=y
CONFIG_HWCLOCK=y
CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
CONFIG_IPCRM=y
CONFIG_IPCS=y
CONFIG_LOSETUP=y
CONFIG_MDEV=y
CONFIG_FEATURE_MDEV_CONF=y
CONFIG_FEATURE_MDEV_EXEC=y
CONFIG_MKSWAP=y
# CONFIG_FEATURE_MKSWAP_V0 is not set
CONFIG_MORE=y
CONFIG_FEATURE_USE_TERMIOS=y
CONFIG_MOUNT=y
# CONFIG_FEATURE_MOUNT_NFS is not set
CONFIG_FEATURE_MOUNT_CIFS=y
CONFIG_FEATURE_MOUNT_FLAGS=y
CONFIG_FEATURE_MOUNT_FSTAB=y
CONFIG_PIVOT_ROOT=y
CONFIG_RDATE=y
CONFIG_READPROFILE=y
CONFIG_SETARCH=y
CONFIG_SWAPONOFF=y
CONFIG_SWITCH_ROOT=y
CONFIG_UMOUNT=y
CONFIG_FEATURE_UMOUNT_ALL=y
#
# Common options for mount/umount
#
CONFIG_FEATURE_MOUNT_LOOP=y
# CONFIG_FEATURE_MTAB_SUPPORT is not set
#
# Miscellaneous Utilities
#
# CONFIG_ADJTIMEX is not set
# CONFIG_BBCONFIG is not set
CONFIG_CHRT=y
CONFIG_CROND=y
CONFIG_DEBUG_CROND_OPTION=y
# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
CONFIG_CRONTAB=y
CONFIG_DC=y
# CONFIG_DEVFSD is not set
# CONFIG_DEVFSD_MODLOAD is not set
# CONFIG_DEVFSD_FG_NP is not set
# CONFIG_DEVFSD_VERBOSE is not set
# CONFIG_FEATURE_DEVFS is not set
CONFIG_EJECT=y
CONFIG_LAST=y
CONFIG_LESS=y
CONFIG_FEATURE_LESS_MAXLINES=9999999
CONFIG_FEATURE_LESS_BRACKETS=y
CONFIG_FEATURE_LESS_FLAGS=y
CONFIG_FEATURE_LESS_FLAGCS=y
# CONFIG_FEATURE_LESS_MARKS is not set
CONFIG_FEATURE_LESS_REGEXP=y
CONFIG_HDPARM=y
CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
CONFIG_MAKEDEVS=y
# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
CONFIG_FEATURE_MAKEDEVS_TABLE=y
CONFIG_MOUNTPOINT=y
CONFIG_MT=y
# CONFIG_NMETER is not set
# CONFIG_RAIDAUTORUN is not set
# CONFIG_READAHEAD is not set
CONFIG_RUNLEVEL=y
# CONFIG_RX is not set
CONFIG_STRINGS=y
CONFIG_SETSID=y
# CONFIG_TASKSET is not set
CONFIG_FEATURE_TASKSET_FANCY=y
CONFIG_TIME=y
CONFIG_WATCHDOG=y
#
# Networking Utilities
#
# CONFIG_FEATURE_IPV6 is not set
# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
# CONFIG_ARP is not set
CONFIG_ARPING=y
CONFIG_DNSD=y
CONFIG_ETHER_WAKE=y
# CONFIG_FAKEIDENTD is not set
# CONFIG_FTPGET is not set
# CONFIG_FTPPUT is not set
# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
CONFIG_HOSTNAME=y
# CONFIG_HTTPD is not set
# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
# CONFIG_FEATURE_HTTPD_SETUID is not set
# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
# CONFIG_FEATURE_HTTPD_CGI is not set
# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
CONFIG_IFCONFIG=y
CONFIG_FEATURE_IFCONFIG_STATUS=y
CONFIG_FEATURE_IFCONFIG_SLIP=y
CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
CONFIG_FEATURE_IFCONFIG_HW=y
# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
CONFIG_IFUPDOWN=y
CONFIG_FEATURE_IFUPDOWN_IP=y
# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
CONFIG_FEATURE_IFUPDOWN_IPV4=y
# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
# CONFIG_FEATURE_IFUPDOWN_IPX is not set
CONFIG_FEATURE_IFUPDOWN_MAPPING=y
CONFIG_INETD=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
# CONFIG_FEATURE_INETD_RPC is not set
CONFIG_IP=y
CONFIG_FEATURE_IP_ADDRESS=y
CONFIG_FEATURE_IP_LINK=y
CONFIG_FEATURE_IP_ROUTE=y
CONFIG_FEATURE_IP_TUNNEL=y
CONFIG_FEATURE_IP_RULE=y
CONFIG_FEATURE_IP_SHORT_FORMS=y
CONFIG_IPADDR=y
CONFIG_IPLINK=y
CONFIG_IPROUTE=y
CONFIG_IPTUNNEL=y
CONFIG_IPRULE=y
# CONFIG_IPCALC is not set
# CONFIG_FEATURE_IPCALC_FANCY is not set
# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
CONFIG_NAMEIF=y
# CONFIG_NC is not set
# CONFIG_NC_SERVER is not set
# CONFIG_NC_EXTRA is not set
CONFIG_NETSTAT=y
CONFIG_NSLOOKUP=y
CONFIG_PING=y
# CONFIG_PING6 is not set
CONFIG_FEATURE_FANCY_PING=y
CONFIG_ROUTE=y
CONFIG_TELNET=y
CONFIG_FEATURE_TELNET_TTYPE=y
CONFIG_FEATURE_TELNET_AUTOLOGIN=y
# CONFIG_TELNETD is not set
# CONFIG_FEATURE_TELNETD_STANDALONE is not set
CONFIG_TFTP=y
CONFIG_FEATURE_TFTP_GET=y
CONFIG_FEATURE_TFTP_PUT=y
CONFIG_FEATURE_TFTP_BLOCKSIZE=y
# CONFIG_DEBUG_TFTP is not set
CONFIG_TRACEROUTE=y
# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
CONFIG_APP_UDHCPD=y
CONFIG_APP_DHCPRELAY=y
CONFIG_APP_DUMPLEASES=y
CONFIG_APP_UDHCPC=y
CONFIG_FEATURE_UDHCP_SYSLOG=y
# CONFIG_FEATURE_UDHCP_DEBUG is not set
# CONFIG_FEATURE_RFC3397 is not set
CONFIG_VCONFIG=y
CONFIG_WGET=y
CONFIG_FEATURE_WGET_STATUSBAR=y
CONFIG_FEATURE_WGET_AUTHENTICATION=y
CONFIG_FEATURE_WGET_LONG_OPTIONS=y
# CONFIG_ZCIP is not set
#
# Process Utilities
#
CONFIG_FREE=y
CONFIG_FUSER=y
CONFIG_KILL=y
CONFIG_KILLALL=y
CONFIG_KILLALL5=y
CONFIG_PIDOF=y
CONFIG_FEATURE_PIDOF_SINGLE=y
CONFIG_FEATURE_PIDOF_OMIT=y
CONFIG_PS=y
CONFIG_FEATURE_PS_WIDE=y
CONFIG_RENICE=y
CONFIG_BB_SYSCTL=y
CONFIG_TOP=y
CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
CONFIG_UPTIME=y
#
# Shells
#
CONFIG_FEATURE_SH_IS_ASH=y
# CONFIG_FEATURE_SH_IS_HUSH is not set
# CONFIG_FEATURE_SH_IS_LASH is not set
# CONFIG_FEATURE_SH_IS_MSH is not set
# CONFIG_FEATURE_SH_IS_NONE is not set
CONFIG_ASH=y
#
# Ash Shell Options
#
CONFIG_ASH_JOB_CONTROL=y
CONFIG_ASH_READ_NCHARS=y
CONFIG_ASH_READ_TIMEOUT=y
CONFIG_ASH_ALIAS=y
CONFIG_ASH_MATH_SUPPORT=y
CONFIG_ASH_MATH_SUPPORT_64=y
# CONFIG_ASH_GETOPTS is not set
CONFIG_ASH_BUILTIN_ECHO=y
CONFIG_ASH_BUILTIN_TEST=y
CONFIG_ASH_CMDCMD=y
# CONFIG_ASH_MAIL is not set
CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
CONFIG_ASH_RANDOM_SUPPORT=y
CONFIG_ASH_EXPAND_PRMT=y
# CONFIG_HUSH is not set
# CONFIG_LASH is not set
# CONFIG_MSH is not set
#
# Bourne Shell Options
#
CONFIG_FEATURE_SH_EXTRA_QUIET=y
# CONFIG_FEATURE_SH_STANDALONE_SHELL is not set
#
# System Logging Utilities
#
CONFIG_SYSLOGD=y
CONFIG_FEATURE_ROTATE_LOGFILE=y
CONFIG_FEATURE_REMOTE_LOG=y
# CONFIG_FEATURE_IPC_SYSLOG is not set
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=
# CONFIG_LOGREAD is not set
# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
CONFIG_KLOGD=y
CONFIG_LOGGER=y
#
# Runit Utilities
#
# CONFIG_RUNSV is not set
# CONFIG_RUNSVDIR is not set
# CONFIG_SV is not set
# CONFIG_SVLOGD is not set
# CONFIG_CHPST is not set
# CONFIG_SETUIDGID is not set
# CONFIG_ENVUIDGID is not set
# CONFIG_ENVDIR is not set
# CONFIG_SOFTLIMIT is not set
# CONFIG_CHCON is not set
# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
# CONFIG_GETENFORCE is not set
# CONFIG_GETSEBOOL is not set
# CONFIG_MATCHPATHCON is not set
# CONFIG_RUNCON is not set
# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
# CONFIG_SELINUXENABLED is not set
# CONFIG_SETENFORCE is not set

View File

@@ -7,28 +7,29 @@
ifeq ($(BR2_PACKAGE_BUSYBOX_SNAPSHOT),y)
# Be aware that this changes daily....
BUSYBOX_DIR:=$(BUILD_DIR)/busybox
BUSYBOX_DIR:=$(PROJECT_BUILD_DIR)/busybox
BUSYBOX_SOURCE:=busybox-snapshot.tar.bz2
BUSYBOX_SITE:=http://www.busybox.net/downloads/snapshots
else
BUSYBOX_VERSION=$(call qstrip,$(BR2_BUSYBOX_VERSION))
BUSYBOX_DIR:=$(BUILD_DIR)/busybox-$(BUSYBOX_VERSION)
BUSYBOX_VERSION=$(strip $(subst ",, $(BR2_BUSYBOX_VERSION)))
#"))
BUSYBOX_DIR:=$(PROJECT_BUILD_DIR)/busybox-$(BUSYBOX_VERSION)
BUSYBOX_SOURCE:=busybox-$(BUSYBOX_VERSION).tar.bz2
BUSYBOX_SITE:=http://www.busybox.net/downloads
endif
BUSYBOX_UNZIP=$(BZCAT)
BUSYBOX_CFLAGS=$(TARGET_CFLAGS) -I$(LINUX_HEADERS_DIR)/include
ifndef BUSYBOX_CONFIG_FILE
BUSYBOX_CONFIG_FILE=$(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG))
BUSYBOX_CONFIG_FILE=$(subst ",, $(strip $(BR2_PACKAGE_BUSYBOX_CONFIG)))
#")
endif
$(DL_DIR)/$(BUSYBOX_SOURCE):
$(call DOWNLOAD,$(BUSYBOX_SITE),$(BUSYBOX_SOURCE))
$(BUSYBOX_DIR)/.unpacked: $(DL_DIR)/$(BUSYBOX_SOURCE)
$(BUSYBOX_UNZIP) $(DL_DIR)/$(BUSYBOX_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
$(BUSYBOX_UNZIP) $(DL_DIR)/$(BUSYBOX_SOURCE) | tar -C $(PROJECT_BUILD_DIR) $(TAR_OPTIONS) -
ifeq ($(BR2_PACKAGE_SYSKLOGD),y)
# if we have external syslogd, force busybox to use it
$(SED) "/#include.*busybox\.h/a#define CONFIG_SYSLOGD" $(BUSYBOX_DIR)/init/init.c
@@ -45,8 +46,14 @@ $(BUSYBOX_DIR)/.config: $(BUSYBOX_DIR)/.unpacked $(BUSYBOX_CONFIG_FILE)
cp -f $(BUSYBOX_CONFIG_FILE) $(BUSYBOX_DIR)/.config
$(SED) s,^CONFIG_PREFIX=.*,CONFIG_PREFIX=\"$(TARGET_DIR)\", \
$(BUSYBOX_DIR)/.config
# id applet breaks on >=1.13.0 with old uclibc unless the bb pwd routines are used
ifeq ($(BR2_BUSYBOX_VERSION_1_13_X)$(BR2_BUSYBOX_VERSION_1_14_X)$(BR2_UCLIBC_VERSION_0_9_28_3)$(BR2_UCLIBC_VERSION_0_9_29),yy)
ifeq ($(BR2_BUSYBOX_VERSION_1_2_2_1),y)
$(SED) s,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX=\"$(TARGET_CROSS)\", \
$(BUSYBOX_DIR)/.config
$(SED) s,^PREFIX=.*,CROSS_COMPILER_PREFIX=\"$(TARGET_CROSS)\", \
$(BUSYBOX_DIR)/.config
endif
# id applet breaks on 1.13.0 with old uclibc unless the bb pwd routines are used
ifeq ($(BR2_BUSYBOX_VERSION_1_13_X)$(BR2_UCLIBC_VERSION_0_9_28_3)$(BR2_UCLIBC_VERSION_0_9_29),yy)
if grep -q 'CONFIG_ID=y' $(BUSYBOX_DIR)/.config; \
then \
echo 'warning: CONFIG_ID needs BB_PWD_GRP with old uclibc, enabling' >&2;\
@@ -68,15 +75,8 @@ else
endif
ifeq ($(BR2_INET_IPV6),y)
$(SED) "s/^.*CONFIG_FEATURE_IPV6.*/CONFIG_FEATURE_IPV6=y/;" $(BUSYBOX_DIR)/.config
$(SED) "s/^.*CONFIG_FEATURE_IFUPDOWN_IPV6.*/CONFIG_FEATURE_IFUPDOWN_IPV6=y/;" $(BUSYBOX_DIR)/.config
else
$(SED) "s/^.*CONFIG_FEATURE_IPV6.*/CONFIG_FEATURE_IPV6=n/;" $(BUSYBOX_DIR)/.config
$(SED) "s/^.*CONFIG_FEATURE_IFUPDOWN_IPV6.*/CONFIG_FEATURE_IFUPDOWN_IPV6=n/;" $(BUSYBOX_DIR)/.config
endif
ifeq ($(BR2_INET_RPC),y)
$(SED) "s/^.*CONFIG_FEATURE_MOUNT_NFS.*/CONFIG_FEATURE_MOUNT_NFS=y/;" $(BUSYBOX_DIR)/.config
else
$(SED) "s/^.*CONFIG_FEATURE_MOUNT_NFS.*/CONFIG_FEATURE_MOUNT_NFS=n/;" $(BUSYBOX_DIR)/.config
endif
ifeq ($(BR2_PACKAGE_BUSYBOX_SKELETON),y)
# force mdev on
@@ -101,13 +101,13 @@ $(BUSYBOX_DIR)/busybox: $(BUSYBOX_DIR)/.config
$(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
CROSS="$(TARGET_CROSS)" PREFIX="$(TARGET_DIR)" \
ARCH=$(KERNEL_ARCH) \
EXTRA_CFLAGS="$(BUSYBOX_CFLAGS)" -C $(BUSYBOX_DIR)
EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(BUSYBOX_DIR)
ifeq ($(BR2_PREFER_IMA)$(BR2_PACKAGE_BUSYBOX_SNAPSHOT),yy)
rm -f $@
$(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
CROSS="$(TARGET_CROSS)" PREFIX="$(TARGET_DIR)" \
ARCH=$(KERNEL_ARCH) STRIP="$(STRIPCMD)" \
EXTRA_CFLAGS="$(BUSYBOX_CFLAGS)" -C $(BUSYBOX_DIR) \
EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(BUSYBOX_DIR) \
-f scripts/Makefile.IMA
endif
@@ -116,22 +116,22 @@ ifeq ($(BR2_PACKAGE_BUSYBOX_FULLINSTALL),y)
$(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
CROSS="$(TARGET_CROSS)" PREFIX="$(TARGET_DIR)" \
ARCH=$(KERNEL_ARCH) \
EXTRA_CFLAGS="$(BUSYBOX_CFLAGS)" -C $(BUSYBOX_DIR) install
EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(BUSYBOX_DIR) install
else
install -D -m 0755 $(BUSYBOX_DIR)/busybox $(TARGET_DIR)/bin/busybox
endif
# Just in case
-chmod a+x $(TARGET_DIR)/usr/share/udhcpc/default.script
busybox: $(TARGET_DIR)/bin/busybox
busybox: uclibc $(TARGET_DIR)/bin/busybox
busybox-source: $(DL_DIR)/$(BUSYBOX_SOURCE)
busybox-unpacked: host-sed $(BUILD_DIR) $(BUSYBOX_DIR)/.unpacked
busybox-unpacked: host-sed $(PROJECT_BUILD_DIR) $(BUSYBOX_DIR)/.unpacked
busybox-config: host-sed $(BUILD_DIR) $(BUSYBOX_DIR)/.config
busybox-config: host-sed $(PROJECT_BUILD_DIR) $(BUSYBOX_DIR)/.config
busybox-menuconfig: host-sed $(BUILD_DIR) busybox-source $(BUSYBOX_DIR)/.config
busybox-menuconfig: host-sed $(PROJECT_BUILD_DIR) busybox-source $(BUSYBOX_DIR)/.config
$(MAKE) __TARGET_ARCH=$(ARCH) -C $(BUSYBOX_DIR) menuconfig
busybox-update:

View File

@@ -6,7 +6,7 @@
ifeq ($(BR2_PACKAGE_BUSYBOX_INITRAMFS),y)
BUSYBOX_INITRAMFS_DIR:=$(BUSYBOX_DIR)-initramfs
BR2_INITRAMFS_DIR:=$(BUILD_DIR)/initramfs
BR2_INITRAMFS_DIR:=$(PROJECT_BUILD_DIR)/initramfs
BB_INITRAMFS_TARGET:=$(IMAGE).initramfs_lst
$(BUSYBOX_INITRAMFS_DIR)/.unpacked: $(DL_DIR)/$(BUSYBOX_SOURCE)
@@ -105,39 +105,39 @@ $(BR2_INITRAMFS_DIR)/bin/busybox: $(BUSYBOX_INITRAMFS_DIR)/busybox
$(BB_INITRAMFS_TARGET): host-fakeroot $(BR2_INITRAMFS_DIR)/bin/busybox
ln -fs bin/busybox $(BUILD_DIR)/initramfs/init
mkdir -p $(BUILD_DIR)/initramfs/etc
ln -fs bin/busybox $(PROJECT_BUILD_DIR)/initramfs/init
mkdir -p $(PROJECT_BUILD_DIR)/initramfs/etc
cat target/generic/target_busybox_skeleton/etc/inittab > \
$(BUILD_DIR)/initramfs/etc/inittab
rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
(echo "chown -R 0:0 $(BUILD_DIR)/initramfs"; \
echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(BUILD_DIR)/initramfs"; \
echo "$(SHELL) target/initramfs/gen_initramfs_list.sh -u 0 -g 0 $(BUILD_DIR)/initramfs > $(BB_INITRAMFS_TARGET)"; \
) > $(BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
chmod +x $(BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
$(HOST_DIR)/usr/bin/fakeroot -- \
$(BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
$(PROJECT_BUILD_DIR)/initramfs/etc/inittab
rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
(echo "chown -R 0:0 $(PROJECT_BUILD_DIR)/initramfs"; \
echo "$(STAGING_DIR)/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(PROJECT_BUILD_DIR)/initramfs"; \
echo "$(SHELL) target/initramfs/gen_initramfs_list.sh -u 0 -g 0 $(PROJECT_BUILD_DIR)/initramfs > $(BB_INITRAMFS_TARGET)"; \
) > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
chmod +x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
$(STAGING_DIR)/usr/bin/fakeroot -- \
$(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
touch -c $@
$(BUILD_DIR)/.initramfs_done: $(BR2_INITRAMFS_DIR)/bin/busybox \
$(PROJECT_BUILD_DIR)/.initramfs_done: $(BR2_INITRAMFS_DIR)/bin/busybox \
$(BB_INITRAMFS_TARGET)
touch $@
busybox-initramfs-source:
busybox-initramfs: $(BUILD_DIR)/.initramfs_done
busybox-initramfs: uclibc $(PROJECT_BUILD_DIR)/.initramfs_done
busybox-initramfs-menuconfig: host-sed $(BUILD_DIR) busybox-source $(BUSYBOX_INITRAMFS_DIR)/.configured
$(MAKE) __TARGET_ARCH=$(ARCH) -C $(BUSYBOX_INITRAMFS_DIR) menuconfig
busybox-initramfs-clean:
rm -f $(BUSYBOX_INITRAMFS_DIR)/busybox $(BUILD_DIR)/.initramfs_*
rm -f $(BUSYBOX_INITRAMFS_DIR)/busybox $(PROJECT_BUILD_DIR)/.initramfs_*
rm -rf $(BR2_INITRAMFS_DIR) $(BB_INITRAMFS_TARGET)
-$(MAKE) -C $(BUSYBOX_INITRAMFS_DIR) clean
busybox-initramfs-dirclean:
rm -rf $(BUSYBOX_INITRAMFS_DIR) $(BR2_INITRAMFS_DIR) \
$(BUILD_DIR)/.initramfs_*
$(PROJECT_BUILD_DIR)/.initramfs_*
endif
#############################################################
#

View File

@@ -96,7 +96,7 @@ $(TARGET_DIR)/usr/lib/libbz2.a: $(STAGING_DIR)/usr/lib/libbz2.a
bzip2-headers: $(TARGET_DIR)/usr/lib/libbz2.a
bzip2: $(BZIP2_TARGET_BINARY)
bzip2: uclibc $(BZIP2_TARGET_BINARY)
bzip2-clean:
rm -f $(addprefix $(TARGET_DIR),/lib/libbz2.* \

View File

@@ -1,7 +1,11 @@
config BR2_PACKAGE_CAIRO
bool "cairo"
select BR2_PACKAGE_PKGCONFIG
select BR2_PACKAGE_LIBPNG
select BR2_PACKAGE_ZLIB
select BR2_PACKAGE_PIXMAN
select BR2_PACKAGE_FONTCONFIG
depends on BR2_PACKAGE_XORG||BR2_PACKAGE_XORG7||BR2_PACKAGE_TINYX||BR2_PACKAGE_DIRECTFB
help
Cairo is a 2D graphics library with support for multiple
output devices. Currently supported output targets include
@@ -10,24 +14,3 @@ config BR2_PACKAGE_CAIRO
OpenGL (through glitz), Quartz, and XCB.
http://cairographics.org/
if BR2_PACKAGE_CAIRO
config BR2_PACKAGE_CAIRO_PS
bool "postscript support"
select BR2_PACKAGE_ZLIB
config BR2_PACKAGE_CAIRO_PDF
bool "pdf support"
select BR2_PACKAGE_ZLIB
config BR2_PACKAGE_CAIRO_PNG
bool "png support"
select BR2_PACKAGE_LIBPNG
select BR2_PACKAGE_ZLIB
config BR2_PACKAGE_CAIRO_SVG
bool "svg support"
select BR2_PACKAGE_CAIRO_PNG
endif

View File

@@ -9,6 +9,7 @@ CAIRO_SITE = http://cairographics.org/releases
CAIRO_AUTORECONF = NO
CAIRO_INSTALL_STAGING = YES
CAIRO_INSTALL_TARGET = YES
CAIRO_INSTALL_STAGING_OPT = DESTDIR=$(STAGING_DIR) install
CAIRO_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
glib_cv_uscore=no ac_cv_func_strtod=yes \
@@ -37,98 +38,15 @@ CAIRO_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
am_getline_needs_run_time_check=no am_cv_func_working_getline=yes \
gl_cv_func_mkdir_trailing_slash_bug=no gl_cv_func_mkstemp_limitations=no \
ac_cv_func_working_mktime=yes jm_cv_func_working_re_compile_pattern=yes \
ac_use_included_regex=no gl_cv_c_restrict=no
ac_use_included_regex=no gl_cv_c_restrict=no \
ac_cv_path_GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal
CAIRO_DEPENDENCIES = host-pkgconfig fontconfig pixman
ifeq ($(BR2_PACKAGE_DIRECTFB),y)
CAIRO_CONF_OPT += --enable-directfb
CAIRO_DEPENDENCIES += directfb
else
CAIRO_CONF_OPT += --disable-directfb
CAIRO_CONF_OPT = --disable-xlib --without-x --enable-directfb
CAIRO_DEPENDENCIES_EXTRA = directfb
endif
ifeq ($(BR2_PACKAGE_XORG7),y)
CAIRO_CONF_OPT += --enable-xlib --with-x
CAIRO_DEPENDENCIES += xserver_xorg-server
else
CAIRO_CONF_OPT += --disable-xlib --without-x
endif
ifeq ($(BR2_PACKAGE_CAIRO_PS),y)
CAIRO_CONF_OPT += --enable-ps
CAIRO_DEPENDENCIES += zlib
else
CAIRO_CONF_OPT += --disable-ps
endif
ifeq ($(BR2_PACKAGE_CAIRO_PDF),y)
CAIRO_CONF_OPT += --enable-pdf
CAIRO_DEPENDENCIES += zlib
else
CAIRO_CONF_OPT += --disable-pdf
endif
ifeq ($(BR2_PACKAGE_CAIRO_PNG),y)
CAIRO_CONF_OPT += --enable-png
CAIRO_DEPENDENCIES += libpng
else
CAIRO_CONF_OPT += --disable-png
endif
ifeq ($(BR2_PACKAGE_CAIRO_SVG),y)
CAIRO_CONF_OPT += --enable-svg
else
CAIRO_CONF_OPT += --disable-svg
endif
CAIRO_DEPENDENCIES = uclibc gettext libintl pkgconfig zlib libpng fontconfig $(CAIRO_DEPENDENCIES_EXTRA) pixman $(XSERVER)
$(eval $(call AUTOTARGETS,package,cairo))
# cairo for the host
CAIRO_HOST_DIR:=$(BUILD_DIR)/cairo-$(CAIRO_VERSION)-host
$(DL_DIR)/$(CAIRO_SOURCE):
$(call DOWNLOAD,$(CAIRO_SITE),$(CAIRO_SOURCE))
$(STAMP_DIR)/host_cairo_unpacked: $(DL_DIR)/$(CAIRO_SOURCE)
mkdir -p $(CAIRO_HOST_DIR)
$(INFLATE$(suffix $(CAIRO_SOURCE))) $< | \
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(CAIRO_HOST_DIR) $(TAR_OPTIONS) -
touch $@
$(STAMP_DIR)/host_cairo_configured: $(STAMP_DIR)/host_cairo_unpacked $(STAMP_DIR)/host_pkgconfig_installed $(STAMP_DIR)/host_fontconfig_installed $(STAMP_DIR)/host_pixman_installed
(cd $(CAIRO_HOST_DIR); rm -rf config.cache; \
$(HOST_CONFIGURE_OPTS) \
CFLAGS="$(HOST_CFLAGS)" \
LDFLAGS="$(HOST_LDFLAGS)" \
./configure $(QUIET) \
--prefix="$(HOST_DIR)/usr" \
--sysconfdir="$(HOST_DIR)/etc" \
--enable-ps \
--enable-pdf \
--enable-xlib \
--with-x \
--disable-png \
--disable-svg \
)
touch $@
$(STAMP_DIR)/host_cairo_compiled: $(STAMP_DIR)/host_cairo_configured
$(HOST_MAKE_ENV) $(MAKE) -C $(CAIRO_HOST_DIR)
touch $@
$(STAMP_DIR)/host_cairo_installed: $(STAMP_DIR)/host_cairo_compiled
$(HOST_MAKE_ENV) $(MAKE) -C $(CAIRO_HOST_DIR) install
touch $@
host-cairo: $(STAMP_DIR)/host_cairo_installed
host-cairo-source: cairo-source
host-cairo-clean:
rm -f $(addprefix $(STAMP_DIR)/host_cairo_,unpacked configured compiled installed)
-$(MAKE) -C $(CAIRO_HOST_DIR) uninstall
-$(MAKE) -C $(CAIRO_HOST_DIR) clean
host-cairo-dirclean:
rm -rf $(CAIRO_HOST_DIR)

View File

@@ -1,10 +0,0 @@
/buildroot-config
/conf
/mconf
/qconf
/qconf.moc
/.tmp_qtcheck
/lkc_defs.h
/lex.zconf.c
/zconf.hash.c
/zconf.tab.c

View File

@@ -14,10 +14,7 @@ __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
host-csingle := $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m)))
host-cmulti := $(foreach m,$(__hostprogs),\
$(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m))))
host-cxxmulti := $(foreach m,$(__hostprogs),\
$(if $($(m)-cxxobjs),$(m),$(if $($(m)-objs),)))
host-cobjs := $(sort $(foreach m,$(__hostprogs),$($(m)-objs)))
host-cxxobjs := $(sort $(foreach m,$(__hostprogs),$($(m)-cxxobjs)))
$(host-csingle): %: %.c
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $< $(HOST_LOADLIBES) -o $@
@@ -25,15 +22,9 @@ $(host-csingle): %: %.c
$(host-cmulti): %: $(host-cobjs) $(host-cshlib)
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $($@-objs) $(HOST_LOADLIBES) -o $@
$(host-cxxmulti): %: $(host-cxxobjs) $(host-cobjs) $(host-cshlib)
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $($@-objs) $($@-cxxobjs) $(HOSTLOADLIBES_$@) -o $@
$(host-cobjs): %.o: %.c
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) -c $< -o $@
$(host-cxxobjs): %.o: %.cc
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCXXFLAGS_$@) -c $< -o $@
$(obj)/%:: $(src)/%_shipped
$(Q)cat $< > $@

View File

@@ -4,11 +4,7 @@
PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config
ifdef KBUILD_KCONFIG
Kconfig := $(KBUILD_KCONFIG)
else
Kconfig := arch/$(SRCARCH)/Kconfig
endif
xconfig: $(obj)/qconf
$< $(Kconfig)
@@ -28,25 +24,22 @@ oldconfig: $(obj)/conf
silentoldconfig: $(obj)/conf
$< -s $(Kconfig)
# Create new linux.pot file
# Create new linux.po file
# Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files
# The symlink is used to repair a deficiency in arch/um
update-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h
$(Q)echo " GEN config"
$(Q)xgettext --default-domain=linux \
update-po-config: $(obj)/kxgettext
xgettext --default-domain=linux \
--add-comments --keyword=_ --keyword=N_ \
--from-code=UTF-8 \
--files-from=scripts/kconfig/POTFILES.in \
--output $(obj)/config.pot
$(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot
$(Q)ln -fs Kconfig.i386 arch/um/Kconfig.arch
$(Q)(for i in `ls arch/*/Kconfig`; \
do \
echo " GEN $$i"; \
$(obj)/kxgettext $$i \
>> $(obj)/config.pot; \
done )
$(Q)msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
(for i in `ls arch/`; \
do \
$(obj)/kxgettext arch/$$i/Kconfig; \
done ) >> $(obj)/config.pot
msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
--output $(obj)/linux.pot
$(Q)rm -f arch/um/Kconfig.arch
$(Q)rm -f $(obj)/config.pot
@@ -83,7 +76,7 @@ help:
@echo ' xconfig - Update current config utilising a QT based front-end'
@echo ' gconfig - Update current config utilising a GTK based front-end'
@echo ' oldconfig - Update current config utilising a provided .config as base'
@echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
@echo ' silentoldconfig - Same as oldconfig, but quietly'
@echo ' randconfig - New config with random answer to all options'
@echo ' defconfig - New config with default answer to all options'
@echo ' allmodconfig - New config selecting modules when possible'
@@ -100,11 +93,17 @@ HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
HOST_EXTRACFLAGS += -DLOCALE
PHONY += $(obj)/dochecklxdialog
$(obj)/dochecklxdialog:
$(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_LOADLIBES)
always := dochecklxdialog
# ===========================================================================
# Shared Makefile for the various kconfig executables:
# conf: Used for defconfig, oldconfig and related targets
# mconf: Used for the menuconfig target
# mconf: Used for the mconfig target.
# Utilizes the lxdialog package
# qconf: Used for the xconfig target
# Based on QT which needs to be installed to compile it
@@ -125,16 +124,12 @@ ifeq ($(MAKECMDGOALS),menuconfig)
hostprogs-y += mconf
endif
ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf)
hostprogs-y += mconf
hostprogs-y += mconf
endif
ifeq ($(MAKECMDGOALS),xconfig)
qconf-target := 1
endif
ifeq ($(findstring qconf,$(MAKECMDGOALS)),qconf)
qconf-target := 1
endif
ifeq ($(MAKECMDGOALS),gconfig)
gconf-target := 1
endif
@@ -150,17 +145,8 @@ gconf-objs := gconf.o kconfig_load.o zconf.tab.o
endif
clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \
.tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c gconf.glade.h
.tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c
clean-files += mconf qconf gconf
clean-files += config.pot linux.pot
# Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
PHONY += $(obj)/dochecklxdialog
$(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog
$(obj)/dochecklxdialog:
$(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES)
always := dochecklxdialog
# Add environment specific flags
HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS))
@@ -198,8 +184,8 @@ $(obj)/.tmp_qtcheck:
done; \
if [ -z "$$dir" ]; then \
echo "*"; \
echo "* Unable to find the QT3 installation. Please make sure that"; \
echo "* the QT3 development package is correctly installed and"; \
echo "* Unable to find the QT installation. Please make sure that"; \
echo "* the QT development package is correctly installed and"; \
echo "* either install pkg-config or set the QTDIR environment"; \
echo "* variable to the correct location."; \
echo "*"; \
@@ -265,9 +251,6 @@ $(obj)/%.moc: $(src)/%.h
$(obj)/lkc_defs.h: $(src)/lkc_proto.h
sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
# Extract gconf menu items for I18N support
$(obj)/gconf.glade.h: $(obj)/gconf.glade
intltool-extract --type=gettext/glade $(obj)/gconf.glade
###
# The following requires flex/bison/gperf

View File

@@ -1,12 +1,5 @@
scripts/kconfig/lxdialog/checklist.c
scripts/kconfig/lxdialog/inputbox.c
scripts/kconfig/lxdialog/menubox.c
scripts/kconfig/lxdialog/textbox.c
scripts/kconfig/lxdialog/util.c
scripts/kconfig/lxdialog/yesno.c
scripts/kconfig/mconf.c
scripts/kconfig/conf.c
scripts/kconfig/confdata.c
scripts/kconfig/gconf.c
scripts/kconfig/gconf.glade.h
scripts/kconfig/qconf.cc

View File

@@ -3,15 +3,13 @@
* Released under the terms of the GNU GPL v2.0.
*/
#include <locale.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <time.h>
#include <sys/stat.h>
#include <sys/time.h>
#define LKC_DIRECT_LINK
#include "lkc.h"
@@ -33,7 +31,6 @@ char *defconfig_file;
static int indent = 1;
static int valid_stdin = 1;
static int sync_kconfig;
static int conf_cnt;
static char line[128];
static struct menu *rootEntry;
@@ -43,7 +40,7 @@ static char nohelp_text[] = N_("Sorry, no help available for this option yet.\n"
static const char *get_help(struct menu *menu)
{
if (menu_has_help(menu))
return _(menu_get_help(menu));
return menu_get_help(menu);
else
return nohelp_text;
}
@@ -67,7 +64,7 @@ static void strip(char *str)
static void check_stdin(void)
{
if (!valid_stdin) {
if (!valid_stdin && input_mode == ask_silent) {
printf(_("aborted!\n\n"));
printf(_("Console input/output is redirected. "));
printf(_("Run 'make oldconfig' to update configuration.\n\n"));
@@ -78,9 +75,10 @@ static void check_stdin(void)
static int conf_askvalue(struct symbol *sym, const char *def)
{
enum symbol_type type = sym_get_type(sym);
tristate val;
if (!sym_has_value(sym))
printf(_("(NEW) "));
printf("(NEW) ");
line[0] = '\n';
line[1] = 0;
@@ -93,6 +91,15 @@ static int conf_askvalue(struct symbol *sym, const char *def)
}
switch (input_mode) {
case set_no:
case set_mod:
case set_yes:
case set_random:
if (sym_has_value(sym)) {
printf("%s\n", def);
return 0;
}
break;
case ask_new:
case ask_silent:
if (sym_has_value(sym)) {
@@ -104,6 +111,9 @@ static int conf_askvalue(struct symbol *sym, const char *def)
fflush(stdout);
fgets(line, 128, stdin);
return 1;
case set_default:
printf("%s\n", def);
return 1;
default:
break;
}
@@ -117,6 +127,52 @@ static int conf_askvalue(struct symbol *sym, const char *def)
default:
;
}
switch (input_mode) {
case set_yes:
if (sym_tristate_within_range(sym, yes)) {
line[0] = 'y';
line[1] = '\n';
line[2] = 0;
break;
}
case set_mod:
if (type == S_TRISTATE) {
if (sym_tristate_within_range(sym, mod)) {
line[0] = 'm';
line[1] = '\n';
line[2] = 0;
break;
}
} else {
if (sym_tristate_within_range(sym, yes)) {
line[0] = 'y';
line[1] = '\n';
line[2] = 0;
break;
}
}
case set_no:
if (sym_tristate_within_range(sym, no)) {
line[0] = 'n';
line[1] = '\n';
line[2] = 0;
break;
}
case set_random:
do {
val = (tristate)(random() % 3);
} while (!sym_tristate_within_range(sym, val));
switch (val) {
case no: line[0] = 'n'; break;
case mod: line[0] = 'm'; break;
case yes: line[0] = 'y'; break;
}
line[1] = '\n';
line[2] = 0;
break;
default:
break;
}
printf("%s", line);
return 1;
}
@@ -127,7 +183,7 @@ int conf_string(struct menu *menu)
const char *def;
while (1) {
printf("%*s%s ", indent - 1, "", _(menu->prompt->text));
printf("%*s%s ", indent - 1, "", menu->prompt->text);
printf("(%s) ", sym->name);
def = sym_get_string_value(sym);
if (sym_get_string_value(sym))
@@ -160,7 +216,7 @@ static int conf_sym(struct menu *menu)
tristate oldval, newval;
while (1) {
printf("%*s%s ", indent - 1, "", _(menu->prompt->text));
printf("%*s%s ", indent - 1, "", menu->prompt->text);
if (sym->name)
printf("(%s) ", sym->name);
type = sym_get_type(sym);
@@ -250,7 +306,7 @@ static int conf_choice(struct menu *menu)
case no:
return 1;
case mod:
printf("%*s%s\n", indent - 1, "", _(menu_get_prompt(menu)));
printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
return 0;
case yes:
break;
@@ -260,7 +316,7 @@ static int conf_choice(struct menu *menu)
while (1) {
int cnt, def;
printf("%*s%s\n", indent - 1, "", _(menu_get_prompt(menu)));
printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
def_sym = sym_get_choice_value(sym);
cnt = def = 0;
line[0] = 0;
@@ -268,7 +324,7 @@ static int conf_choice(struct menu *menu)
if (!menu_is_visible(child))
continue;
if (!child->sym) {
printf("%*c %s\n", indent, '*', _(menu_get_prompt(child)));
printf("%*c %s\n", indent, '*', menu_get_prompt(child));
continue;
}
cnt++;
@@ -277,14 +333,14 @@ static int conf_choice(struct menu *menu)
printf("%*c", indent, '>');
} else
printf("%*c", indent, ' ');
printf(" %d. %s", cnt, _(menu_get_prompt(child)));
printf(" %d. %s", cnt, menu_get_prompt(child));
if (child->sym->name)
printf(" (%s)", child->sym->name);
if (!sym_has_value(child->sym))
printf(_(" (NEW)"));
printf(" (NEW)");
printf("\n");
}
printf(_("%*schoice"), indent - 1, "");
printf("%*schoice", indent - 1, "");
if (cnt == 1) {
printf("[1]: 1\n");
goto conf_childs;
@@ -317,7 +373,15 @@ static int conf_choice(struct menu *menu)
else
continue;
break;
default:
case set_random:
if (is_new)
def = (random() % cnt) + 1;
case set_default:
case set_yes:
case set_mod:
case set_no:
cnt = def;
printf("%d\n", cnt);
break;
}
@@ -335,9 +399,9 @@ static int conf_choice(struct menu *menu)
continue;
}
sym_set_choice_value(sym, child->sym);
for (child = child->list; child; child = child->next) {
if (child->list) {
indent += 2;
conf(child);
conf(child->list);
indent -= 2;
}
return 1;
@@ -369,7 +433,7 @@ static void conf(struct menu *menu)
if (prompt)
printf("%*c\n%*c %s\n%*c\n",
indent, '*',
indent, '*', _(prompt),
indent, '*', prompt,
indent, '*');
default:
;
@@ -431,29 +495,30 @@ static void check_conf(struct menu *menu)
int main(int ac, char **av)
{
int opt;
int i = 1;
const char *name;
struct stat tmpstat;
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
while ((opt = getopt(ac, av, "osdD:nmyrh")) != -1) {
switch (opt) {
if (ac > i && av[i][0] == '-') {
switch (av[i++][1]) {
case 'o':
input_mode = ask_silent;
input_mode = ask_new;
break;
case 's':
input_mode = ask_silent;
sync_kconfig = 1;
valid_stdin = isatty(0) && isatty(1) && isatty(2);
break;
case 'd':
input_mode = set_default;
break;
case 'D':
input_mode = set_default;
defconfig_file = optarg;
defconfig_file = av[i++];
if (!defconfig_file) {
printf(_("%s: No default config file specified\n"),
av[0]);
exit(1);
}
break;
case 'n':
input_mode = set_no;
@@ -465,63 +530,44 @@ int main(int ac, char **av)
input_mode = set_yes;
break;
case 'r':
{
struct timeval now;
unsigned int seed;
/*
* Use microseconds derived seed,
* compensate for systems where it may be zero
*/
gettimeofday(&now, NULL);
seed = (unsigned int)((now.tv_sec + 1) * (now.tv_usec + 1));
srand(seed);
input_mode = set_random;
srandom(time(NULL));
break;
}
case 'h':
printf(_("See README for usage info\n"));
case '?':
fprintf(stderr, "See README for usage info\n");
exit(0);
break;
default:
fprintf(stderr, _("See README for usage info\n"));
exit(1);
}
}
if (ac == optind) {
name = av[i];
if (!name) {
printf(_("%s: Kconfig file missing\n"), av[0]);
exit(1);
}
name = av[optind];
conf_parse(name);
if (sync_kconfig) {
name = conf_get_configname();
if (stat(name, &tmpstat)) {
fprintf(stderr, _("***\n"
"*** You have not yet configured Buildroot!\n"
"*** (missing .config file \"%s\")\n"
"***\n"
"*** Please run some configurator (e.g. \"make oldconfig\" or\n"
"*** \"make menuconfig\" or \"make xconfig\").\n"
"***\n"), name);
exit(1);
}
}
/*zconfdump(stdout);*/
switch (input_mode) {
case set_default:
if (!defconfig_file)
defconfig_file = conf_get_default_confname();
if (conf_read(defconfig_file)) {
printf(_("***\n"
printf("***\n"
"*** Can't find default configuration \"%s\"!\n"
"***\n"), defconfig_file);
"***\n", defconfig_file);
exit(1);
}
break;
case ask_silent:
if (stat(".config", &tmpstat)) {
printf(_("***\n"
"*** You have not yet configured Buildroot!\n"
"*** (missing .config file)\n"
"***\n"
"*** Please run some configurator (e.g. \"make oldconfig\" or\n"
"*** \"make menuconfig\" or \"make config\").\n"
"***\n"));
exit(1);
}
case ask_all:
case ask_new:
conf_read(NULL);
@@ -551,70 +597,35 @@ int main(int ac, char **av)
break;
}
if (sync_kconfig) {
if (conf_get_changed()) {
name = getenv("KCONFIG_NOSILENTUPDATE");
if (name && *name) {
fprintf(stderr,
_("\n*** Buildroot configuration requires explicit update.\n\n"));
return 1;
}
}
valid_stdin = isatty(0) && isatty(1) && isatty(2);
}
switch (input_mode) {
case set_no:
conf_set_all_new_symbols(def_no);
break;
case set_yes:
conf_set_all_new_symbols(def_yes);
break;
case set_mod:
conf_set_all_new_symbols(def_mod);
break;
case set_random:
conf_set_all_new_symbols(def_random);
break;
case set_default:
conf_set_all_new_symbols(def_default);
break;
case ask_new:
case ask_all:
if (input_mode != ask_silent) {
rootEntry = &rootmenu;
conf(&rootmenu);
input_mode = ask_silent;
/* fall through */
case ask_silent:
/* Update until a loop caused no more changes */
do {
conf_cnt = 0;
check_conf(&rootmenu);
} while (conf_cnt);
break;
if (input_mode == ask_all) {
input_mode = ask_silent;
valid_stdin = 1;
}
} else if (conf_get_changed()) {
name = getenv("KCONFIG_NOSILENTUPDATE");
if (name && *name) {
fprintf(stderr, _("\n*** Buildroot configuration requires explicit update.\n\n"));
return 1;
}
} else
goto skip_check;
do {
conf_cnt = 0;
check_conf(&rootmenu);
} while (conf_cnt);
if (conf_write(NULL)) {
fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
return 1;
}
skip_check:
if (/*input_mode == ask_silent &&*/ conf_write_autoconf()) {
fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
return 1;
}
if (sync_kconfig) {
/* silentoldconfig is used during the build so we shall update autoconf.
* All other commands are only used to generate a config.
*/
if (conf_get_changed() && conf_write(NULL)) {
fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
exit(1);
}
if (conf_write_autoconf()) {
fprintf(stderr, _("\n*** Error during update of the Buildroot configuration.\n\n"));
return 1;
}
} else {
if (conf_write(NULL)) {
fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
exit(1);
}
if (conf_write_autoconf()) {
fprintf(stderr, _("\n*** Error during update of the Buildroot configuration.\n\n"));
return 1;
}
}
return 0;
}

View File

@@ -42,11 +42,6 @@ const char *conf_get_configname(void)
return name ? name : ".config";
}
const char *conf_get_autoconfig_name(void)
{
return getenv("KCONFIG_AUTOCONFIG");
}
static char *conf_expand_value(const char *in)
{
struct symbol *sym;
@@ -229,7 +224,7 @@ load:
if (def == S_DEF_USER) {
sym = sym_find(line + 2);
if (!sym) {
sym_add_change_count(1);
conf_warning("trying to assign nonexistent symbol %s", line + 2);
break;
}
} else {
@@ -238,7 +233,8 @@ load:
sym->type = S_BOOLEAN;
}
if (sym->flags & def_flags) {
conf_warning("override: reassigning to symbol %s", sym->name);
conf_warning("trying to reassign symbol %s", sym->name);
break;
}
switch (sym->type) {
case S_BOOLEAN:
@@ -264,7 +260,7 @@ load:
if (def == S_DEF_USER) {
sym = sym_find(line);
if (!sym) {
sym_add_change_count(1);
conf_warning("trying to assign nonexistent symbol %s", line);
break;
}
} else {
@@ -273,7 +269,8 @@ load:
sym->type = S_OTHER;
}
if (sym->flags & def_flags) {
conf_warning("override: reassigning to symbol %s", sym->name);
conf_warning("trying to reassign symbol %s", sym->name);
break;
}
if (conf_set_sym_val(sym, def, def_flags, p))
continue;
@@ -297,12 +294,14 @@ load:
}
break;
case yes:
if (cs->def[def].tri != no)
conf_warning("override: %s changes choice state", sym->name);
cs->def[def].val = sym;
if (cs->def[def].tri != no) {
conf_warning("%s creates inconsistent choice state", sym->name);
cs->flags &= ~def_flags;
} else
cs->def[def].val = sym;
break;
}
cs->def[def].tri = EXPR_OR(cs->def[def].tri, sym->def[def].tri);
cs->def[def].tri = E_OR(cs->def[def].tri, sym->def[def].tri);
}
}
fclose(in);
@@ -314,7 +313,7 @@ load:
int conf_read(const char *name)
{
struct symbol *sym, *choice_sym;
struct symbol *sym;
struct property *prop;
struct expr *e;
int i, flags;
@@ -355,9 +354,9 @@ int conf_read(const char *name)
*/
prop = sym_get_choice_prop(sym);
flags = sym->flags;
expr_list_for_each_sym(prop->expr, e, choice_sym)
if (choice_sym->visible != no)
flags &= choice_sym->flags;
for (e = prop->expr; e; e = e->left.expr)
if (e->right.sym->visible != no)
flags &= e->right.sym->flags;
sym->flags &= flags | ~SYMBOL_DEF_USER;
}
@@ -555,15 +554,15 @@ int conf_write(const char *name)
int conf_split_config(void)
{
const char *name;
char path[128];
char *opwd, *dir, *_name;
char *name, path[128], *opwd, *dir, *_name;
char *s, *d, c;
struct symbol *sym;
struct stat sb;
int res, i, fd;
name = conf_get_autoconfig_name();
name = getenv("KCONFIG_AUTOCONFIG");
if (!name)
name = "include/config/auto.conf";
conf_read_simple(name, S_DEF_AUTO);
opwd = malloc(256);
@@ -684,7 +683,7 @@ int conf_write_autoconf(void)
{
struct symbol *sym;
const char *str;
const char *name;
char *name;
FILE *out, *out_h;
time_t now;
int i, l;
@@ -784,7 +783,9 @@ int conf_write_autoconf(void)
name = "include/linux/autoconf.h";
if (rename(".tmpconfig.h", name))
return 1;
name = conf_get_autoconfig_name();
name = getenv("KCONFIG_AUTOCONFIG");
if (!name)
name = "include/config/auto.conf";
/*
* This must be the last step, kbuild has a dependency on auto.conf
* and this marks the successful completion of the previous steps.
@@ -821,93 +822,3 @@ void conf_set_changed_callback(void (*fn)(void))
{
conf_changed_callback = fn;
}
void conf_set_all_new_symbols(enum conf_def_mode mode)
{
struct symbol *sym, *csym;
struct property *prop;
struct expr *e;
int i, cnt, def;
for_all_symbols(i, sym) {
if (sym_has_value(sym))
continue;
switch (sym_get_type(sym)) {
case S_BOOLEAN:
case S_TRISTATE:
switch (mode) {
case def_yes:
sym->def[S_DEF_USER].tri = yes;
break;
case def_mod:
sym->def[S_DEF_USER].tri = mod;
break;
case def_no:
sym->def[S_DEF_USER].tri = no;
break;
case def_random:
sym->def[S_DEF_USER].tri = (tristate)(rand() % 3);
break;
default:
continue;
}
if (!(sym_is_choice(sym) && mode == def_random))
sym->flags |= SYMBOL_DEF_USER;
break;
default:
break;
}
}
sym_clear_all_valid();
if (mode != def_random)
return;
/*
* We have different type of choice blocks.
* If curr.tri equal to mod then we can select several
* choice symbols in one block.
* In this case we do nothing.
* If curr.tri equal yes then only one symbol can be
* selected in a choice block and we set it to yes,
* and the rest to no.
*/
for_all_symbols(i, csym) {
if (sym_has_value(csym) || !sym_is_choice(csym))
continue;
sym_calc_value(csym);
if (csym->curr.tri != yes)
continue;
prop = sym_get_choice_prop(csym);
/* count entries in choice block */
cnt = 0;
expr_list_for_each_sym(prop->expr, e, sym)
cnt++;
/*
* find a random value and set it to yes,
* set the rest to no so we have only one set
*/
def = (rand() % cnt);
cnt = 0;
expr_list_for_each_sym(prop->expr, e, sym) {
if (def == cnt++) {
sym->def[S_DEF_USER].tri = yes;
csym->def[S_DEF_USER].val = sym;
}
else {
sym->def[S_DEF_USER].tri = no;
}
}
csym->flags |= SYMBOL_DEF_USER;
/* clear VALID to get value calculated */
csym->flags &= ~(SYMBOL_VALID);
}
}

View File

@@ -87,7 +87,7 @@ struct expr *expr_copy(struct expr *org)
break;
case E_AND:
case E_OR:
case E_LIST:
case E_CHOICE:
e->left.expr = expr_copy(org->left.expr);
e->right.expr = expr_copy(org->right.expr);
break;
@@ -217,7 +217,7 @@ int expr_eq(struct expr *e1, struct expr *e2)
expr_free(e2);
trans_count = old_count;
return res;
case E_LIST:
case E_CHOICE:
case E_RANGE:
case E_NONE:
/* panic */;
@@ -648,7 +648,7 @@ struct expr *expr_transform(struct expr *e)
case E_EQUAL:
case E_UNEQUAL:
case E_SYMBOL:
case E_LIST:
case E_CHOICE:
break;
default:
e->left.expr = expr_transform(e->left.expr);
@@ -932,7 +932,7 @@ struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symb
break;
case E_SYMBOL:
return expr_alloc_comp(type, e->left.sym, sym);
case E_LIST:
case E_CHOICE:
case E_RANGE:
case E_NONE:
/* panic */;
@@ -955,14 +955,14 @@ tristate expr_calc_value(struct expr *e)
case E_AND:
val1 = expr_calc_value(e->left.expr);
val2 = expr_calc_value(e->right.expr);
return EXPR_AND(val1, val2);
return E_AND(val1, val2);
case E_OR:
val1 = expr_calc_value(e->left.expr);
val2 = expr_calc_value(e->right.expr);
return EXPR_OR(val1, val2);
return E_OR(val1, val2);
case E_NOT:
val1 = expr_calc_value(e->left.expr);
return EXPR_NOT(val1);
return E_NOT(val1);
case E_EQUAL:
sym_calc_value(e->left.sym);
sym_calc_value(e->right.sym);
@@ -1000,9 +1000,9 @@ int expr_compare_type(enum expr_type t1, enum expr_type t2)
if (t2 == E_OR)
return 1;
case E_OR:
if (t2 == E_LIST)
if (t2 == E_CHOICE)
return 1;
case E_LIST:
case E_CHOICE:
if (t2 == 0)
return 1;
default:
@@ -1034,18 +1034,12 @@ void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *
expr_print(e->left.expr, fn, data, E_NOT);
break;
case E_EQUAL:
if (e->left.sym->name)
fn(data, e->left.sym, e->left.sym->name);
else
fn(data, NULL, "<choice>");
fn(data, e->left.sym, e->left.sym->name);
fn(data, NULL, "=");
fn(data, e->right.sym, e->right.sym->name);
break;
case E_UNEQUAL:
if (e->left.sym->name)
fn(data, e->left.sym, e->left.sym->name);
else
fn(data, NULL, "<choice>");
fn(data, e->left.sym, e->left.sym->name);
fn(data, NULL, "!=");
fn(data, e->right.sym, e->right.sym->name);
break;
@@ -1059,11 +1053,11 @@ void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *
fn(data, NULL, " && ");
expr_print(e->right.expr, fn, data, E_AND);
break;
case E_LIST:
case E_CHOICE:
fn(data, e->right.sym, e->right.sym->name);
if (e->left.expr) {
fn(data, NULL, " ^ ");
expr_print(e->left.expr, fn, data, E_LIST);
expr_print(e->left.expr, fn, data, E_CHOICE);
}
break;
case E_RANGE:

View File

@@ -25,13 +25,14 @@ struct file {
#define FILE_BUSY 0x0001
#define FILE_SCANNED 0x0002
#define FILE_PRINTED 0x0004
typedef enum tristate {
no, mod, yes
} tristate;
enum expr_type {
E_NONE, E_OR, E_AND, E_NOT, E_EQUAL, E_UNEQUAL, E_LIST, E_SYMBOL, E_RANGE
E_NONE, E_OR, E_AND, E_NOT, E_EQUAL, E_UNEQUAL, E_CHOICE, E_SYMBOL, E_RANGE
};
union expr_data {
@@ -44,12 +45,9 @@ struct expr {
union expr_data left, right;
};
#define EXPR_OR(dep1, dep2) (((dep1)>(dep2))?(dep1):(dep2))
#define EXPR_AND(dep1, dep2) (((dep1)<(dep2))?(dep1):(dep2))
#define EXPR_NOT(dep) (2-(dep))
#define expr_list_for_each_sym(l, e, s) \
for (e = (l); e && (s = e->right.sym); e = e->left.expr)
#define E_OR(dep1, dep2) (((dep1)>(dep2))?(dep1):(dep2))
#define E_AND(dep1, dep2) (((dep1)<(dep2))?(dep1):(dep2))
#define E_NOT(dep) (2-(dep))
struct expr_value {
struct expr *expr;
@@ -65,13 +63,9 @@ enum symbol_type {
S_UNKNOWN, S_BOOLEAN, S_TRISTATE, S_INT, S_HEX, S_STRING, S_OTHER
};
/* enum values are used as index to symbol.def[] */
enum {
S_DEF_USER, /* main user value */
S_DEF_AUTO, /* values read from auto.conf */
S_DEF_DEF3, /* Reserved for UI usage */
S_DEF_DEF4, /* Reserved for UI usage */
S_DEF_COUNT
S_DEF_AUTO
};
struct symbol {
@@ -79,7 +73,7 @@ struct symbol {
char *name;
enum symbol_type type;
struct symbol_value curr;
struct symbol_value def[S_DEF_COUNT];
struct symbol_value def[4];
tristate visible;
int flags;
struct property *prop;
@@ -88,64 +82,42 @@ struct symbol {
#define for_all_symbols(i, sym) for (i = 0; i < 257; i++) for (sym = symbol_hash[i]; sym; sym = sym->next) if (sym->type != S_OTHER)
#define SYMBOL_CONST 0x0001 /* symbol is const */
#define SYMBOL_CHECK 0x0008 /* used during dependency checking */
#define SYMBOL_CHOICE 0x0010 /* start of a choice block (null name) */
#define SYMBOL_CHOICEVAL 0x0020 /* used as a value in a choice block */
#define SYMBOL_VALID 0x0080 /* set when symbol.curr is calculated */
#define SYMBOL_OPTIONAL 0x0100 /* choice is optional - values can be 'n' */
#define SYMBOL_WRITE 0x0200 /* ? */
#define SYMBOL_CHANGED 0x0400 /* ? */
#define SYMBOL_AUTO 0x1000 /* value from environment variable */
#define SYMBOL_CHECKED 0x2000 /* used during dependency checking */
#define SYMBOL_WARNED 0x8000 /* warning has been issued */
/* Set when symbol.def[] is used */
#define SYMBOL_DEF 0x10000 /* First bit of SYMBOL_DEF */
#define SYMBOL_DEF_USER 0x10000 /* symbol.def[S_DEF_USER] is valid */
#define SYMBOL_DEF_AUTO 0x20000 /* symbol.def[S_DEF_AUTO] is valid */
#define SYMBOL_DEF3 0x40000 /* symbol.def[S_DEF_3] is valid */
#define SYMBOL_DEF4 0x80000 /* symbol.def[S_DEF_4] is valid */
#define SYMBOL_CONST 0x0001
#define SYMBOL_CHECK 0x0008
#define SYMBOL_CHOICE 0x0010
#define SYMBOL_CHOICEVAL 0x0020
#define SYMBOL_PRINTED 0x0040
#define SYMBOL_VALID 0x0080
#define SYMBOL_OPTIONAL 0x0100
#define SYMBOL_WRITE 0x0200
#define SYMBOL_CHANGED 0x0400
#define SYMBOL_AUTO 0x1000
#define SYMBOL_CHECKED 0x2000
#define SYMBOL_WARNED 0x8000
#define SYMBOL_DEF 0x10000
#define SYMBOL_DEF_USER 0x10000
#define SYMBOL_DEF_AUTO 0x20000
#define SYMBOL_DEF3 0x40000
#define SYMBOL_DEF4 0x80000
#define SYMBOL_MAXLENGTH 256
#define SYMBOL_HASHSIZE 257
#define SYMBOL_HASHMASK 0xff
/* A property represent the config options that can be associated
* with a config "symbol".
* Sample:
* config FOO
* default y
* prompt "foo prompt"
* select BAR
* config BAZ
* int "BAZ Value"
* range 1..255
*/
enum prop_type {
P_UNKNOWN,
P_PROMPT, /* prompt "foo prompt" or "BAZ Value" */
P_COMMENT, /* text associated with a comment */
P_MENU, /* prompt associated with a menuconfig option */
P_DEFAULT, /* default y */
P_CHOICE, /* choice value */
P_SELECT, /* select BAR */
P_RANGE, /* range 7..100 (for a symbol) */
P_ENV, /* value from environment variable */
P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE, P_SELECT, P_RANGE
};
struct property {
struct property *next; /* next property - null if last */
struct symbol *sym; /* the symbol for which the property is associated */
enum prop_type type; /* type of property */
const char *text; /* the prompt value - P_PROMPT, P_MENU, P_COMMENT */
struct property *next;
struct symbol *sym;
enum prop_type type;
const char *text;
struct expr_value visible;
struct expr *expr; /* the optional conditional part of the property */
struct menu *menu; /* the menu the property are associated with
* valid for: P_SELECT, P_RANGE, P_CHOICE,
* P_PROMPT, P_DEFAULT, P_MENU, P_COMMENT */
struct file *file; /* what file was this property defined */
int lineno; /* what lineno was this property defined */
struct expr *expr;
struct menu *menu;
struct file *file;
int lineno;
};
#define for_all_properties(sym, st, tok) \

View File

@@ -119,6 +119,8 @@ const char *dbg_print_flags(int val)
strcat(buf, "choice/");
if (val & SYMBOL_CHOICEVAL)
strcat(buf, "choiceval/");
if (val & SYMBOL_PRINTED)
strcat(buf, "printed/");
if (val & SYMBOL_VALID)
strcat(buf, "valid/");
if (val & SYMBOL_OPTIONAL)
@@ -455,18 +457,14 @@ static void text_insert_help(struct menu *menu)
{
GtkTextBuffer *buffer;
GtkTextIter start, end;
const char *prompt = _(menu_get_prompt(menu));
const char *prompt = menu_get_prompt(menu);
gchar *name;
const char *help;
help = menu_get_help(menu);
/* Gettextize if the help text not empty */
if ((help != 0) && (help[0] != 0))
help = _(help);
help = _(menu_get_help(menu));
if (menu->sym && menu->sym->name)
name = g_strdup_printf(menu->sym->name);
name = g_strdup_printf(_(menu->sym->name));
else
name = g_strdup("");
@@ -1173,7 +1171,7 @@ static gchar **fill_row(struct menu *menu)
bzero(row, sizeof(row));
row[COL_OPTION] =
g_strdup_printf("%s %s", _(menu_get_prompt(menu)),
g_strdup_printf("%s %s", menu_get_prompt(menu),
sym && sym_has_value(sym) ? "(NEW)" : "");
if (show_all && !menu_is_visible(menu))
@@ -1223,7 +1221,7 @@ static gchar **fill_row(struct menu *menu)
if (def_menu)
row[COL_VALUE] =
g_strdup(_(menu_get_prompt(def_menu)));
g_strdup(menu_get_prompt(def_menu));
}
if (sym->flags & SYMBOL_CHOICEVAL)
row[COL_BTNRAD] = GINT_TO_POINTER(TRUE);

View File

@@ -24,7 +24,7 @@ visible if its parent entry is also visible.
Menu entries
------------
Most entries define a config option; all other entries help to organize
Most entries define a config option, all other entries help to organize
them. A single configuration option is defined like this:
config MODVERSIONS
@@ -50,7 +50,7 @@ applicable everywhere (see syntax).
- type definition: "bool"/"tristate"/"string"/"hex"/"int"
Every config option must have a type. There are only two basic types:
tristate and string; the other types are based on these two. The type
tristate and string, the other types are based on these two. The type
definition optionally accepts an input prompt, so these two examples
are equivalent:
@@ -104,15 +104,14 @@ applicable everywhere (see syntax).
Reverse dependencies can only be used with boolean or tristate
symbols.
Note:
select should be used with care. select will force
a symbol to a value without visiting the dependencies.
By abusing select you are able to select a symbol FOO even
if FOO depends on BAR that is not set.
In general use select only for non-visible symbols
(no prompts anywhere) and for symbols with no dependencies.
That will limit the usefulness but on the other hand avoid
the illegal configurations all over.
kconfig should one day warn about such things.
select is evil.... select will by brute force set a symbol
equal to 'y' without visiting the dependencies. So abusing
select you are able to select a symbol FOO even if FOO depends
on BAR that is not set. In general use select only for
non-visible symbols (no promts anywhere) and for symbols with
no dependencies. That will limit the usefulness but on the
other hand avoid the illegal configurations all over. kconfig
should one day warn about such things.
- numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
This allows to limit the range of possible input values for int
@@ -128,27 +127,6 @@ applicable everywhere (see syntax).
used to help visually separate configuration logic from help within
the file as an aid to developers.
- misc options: "option" <symbol>[=<value>]
Various less common options can be defined via this option syntax,
which can modify the behaviour of the menu entry and its config
symbol. These options are currently possible:
- "defconfig_list"
This declares a list of default entries which can be used when
looking for the default configuration (which is used when the main
.config doesn't exists yet.)
- "modules"
This declares the symbol to be used as the MODULES symbol, which
enables the third modular state for all config symbols.
- "env"=<value>
This imports the environment variable into Kconfig. It behaves like
a default, except that the value comes from the environment, this
also means that the behaviour when mixing it with normal defaults is
undefined at this point. The symbol is currently not exported back
to the build environment (if this is desired, it can be done via
another symbol).
Menu dependencies
-----------------
@@ -184,9 +162,9 @@ An expression can have a value of 'n', 'm' or 'y' (or 0, 1, 2
respectively for calculations). A menu entry becomes visible when it's
expression evaluates to 'm' or 'y'.
There are two types of symbols: constant and non-constant symbols.
Non-constant symbols are the most common ones and are defined with the
'config' statement. Non-constant symbols consist entirely of alphanumeric
There are two types of symbols: constant and nonconstant symbols.
Nonconstant symbols are the most common ones and are defined with the
'config' statement. Nonconstant symbols consist entirely of alphanumeric
characters or underscores.
Constant symbols are only part of expressions. Constant symbols are
always surrounded by single or double quotes. Within the quote, any
@@ -323,57 +301,3 @@ mainmenu:
This sets the config program's title bar if the config program chooses
to use it.
Kconfig hints
-------------
This is a collection of Kconfig tips, most of which aren't obvious at
first glance and most of which have become idioms in several Kconfig
files.
Adding common features and make the usage configurable
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
It is a common idiom to implement a feature/functionality that are
relevant for some architectures but not all.
The recommended way to do so is to use a config variable named HAVE_*
that is defined in a common Kconfig file and selected by the relevant
architectures.
An example is the generic IOMAP functionality.
We would in lib/Kconfig see:
# Generic IOMAP is used to ...
config HAVE_GENERIC_IOMAP
config GENERIC_IOMAP
depends on HAVE_GENERIC_IOMAP && FOO
And in lib/Makefile we would see:
obj-$(CONFIG_GENERIC_IOMAP) += iomap.o
For each architecture using the generic IOMAP functionality we would see:
config X86
select ...
select HAVE_GENERIC_IOMAP
select ...
Note: we use the existing config option and avoid creating a new
config variable to select HAVE_GENERIC_IOMAP.
Note: the use of the internal config variable HAVE_GENERIC_IOMAP, it is
introduced to overcome the limitation of select which will force a
config option to 'y' no matter the dependencies.
The dependencies are moved to the symbol GENERIC_IOMAP and we avoid the
situation where select forces a symbol equals to 'y'.
Build as module only
~~~~~~~~~~~~~~~~~~~~
To restrict a component build to module-only, qualify its config symbol
with "depends on m". E.g.:
config FOO
depends on BAR && m
limits FOO to module (=m) or disabled (=n).

File diff suppressed because it is too large Load Diff

View File

@@ -43,10 +43,6 @@ static char *escape(const char* text, char *bf, int len)
++text;
goto next;
}
else if (*text == '\\') {
*bfp++ = '\\';
len--;
}
*bfp++ = *text++;
next:
--len;

View File

@@ -27,7 +27,7 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
#define YY_FLEX_SUBMINOR_VERSION 35
#define YY_FLEX_SUBMINOR_VERSION 33
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@@ -49,7 +49,7 @@
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#if __STDC_VERSION__ >= 199901L
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
* if you want the limit (max/min) macros for int types.
@@ -72,6 +72,7 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -102,8 +103,6 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
#endif /* ! C99 */
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -113,12 +112,11 @@ typedef unsigned int flex_uint32_t;
#else /* ! __cplusplus */
/* C99 requires __STDC__ to be defined as 1. */
#if defined (__STDC__)
#if __STDC__
#define YY_USE_CONST
#endif /* defined (__STDC__) */
#endif /* __STDC__ */
#endif /* ! __cplusplus */
#ifdef YY_USE_CONST
@@ -198,9 +196,14 @@ extern FILE *zconfin, *zconfout;
#define unput(c) yyunput( c, (yytext_ptr) )
/* The following is because we cannot portably get our hands on size_t
* (without autoconf's help, which isn't available because we want
* flex-generated scanners to compile on their own).
*/
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
typedef unsigned int yy_size_t;
#endif
#ifndef YY_STRUCT_YY_BUFFER_STATE
@@ -764,7 +767,6 @@ int zconf_flex_debug = 0;
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *zconftext;
#define YY_NO_INPUT 1
/*
* Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
@@ -813,6 +815,12 @@ void new_string(void)
void append_string(const char *str, int size)
{
int new_size = text_size + size + 1;
if ((YY_START == 2 /* HELP */) && (size > 70)) {
fprintf (stderr, "%s:%d warning: Overlong line\n",
current_file->name, current_file->lineno);
}
if (new_size > text_asize) {
new_size += START_STRSIZE - 1;
new_size &= -START_STRSIZE;
@@ -851,35 +859,6 @@ void alloc_string(const char *str, int size)
static int yy_init_globals (void );
/* Accessor methods to globals.
These are made visible to non-reentrant scanners for convenience. */
int zconflex_destroy (void );
int zconfget_debug (void );
void zconfset_debug (int debug_flag );
YY_EXTRA_TYPE zconfget_extra (void );
void zconfset_extra (YY_EXTRA_TYPE user_defined );
FILE *zconfget_in (void );
void zconfset_in (FILE * in_str );
FILE *zconfget_out (void );
void zconfset_out (FILE * out_str );
int zconfget_leng (void );
char *zconfget_text (void );
int zconfget_lineno (void );
void zconfset_lineno (int line_number );
/* Macros after this point can all be overridden by user definitions in
* section 1.
*/
@@ -922,7 +901,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
#define ECHO fwrite( zconftext, zconfleng, 1, zconfout )
#define ECHO (void) fwrite( zconftext, zconfleng, 1, zconfout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -1302,11 +1281,6 @@ YY_RULE_SETUP
case 32:
YY_RULE_SETUP
{
while (zconfleng) {
if ((zconftext[zconfleng-1] != ' ') && (zconftext[zconfleng-1] != '\t'))
break;
zconfleng--;
}
append_string(zconftext, zconfleng);
if (!first_ts)
first_ts = last_ts;
@@ -1562,7 +1536,7 @@ static int yy_get_next_buffer (void)
/* Read in more data. */
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
(yy_n_chars), (size_t) num_to_read );
(yy_n_chars), num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
@@ -1586,14 +1560,6 @@ static int yy_get_next_buffer (void)
else
ret_val = EOB_ACT_CONTINUE_SCAN;
if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
/* Extend the array by 50%, plus the number we really need. */
yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) zconfrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
}
(yy_n_chars) += number_to_move;
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
@@ -1980,9 +1946,7 @@ static void zconfensure_buffer_stack (void)
(yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
(num_to_alloc * sizeof(struct yy_buffer_state*)
);
if ( ! (yy_buffer_stack) )
YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
(yy_buffer_stack_max) = num_to_alloc;
@@ -2000,8 +1964,6 @@ static void zconfensure_buffer_stack (void)
((yy_buffer_stack),
num_to_alloc * sizeof(struct yy_buffer_state*)
);
if ( ! (yy_buffer_stack) )
YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
/* zero only the new slots.*/
memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@@ -2046,7 +2008,7 @@ YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
/** Setup the input buffer state to scan a string. The next call to zconflex() will
* scan from a @e copy of @a str.
* @param yystr a NUL-terminated string to scan
* @param str a NUL-terminated string to scan
*
* @return the newly allocated buffer state object.
* @note If you want to scan bytes that may contain NUL values, then use
@@ -2370,14 +2332,11 @@ void zconf_nextfile(const char *name)
current_buf = buf;
if (file->flags & FILE_BUSY) {
printf("%s:%d: do not source '%s' from itself\n",
zconf_curname(), zconf_lineno(), name);
printf("recursive scan (%s)?\n", name);
exit(1);
}
if (file->flags & FILE_SCANNED) {
printf("%s:%d: file '%s' is already sourced from '%s'\n",
zconf_curname(), zconf_lineno(), name,
file->parent->name);
printf("file %s already scanned?\n", name);
exit(1);
}
file->flags |= FILE_BUSY;

View File

@@ -11,9 +11,9 @@
#ifndef KBUILD_NO_NLS
# include <libintl.h>
#else
static inline const char *gettext(const char *txt) { return txt; }
static inline void textdomain(const char *domainname) {}
static inline void bindtextdomain(const char *name, const char *dir) {}
# define gettext(Msgid) ((const char *) (Msgid))
# define textdomain(Domainname) ((const char *) (Domainname))
# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
#endif
#ifdef __cplusplus
@@ -42,17 +42,8 @@ extern "C" {
#define TF_PARAM 0x0002
#define TF_OPTION 0x0004
enum conf_def_mode {
def_default,
def_yes,
def_mod,
def_no,
def_random
};
#define T_OPT_MODULES 1
#define T_OPT_DEFCONFIG_LIST 2
#define T_OPT_ENV 3
struct kconf_id {
int name;
@@ -74,18 +65,15 @@ char *zconf_curname(void);
/* confdata.c */
const char *conf_get_configname(void);
const char *conf_get_autoconfig_name(void);
char *conf_get_default_confname(void);
void sym_set_change_count(int count);
void sym_add_change_count(int count);
void conf_set_all_new_symbols(enum conf_def_mode mode);
/* kconfig_load.c */
void kconfig_load(void);
/* menu.c */
void menu_init(void);
void menu_warn(struct menu *menu, const char *fmt, ...);
struct menu *menu_add_menu(void);
void menu_end_menu(void);
void menu_add_entry(struct symbol *sym);
@@ -115,8 +103,6 @@ void str_printf(struct gstr *gs, const char *fmt, ...);
const char *str_get(struct gstr *gs);
/* symbol.c */
extern struct expr *sym_env_list;
void sym_init(void);
void sym_clear_all_valid(void);
void sym_set_all_changed(void);
@@ -124,7 +110,6 @@ void sym_set_changed(struct symbol *sym);
struct symbol *sym_check_deps(struct symbol *sym);
struct property *prop_alloc(enum prop_type type, struct symbol *sym);
struct symbol *prop_get_symbol(struct property *prop);
struct property *sym_get_env_prop(struct symbol *sym);
static inline tristate sym_get_tristate_value(struct symbol *sym)
{

View File

@@ -21,7 +21,7 @@ P(menu_get_help,const char *,(struct menu *menu));
/* symbol.c */
P(symbol_hash,struct symbol *,[SYMBOL_HASHSIZE]);
P(sym_lookup,struct symbol *,(const char *name, int flags));
P(sym_lookup,struct symbol *,(const char *name, int isconst));
P(sym_find,struct symbol *,(const char *name));
P(sym_re_search,struct symbol **,(const char *pattern));
P(sym_type_name,const char *,(enum symbol_type type));

View File

@@ -36,23 +36,19 @@ trap "rm -f $tmp" 0 1 2 3 15
# Check if we can link to ncurses
check() {
$cc -xc - -o $tmp 2>/dev/null <<'EOF'
#include CURSES_LOC
main() {}
EOF
echo "main() {}" | $cc -xc - -o $tmp 2> /dev/null
if [ $? != 0 ]; then
echo " *** Unable to find the ncurses libraries or the" 1>&2
echo " *** required header files." 1>&2
echo " *** 'make menuconfig' requires the ncurses libraries." 1>&2
echo " *** " 1>&2
echo " *** Install ncurses (ncurses-devel) and try again." 1>&2
echo " *** " 1>&2
exit 1
echo " *** Unable to find the ncurses libraries." 1>&2
echo " *** make menuconfig require the ncurses libraries" 1>&2
echo " *** " 1>&2
echo " *** Install ncurses (ncurses-devel) and try again" 1>&2
echo " *** " 1>&2
exit 1
fi
}
usage() {
printf "Usage: $0 [-check compiler options|-ccflags|-ldflags compiler options]\n"
printf "Usage: $0 [-check compiler options|-header|-library]\n"
}
if [ $# -eq 0 ]; then

View File

@@ -41,8 +41,7 @@ static void print_item(WINDOW * win, int choice, int selected)
wmove(win, choice, check_x);
wattrset(win, selected ? dlg.check_selected.atr
: dlg.check.atr);
if (!item_is_tag(':'))
wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' ');
wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' ');
wattrset(win, selected ? dlg.tag_selected.atr : dlg.tag.atr);
mvwaddch(win, choice, item_x, item_str()[0]);
@@ -98,8 +97,8 @@ static void print_buttons(WINDOW * dialog, int height, int width, int selected)
int x = width / 2 - 11;
int y = height - 2;
print_button(dialog, gettext("Select"), y, x, selected == 0);
print_button(dialog, gettext(" Help "), y, x + 14, selected == 1);
print_button(dialog, "Select", y, x, selected == 0);
print_button(dialog, " Help ", y, x + 14, selected == 1);
wmove(dialog, y, x + 1 + 14 * selected);
wrefresh(dialog);

View File

@@ -26,12 +26,6 @@
#include <string.h>
#include <stdbool.h>
#ifndef KBUILD_NO_NLS
# include <libintl.h>
#else
# define gettext(Msgid) ((const char *) (Msgid))
#endif
#ifdef __sun__
#define CURS_MACROS
#endif
@@ -193,9 +187,10 @@ int item_is_tag(char tag);
int on_key_esc(WINDOW *win);
int on_key_resize(void);
int init_dialog(const char *backtitle);
void init_dialog(const char *backtitle);
void set_dialog_backtitle(const char *backtitle);
void end_dialog(int x, int y);
void reset_dialog(void);
void end_dialog(void);
void attr_clear(WINDOW * win, int height, int width, chtype attr);
void dialog_clear(void);
void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x);

Some files were not shown because too many files have changed in this diff Show More