* Wrapped filenames in all actions in "".

* Added Chmod1 to wrap the filename in "".
* Added rule RelSymLink that makes it easier to create a relative symlink
  between two targets.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@143 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2002-07-12 18:46:53 +00:00
parent 5667d23a37
commit 0931b8f939
+52 -21
View File
@@ -113,12 +113,12 @@ rule UserObject
# Override the default to give "prettier" command lines. # Override the default to give "prettier" command lines.
actions Cc actions Cc
{ {
$(CC) -c $(2) $(CCFLAGS) $(CCDEFS) $(CCHDRS) -o $(1) ; $(CC) -c "$(2)" $(CCFLAGS) $(CCDEFS) $(CCHDRS) -o "$(1)" ;
} }
actions C++ actions C++
{ {
$(C++) -c $(2) $(C++FLAGS) $(CCDEFS) $(CCHDRS) -o $(1) ; $(C++) -c "$(2)" $(C++FLAGS) $(CCDEFS) $(CCHDRS) -o "$(1)" ;
} }
@@ -579,11 +579,35 @@ rule SymLink
# <source> is the exact link contents. No binding is done. # <source> is the exact link contents. No binding is done.
LINKCONTENTS on $(1) = $(2) ; LINKCONTENTS on $(1) = $(2) ;
SymLink1 $(1) ; SymLink1 $(1) ;
DEPENDS all : $(target) ;
} }
actions SymLink1 actions SymLink1
{ {
$(RM) $(1) && $(LN) -s $(LINKCONTENTS) $(1) $(RM) "$(1)" && $(LN) -s "$(LINKCONTENTS)" "$(1)"
}
rule RelSymLink
{
# RelSymLink <link> : <link target>
# Creates a relative symbolic link from <link> to <link target>.
# <link> and <link target> can be usual targets. They may have a grist
# and don't need to have any dirname. Their LOCATE variables are used to
# find their locations.
local target = $(1) ;
local source = $(2) ;
local targetDir = [ on $(target) FDirName $(LOCATE[1]) $(target:D) ] ;
local sourceDir = [ on $(source) FDirName $(LOCATE[1]) $(source:D) ] ;
local sourcePath = $(source:G=) ;
sourcePath = $(sourcePath:D=$(sourceDir)) ;
local targetDirComponents = [ SplitPath $(targetDir) ] ;
local sourceComponents = [ SplitPath $(sourcePath) ] ;
SymLink $(target)
: [ FRelPath $(targetDirComponents) : $(sourceComponents) ] ;
NOUPDATE $(target);
DEPENDS $(target) : $(source) ;
} }
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
@@ -616,7 +640,7 @@ rule Link
actions Link bind NEEDLIBS actions Link bind NEEDLIBS
{ {
$(LINK) $(LINKFLAGS) -o "$(1)" $(UNDEFS) $(2) $(NEEDLIBS) $(LINKLIBS) ; $(LINK) $(LINKFLAGS) -o "$(1)" $(UNDEFS) "$(2)" $(NEEDLIBS) $(LINKLIBS) ;
} }
# BeOS specific rules # BeOS specific rules
@@ -654,7 +678,7 @@ if $(OS) = BEOS
actions XRes1 actions XRes1
{ {
xres -o "$(1)" $(2) ; xres -o "$(1)" "$(2)" ;
} }
actions SetVersion actions SetVersion
@@ -683,9 +707,16 @@ rule assemble
actions assemble actions assemble
{ {
$(CC) -c $(2) -O2 $(KERNEL_CCFLAGS) -o $(1) ; $(CC) -c "$(2)" -O2 $(KERNEL_CCFLAGS) -o "$(1)" ;
} }
# Overridden to allow spaces in file names.
actions Chmod1
{
$(CHMOD) "$(MODE)" "$(1)"
}
## Kernel stuff! ## Kernel stuff!
rule SetupKernel rule SetupKernel
@@ -748,7 +779,7 @@ rule KernelLd
actions KernelLd actions KernelLd
{ {
$(LINK) $(LINKFLAGS) -o $(1) $(2) $(LINKLIBS) ; $(LINK) $(LINKFLAGS) -o "$(1)" "$(2)" "$(LINKLIBS)" ;
} }
rule KernelStaticLibrary rule KernelStaticLibrary
@@ -781,7 +812,7 @@ rule KernelStaticLibraryObjects
actions KernelStaticLibraryObjects actions KernelStaticLibraryObjects
{ {
ar -r $(1) $(2) ; ar -r "$(1)" "$(2)" ;
} }
rule SystemMain rule SystemMain
@@ -823,29 +854,29 @@ rule WriteKernelConfig
actions WriteKernelConfig actions WriteKernelConfig
{ {
target=$(1) target="$(1)"
echo "# OpenBeOS Kernel Config File" > $target echo "# OpenBeOS Kernel Config File" > "$target"
echo "# Automatically generated - do not edit!" >> $target echo "# Automatically generated - do not edit!" >> "$target"
issection="0" issection="0"
section= section=
for i in "$(SECTIONS)" ; do for i in "$(SECTIONS)" ; do
if [ $issection == 1 ]; then if [ $issection == 1 ]; then
section=$i section="$i"
issection=2 issection=2
echo "["$section"]" >> $target echo "["$section"]" >> "$target"
elif [ $issection == 2 ]; then elif [ $issection == 2 ]; then
type=$i type=$i
issection=3 issection=3
echo "type="$type >> $target echo "type="$type >> "$target"
else else
if [ $i == ":" ]; then if [ "$i" == ":" ]; then
issection=1 issection=1
echo "" >> $target echo "" >> "$target"
else else
file=$i file="$i"
case $file in case "$file" in
/*) ;; /*) ;;
*) file=`pwd`/$file;; *) file=`pwd`/"$file";;
esac esac
echo "file="$file >> $target echo "file="$file >> $target
fi fi
@@ -866,7 +897,7 @@ rule BuildKernel
actions BuildKernel actions BuildKernel
{ {
$(BUILD_CMD) --strip-debug --strip-binary strip $(2) -o $(1) ; "$(BUILD_CMD)" --strip-debug --strip-binary strip "$(2)" -o "$(1)" ;
echo "" echo ""
echo "Kernel linked!" echo "Kernel linked!"
echo "" echo ""
@@ -890,7 +921,7 @@ rule KernelFloppyImage
# going on, at least in this early stage of development. # going on, at least in this early stage of development.
actions KernelFloppyImage actions KernelFloppyImage
{ {
$(BUILD_CMD) $(BOOT_BLOCK) $(2) $(1) ; "$(BUILD_CMD)" "$(BOOT_BLOCK)" "$(2)" "$(1)" ;
echo "" echo ""
echo "*************************************************" echo "*************************************************"
echo "* Kernel build completed! *" echo "* Kernel build completed! *"