907 changed files with 495477 additions and 0 deletions
@ -0,0 +1,2 @@ |
|||
world ${.TARGETS}: |
|||
@gmake $@ |
@ -0,0 +1,101 @@ |
|||
# |
|||
|
|||
mainmenu "OpenWrt Configuration" |
|||
|
|||
config HAVE_DOT_CONFIG |
|||
bool |
|||
default y |
|||
|
|||
source "target/Config.in" |
|||
|
|||
config ALL |
|||
bool "Select all packages by default" |
|||
default n |
|||
|
|||
menuconfig DEVEL |
|||
bool "Advanced configuration options (for developers)" |
|||
default n |
|||
select BUILDOPTS |
|||
select TOOLCHAINOPTS if !NATIVE_TOOLCHAIN |
|||
|
|||
config BROKEN |
|||
bool "Show broken platforms / packages" if DEVEL |
|||
default n |
|||
|
|||
menuconfig BUILDOPTS |
|||
bool "Build Options" if DEVEL |
|||
|
|||
config AUTOREBUILD |
|||
bool |
|||
prompt "Automatic rebuild of packages" if BUILDOPTS |
|||
default y |
|||
help |
|||
Automatically rebuild packages when their files change |
|||
|
|||
config TAR_VERBOSITY |
|||
bool |
|||
prompt "Tar verbose" if BUILDOPTS |
|||
default n |
|||
|
|||
config JLEVEL |
|||
int |
|||
prompt "Number of jobs to run simultaneously" if BUILDOPTS |
|||
default "1" |
|||
help |
|||
Number of jobs to run simultanesouly |
|||
|
|||
config CCACHE |
|||
bool |
|||
prompt "Use ccache" if BUILDOPTS |
|||
default n |
|||
help |
|||
Compiler cache; see http://ccache.samba.org/ |
|||
|
|||
source "toolchain/Config.in" |
|||
source "target/sdk/Config.in" |
|||
|
|||
menu "Target Images" |
|||
config TARGET_ROOTFS_INITRAMFS |
|||
bool "ramdisk" |
|||
default n |
|||
depends LINUX_2_6 |
|||
help |
|||
Embed the rootfs into the kernel (initramfs) |
|||
|
|||
config TARGET_ROOTFS_JFFS2 |
|||
bool "jffs2" |
|||
default y if USES_JFFS2 |
|||
depends !TARGET_ROOTFS_INITRAMFS |
|||
help |
|||
Build a jffs2 root filesystem |
|||
|
|||
config TARGET_ROOTFS_SQUASHFS |
|||
bool "squashfs" |
|||
default y if USES_SQUASHFS |
|||
depends !TARGET_ROOTFS_INITRAMFS |
|||
help |
|||
Build a squashfs-lzma root filesystem |
|||
|
|||
config TARGET_ROOTFS_TGZ |
|||
bool "tgz" |
|||
default y if !USES_SQUASHFS && !USES_JFFS2 |
|||
depends !TARGET_ROOTFS_INITRAMFS |
|||
help |
|||
Build a compressed tar archive of the the root filesystem |
|||
|
|||
config TARGET_ROOTFS_EXT2FS |
|||
bool "ext2" |
|||
default y if !USES_SQUASHFS && !USES_JFFS2 |
|||
depends !TARGET_ROOTFS_INITRAMFS |
|||
help |
|||
Ext2 file system with some free space for uml images |
|||
|
|||
comment "Image Options" |
|||
|
|||
source "target/image/*/Config.in" |
|||
|
|||
endmenu |
|||
|
|||
source "target/linux/Config.in" |
|||
source ".config.in" |
|||
|
@ -0,0 +1,340 @@ |
|||
GNU GENERAL PUBLIC LICENSE |
|||
Version 2, June 1991 |
|||
|
|||
Copyright (C) 1989, 1991 Free Software Foundation, Inc. |
|||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|||
Everyone is permitted to copy and distribute verbatim copies |
|||
of this license document, but changing it is not allowed. |
|||
|
|||
Preamble |
|||
|
|||
The licenses for most software are designed to take away your |
|||
freedom to share and change it. By contrast, the GNU General Public |
|||
License is intended to guarantee your freedom to share and change free |
|||
software--to make sure the software is free for all its users. This |
|||
General Public License applies to most of the Free Software |
|||
Foundation's software and to any other program whose authors commit to |
|||
using it. (Some other Free Software Foundation software is covered by |
|||
the GNU Library General Public License instead.) You can apply it to |
|||
your programs, too. |
|||
|
|||
When we speak of free software, we are referring to freedom, not |
|||
price. Our General Public Licenses are designed to make sure that you |
|||
have the freedom to distribute copies of free software (and charge for |
|||
this service if you wish), that you receive source code or can get it |
|||
if you want it, that you can change the software or use pieces of it |
|||
in new free programs; and that you know you can do these things. |
|||
|
|||
To protect your rights, we need to make restrictions that forbid |
|||
anyone to deny you these rights or to ask you to surrender the rights. |
|||
These restrictions translate to certain responsibilities for you if you |
|||
distribute copies of the software, or if you modify it. |
|||
|
|||
For example, if you distribute copies of such a program, whether |
|||
gratis or for a fee, you must give the recipients all the rights that |
|||
you have. You must make sure that they, too, receive or can get the |
|||
source code. And you must show them these terms so they know their |
|||
rights. |
|||
|
|||
We protect your rights with two steps: (1) copyright the software, and |
|||
(2) offer you this license which gives you legal permission to copy, |
|||
distribute and/or modify the software. |
|||
|
|||
Also, for each author's protection and ours, we want to make certain |
|||
that everyone understands that there is no warranty for this free |
|||
software. If the software is modified by someone else and passed on, we |
|||
want its recipients to know that what they have is not the original, so |
|||
that any problems introduced by others will not reflect on the original |
|||
authors' reputations. |
|||
|
|||
Finally, any free program is threatened constantly by software |
|||
patents. We wish to avoid the danger that redistributors of a free |
|||
program will individually obtain patent licenses, in effect making the |
|||
program proprietary. To prevent this, we have made it clear that any |
|||
patent must be licensed for everyone's free use or not licensed at all. |
|||
|
|||
The precise terms and conditions for copying, distribution and |
|||
modification follow. |
|||
|
|||
GNU GENERAL PUBLIC LICENSE |
|||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
|||
|
|||
0. This License applies to any program or other work which contains |
|||
a notice placed by the copyright holder saying it may be distributed |
|||
under the terms of this General Public License. The "Program", below, |
|||
refers to any such program or work, and a "work based on the Program" |
|||
means either the Program or any derivative work under copyright law: |
|||
that is to say, a work containing the Program or a portion of it, |
|||
either verbatim or with modifications and/or translated into another |
|||
language. (Hereinafter, translation is included without limitation in |
|||
the term "modification".) Each licensee is addressed as "you". |
|||
|
|||
Activities other than copying, distribution and modification are not |
|||
covered by this License; they are outside its scope. The act of |
|||
running the Program is not restricted, and the output from the Program |
|||
is covered only if its contents constitute a work based on the |
|||
Program (independent of having been made by running the Program). |
|||
Whether that is true depends on what the Program does. |
|||
|
|||
1. You may copy and distribute verbatim copies of the Program's |
|||
source code as you receive it, in any medium, provided that you |
|||
conspicuously and appropriately publish on each copy an appropriate |
|||
copyright notice and disclaimer of warranty; keep intact all the |
|||
notices that refer to this License and to the absence of any warranty; |
|||
and give any other recipients of the Program a copy of this License |
|||
along with the Program. |
|||
|
|||
You may charge a fee for the physical act of transferring a copy, and |
|||
you may at your option offer warranty protection in exchange for a fee. |
|||
|
|||
2. You may modify your copy or copies of the Program or any portion |
|||
of it, thus forming a work based on the Program, and copy and |
|||
distribute such modifications or work under the terms of Section 1 |
|||
above, provided that you also meet all of these conditions: |
|||
|
|||
a) You must cause the modified files to carry prominent notices |
|||
stating that you changed the files and the date of any change. |
|||
|
|||
b) You must cause any work that you distribute or publish, that in |
|||
whole or in part contains or is derived from the Program or any |
|||
part thereof, to be licensed as a whole at no charge to all third |
|||
parties under the terms of this License. |
|||
|
|||
c) If the modified program normally reads commands interactively |
|||
when run, you must cause it, when started running for such |
|||
interactive use in the most ordinary way, to print or display an |
|||
announcement including an appropriate copyright notice and a |
|||
notice that there is no warranty (or else, saying that you provide |
|||
a warranty) and that users may redistribute the program under |
|||
these conditions, and telling the user how to view a copy of this |
|||
License. (Exception: if the Program itself is interactive but |
|||
does not normally print such an announcement, your work based on |
|||
the Program is not required to print an announcement.) |
|||
|
|||
These requirements apply to the modified work as a whole. If |
|||
identifiable sections of that work are not derived from the Program, |
|||
and can be reasonably considered independent and separate works in |
|||
themselves, then this License, and its terms, do not apply to those |
|||
sections when you distribute them as separate works. But when you |
|||
distribute the same sections as part of a whole which is a work based |
|||
on the Program, the distribution of the whole must be on the terms of |
|||
this License, whose permissions for other licensees extend to the |
|||
entire whole, and thus to each and every part regardless of who wrote it. |
|||
|
|||
Thus, it is not the intent of this section to claim rights or contest |
|||
your rights to work written entirely by you; rather, the intent is to |
|||
exercise the right to control the distribution of derivative or |
|||
collective works based on the Program. |
|||
|
|||
In addition, mere aggregation of another work not based on the Program |
|||
with the Program (or with a work based on the Program) on a volume of |
|||
a storage or distribution medium does not bring the other work under |
|||
the scope of this License. |
|||
|
|||
3. You may copy and distribute the Program (or a work based on it, |
|||
under Section 2) in object code or executable form under the terms of |
|||
Sections 1 and 2 above provided that you also do one of the following: |
|||
|
|||
a) Accompany it with the complete corresponding machine-readable |
|||
source code, which must be distributed under the terms of Sections |
|||
1 and 2 above on a medium customarily used for software interchange; or, |
|||
|
|||
b) Accompany it with a written offer, valid for at least three |
|||
years, to give any third party, for a charge no more than your |
|||
cost of physically performing source distribution, a complete |
|||
machine-readable copy of the corresponding source code, to be |
|||
distributed under the terms of Sections 1 and 2 above on a medium |
|||
customarily used for software interchange; or, |
|||
|
|||
c) Accompany it with the information you received as to the offer |
|||
to distribute corresponding source code. (This alternative is |
|||
allowed only for noncommercial distribution and only if you |
|||
received the program in object code or executable form with such |
|||
an offer, in accord with Subsection b above.) |
|||
|
|||
The source code for a work means the preferred form of the work for |
|||
making modifications to it. For an executable work, complete source |
|||
code means all the source code for all modules it contains, plus any |
|||
associated interface definition files, plus the scripts used to |
|||
control compilation and installation of the executable. However, as a |
|||
special exception, the source code distributed need not include |
|||
anything that is normally distributed (in either source or binary |
|||
form) with the major components (compiler, kernel, and so on) of the |
|||
operating system on which the executable runs, unless that component |
|||
itself accompanies the executable. |
|||
|
|||
If distribution of executable or object code is made by offering |
|||
access to copy from a designated place, then offering equivalent |
|||
access to copy the source code from the same place counts as |
|||
distribution of the source code, even though third parties are not |
|||
compelled to copy the source along with the object code. |
|||
|
|||
4. You may not copy, modify, sublicense, or distribute the Program |
|||
except as expressly provided under this License. Any attempt |
|||
otherwise to copy, modify, sublicense or distribute the Program is |
|||
void, and will automatically terminate your rights under this License. |
|||
However, parties who have received copies, or rights, from you under |
|||
this License will not have their licenses terminated so long as such |
|||
parties remain in full compliance. |
|||
|
|||
5. You are not required to accept this License, since you have not |
|||
signed it. However, nothing else grants you permission to modify or |
|||
distribute the Program or its derivative works. These actions are |
|||
prohibited by law if you do not accept this License. Therefore, by |
|||
modifying or distributing the Program (or any work based on the |
|||
Program), you indicate your acceptance of this License to do so, and |
|||
all its terms and conditions for copying, distributing or modifying |
|||
the Program or works based on it. |
|||
|
|||
6. Each time you redistribute the Program (or any work based on the |
|||
Program), the recipient automatically receives a license from the |
|||
original licensor to copy, distribute or modify the Program subject to |
|||
these terms and conditions. You may not impose any further |
|||
restrictions on the recipients' exercise of the rights granted herein. |
|||
You are not responsible for enforcing compliance by third parties to |
|||
this License. |
|||
|
|||
7. If, as a consequence of a court judgment or allegation of patent |
|||
infringement or for any other reason (not limited to patent issues), |
|||
conditions are imposed on you (whether by court order, agreement or |
|||
otherwise) that contradict the conditions of this License, they do not |
|||
excuse you from the conditions of this License. If you cannot |
|||
distribute so as to satisfy simultaneously your obligations under this |
|||
License and any other pertinent obligations, then as a consequence you |
|||
may not distribute the Program at all. For example, if a patent |
|||
license would not permit royalty-free redistribution of the Program by |
|||
all those who receive copies directly or indirectly through you, then |
|||
the only way you could satisfy both it and this License would be to |
|||
refrain entirely from distribution of the Program. |
|||
|
|||
If any portion of this section is held invalid or unenforceable under |
|||
any particular circumstance, the balance of the section is intended to |
|||
apply and the section as a whole is intended to apply in other |
|||
circumstances. |
|||
|
|||
It is not the purpose of this section to induce you to infringe any |
|||
patents or other property right claims or to contest validity of any |
|||
such claims; this section has the sole purpose of protecting the |
|||
integrity of the free software distribution system, which is |
|||
implemented by public license practices. Many people have made |
|||
generous contributions to the wide range of software distributed |
|||
through that system in reliance on consistent application of that |
|||
system; it is up to the author/donor to decide if he or she is willing |
|||
to distribute software through any other system and a licensee cannot |
|||
impose that choice. |
|||
|
|||
This section is intended to make thoroughly clear what is believed to |
|||
be a consequence of the rest of this License. |
|||
|
|||
8. If the distribution and/or use of the Program is restricted in |
|||
certain countries either by patents or by copyrighted interfaces, the |
|||
original copyright holder who places the Program under this License |
|||
may add an explicit geographical distribution limitation excluding |
|||
those countries, so that distribution is permitted only in or among |
|||
countries not thus excluded. In such case, this License incorporates |
|||
the limitation as if written in the body of this License. |
|||
|
|||
9. The Free Software Foundation may publish revised and/or new versions |
|||
of the General Public License from time to time. Such new versions will |
|||
be similar in spirit to the present version, but may differ in detail to |
|||
address new problems or concerns. |
|||
|
|||
Each version is given a distinguishing version number. If the Program |
|||
specifies a version number of this License which applies to it and "any |
|||
later version", you have the option of following the terms and conditions |
|||
either of that version or of any later version published by the Free |
|||
Software Foundation. If the Program does not specify a version number of |
|||
this License, you may choose any version ever published by the Free Software |
|||
Foundation. |
|||
|
|||
10. If you wish to incorporate parts of the Program into other free |
|||
programs whose distribution conditions are different, write to the author |
|||
to ask for permission. For software which is copyrighted by the Free |
|||
Software Foundation, write to the Free Software Foundation; we sometimes |
|||
make exceptions for this. Our decision will be guided by the two goals |
|||
of preserving the free status of all derivatives of our free software and |
|||
of promoting the sharing and reuse of software generally. |
|||
|
|||
NO WARRANTY |
|||
|
|||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
|||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
|||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
|||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
|||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
|||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
|||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
|||
REPAIR OR CORRECTION. |
|||
|
|||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
|||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
|||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
|||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
|||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
|||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
|||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
|||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
|||
POSSIBILITY OF SUCH DAMAGES. |
|||
|
|||
END OF TERMS AND CONDITIONS |
|||
|
|||
How to Apply These Terms to Your New Programs |
|||
|
|||
If you develop a new program, and you want it to be of the greatest |
|||
possible use to the public, the best way to achieve this is to make it |
|||
free software which everyone can redistribute and change under these terms. |
|||
|
|||
To do so, attach the following notices to the program. It is safest |
|||
to attach them to the start of each source file to most effectively |
|||
convey the exclusion of warranty; and each file should have at least |
|||
the "copyright" line and a pointer to where the full notice is found. |
|||
|
|||
<one line to give the program's name and a brief idea of what it does.> |
|||
Copyright (C) <year> <name of author> |
|||
|
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 2 of the License, or |
|||
(at your option) any later version. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU General Public License |
|||
along with this program; if not, write to the Free Software |
|||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|||
|
|||
|
|||
Also add information on how to contact you by electronic and paper mail. |
|||
|
|||
If the program is interactive, make it output a short notice like this |
|||
when it starts in an interactive mode: |
|||
|
|||
Gnomovision version 69, Copyright (C) year name of author |
|||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
|||
This is free software, and you are welcome to redistribute it |
|||
under certain conditions; type `show c' for details. |
|||
|
|||
The hypothetical commands `show w' and `show c' should show the appropriate |
|||
parts of the General Public License. Of course, the commands you use may |
|||
be called something other than `show w' and `show c'; they could even be |
|||
mouse-clicks or menu items--whatever suits your program. |
|||
|
|||
You should also get your employer (if you work as a programmer) or your |
|||
school, if any, to sign a "copyright disclaimer" for the program, if |
|||
necessary. Here is a sample; alter the names: |
|||
|
|||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
|||
`Gnomovision' (which makes passes at compilers) written by James Hacker. |
|||
|
|||
<signature of Ty Coon>, 1 April 1989 |
|||
Ty Coon, President of Vice |
|||
|
|||
This General Public License does not permit incorporating your program into |
|||
proprietary programs. If your program is a subroutine library, you may |
|||
consider it more useful to permit linking proprietary applications with the |
|||
library. If this is what you want to do, use the GNU Library General |
|||
Public License instead of this License. |
@ -0,0 +1,141 @@ |
|||
# Makefile for OpenWrt
|
|||
#
|
|||
# Copyright (C) 2006 OpenWrt.org
|
|||
# Copyright (C) 2006 by Felix Fietkau <openwrt@nbd.name>
|
|||
#
|
|||
# This is free software, licensed under the GNU General Public License v2.
|
|||
# See /LICENSE for more information.
|
|||
#
|
|||
|
|||
RELEASE:=Kamikaze |
|||
#VERSION:=2.0 # uncomment for final release
|
|||
|
|||
#--------------------------------------------------------------
|
|||
# Just run 'make menuconfig', configure stuff, then run 'make'.
|
|||
# You shouldn't need to mess with anything beyond this point...
|
|||
#--------------------------------------------------------------
|
|||
|
|||
all: world |
|||
|
|||
SHELL:=/usr/bin/env bash |
|||
export TOPDIR=${shell pwd} |
|||
include $(TOPDIR)/include/verbose.mk |
|||
|
|||
OPENWRTVERSION:=$(RELEASE) |
|||
ifneq ($(VERSION),) |
|||
OPENWRTVERSION:=$(VERSION) ($(OPENWRTVERSION)) |
|||
else |
|||
REV:=$(shell LANG=C svn info | awk '/^Revision:/ { print$$2 }' ) |
|||
ifneq ($(REV),) |
|||
OPENWRTVERSION:=$(OPENWRTVERSION)/r$(REV) |
|||
endif |
|||
endif |
|||
export OPENWRTVERSION |
|||
|
|||
ifneq ($(shell ./scripts/timestamp.pl -p .pkginfo package Makefile),.pkginfo) |
|||
.pkginfo .config: FORCE |
|||
endif |
|||
|
|||
ifeq ($(FORCE),) |
|||
.config scripts/config/conf scripts/config/mconf: .prereq-build |
|||
world: .prereq-packages |
|||
endif |
|||
|
|||
.pkginfo: |
|||
@echo Collecting package info... |
|||
@-for dir in package/*/; do \
|
|||
echo Source-Makefile: $${dir}Makefile; \
|
|||
$(NO_TRACE_MAKE) --no-print-dir DUMP=1 -C $$dir || echo "ERROR: please fix $${dir}Makefile" >&2; \
|
|||
done > $@ |
|||
|
|||
pkginfo-clean: FORCE |
|||
-rm -f .pkginfo .config.in |
|||
|
|||
.config.in: .pkginfo |
|||
@./scripts/gen_menuconfig.pl < $< > $@ || rm -f $@ |
|||
|
|||
.config: ./scripts/config/conf .config.in |
|||
@[ -f .config ] || $(NO_TRACE_MAKE) menuconfig |
|||
@$< -D .config Config.in &> /dev/null |
|||
|
|||
scripts/config/mconf: |
|||
@$(MAKE) -C scripts/config all |
|||
|
|||
scripts/config/conf: |
|||
@$(MAKE) -C scripts/config conf |
|||
|
|||
config: scripts/config/conf .config.in FORCE |
|||
$< Config.in |
|||
|
|||
config-clean: FORCE |
|||
$(NO_TRACE_MAKE) -C scripts/config clean |
|||
|
|||
defconfig: scripts/config/conf .config.in FORCE |
|||
touch .config |
|||
$< -D .config Config.in |
|||
|
|||
oldconfig: scripts/config/conf .config.in FORCE |
|||
$< -o Config.in |
|||
|
|||
menuconfig: scripts/config/mconf .config.in FORCE |
|||
$< Config.in |
|||
|
|||
package/%: .pkginfo FORCE |
|||
$(MAKE) -C package $(patsubst package/%,%,$@) |
|||
|
|||
target/%: .pkginfo FORCE |
|||
$(MAKE) -C target $(patsubst target/%,%,$@) |
|||
|
|||
tools/%: FORCE |
|||
$(MAKE) -C tools $(patsubst tools/%,%,$@) |
|||
|
|||
toolchain/%: FORCE |
|||
$(MAKE) -C toolchain $(patsubst toolchain/%,%,$@) |
|||
|
|||
.prereq-build: include/prereq-build.mk |
|||
@$(NO_TRACE_MAKE) -s -f $(TOPDIR)/include/prereq-build.mk prereq 2>/dev/null || { \
|
|||
echo "Prerequisite check failed. Use FORCE=1 to override."; \
|
|||
rm -rf $(TOPDIR)/tmp; \
|
|||
false; \
|
|||
} |
|||
@rm -rf $(TOPDIR)/tmp |
|||
@touch $@ |
|||
|
|||
.prereq-packages: include/prereq.mk .pkginfo .config |
|||
@$(NO_TRACE_MAKE) -s -C package prereq 2>/dev/null || { \
|
|||
echo "Prerequisite check failed. Use FORCE=1 to override."; \
|
|||
false; \
|
|||
} |
|||
@rm -rf "$(TOPDIR)/tmp" |
|||
@touch $@ |
|||
|
|||
prereq: .prereq-build .prereq-packages FORCE |
|||
|
|||
download: .config FORCE |
|||
$(MAKE) tools/download |
|||
$(MAKE) toolchain/download |
|||
$(MAKE) package/download |
|||
$(MAKE) target/download |
|||
|
|||
world: .config FORCE |
|||
$(MAKE) tools/install |
|||
$(MAKE) toolchain/install |
|||
$(MAKE) target/compile |
|||
$(MAKE) package/compile |
|||
$(MAKE) package/install |
|||
$(MAKE) target/install |
|||
$(MAKE) package/index |
|||
|
|||
clean: FORCE |
|||
rm -rf build_* bin |
|||
|
|||
dirclean: clean |
|||
rm -rf staging_dir_* toolchain_build_* tool_build |
|||
|
|||
distclean: dirclean config-clean |
|||
rm -rf dl .*config* .pkg* .prereq |
|||
|
|||
.SILENT: clean dirclean distclean config-clean download world |
|||
FORCE: ; |
|||
.PHONY: FORCE |
|||
%: ; |
@ -0,0 +1,24 @@ |
|||
This is the buildsystem for the OpenWrt Linux distribution |
|||
|
|||
Please use "make menuconfig" to configure your appreciated |
|||
configuration for the toolchain and firmware. |
|||
|
|||
You need to have installed gcc, binutils, patch, bzip2, flex, bison, |
|||
make, gettext, pkg-config, unzip, libz-dev and libc headers. |
|||
|
|||
Simply running 'make' will build your firmware. |
|||
It will download all sources, build the cross-compile toolchain, |
|||
the kernel and all choosen applications. |
|||
|
|||
You can use scripts/flash.sh for remotely updating your embedded system |
|||
via tftp. |
|||
|
|||
The buildroot system is documented in docs/buildroot-documentation.html. |
|||
|
|||
Building your own firmware you need to have access to a Linux system. |
|||
|
|||
Sunshine! |
|||
Your OpenWrt Project |
|||
http://openwrt.org |
|||
|
|||
|
@ -0,0 +1,72 @@ |
|||
== Structure of the configuration files == |
|||
|
|||
The config files are divided into sections and options/values. |
|||
|
|||
Every section has a type, but does not necessarily have a name. |
|||
Every option has a name and a value and is assigned to the section |
|||
it was written under. |
|||
|
|||
Syntax: |
|||
|
|||
config <type> [<name>] # Section |
|||
option <name> <value> # Option |
|||
|
|||
|
|||
Every parameter needs to be a single string and is formatted exactly |
|||
like a parameter for a shell function. The same rules for Quoting and |
|||
special characters also apply, as it is parsed by the shell. |
|||
|
|||
|
|||
|
|||
== Parsing configuration files in custom scripts == |
|||
|
|||
To be able to load configuration files, you need to include the common |
|||
functions with: |
|||
|
|||
. /etc/functions.sh |
|||
|
|||
Then you can use config_load <name> to load config files. The function |
|||
first checks for <name> as absolute filename and falls back to loading |
|||
it from /etc/config (which is the most common way of using it). |
|||
|
|||
If you want to use special callbacks for sections and/or options, you |
|||
need to define the following shell functions before running config_load |
|||
(after including /etc/functions.sh): |
|||
|
|||
config_cb() { |
|||
local type="$1" |
|||
local name="$2" |
|||
# commands to be run for every section |
|||
} |
|||
|
|||
option_cb() { |
|||
# commands to be run for every option |
|||
} |
|||
|
|||
You can also alter option_cb from config_cb based on the section type. |
|||
This allows you to process every single config section based on its type |
|||
individually. |
|||
|
|||
config_cb is run every time a new section starts (before options are being |
|||
processed). You can access the last section through the CONFIG_SECTION |
|||
variable. Also an extra call to config_cb (without a new section) is generated |
|||
after config_load is done. |
|||
That allows you to process sections both before and after all options were |
|||
processed. |
|||
|
|||
You can access already processed options with the config_get command |
|||
Syntax: |
|||
|
|||
config_get <section> <option> # prints the value of the option |
|||
config_get <variable> <section> <option> # stores the value inside the variable |
|||
|
|||
In busybox ash the three-option config_get is faster, because it does not |
|||
result in an extra fork, so it is the preferred way. |
|||
|
|||
Additionally you can also modify or add options to sections by using the |
|||
config_set command. |
|||
|
|||
Syntax: |
|||
|
|||
config_set <section> <option> <value> |
|||
|
@ -0,0 +1,52 @@ |
|||
Structure of the network scripts in buildroot-ng |
|||
|
|||
|
|||
1) Usage |
|||
|
|||
To be able to access the network functions, you need to include |
|||
the necessary shell scripts by running: |
|||
|
|||
. /etc/functions.sh # common functions |
|||
include /lib/network # include /lib/network/*.sh |
|||
scan_interfaces # read and parse the network config |
|||
|
|||
Some protocols, such as PPP might change the configured interface names |
|||
at run time (e.g. eth0 => ppp0 for PPPoE). That's why you have to run |
|||
scan_interfaces instead of reading the values from the config directly. |
|||
After running scan_interfaces, the 'ifname' option will always contain |
|||
the effective interface name (which is used for IP traffic) and if the |
|||
physical device name differs from it, it will be stored in the 'device' |
|||
option. |
|||
That means that running 'config_get lan ifname' after scan_interfaces |
|||
might not return the same result as running it before. |
|||
|
|||
After running scan_interfaces, the following functions are available: |
|||
|
|||
- find_config <interface> looks for a network configuration that includes |
|||
the specified network interface. |
|||
|
|||
- setup_interface <interface> [<config>] [<protocol>] will set up the |
|||
specified interface, optionally overriding the network configuration |
|||
name or the protocol that it uses. |
|||
|
|||
|
|||
|
|||
2) Writing protocol handlers |
|||
|
|||
You can add custom protocol handlers by adding shell scripts to |
|||
/lib/network. They provide the following two shell functions: |
|||
|
|||
scan_<protocolname>() { |
|||
local config="$1" |
|||
# change the interface names if necessary |
|||
} |
|||
|
|||
setup_interface_<protocolname>() { |
|||
local interface="$1" |
|||
local config="$2" |
|||
# set up the interface |
|||
} |
|||
|
|||
scan_<protocolname> is optional and only necessary if your protocol |
|||
uses a custom device, e.g. a tunnel or a PPP device. |
|||
|
@ -0,0 +1,79 @@ |
|||
Network configuration in buildroot-ng |
|||
|
|||
|
|||
The network configuration in buildroot-ng is stored in /etc/config/network |
|||
and is divided into interface configurations. |
|||
Each interface configuration either refers directly to an ethernet/wifi |
|||
interface (eth0, wl0, ..) or to a bridge containing multiple interfaces. |
|||
It looks like this: |
|||
|
|||
config interface "lan" |
|||
option ifname "eth0" |
|||
option proto "static" |
|||
option ipaddr "192.168.1.1" |
|||
option netmask "255.255.255.0" |
|||
option gateway "192.168.1.254" |
|||
option dns "192.168.1.254" |
|||
|
|||
"ifname" specifies the Linux interface name. |
|||
If you want to use bridging on one or more interfaces, set "ifname" to a list |
|||
of interfaces and add: |
|||
option type "bridge" |
|||
|
|||
It is possible to use VLAN tagging on an interface simply by adding the VLAN IDs |
|||
to it, e.g. "eth0.1". These can be nested as well. |
|||
|
|||
This sets up a simple static configuration for eth0. "proto" specifies the |
|||
'protocol' used for the interface. The default image usually provides 'none' |
|||
'static', 'dhcp' and 'pppoe'. Others can be added by installing additional |
|||
packages. |
|||
|
|||
When using the 'static' method like in the example, the options "ipaddr" and |
|||
"netmask" are mandatory, while "gateway" and "dns" are optional. |
|||
DHCP currently only accepts "ipaddr" (IP address to request from the server) |
|||
and "hostname" (client hostname identify as) - both are optional. |
|||
|
|||
PPP based protocols (pppoe, pptp, ...) accept these options: |
|||
username: |
|||
The PPP username (usually with PAP authentication) |
|||
password: |
|||
The PPP password |
|||
keepalive: |
|||
Ping the PPP server (using LCP). The value of this option |
|||
specifies the maximum number of failed pings before reconnecting. |
|||
The ping interval defaults to 5, but can be changed by appending |
|||
",<interval>" to the keepalive value |
|||
demand: |
|||
Use Dial on Demand (value specifies the maximum idle time) |
|||
|
|||
(pptp) |
|||
server: The remote pptp server IP |
|||
|
|||
For all protocol types, you can also specify the MTU by using the "mtu" option. |
|||
|
|||
|
|||
|
|||
|
|||
Setting up the switch (currently broadcom only) |
|||
|
|||
|
|||
The switch configuration is set by adding a 'switch' config section. |
|||
Example: |
|||
|
|||
config switch eth0 |
|||
option vlan0 "1 2 3 4 5*" |
|||
option vlan1 "0 5" |
|||
|
|||
On Broadcom hardware the section name needs to be eth0, as the switch driver |
|||
does not detect the switch on any other physical device. |
|||
Every vlan option needs to have the name vlan<n> where <n> is the VLAN number |
|||
as used in the switch driver. |
|||
As value it takes a list of ports with these optional suffixes: |
|||
|
|||
'*': Set the default VLAN (PVID) of the Port to the current VLAN |
|||
'u': Force the port to be untagged |
|||
't': Force the port to be tagged |
|||
|
|||
The CPU port defaults to tagged, all other ports to untagged. |
|||
On Broadcom hardware the CPU port is always 5. The other ports may vary with |
|||
different hardware. |
@ -0,0 +1,123 @@ |
|||
#
|
|||
# Copyright (C) 2006 OpenWrt.org
|
|||
#
|
|||
# This is free software, licensed under the GNU General Public License v2.
|
|||
# See /LICENSE for more information.
|
|||
#
|
|||
|
|||
include $(INCLUDE_DIR)/host.mk |
|||
|
|||
ifneq ($(strip $(PKG_CAT)),) |
|||
ifeq ($(PKG_CAT),unzip) |
|||
UNPACK=unzip -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_SOURCE) |
|||
else |
|||
UNPACK=$(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(PKG_BUILD_DIR)/.. $(TAR_OPTIONS) - |
|||
endif |
|||
define Build/Prepare/Default |
|||
$(UNPACK) |
|||
@if [ -d ./patches ]; then \
|
|||
$(PATCH) $(PKG_BUILD_DIR) ./patches; \
|
|||
fi |
|||
endef |
|||
endif |
|||
|
|||
define Build/Prepare |
|||
$(call Build/Prepare/Default) |
|||
endef |
|||
|
|||
define Build/Configure/Default |
|||
@(cd $(PKG_BUILD_DIR)/$(3); \
|
|||
[ -x configure ] && \
|
|||
$(2) \
|
|||
CPPFLAGS="-I$(STAGING_DIR)/host/include" \
|
|||
LDFLAGS="-L$(STAGING_DIR)/host/lib" \
|
|||
./configure \
|
|||
--target=$(GNU_TARGET_NAME) \
|
|||
--host=$(GNU_TARGET_NAME) \
|
|||
--build=$(GNU_HOST_NAME) \
|
|||
--program-prefix="" \
|
|||
--program-suffix="" \
|
|||
--prefix=/usr \
|
|||
--exec-prefix=/usr \
|
|||
--bindir=/usr/bin \
|
|||
--sbindir=/usr/sbin \
|
|||
--libexecdir=/usr/lib \
|
|||
--sysconfdir=/etc \
|
|||
--datadir=/usr/share \
|
|||
--localstatedir=/var \
|
|||
--mandir=/usr/man \
|
|||
--infodir=/usr/info \
|
|||
$(DISABLE_NLS) \
|
|||
$(1); \
|
|||
true; \
|
|||
) |
|||
endef |
|||
|
|||
define Build/Configure |
|||
$(call Build/Configure/Default) |
|||
endef |
|||
|
|||
define Build/Compile/Default |
|||
$(MAKE) -C $(PKG_BUILD_DIR) $(1) |
|||
endef |
|||
|
|||
define Build/Compile |
|||
$(call Build/Compile/Default) |
|||
endef |
|||
|
|||
|
|||
ifneq ($(strip $(PKG_SOURCE)),) |
|||
download: $(DL_DIR)/$(PKG_SOURCE) |
|||
|
|||
$(DL_DIR)/$(PKG_SOURCE): |
|||
mkdir -p $(DL_DIR) |
|||
$(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(PKG_SOURCE)" "$(PKG_MD5SUM)" $(PKG_SOURCE_URL) |
|||
|
|||
$(PKG_BUILD_DIR)/.prepared: $(DL_DIR)/$(PKG_SOURCE) |
|||
endif |
|||
|
|||
define HostBuild |
|||
$(PKG_BUILD_DIR)/.prepared: |
|||
@-rm -rf $(PKG_BUILD_DIR) |
|||
@mkdir -p $(PKG_BUILD_DIR) |
|||
$(call Build/Prepare) |
|||
touch $$@ |
|||
|
|||
$(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.prepared |
|||
$(call Build/Configure) |
|||
touch $$@ |
|||
|
|||
$(PKG_BUILD_DIR)/.built: $(PKG_BUILD_DIR)/.configured |
|||
$(call Build/Compile) |
|||
touch $$@ |
|||
|
|||
$(STAGING_DIR)/stampfiles/.host_$(PKG_NAME)-installed: $(PKG_BUILD_DIR)/.built |
|||
$(call Build/Install) |
|||
touch $$@ |
|||
|
|||
ifdef Build/Install |
|||
install-targets: $(STAGING_DIR)/stampfiles/.host_$(PKG_NAME)-installed |
|||
endif |
|||
|
|||
package-clean: FORCE |
|||
$(call Build/Clean) |
|||
$(call Build/Uninstall) |
|||
rm -f $(STAGING_DIR)/stampfiles/.host_$(PKG_NAME)-installed |
|||
|
|||
download: |
|||
prepare: $(PKG_BUILD_DIR)/.prepared |
|||
configure: $(PKG_BUILD_DIR)/.configured |
|||
|
|||
compile-targets: $(PKG_BUILD_DIR)/.built |
|||
compile: compile-targets |
|||
|
|||
install-targets: |
|||
install: install-targets |
|||
|
|||
clean-targets: |
|||
clean: FORCE |
|||
@$(MAKE) clean-targets |
|||
$(call Build/Clean) |
|||
rm -rf $(PKG_BUILD_DIR) |
|||
|
|||
endef |
@ -0,0 +1,31 @@ |
|||
#
|
|||
# Copyright (C) 2006 OpenWrt.org
|
|||
#
|
|||
# This is free software, licensed under the GNU General Public License v2.
|
|||
# See /LICENSE for more information.
|
|||
#
|
|||
|
|||
include $(TOPDIR)/.host.mk |
|||
|
|||
export TAR |
|||
|
|||
$(TOPDIR)/.host.mk: $(INCLUDE_DIR)/host.mk |
|||
@( \
|
|||
HOST_OS=`uname`; \
|
|||
case "$$HOST_OS" in \
|
|||
Linux) HOST_ARCH=`uname -m`;; \
|
|||
*) HOST_ARCH=`uname -p`;; \
|
|||
esac; \
|
|||
GNU_HOST_NAME=`gcc -dumpmachine`; \
|
|||
[ -n "$$GNU_HOST_NAME" ] || \
|
|||
GNU_HOST_NAME=`$(SCRIPT_DIR)/config.guess`; \
|
|||
echo "HOST_OS:=$$HOST_OS" > $@; \
|
|||
echo "HOST_ARCH:=$$HOST_ARCH" >> $@; \
|
|||
echo "GNU_HOST_NAME:=$$GNU_HOST_NAME" >> $@; \
|
|||
if tar --version 2>&1 | grep 'GNU' >/dev/null; then \
|
|||
echo "TAR_WILDCARDS:=--wildcards" >> $@; \
|
|||
fi; \
|
|||
TAR=`which gtar tar | head -n 1`; \
|
|||
echo "TAR:=$$TAR" >> $@; \
|
|||
) |
|||
|
@ -0,0 +1,96 @@ |
|||
#
|
|||
# Copyright (C) 2006 OpenWrt.org
|
|||
#
|
|||
# This is free software, licensed under the GNU General Public License v2.
|
|||
# See /LICENSE for more information.
|
|||
#
|
|||
KDIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD) |
|||
|
|||
ifneq ($(CONFIG_BIG_ENDIAN),y) |
|||
JFFS2OPTS := --pad --little-endian --squash |
|||
SQUASHFS_OPTS := -le |
|||
else |
|||
JFFS2OPTS := --pad --big-endian --squash |
|||
SQUASHFS_OPTS := -be |
|||
endif |
|||
|
|||
ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) |
|||
ifeq ($(CONFIG_TARGET_ROOTFS_JFFS2),y) |
|||
define Image/mkfs/jffs2 |
|||
rm -rf $(BUILD_DIR)/root/jffs |
|||
|
|||
$(STAGING_DIR)/bin/mkfs.jffs2 $(JFFS2OPTS) -e 0x10000 -o $(KDIR)/root.jffs2-64k -d $(BUILD_DIR)/root |
|||
$(STAGING_DIR)/bin/mkfs.jffs2 $(JFFS2OPTS) -e 0x20000 -o $(KDIR)/root.jffs2-128k -d $(BUILD_DIR)/root |
|||
|
|||
# add End-of-Filesystem markers |
|||
echo -ne '\xde\xad\xc0\xde' >> $(KDIR)/root.jffs2-64k |
|||
echo -ne '\xde\xad\xc0\xde' >> $(KDIR)/root.jffs2-128k |
|||
|
|||
$(call Image/Build,jffs2-64k) |
|||
$(call Image/Build,jffs2-128k) |
|||
endef |
|||
endif |
|||
|
|||
ifeq ($(CONFIG_TARGET_ROOTFS_SQUASHFS),y) |
|||
define Image/mkfs/squashfs |
|||
@mkdir -p $(BUILD_DIR)/root/jffs |
|||
$(STAGING_DIR)/bin/mksquashfs-lzma $(BUILD_DIR)/root $(KDIR)/root.squashfs -nopad -noappend -root-owned $(SQUASHFS_OPTS) |
|||
$(call Image/Build,squashfs) |
|||
endef |
|||
endif |
|||
|
|||
ifeq ($(CONFIG_TARGET_ROOTFS_TGZ),y) |
|||
define Image/mkfs/tgz |
|||
tar -zcf $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-rootfs.tgz --owner=root --group=root -C $(BUILD_DIR)/root/ . |
|||
endef |
|||
endif |
|||
|
|||
|
|||
endif |
|||
|
|||
ifeq ($(CONFIG_TARGET_ROOTFS_EXT2FS),y) |
|||
define Image/mkfs/ext2 |
|||
$(STAGING_DIR)/bin/genext2fs -q -b 8192 -I 1500 -d $(BUILD_DIR)/root/ $(KDIR)/root.ext2 |
|||
$(call Image/Build,ext2) |
|||
endef |
|||
endif |
|||
|
|||
|
|||
define Image/mkfs/prepare/default |
|||
find $(BUILD_DIR)/root -type f -not -perm +0100 | xargs chmod 0644 |
|||
find $(BUILD_DIR)/root -type f -perm +0100 | xargs chmod 0755 |
|||
find $(BUILD_DIR)/root -type d | xargs chmod 0755 |
|||
mkdir -p $(BUILD_DIR)/root/tmp |
|||
chmod 0777 $(BUILD_DIR)/root/tmp |
|||
endef |
|||
|
|||
define Image/mkfs/prepare |
|||
$(call Image/mkfs/prepare/default) |
|||
endef |
|||
|
|||
define BuildImage |
|||
compile: |
|||
$(call Build/Compile) |
|||
|
|||
install: |
|||
$(call Image/Prepare) |
|||
$(call Image/mkfs/prepare) |
|||
$(call Image/BuildKernel) |
|||
$(call Image/mkfs/jffs2) |
|||
$(call Image/mkfs/squashfs) |
|||
$(call Image/mkfs/tgz) |
|||
$(call Image/mkfs/ext2) |
|||
|
|||
clean: |
|||
$(call Build/Clean) |
|||
endef |
|||
|
|||
compile-targets: |
|||
install-targets: |
|||
clean-targets: |
|||
|
|||
download: |
|||
prepare: |
|||
compile: compile-targets |
|||
install: compile install-targets |
|||
clean: clean-targets |
@ -0,0 +1,145 @@ |
|||
#
|
|||
# Copyright (C) 2006 OpenWrt.org
|
|||
#
|
|||
# This is free software, licensed under the GNU General Public License v2.
|
|||
# See /LICENSE for more information.
|
|||
#
|
|||
include $(INCLUDE_DIR)/host.mk |
|||
-include $(INCLUDE_DIR)/modules-$(KERNEL).mk |
|||
|
|||
LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.bz2 |
|||
LINUX_SITE=http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL) \
|
|||
http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL) \
|
|||
http://www.kernel.org/pub/linux/kernel/v$(KERNEL) \
|
|||
http://www.de.kernel.org/pub/linux/kernel/v$(KERNEL) |
|||
|
|||
KERNEL_IDIR:=$(KERNEL_BUILD_DIR)/kernel-ipkg |
|||
KERNEL_IPKG:=$(KERNEL_BUILD_DIR)/kernel_$(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE)_$(ARCH).ipk |
|||
TARGETS += $(KERNEL_IPKG) |
|||
INSTALL_TARGETS += $(KERNEL_IPKG) |
|||
|
|||
LINUX_KARCH:=$(shell echo $(ARCH) | sed -e 's/i[3-9]86/i386/' \
|
|||
-e 's/mipsel/mips/' \
|
|||
-e 's/mipseb/mips/' \
|
|||
-e 's/powerpc/ppc/' \
|
|||
-e 's/sh[234]/sh/' \
|
|||
-e 's/armeb/arm/' \
|
|||
) |
|||
|
|||
|
|||
$(TARGETS): $(PACKAGE_DIR) |
|||
|
|||
$(PACKAGE_DIR): |
|||
mkdir -p $@ |
|||
|
|||
$(DL_DIR)/$(LINUX_SOURCE): |
|||
-mkdir -p $(DL_DIR) |
|||
$(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_SOURCE) $(LINUX_KERNEL_MD5SUM) $(LINUX_SITE) |
|||
|
|||
$(LINUX_DIR)/.unpacked: $(DL_DIR)/$(LINUX_SOURCE) |
|||
-mkdir -p $(KERNEL_BUILD_DIR) |
|||
bzcat $(DL_DIR)/$(LINUX_SOURCE) | tar -C $(KERNEL_BUILD_DIR) $(TAR_OPTIONS) - |
|||
touch $@ |
|||
|
|||
ifeq ($(KERNEL),2.4) |
|||
$(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched |
|||
$(SED) "s,\-mcpu=,\-mtune=,g;" $(LINUX_DIR)/arch/mips/Makefile |
|||
$(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(KERNEL_CC)" ARCH=$(LINUX_KARCH) oldconfig include/linux/compile.h include/linux/version.h |
|||
touch $@ |
|||
|
|||
$(LINUX_DIR)/.depend_done: $(LINUX_DIR)/.configured |
|||
$(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) dep |
|||
touch $@ |
|||
|
|||
$(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.depend_done |
|||
else |
|||
$(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched |
|||
$(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(KERNEL_CC)" ARCH=$(LINUX_KARCH) oldconfig prepare scripts |
|||
touch $@ |
|||
endif |
|||
|
|||
ramdisk-config: $(LINUX_DIR)/.configured FORCE |
|||
mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old |
|||
grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config |
|||
ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) |
|||
echo 'CONFIG_INITRAMFS_SOURCE="../../root"' >> $(LINUX_DIR)/.config |
|||
echo 'CONFIG_INITRAMFS_ROOT_UID=0' >> $(LINUX_DIR)/.config |
|||
echo 'CONFIG_INITRAMFS_ROOT_GID=0' >> $(LINUX_DIR)/.config |
|||
mkdir -p $(BUILD_DIR)/root/etc/init.d |
|||
$(CP) ../generic-2.6/files/init $(BUILD_DIR)/root/ |
|||
else |
|||
rm -f $(BUILD_DIR)/root/init $(BUILD_DIR)/root/etc/init.d/S00initramfs |
|||
echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_DIR)/.config |
|||
endif |
|||
|
|||
$(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.linux-compile pkg-install ramdisk-config |
|||
$(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(KERNEL_CC)" ARCH=$(LINUX_KARCH) $(KERNELNAME) |
|||
|
|||
$(LINUX_KERNEL): $(LINUX_DIR)/vmlinux |
|||
$(KERNEL_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ |
|||
touch -c $(LINUX_KERNEL) |
|||
|
|||
$(LINUX_DIR)/.modules_done: |
|||
rm -rf $(KERNEL_BUILD_DIR)/modules |
|||
$(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(KERNEL_CC)" ARCH=$(LINUX_KARCH) modules |
|||
$(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(KERNEL_CC)" ARCH=$(LINUX_KARCH) DEPMOD=true INSTALL_MOD_PATH=$(KERNEL_BUILD_DIR)/modules modules_install |
|||
touch $(LINUX_DIR)/.modules_done |
|||
|
|||
modules: $(LINUX_DIR)/.modules_done |
|||
packages: $(TARGETS) |
|||
|
|||
$(LINUX_DIR)/.linux-compile: |
|||
@rm -f $(BUILD_DIR)/linux |
|||
ln -sf $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) $(BUILD_DIR)/linux |
|||
@$(MAKE) modules |
|||
touch $@ |
|||
|
|||
$(KERNEL_IPKG): |
|||
rm -rf $(KERNEL_IDIR) |
|||
mkdir -p $(KERNEL_IDIR)/etc |
|||
$(SCRIPT_DIR)/make-ipkg-dir.sh $(KERNEL_IDIR) ../control/kernel.control $(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE) $(ARCH) |
|||
if [ -f ./config/$(BOARD).modules ]; then \
|
|||
cp ./config/$(BOARD).modules $(KERNEL_IDIR)/etc/modules; \
|
|||
fi |
|||
$(IPKG_BUILD) $(KERNEL_IDIR) $(KERNEL_BUILD_DIR) |
|||
|
|||
$(TOPDIR)/.kernel.mk: $(TOPDIR)/target/linux/$(BOARD)-$(KERNEL)/Makefile |
|||
echo "CONFIG_BOARD:=$(BOARD)" > $@ |
|||
echo "CONFIG_KERNEL:=$(KERNEL)" >> $@ |
|||
echo "CONFIG_LINUX_VERSION:=$(LINUX_VERSION)" >> $@ |
|||
echo "CONFIG_LINUX_RELEASE:=$(LINUX_RELEASE)" >> $@ |
|||
echo "CONFIG_LINUX_KARCH:=$(LINUX_KARCH)" >> $@ |
|||
|
|||
pkg-install: FORCE |
|||
@for pkg in $(INSTALL_TARGETS); do \
|
|||
$(IPKG) install $$pkg || echo; \
|
|||
done |
|||
|
|||
download: $(DL_DIR)/$(LINUX_SOURCE) |
|||
prepare: $(LINUX_DIR)/.configured |
|||
@mkdir -p $(LINUX_DIR) $(PACKAGE_DIR) |
|||
|
|||
compile: prepare $(LINUX_DIR)/.linux-compile |
|||
@$(MAKE) packages |
|||
|
|||
install: compile $(LINUX_KERNEL) |
|||
|
|||
mostlyclean: FORCE |
|||
rm -f $(LINUX_DIR)/.linux-compile |
|||
rm -f $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION)/.modules_done |
|||
rm -f $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION)/.drivers-unpacked |
|||
$(MAKE) -C $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) clean |
|||
rm -f $(LINUX_KERNEL) |
|||
|
|||
rebuild: FORCE |
|||
-$(MAKE) mostlyclean |
|||
if [ -f $(LINUX_KERNEL) ]; then \
|
|||
$(MAKE) clean; \
|
|||
fi |
|||
$(MAKE) compile $(MAKE_TRACE) |
|||
|
|||
clean: FORCE |
|||
rm -f $(STAMP_DIR)/.linux-compile |
|||
rm -rf $(KERNEL_BUILD_DIR) |
|||
rm -f $(TARGETS) |
|||
|
@ -0,0 +1,106 @@ |
|||
#
|
|||
# Copyright (C) 2006 OpenWrt.org
|
|||
#
|
|||
# This is free software, licensed under the GNU General Public License v2.
|
|||
# See /LICENSE for more information.
|
|||
#
|
|||
ifeq ($(DUMP),1) |
|||
KERNEL:=<KERNEL> |
|||
BOARD:=<BOARD> |
|||
LINUX_VERSION:=<LINUX_VERSION> |
|||
else |
|||
|
|||
include $(TOPDIR)/.kernel.mk |
|||
include $(INCLUDE_DIR)/target.mk |
|||
|
|||
# check to see if .kernel.mk matches target.mk |
|||
ifeq ($(CONFIG_BOARD)-$(CONFIG_KERNEL),$(BOARD)-$(KERNEL)) |
|||
LINUX_VERSION:=$(CONFIG_LINUX_VERSION) |
|||
LINUX_RELEASE:=$(CONFIG_LINUX_RELEASE) |
|||
LINUX_KARCH:=$(CONFIG_LINUX_KARCH) |
|||
else |
|||
# oops, old .kernel.config; rebuild it (hiding the misleading errors this produces) |
|||
$(warning rebuilding .kernel.mk) |
|||
$(TOPDIR)/.kernel.mk: FORCE |
|||
@$(MAKE) -C $(TOPDIR)/target/linux/$(BOARD)-$(KERNEL) $@ &>/dev/null |
|||
endif |
|||
|
|||
ifeq ($(KERNEL),2.6) |
|||
LINUX_KMOD_SUFFIX=ko |
|||
else |
|||
LINUX_KMOD_SUFFIX=o |
|||
endif |
|||
|
|||
KERNELNAME= |
|||
ifneq (,$(findstring x86,$(BOARD))) |
|||
KERNELNAME="bzImage" |
|||
endif |
|||
ifneq (,$(findstring ppc,$(BOARD))) |
|||
KERNELNAME="uImage" |
|||
endif |
|||
|
|||
ifneq (,$(findstring uml,$(BOARD))) |
|||
LINUX_KARCH:=um |
|||
KERNEL_CC:=$(HOSTCC) |
|||
KERNEL_CROSS:= |
|||
else |
|||
KERNEL_CC:=$(TARGET_CC) |
|||
KERNEL_CROSS:=$(TARGET_CROSS) |
|||
endif |
|||
|
|||
KERNEL_BUILD_DIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD) |
|||
LINUX_DIR := $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) |
|||
|
|||
MODULES_SUBDIR:=lib/modules/$(LINUX_VERSION) |
|||
MODULES_DIR := $(KERNEL_BUILD_DIR)/modules/$(MODULES_SUBDIR) |
|||
TARGET_MODULES_DIR := $(LINUX_TARGET_DIR)/$(MODULES_SUBDIR) |
|||
KMOD_BUILD_DIR := $(KERNEL_BUILD_DIR)/linux-modules |
|||
|
|||
LINUX_KERNEL:=$(KERNEL_BUILD_DIR)/vmlinux |
|||
endif |
|||
|
|||
# FIXME: remove this crap
|
|||
define KMOD_template |
|||
ifeq ($$(strip $(4)),) |
|||
KDEPEND_$(1):=m |
|||
else |
|||
KDEPEND_$(1):=$($(4)) |
|||
endif |
|||
|
|||
IDEPEND_$(1):=kernel ($(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE)) $(foreach pkg,$(5),", $(pkg)") |
|||
|
|||
PKG_$(1) := $(PACKAGE_DIR)/kmod-$(2)_$(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE)_$(ARCH).ipk |
|||
I_$(1) := $(KMOD_BUILD_DIR)/ipkg/$(2) |
|||
|
|||
ifeq ($$(KDEPEND_$(1)),m) |
|||
ifneq ($$(CONFIG_PACKAGE_KMOD_$(1)),) |
|||
TARGETS += $$(PKG_$(1)) |
|||
endif |
|||
ifeq ($$(CONFIG_PACKAGE_KMOD_$(1)),y) |
|||
INSTALL_TARGETS += $$(PKG_$(1)) |
|||
endif |
|||
endif |
|||
|
|||
$$(PKG_$(1)): $(LINUX_DIR)/.modules_done |
|||
rm -rf $$(I_$(1)) |
|||
$(SCRIPT_DIR)/make-ipkg-dir.sh $$(I_$(1)) ../control/kmod-$(2).control $(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE) $(ARCH) |
|||
echo "Depends: $$(IDEPEND_$(1))" >> $$(I_$(1))/CONTROL/control |
|||
ifneq ($(strip $(3)),) |
|||
mkdir -p $$(I_$(1))/lib/modules/$(LINUX_VERSION) |
|||
$(CP) $(3) $$(I_$(1))/lib/modules/$(LINUX_VERSION) |
|||
endif |
|||
ifneq ($(6),) |
|||
mkdir -p $$(I_$(1))/etc/modules.d |
|||
for module in $(7); do \
|
|||
echo $$$$module >> $$(I_$(1))/etc/modules.d/$(6)-$(2); \
|
|||
done |
|||
echo "#!/bin/sh" >> $$(I_$(1))/CONTROL/postinst |
|||
echo "[ -z \"\$$$$IPKG_INSTROOT\" ] || exit" >> $$(I_$(1))/CONTROL/postinst |
|||
echo ". /etc/functions.sh" >> $$(I_$(1))/CONTROL/postinst |
|||
echo "load_modules /etc/modules.d/$(6)-$(2)" >> $$(I_$(1))/CONTROL/postinst |
|||
chmod 0755 $$(I_$(1))/CONTROL/postinst |
|||
endif |
|||
$(8) |
|||
$(IPKG_BUILD) $$(I_$(1)) $(PACKAGE_DIR) |
|||
endef |
|||
|
@ -0,0 +1,196 @@ |
|||
#
|
|||
# Copyright (C) 2006 OpenWrt.org
|
|||
#
|
|||
# This is free software, licensed under the GNU General Public License v2.
|
|||
# See /LICENSE for more information.
|
|||
#
|
|||
include $(INCLUDE_DIR)/netfilter.mk |
|||
|
|||
# Networking
|
|||
|
|||
$(eval $(call KMOD_template,ATM,atm,\ |
|||
$(MODULES_DIR)/kernel/net/atm/atm.o \
|
|||
$(MODULES_DIR)/kernel/net/atm/br2684.o \
|
|||
,CONFIG_ATM,,50,atm)) |
|||
|
|||
# Block devices
|
|||
|
|||
$(eval $(call KMOD_template,LOOP,loop,\ |
|||
$(MODULES_DIR)/kernel/drivers/block/loop.o \
|
|||
,CONFIG_BLK_DEV_LOOP,,20,loop)) |
|||
|
|||
$(eval $(call KMOD_template,NBD,nbd,\ |
|||
$(MODULES_DIR)/kernel/drivers/block/nbd.o \
|
|||
,CONFIG_BLK_DEV_NBD,,20,nbd)) |
|||
|
|||
|
|||
# Filesystems
|
|||
|
|||
$(eval $(call KMOD_template,FS_CIFS,fs-cifs,\ |
|||
$(MODULES_DIR)/kernel/fs/cifs/cifs.o \
|
|||
,CONFIG_CIFS,,30,cifs)) |
|||
|
|||
$(eval $(call KMOD_template,FS_MINIX,fs-minix,\ |
|||
$(MODULES_DIR)/kernel/fs/minix/*.o \
|
|||
,CONFIG_MINIX_FS,,30,minix)) |
|||
|
|||
$(eval $(call KMOD_template,FS_EXT2,fs-ext2,\ |
|||
$(MODULES_DIR)/kernel/fs/ext2/*.o \
|
|||
,CONFIG_EXT2_FS,,30,ext2)) |
|||
|
|||
$(eval $(call KMOD_template,FS_EXT3,fs-ext3,\ |
|||
$(MODULES_DIR)/kernel/fs/ext3/*.o \
|
|||
$(MODULES_DIR)/kernel/fs/jbd/*.o \
|
|||
,CONFIG_EXT3_FS,,30,jbd ext3)) |
|||
|
|||
$(eval $(call KMOD_template,FS_HFSPLUS,fs-hfsplus,\ |
|||
$(MODULES_DIR)/kernel/fs/hfsplus/*.o \
|
|||
,CONFIG_HFSPLUS_FS,,30,hfsplus)) |
|||
|
|||
$(eval $(call KMOD_template,FS_NFS,fs-nfs,\ |
|||
$(MODULES_DIR)/kernel/fs/lockd/*.o \
|
|||
$(MODULES_DIR)/kernel/fs/nfs/*.o \
|
|||
$(MODULES_DIR)/kernel/net/sunrpc/*.o \
|
|||
,CONFIG_NFS_FS,,30,sunrpc lockd nfs)) |
|||
|
|||
$(eval $(call KMOD_template,FS_VFAT,fs-vfat,\ |
|||
$(MODULES_DIR)/kernel/fs/vfat/vfat.o \
|
|||
$(MODULES_DIR)/kernel/fs/fat/fat.o \
|
|||
,CONFIG_VFAT_FS,,30,fat vfat)) |
|||
|
|||
$(eval $(call KMOD_template,FS_XFS,fs-xfs,\ |
|||
$(MODULES_DIR)/kernel/fs/xfs/*.o \
|
|||
,CONFIG_XFS_FS,,30,xfs)) |
|||
|
|||
|
|||
# Multimedia
|
|||
|
|||
$(eval $(call KMOD_template,PWC,pwc,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/pwc.o \
|
|||
,CONFIG_USB_PWC,kmod-videodev,63,pwc)) |
|||
|
|||
$(eval $(call KMOD_template,SOUNDCORE,soundcore,\ |
|||
$(MODULES_DIR)/kernel/drivers/sound/soundcore.o \
|
|||
,CONFIG_SOUND,,30,soundcore)) |
|||
|
|||
$(eval $(call KMOD_template,VIDEODEV,videodev,\ |
|||
$(MODULES_DIR)/kernel/drivers/media/video/videodev.o \
|
|||
,CONFIG_VIDEO_DEV,,62,videodev)) |
|||
|
|||
|
|||
# Network devices
|
|||
|
|||
$(eval $(call KMOD_template,NET_AIRO,net-airo,\ |
|||
$(MODULES_DIR)/kernel/drivers/net/wireless/airo.o \
|
|||
,CONFIG_AIRO,,10,airo)) |
|||
|
|||
$(eval $(call KMOD_template,NET_HERMES,net-hermes,\ |
|||
$(MODULES_DIR)/kernel/drivers/net/wireless/hermes.o \
|
|||
$(MODULES_DIR)/kernel/drivers/net/wireless/orinoco.o \
|
|||
,CONFIG_HERMES,,10,hermes orinoco)) |
|||
|
|||
$(eval $(call KMOD_template,NET_HERMES_PCI,net-hermes-pci,\ |
|||
$(MODULES_DIR)/kernel/drivers/net/wireless/orinoco_pci.o \
|
|||
,CONFIG_PCI_HERMES,kmod-net-hermes,11,orinoco_pci)) |
|||
|
|||
$(eval $(call KMOD_template,NET_HERMES_PCI,net-hermes-plx,\ |
|||
$(MODULES_DIR)/kernel/drivers/net/wireless/orinoco_plx.o \
|
|||
,CONFIG_PLX_HERMES,kmod-net-hermes,11,orinoco_plx)) |
|||
|
|||
$(eval $(call KMOD_template,NET_PRISM54,net-prism54,\ |
|||
$(MODULES_DIR)/kernel/drivers/net/wireless/prism54/prism54.o \
|
|||
,CONFIG_PRISM54,,10,prism54)) |
|||
|
|||
|
|||
# PCMCIA/CardBus
|
|||
|
|||
$(eval $(call KMOD_template,PCMCIA_CORE,pcmcia-core,\ |
|||
$(MODULES_DIR)/kernel/drivers/pcmcia/pcmcia_core.o \
|
|||
$(MODULES_DIR)/kernel/drivers/pcmcia/yenta_socket.o \
|
|||
$(MODULES_DIR)/kernel/drivers/pcmcia/ds.o \
|
|||
,CONFIG_PCMCIA,,50,pcmcia_core yenta_socket ds)) |
|||
|
|||
$(eval $(call KMOD_template,PCMCIA_SERIAL,pcmcia-serial,\ |
|||
$(MODULES_DIR)/kernel/drivers/char/pcmcia/serial_cs.o \
|
|||
,CONFIG_PCMCIA_SERIAL_CS,kmod-pcmcia-core,51,serial_cs)) |
|||
|
|||
|
|||
# USB
|
|||
|
|||
$(eval $(call KMOD_template,USB,usb-core,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/usbcore.o \
|
|||
,CONFIG_USB,,50,usbcore)) |
|||
|
|||
$(eval $(call KMOD_template,USB_OHCI,usb-ohci,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/host/usb-ohci.o \
|
|||
,CONFIG_USB_OHCI,kmod-usb-core,60,usb-ohci)) |
|||
|
|||
$(eval $(call KMOD_template,USB_UHCI,usb-uhci,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/host/uhci.o \
|
|||
,CONFIG_USB_UHCI_ALT,kmod-usb-core,60,uhci)) |
|||
|
|||
$(eval $(call KMOD_template,USB2,usb2,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/host/ehci-hcd.o \
|
|||
,CONFIG_USB_EHCI_HCD,kmod-usb-core,60,ehci-hcd)) |
|||
|
|||
$(eval $(call KMOD_template,USB_ACM,usb-acm,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/acm.o \
|
|||
,CONFIG_USB_ACM)) |
|||
|
|||
$(eval $(call KMOD_template,USB_AUDIO,usb-audio,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/audio.o \
|
|||
,CONFIG_USB_AUDIO,kmod-soundcore kmod-usb-core,61,audio)) |
|||
|
|||
$(eval $(call KMOD_template,USB_PRINTER,usb-printer,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/printer.o \
|
|||
,CONFIG_USB_PRINTER,kmod-usb-core,60,printer)) |
|||
|
|||
$(eval $(call KMOD_template,USB_SERIAL,usb-serial,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/serial/usbserial.o \
|
|||
,CONFIG_USB_SERIAL,kmod-usb-core,60,usbserial)) |
|||
|
|||
$(eval $(call KMOD_template,USB_SERIAL_BELKIN,usb-serial-belkin,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/serial/belkin_sa.o \
|
|||
,CONFIG_USB_SERIAL_BELKIN,kmod-usb-serial,61,belkin_sa)) |
|||
|
|||
$(eval $(call KMOD_template,USB_SERIAL_FTDI,usb-serial-ftdi,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/serial/ftdi_sio.o \
|
|||
,CONFIG_USB_SERIAL_FTDI_SIO,kmod-usb-serial,61,ftdi_sio)) |
|||
|
|||
$(eval $(call KMOD_template,USB_SERIAL_MCT_U232,usb-serial-mct-u232,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/serial/mct_u232.o \
|
|||
,CONFIG_USB_SERIAL_MCT_U232,kmod-usb-serial,61,mct_u232)) |
|||
|
|||
$(eval $(call KMOD_template,USB_SERIAL_PL2303,usb-serial-pl2303,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/serial/pl2303.o \
|
|||
,CONFIG_USB_SERIAL_PL2303,kmod-usb-serial,61,pl2303)) |
|||
|
|||
$(eval $(call KMOD_template,USB_SERIAL_VISOR,usb-serial-visor,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/serial/visor.o \
|
|||
,CONFIG_USB_SERIAL_VISOR,kmod-usb-serial,61,visor)) |
|||
|
|||
$(eval $(call KMOD_template,USB_STORAGE,usb-storage,\ |
|||
$(MODULES_DIR)/kernel/drivers/scsi/*.o \
|
|||
$(MODULES_DIR)/kernel/drivers/usb/storage/*.o \
|
|||
,CONFIG_USB_STORAGE,kmod-usb-core,60,scsi_mod sd_mod usb-storage)) |
|||
|
|||
|
|||
# Misc. devices
|
|||
|
|||
$(eval $(call KMOD_template,AX25,ax25,\ |
|||
$(MODULES_DIR)/kernel/net/ax25/ax25.o \
|
|||
$(MODULES_DIR)/kernel/drivers/net/hamradio/mkiss.o \
|
|||
,CONFIG_AX25,,90,ax25 mkiss)) |
|||
|
|||
$(eval $(call KMOD_template,BLUETOOTH,bluetooth,\ |
|||
$(MODULES_DIR)/kernel/net/bluetooth/*.o \
|
|||
$(MODULES_DIR)/kernel/net/bluetooth/rfcomm/*.o \
|
|||
$(MODULES_DIR)/kernel/drivers/bluetooth/*.o \
|
|||
,CONFIG_BLUEZ)) |
|||
|
|||
$(eval $(call KMOD_template,SOFTDOG,softdog,\ |
|||
$(MODULES_DIR)/kernel/drivers/char/softdog.o \
|
|||
,CONFIG_SOFT_WATCHDOG,,95,softdog)) |
|||
|
|||
|
|||
|
@ -0,0 +1,233 @@ |
|||
#
|
|||
# Copyright (C) 2006 OpenWrt.org
|
|||
#
|
|||
# This is free software, licensed under the GNU General Public License v2.
|
|||
# See /LICENSE for more information.
|
|||
#
|
|||
NF_2_6:=1 |
|||
include $(INCLUDE_DIR)/netfilter.mk |
|||
|
|||
# Networking
|
|||
|
|||
$(eval $(call KMOD_template,ATM,atm,\ |
|||
$(MODULES_DIR)/kernel/net/atm/atm.ko \
|
|||
$(MODULES_DIR)/kernel/net/atm/br2684.ko \
|
|||
$(MODULES_DIR)/kernel/drivers/atm/atmtcp.ko \
|
|||
,CONFIG_ATM,,50,atm)) |
|||
|
|||
# Block devices
|
|||
|
|||
$(eval $(call KMOD_template,LOOP,loop,\ |
|||
$(MODULES_DIR)/kernel/drivers/block/loop.ko \
|
|||
,CONFIG_BLK_DEV_LOOP,,20,loop)) |
|||
|
|||
$(eval $(call KMOD_template,NBD,nbd,\ |
|||
$(MODULES_DIR)/kernel/drivers/block/nbd.ko \
|
|||
,CONFIG_BLK_DEV_NBD,,20,nbd)) |
|||
|
|||
# Filesystems
|
|||
|
|||
$(eval $(call KMOD_template,FS_CIFS,fs-cifs,\ |
|||
$(MODULES_DIR)/kernel/fs/cifs/cifs.ko \
|
|||
,CONFIG_CIFS,kmod-nls-base,30,cifs)) |
|||
|
|||
$(eval $(call KMOD_template,FS_MINIX,fs-minix,\ |
|||
$(MODULES_DIR)/kernel/fs/minix/minix.ko \
|
|||
,CONFIG_MINIX_FS,,30,minix)) |
|||
|
|||
$(eval $(call KMOD_template,FS_EXT2,fs-ext2,\ |
|||
$(MODULES_DIR)/kernel/fs/ext2/ext2.ko \
|
|||
,CONFIG_EXT2_FS,,30,ext2)) |
|||
|
|||
$(eval $(call KMOD_template,FS_EXT3,fs-ext3,\ |
|||
$(MODULES_DIR)/kernel/fs/ext3/ext3.ko \
|
|||
$(MODULES_DIR)/kernel/fs/jbd/jbd.ko \
|
|||
,CONFIG_EXT3_FS,,30,jbd ext3)) |
|||
|
|||
$(eval $(call KMOD_template,FS_HFSPLUS,fs-hfsplus,\ |
|||
$(MODULES_DIR)/kernel/fs/hfsplus/hfsplus.ko \
|
|||
,CONFIG_HFSPLUS_FS,kmod-nls-base,30,hfsplus)) |
|||
|
|||
$(eval $(call KMOD_template,FS_NFS,fs-nfs,\ |
|||
$(MODULES_DIR)/kernel/fs/lockd/lockd.ko \
|
|||
$(MODULES_DIR)/kernel/fs/nfs/nfs.ko \
|
|||
$(MODULES_DIR)/kernel/net/sunrpc/sunrpc.ko \
|
|||
,CONFIG_NFS_FS,,30,sunrpc lockd nfs)) |
|||
|
|||
$(eval $(call KMOD_template,FS_VFAT,fs-vfat,\ |
|||
$(MODULES_DIR)/kernel/fs/fat/fat.ko \
|
|||
$(MODULES_DIR)/kernel/fs/vfat/vfat.ko \
|
|||
,CONFIG_VFAT_FS,kmod-nls-base,30,fat vfat)) |
|||
|
|||
$(eval $(call KMOD_template,FS_XFS,fs-xfs,\ |
|||
$(MODULES_DIR)/kernel/fs/xfs/xfs.ko \
|
|||
,CONFIG_XFS_FS,,30,xfs)) |
|||
|
|||
|
|||
# Multimedia
|
|||
|
|||
$(eval $(call KMOD_template,PWC,pwc,\ |
|||
$(MODULES_DIR)/kernel/drivers/usb/media/pwc/pwc.ko \
|
|||
,CONFIG_USB_PWC,kmod-videodev,63,pwc)) |
|||
|
|||
$(eval $(call KMOD_template,SOUNDCORE,soundcore,\ |
|||
$(MODULES_DIR)/kernel/sound/soundcore.ko \
|
|||
,CONFIG_SOUND,,30,soundcore)) |
|||
|
|||
$(eval $(call KMOD_template,VIDEODEV,videodev,\ |
|||
$(MODULES_DIR)/kernel/drivers/media/video/v4l1-compat.ko \
|
|||
$(MODULES_DIR)/kernel/drivers/media/video/v4l2-common.ko \
|
|||
$(MODULES_DIR)/kernel/drivers/media/video/videodev.ko \
|
|||
,CONFIG_VIDEO_DEV,,62,videodev)) |
|||
|
|||
|
|||
# NLS
|
|||
|
|||
$(eval $(call KMOD_template,NLS_BASE,nls-base,\ |
|||
$(MODULES_DIR)/kernel/fs/nls/nls_base.ko \
|
|||
,CONFIG_NLS,,20,nls_base)) |
|||
|
|||
$(eval $(call KMOD_template,NLS_CP437,nls-cp437,\ |
|||
$(MODULES_DIR)/kernel/fs/nls/nls_cp437.ko \
|
|||
,CONFIG_NLS_CODEPAGE_437,,20,nls_cp437)) |
|||
|
|||
$(eval $(call KMOD_template,NLS_CP850,nls-cp850,\ |
|||
|