[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[boot-floppies] overhauling makefiles?



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 <tausq@debian.org>
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 to: