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

Re: [tyndur-devel] build: ein Makefile.local reicht



> Das Problem hier (ist mir gestern leider nicht aufgefallen) ist, dass
> $LOST_BUILDMK_ROOT zur Laufzeit von buildmk.sh ausgewertet wird. Und
> damit haben wir wieder automatisch generierte lokale Änderungen in
> Makefile, was ja durch die Einführung von Makefile.local gerade
> verhindert werden sollte.
> 
> Eventuell können wir mit relativen Pfaden was machen?
och, ein weiteres if tuts auch, siehe Anhang
From 63f5319bf82bae5ebf6452d1ff71cb7d87c079d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Pf=C3=A4hler?= <bluecoder@xxxxxx>
Date: Sat, 8 Jan 2011 13:12:51 +0100
Subject: [PATCH] =?UTF-8?q?!=20nur=20eine=20Makefile.local=20erzeugen
=20Signed-off-by:=20J=C3=B6rg=20Pf=C3=A4hler=20<bluecoder@xxxxxx>?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 buildmk.sh |   31 ++++++++++++++++++++-----------
 1 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/buildmk.sh b/buildmk.sh
index 800ac2a..fc030ce 100644
--- a/buildmk.sh
+++ b/buildmk.sh
@@ -82,20 +82,29 @@ if [ -f Makefile.conf ]; then
     source Makefile.conf
 fi
 
-cat <<EOF > Makefile.local
+if [ "$LOST_BUILDMK_ROOT" == "`pwd`" ]; then
+  cat <<EOF > Makefile.local
 BUILD_ROOT=$LOST_BUILDMK_ROOT/build/output
 PPC_BINARY=$LOST_TOOLS_PPC
 EOF
 
-# Ist grub legacy installiert?
-if [ -f $GRUB_STAGEDIR/stage1 ]; then
-  echo GRUB_VERSION=grub1 >> Makefile.local
+  # Ist grub legacy installiert?
+  if [ -f $GRUB_STAGEDIR/stage1 ]; then
+    echo GRUB_VERSION=grub1 >> Makefile.local
+  else
+    echo GRUB_VERSION=grub2 >> Makefile.local
+  fi
+fi
+
+# Nur die Unterverzeichnisse nutzen den absoluten Pfad zu Makefile.local, um
+# Änderungen am Makefile im Wurzelverzeichnis zu verhindern
+if [ "$LOST_BUILDMK_ROOT" == "`pwd`" ]; then
+  echo "-include Makefile.local" > Makefile
 else
-  echo GRUB_VERSION=grub2 >> Makefile.local
+  echo "-include $LOST_BUILDMK_ROOT/Makefile.local" > Makefile
 fi
 
-cat <<EOF > Makefile
--include Makefile.local
+cat <<EOF >> Makefile
 
 CC=$LOST_TOOLS_GCC $CC_FLAGS $INCLUDES $CC_FLAGS_APPEND
 CPP=$LOST_TOOLS_GPP $INCLUDES
@@ -136,13 +145,13 @@ makefiles:
 
 EOF
 
-# Wenn eine .nobuildfiles mit eintraegen fuer alle Dateien die nicht gebaut
+# Wenn eine .nobuildfiles mit eintraegen für alle Dateien die nicht gebaut
 # werden sollen exisitiert, wird diese eingelesen
 NOBUILDFILES=
 if [ -f .nobuildfiles ]; then NOBUILDFILES="`cat .nobuildfiles`"; fi
 
 # Dateien zusammensuchen,die im aktuellen Verzeichnis
-# kompiliert werden m�+# kompiliert werden müssen
 FILES=
 for file in *.c *.cpp *.asm *.pas *.S; do
   if [ "`echo \"$NOBUILDFILES\" | grep -e ^$file\$`" ]; then continue; fi
@@ -234,7 +243,7 @@ for file in *.c *.cpp *.asm *.pas *.S; do
   fi
 done
 
-# Code f�ilds
+# Code für lbuilds
 cat <<EOF >> Makefile
 
 .PHONY: lbuilds-env
@@ -252,7 +261,7 @@ disable-pascal:
 	rm -f src/modules/pas/.ignorenobuild
 EOF
 
-# Code f�e clean
+# Code für make clean
 cat <<EOF >> Makefile
 
 clean_objs:
-- 
1.7.1