Many people who work on boot-floppies have commented on the (unneeded)
complexity of the makefiles. I'd be willing to spend some time trying to
clean up the build system a bit. Is this a good time to do this? I'm
sure it'll take some time to iron out all the corner cases for a change
like this, but hopefully this will make things a lot more maintainable.

As an example of what I hope to achieve, see the attached sample
top-level makefile that I hope we'll end up with (work-in-progress, does
not work yet..)

comments? volunteers to help?

randolph
-- 
Debian Developer <[EMAIL PROTECTED]>
http://www.TauSq.org/
# This is the top-level makefile. Try to keep this clean; we split things
# into smaller chunks so that it is managable. Generic rules should be used
# if possible, but try to make things basic so that people understand what
# is going on and don't jump through too many hoops to get what they want.
#
# main configuration
include config
# any other local definitions (optional)
-include Makefile.defs  
# architecture-independent settings/make rules
include build/Makefile.common
# Internationalization settings
include build/Makefile.i18n
# architecture-specific settings/make rules
include build/Makefile.$(architecture)
# documentation make rules
include build/Makefile.docs
# generic make rules
include build/Makefile.rules

# This file should only contain "major" build targets (subjective, of course)
all::   build

null:
        : Null target for testing Makefile with "make -p null"

# check target - makes sure all prereqs are met
check:  localfiles check_mirror check_loop check_kernel check_depends check_tools 
$(CHECKFS)
        @echo "check successful"

utils:
        $(MAKE) -C utilities KVER=$(kver) KERNEL_VERSION_CODE=$(KERNEL_VERSION_CODE)

$(base_archive): basedisks.sh
        $(ROOTCMD) ./basedisks.sh $(archive) $(debianversion)

build:: localfiles 
        $(MAKE) utils
        $(MAKE) build_arch
        $(MAKE) $(base_archive)

release: build docs
        $(MAKE) release_arch    

clean:  umount distclean

distclean:
        $(MAKE) -C utilities distclean
        $(MAKE) -C scripts/rootdisk/messages clean
        $(MAKE) -C documentation distclean
        $(MAKE) -C powerpc-specials clean
        rm -f *.bin *.tgz sys_map*.gz config*.gz linux* modcont* core   \
                base-contents.txt $(SFONT)                      \
                root*.tar.gz silo1440k* tftpboot*.img *.tmp *.o
        rm -f `find -name \*~` disks-$(architecture)
        rm -f `find -name '.#*'`
        rm -rf release updates check_basedeps ${tmpdir}/boot-floppies

# [ED] avoid direct compilation of C programs from the utilities subdir
# (see the root.bin dependencies).
.SUFFIXES:
.PHONY: release umount clean distclean

Reply via email to