diff --git a/Jamrules b/Jamrules index a57c3ebcb7..f472cdba21 100644 --- a/Jamrules +++ b/Jamrules @@ -591,7 +591,7 @@ rule Translator MakeLocate $(1) : $(targetdir) ; } - rule MakeLocateObjects +rule MakeLocateObjects { # MakeLocateObjects ; @@ -619,6 +619,30 @@ rule StaticLibrary MakeLocate lib$(<).a : $(OBOS_STLIB_DIR) ; } +rule MergeObjectFromObjects +{ + # MergeObjectFromObjects : ; + MakeLocate $(1) : $(LOCATE_TARGET) ; + MakeLocateObjects $(2) ; + Depends $(<) : $(>) ; + LINK on $(1) = ld ; +} + +actions MergeObjectFromObjects +{ + $(LINK) -r $(2) -o $(1) ; +} + +rule MergeObject +{ + # MergeObject : ; + SetupIncludes ; + SetupObjectsDir ; + MakeLocateObjects $(2) ; + Objects $(2) ; + MergeObjectFromObjects $(1) : $(2:S=$(SUFOBJ)) ; +} + rule SharedLibraryFromObjects { # SharedLibraryFromObjects : ; @@ -1115,7 +1139,7 @@ rule KernelObjects rule KernelLd { - # KernelLd : : : : ; + # KernelLd : : : : : ; SetupKernel $(2) ; LINK on $(1) = ld ; @@ -1150,6 +1174,17 @@ actions KernelLd $(LINK) $(LINKFLAGS) -o "$(1)" "$(2)" $(LINKLIBS) ; } +rule KernelMergeObject +{ + # KernelMergeObject : : ; + + SetupKernel $(2) : $(3) ; + + MakeLocateObjects $(2) ; + Objects $(2) ; + MergeObjectFromObjects $(1) : $(2:S=$(SUFOBJ)) ; +} + rule KernelStaticLibrary { # Usage KernelStaticLibrary : : ;