Hi, we like to make some major changes to the buildsystem, therefore we now using separate branches for every logical change. Trunk is declared as known to work at the moment and I use it for some projects right now.
I started with a major change in target/linux in
branches/wbx-target-cleanup.
I suggest following new directory structure:
tools/ - Host tools
jffs2
squashfs
genext2fs
mkimage
toolchain/ - Toolchain stuff
kernel-headers
binutils
gcc
uClibc
gdb
target/ - Firmware and Kernel stuff
linux/
Makefile
Config.in
control
generic-2.4
patches
files
generic-2.6
patches
files
brcm-2.4
Makefile
Config.in
patches
files
linksys_wrt54gs_v10/
config
patches
files
netgear_wgt634u/
config
patches
files
image/
nfs
usb
jffs2
mkimage
squashfs
bootloader/
u-boot
lzma-loader
extras/ - Extra stuff
sdk
imagebuilder
scripts/ - Helper scripts
mk/ - Makefiles from buildsystem
bin/ - Firmware and Packages directory
dl/ - Download cache directory
============================================================
This allows us to have model specific startup scripts, kernel
configuration and kernel patches. I know it has some overhead to
keep many kernel configs for similar devices in sync, but it gains
better stability, if we change some kernel stuff.
I like to add one example, the flash map driver for brcm-2.4. At the
moment the driver tries to support Linksys WAP54G models with 2 MB
flash and 128Kb bootloader, Linksys WRT54GSv10 with 8 MB flash and
256kb, Linksys WRT54Gv2.2 with 4 MB flash and 256kb bootloader and
Netgear WGT634u with 8 MB flash and 386kb bootloader. It supports
squashfs and jffs2 versions of the firmware.
If you change the flash map driver, you would need to test at least
8 combinations on 4 different devices. That is unmaintainable.
And we do not need to change the driver very often.
I think the new structure have a lot of advantages.
There is a hierarchy of kernel patches, generic-2.x for Linux
2.4 or 2.6 specific patches, which are useful for all boards and
architectures. Then we have board specific patches, which contain
the board secific patches. The last step are model specific patches.
Same is possible for startup scripts and any files in general.
What do you think about this? Comments are welcome.
Sunshine!
Waldemar
--
don't open your wrt, free it
http://www.freewrt.org
pgpYfmlC2CUEP.pgp
Description: PGP signature
_______________________________________________ freewrt-developers mailing list [email protected] https://www.freewrt.org/lists/listinfo/freewrt-developers
