clean up Makefile and add some new-user help to the Makefile (and scons)
g0dil [Fri, 13 Aug 2010 12:31:06 +0000 (12:31 +0000)]
git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@1684 270642c3-0616-0410-b53a-bc976706d245

Makefile
SConstruct

index d838e92..8aa0222 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,74 +1,42 @@
 #----------------------------------------------------------------------
 # Some SCONS shortcuts
 #----------------------------------------------------------------------
-CONCURRENCY_LEVEL ?= $(shell grep process /proc/cpuinfo | wc -l)
 
-ifdef nice
-  SCONS_ARGS += CXX='nice -n $(nice) g++'
-endif
-ifdef final
-  SCONS_ARGS += "final="$(final)
-endif
-ifdef debug
-  SCONS_ARGS += "debug="$(debug)
-endif
-
-SCONS=./tools/scons -j $(CONCURRENCY_LEVEL) $(SCONS_ARGS)
+SCONS=./tools/scons
 
 # DON'T call this default ... default is a valid scons target ;-)
 build: default
+.PHONY: build
 
-TARGETS := prepare default examples all_tests all_docs all install_all \
-       deb debsrc debbin linklint fixlinks valgrind lcov
-ALLTARGETS := $(TARGETS) package build
-
-$(TARGETS):
-       $(SCONS) $@
-
-clean:
+clean: message
        $(SCONS) --clean all
+.PHONY: clean
 
-package: deb
-test_coverage: lcov
-
-#----------------------------------------------------------------------
-# subdirectory build targets
-#----------------------------------------------------------------------
+Makefile:
+       @true
 
-%/test %/doc:
+# Forward everything else to scons
+%: message
        $(SCONS) $@
 
-%/build:
-       $(SCONS) $*
-
-#----------------------------------------------------------------------
-# remote compile targets
-#----------------------------------------------------------------------
-
-CWD = $(shell pwd)
-$(ALLTARGETS:%=%@%):
-       ssh $* "cd $(CWD) && $(MAKE) SCONS_ARGS=\"$(SCONS_ARGS)\" $(firstword $(subst @, ,$@))"
-
-#----------------------------------------------------------------------
-# Subversion stuff
-#----------------------------------------------------------------------
-
-svn_version:
-       @v=`svnversion`; if [ $$v=="exported" ]; then gitsvnversion else echo $v; fi
-
-version: svn_version
-
-#----------------------------------------------------------------------
-# Building SENF requires some debian packages
-#----------------------------------------------------------------------
-DEB_BASE   = build-essential
-
-# This line parses the 'Build-Depends' entry from debian/control
-DEB_SENF   = $(shell perl -alnF'[:,]' -e '                                                     \
-                       BEGIN{$$,=" "} END{splice @R,0,1; print @R}                             \
-                       map {s/\(.*\)|\|.*//; s/[ \n\t]//g} @F;                                 \
-                       push @R,grep {/./} @F if (/^Build-Depends:/i.../^\S/)!~/(^|E0)$$/;'     \
-                               debian/control)
+message:
+       @echo "================================================================="
+       @echo "SENF uses SCons as it's build system, so instead of calling"
+       @echo "    $$ make <target>"
+       @echo
+       @echo "use"
+       @echo "    $$ ./tools/scons <target>"
+       @echo
+       @echo "To get help on valid targets an configuration variables, call"
+       @echo "    $$ ./tools/scons -h"
+       @echo
+       @echo "To get help on scons command line options, call"
+       @echo "    $$ ./tools/scons -H"
+       @echo
+       @echo "(interesting options: -c, -U, -j <num-cpus>, --config=force)"
+       @echo "================================================================="
+       sleep 5
 
 prerequisites:
-       aptitude install $(DEB_BASE) $(DEB_SENF)
+       ./debian/install-depends.sh
+.PHONY: prerequisites
index 873892b..da124b8 100644 (file)
@@ -275,3 +275,10 @@ for target in COMMAND_LINE_TARGETS:
             args.append('-u')
         env.PhonyTarget(target, [], [ "ssh $HOST scons $SCONSARGS -C $DIR $RTARGET" ],
                         HOST=host, RTARGET=realtarget, DIR=cwd, SCONSARGS=args)
+
+env.PhonyTarget('clean', [], [
+        lambda **args: sys.stderr.write(
+            "=================================================================\n"
+            "'clean' is not a valid target. Instead, use\n"
+            "    $ scons -c all\n"
+            "=================================================================\n") ])