r1861

dslinux_amadeus at dslinux.in-berlin.de dslinux_amadeus at dslinux.in-berlin.de
Sun Aug 26 13:49:31 CEST 2007


Author: amadeus
Date: 2007-08-26 13:49:26 +0200 (Sun, 26 Aug 2007)
New Revision: 1861

Log:
Improve Makefile

Modified: trunk/Makefile
===================================================================
--- trunk/Makefile	2007-08-25 09:57:52 UTC (rev 1860)
+++ trunk/Makefile	2007-08-26 11:49:26 UTC (rev 1861)
@@ -14,6 +14,7 @@
 # Lets work out what the user wants, and if they have configured us yet
 #
 
+.PHONY: all
 ifeq (.config,$(wildcard .config))
 include .config
 
@@ -22,6 +23,7 @@
 all: no_root config_error
 endif
 
+.PHONY: no_root 
 no_root:
 	@if [ "`whoami`" = "root" ] && [ -z "$${FAKEROOTKEY}" ]; then \
 		echo "Building DSLinux as root is dangerous!"; \
@@ -84,7 +86,7 @@
 export BUILD_START_STRING BUILD_START_UNIX
 
 .PHONY: ucfront
-ucfront: tools/ucfront/*.c
+ucfront: no_root tools/ucfront/*.c
 	$(MAKE) -C tools/ucfront
 	ln -sf $(ROOTDIR)/tools/ucfront/ucfront tools/ucfront-gcc
 	ln -sf $(ROOTDIR)/tools/ucfront/ucfront tools/ucfront-g++
@@ -200,7 +202,7 @@
 	fi
 
 .PHONY: modules_install
-modules_install:
+modules_install: modules
 	. $(LINUXDIR)/.config; if [ "$$CONFIG_MODULES" = "y" ]; then \
 		[ -d $(ROMFSDIR)/lib/modules ] || mkdir -p $(ROMFSDIR)/lib/modules; \
 		$(MAKEARCH_KERNEL) -C $(LINUXDIR) INSTALL_MOD_PATH=$(ROMFSDIR) DEPMOD="../user/busybox/examples/depmod.pl -k vmlinux" modules_install; \
@@ -208,32 +210,46 @@
 		find $(ROMFSDIR)/lib/modules -type f -name "*o" | xargs -r $(STRIP) -R .comment -R .note -g; \
 	fi
 
+.PHONY: linux_xconfig
 linux_xconfig:
 	$(MAKEARCH_KERNEL) -C $(LINUXDIR) xconfig
+.PHONY: linux_menuconfig
 linux_menuconfig:
 	$(MAKEARCH_KERNEL) -C $(LINUXDIR) menuconfig
+.PHONY: linux_config
 linux_config:
 	$(MAKEARCH_KERNEL) -C $(LINUXDIR) config
+.PHONY: modules_xconfig
 modules_xconfig:
 	[ ! -d modules ] || $(MAKEARCH) -C modules xconfig
+.PHONY: modules_menuconfig
 modules_menuconfig:
 	[ ! -d modules ] || $(MAKEARCH) -C modules menuconfig
+.PHONY: modules_config
 modules_config:
 	[ ! -d modules ] || $(MAKEARCH) -C modules config
+.PHONY: modules_clean
 modules_clean:
 	-[ ! -d modules ] || $(MAKEARCH) -C modules clean
+.PHONY: config_xconfig
 config_xconfig:
 	$(MAKEARCH) -C config xconfig
+.PHONY: config_menuconfig
 config_menuconfig:
 	$(MAKEARCH) -C config menuconfig
+.PHONY: config_config
 config_config:
 	$(MAKEARCH) -C config config
+.PHONY: oldconfig_config
 oldconfig_config:
 	$(MAKEARCH) -C config oldconfig
+.PHONY: oldconfig_modules
 oldconfig_modules:
 	[ ! -d modules ] || $(MAKEARCH) -C modules oldconfig
+.PHONY: oldconfig_linux
 oldconfig_linux:
 	$(MAKEARCH_KERNEL) -C $(LINUXDIR) oldconfig
+.PHONY: oldconfig_uClibc
 oldconfig_uClibc:
 	[ -z "$(findstring uClibc,$(LIBCDIR))" ] || $(MAKEARCH) -C $(LIBCDIR) oldconfig
 
@@ -243,12 +259,12 @@
 #
 
 .PHONY: romfs
-romfs: no_root
+romfs: no_root no_root ucfront linux subdirs 
 	for dir in vendors $(DIRS) ; do [ ! -d $$dir ] || $(MAKEARCH) -C $$dir romfs || exit 1 ; done
 	-find $(ROMFSDIR)/. -name CVS | xargs -r rm -rf
 
 .PHONY: image
-image: no_root
+image: no_root romfs modules modules_install
 	[ -d $(IMAGEDIR) ] || mkdir $(IMAGEDIR)
 	$(MAKEARCH) -C vendors image
 
@@ -262,6 +278,7 @@
 release:
 	$(MAKE) -C release release
 
+.PHONY: %_fullrelease
 %_fullrelease:
 	@echo "This target no longer works"
 	@echo "Do a make -C release $@"
@@ -272,6 +289,7 @@
 # vendor_flash target in the vendors directory
 #
 
+.PHONY: vendor_% 
 vendor_%:
 	$(MAKEARCH) -C vendors $@
 
@@ -287,11 +305,12 @@
 	fi
 
 .PHONY: subdirs
-subdirs: linux
+subdirs: ucfront linux
 	@echo "Build start unix"
 	@echo $(BUILD_START_UNIX)
 	for dir in $(DIRS) ; do [ ! -d $$dir ] || $(MAKEARCH_KERNEL) -C $$dir || exit 1 ; done
 
+.PHONY: dep
 dep:
 	@if [ ! -f $(LINUXDIR)/.config ] ; then \
 		echo "ERROR: you need to do a 'make config' first" ; \
@@ -304,6 +323,7 @@
 relink:
 	find user prop vendors -type f -name '*.gdb' | sed 's/^\(.*\)\.gdb/\1 \1.gdb/' | xargs rm -f
 
+.PHONY: clean 
 clean: modules_clean
 	for dir in $(LINUXDIR) $(DIRS); do [ ! -d $$dir ] || $(MAKEARCH) -C $$dir clean ; done
 	rm -rf $(ROMFSDIR)/*
@@ -312,6 +332,8 @@
 	rm -f $(LINUXDIR)/linux
 	rm -rf $(LINUXDIR)/net/ipsec/alg/libaes $(LINUXDIR)/net/ipsec/alg/perlasm
 
+.PHONY: real_clean
+.PHONY: mrproper
 real_clean mrproper: clean
 	-$(MAKEARCH_KERNEL) -C $(LINUXDIR) mrproper
 	-$(MAKEARCH) -C config clean
@@ -321,16 +343,20 @@
 	rm -f modules/config.tk
 	rm -rf .config .config.old .oldconfig autoconf.h
 
+.PHONY: distclean
 distclean: mrproper
 	-$(MAKEARCH_KERNEL) -C $(LINUXDIR) distclean
 	-rm -f user/tinylogin/applet_source_list user/tinylogin/config.h
 
+.PHONY: %_only
 %_only:
 	[ ! -d "$(@:_only=)" ] || $(MAKEARCH) -C $(@:_only=)
 
+.PHONY: %_clean
 %_clean:
 	[ ! -d "$(@:_clean=)" ] || $(MAKEARCH) -C $(@:_clean=) clean
 
+.PHONY: %_default
 %_default:
 	@if [ ! -f "vendors/$(@:_default=)/config.device" ]; then \
 		echo "vendors/$(@:_default=)/config.device must exist first"; \
@@ -344,6 +370,7 @@
 	$(MAKE) dep
 	$(MAKE)
 
+.PHONY: config_error
 config_error:
 	@echo "*************************************************"
 	@echo "You have not run make config."
@@ -354,9 +381,11 @@
 	@echo "*************************************************"
 	@exit 1
 
+.PHONY: prune
 prune:
 	$(MAKE) -C user prune
 
+.PHONY: dist-prep
 dist-prep:
 	-find $(ROOTDIR) -name 'Makefile*.bin' | while read t; do \
 		$(MAKEARCH) -C `dirname $$t` -f `basename $$t` $@; \
@@ -364,5 +393,6 @@
 
 ############################################################################
 
+.PHONY: xsh
 xsh:
 	@$(MAKE) -f Makefile.$@




More information about the dslinux-commit mailing list