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