Added rule SetVersionScript to set the version script for a target and adjusted

the Link and KernelLd rules to support it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30825 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2009-05-22 14:51:16 +00:00
parent 79182ad1e5
commit 297827477b
3 changed files with 25 additions and 7 deletions
+4 -3
View File
@@ -56,7 +56,7 @@ rule KernelLd
LocalDepends all : $(1) ; LocalDepends all : $(1) ;
Depends $(1) : $(2) ; Depends $(1) : $(2) ;
MakeLocateDebug $(1) ; MakeLocateDebug $(1) ;
on $(1) XRes $(1) : $(RESFILES) ; on $(1) XRes $(1) : $(RESFILES) ;
if ! [ on $(1) return $(DONT_USE_BEOS_RULES) ] { if ! [ on $(1) return $(DONT_USE_BEOS_RULES) ] {
@@ -66,9 +66,10 @@ rule KernelLd
} }
} }
actions KernelLd actions KernelLd bind VERSION_SCRIPT
{ {
$(LINK) $(LINKFLAGS) -o "$(1)" "$(2)" $(LINKLIBS) ; $(LINK) $(LINKFLAGS) -o "$(1)" "$(2)" $(LINKLIBS) \
--version-script=$(VERSION_SCRIPT)
} }
rule KernelAddon rule KernelAddon
+15
View File
@@ -536,6 +536,21 @@ rule AddResources
} }
} }
rule SetVersionScript target : versionScript
{
# SetVersionScript <target> : <versionScript>
#
# Sets the version script for <target>. Grist will be added to
# <versionScript> and SEARCH will be set on it.
versionScript = [ FGristFiles $(versionScript) ] ;
SEARCH on $(versionScript) += $(SEARCH_SOURCE) ;
VERSION_SCRIPT on $(target) = $(versionScript) ;
Depends $(target) : $(versionScript) ;
}
rule BuildPlatformObjects rule BuildPlatformObjects
{ {
# Usage BuildPlatformObjects <sources> ; # Usage BuildPlatformObjects <sources> ;
+6 -4
View File
@@ -52,17 +52,19 @@ rule Link
# uses separate files, we need to remove the target explicitely first, so that # uses separate files, we need to remove the target explicitely first, so that
# the attributes won't be "leaked". # the attributes won't be "leaked".
if $(HOST_PLATFORM_BEOS_COMPATIBLE) || $(HAIKU_HOST_USE_XATTR) = 1 { if $(HOST_PLATFORM_BEOS_COMPATIBLE) || $(HAIKU_HOST_USE_XATTR) = 1 {
actions Link bind NEEDLIBS LINK_BEGIN_GLUE LINK_END_GLUE actions Link bind NEEDLIBS LINK_BEGIN_GLUE LINK_END_GLUE VERSION_SCRIPT
{ {
$(LINK) $(LINKFLAGS) -o "$(1)" $(UNDEFS) "$(LINK_BEGIN_GLUE)" "$(2)" \ $(LINK) $(LINKFLAGS) -o "$(1)" $(UNDEFS) "$(LINK_BEGIN_GLUE)" "$(2)" \
"$(NEEDLIBS)" $(LINKLIBS) "$(LINK_END_GLUE)" ; "$(NEEDLIBS)" $(LINKLIBS) "$(LINK_END_GLUE)" \
-Wl,--version-script,$(VERSION_SCRIPT)
} }
} else { } else {
actions Link bind NEEDLIBS LINK_BEGIN_GLUE LINK_END_GLUE actions Link bind NEEDLIBS LINK_BEGIN_GLUE LINK_END_GLUE VERSION_SCRIPT
{ {
$(RM) "$(1)" $(RM) "$(1)"
$(LINK) $(LINKFLAGS) -o "$(1)" $(UNDEFS) "$(LINK_BEGIN_GLUE)" "$(2)" \ $(LINK) $(LINKFLAGS) -o "$(1)" $(UNDEFS) "$(LINK_BEGIN_GLUE)" "$(2)" \
"$(NEEDLIBS)" $(LINKLIBS) "$(LINK_END_GLUE)" ; "$(NEEDLIBS)" $(LINKLIBS) "$(LINK_END_GLUE)" \
-Wl,--version-script,$(VERSION_SCRIPT)
} }
} }