* ResComp can now deal with multiple input files at once.

* Added ResAttr rule, which converts resource (or rdef) files to a
  file with attributes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21708 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2007-07-26 23:08:05 +00:00
parent 21bf59c6cd
commit 3ddb7b1df4
+39 -3
View File
@@ -216,10 +216,46 @@ rule ResComp
ResComp1 $(1) : <build>rc $(2) ;
}
# Note: We pipe the file into the preprocessor, since *.rdef files are
# considered linker scripts.
# Note: We pipe the input files into the preprocessor, since *.rdef files are
# considered linker scripts, and thus we can use preprocessor features.
actions ResComp1
{
$(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR)
cat $(2[2]) | $(CC) -E $(CCDEFS) $(HDRS) - | egrep -v '^#' | $(2[1]) $(RCHDRS) --auto-names -o $(1) -
cat $(2[2-]) | $(CC) -E $(CCDEFS) $(HDRS) - | egrep -v '^#' | $(2[1]) $(RCHDRS) --auto-names -o $(1) -
}
rule ResAttr attributeFile : _resourceFiles
{
# ResAttr <attribute file> : <resource files> ;
#
# <attribute file> and <resource files> must be gristed.
# <resource files> can also be .rdef files -- they will be compiled first in
# this case.
local resourceFiles ;
local resourceFile ;
for resourceFile in $(_resourceFiles) {
# if the specified resource file is an .rdef file, we compile it first
if $(resourceFile:S) = ".rdef" {
local rdefFile = $(resourceFile) ;
resourceFile = $(rdefFile:S=.rsrc) ;
ResComp $(resourceFile) : $(rdefFile) ;
} else {
SEARCH on $(resourceFile) += $(SEARCH_SOURCE) ;
}
resourceFiles += $(resourceFile) ;
}
MakeLocateArch $(attributeFile) ;
Depends $(attributeFile) : $(resourceFiles) <build>resattr ;
LocalClean clean : $(attributeFile) ;
ResAttr1 $(attributeFile) : <build>resattr $(resourceFiles) ;
}
actions ResAttr1
{
$(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR)
rm -f $(1)
$(2[1]) -o $(1) $(2[2-])
}