X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/43866e378188c25dd1e2208016ab3cbeb086ae6c..55e303ae13a4cf49d70f2294092726f2fffb9ef2:/config/Makefile diff --git a/config/Makefile b/config/Makefile index 5e4c73ade..36d0759dd 100644 --- a/config/Makefile +++ b/config/Makefile @@ -25,22 +25,73 @@ COMP_SUBDIRS = INST_SUBDIRS = + INSTALL_DATA_LIST= \ - System.kext/Contents/Info.plist \ - System.kext/Contents/PlugIns/AppleNMI.kext/Contents/Info.plist \ - System.kext/Contents/PlugIns/ApplePlatformFamily.kext/Contents/Info.plist \ - System.kext/Contents/PlugIns/BSDKernel.kext/Contents/Info.plist \ - System.kext/Contents/PlugIns/IOADBFamily.kext/Contents/Info.plist \ - System.kext/Contents/PlugIns/IOKit.kext/Contents/Info.plist \ - System.kext/Contents/PlugIns/IONVRAMFamily.kext/Contents/Info.plist \ - System.kext/Contents/PlugIns/IOSystemManagement.kext/Contents/Info.plist \ - System.kext/Contents/PlugIns/Libkern.kext/Contents/Info.plist \ - System.kext/Contents/PlugIns/Mach.kext/Contents/Info.plist + System.kext/Info.plist \ + System.kext/PlugIns/Libkern.kext/Info.plist \ + System.kext/PlugIns/Mach.kext/Info.plist \ + System.kext/PlugIns/BSDKernel.kext/Info.plist \ + System.kext/PlugIns/IOKit.kext/Info.plist \ + System.kext/PlugIns/AppleNMI.kext/Info.plist \ + System.kext/PlugIns/ApplePlatformFamily.kext/Info.plist \ + System.kext/PlugIns/IONVRAMFamily.kext/Info.plist \ + System.kext/PlugIns/IOSystemManagement.kext/Info.plist \ + \ + System.kext/PlugIns/System6.0.kext/Info.plist \ + System.kext/PlugIns/Libkern6.0.kext/Info.plist \ + System.kext/PlugIns/Mach6.0.kext/Info.plist \ + System.kext/PlugIns/BSDKernel6.0.kext/Info.plist \ + System.kext/PlugIns/IOKit6.0.kext/Info.plist \ + INSTALL_DATA_DIR= \ /System/Library/Extensions/ INSTMAN_SUBDIRS = +# + +KEXT_CREATE_SYMBOL_SET = /usr/local/bin/kextsymboltool + +SYMBOL_COMPONENT_LIST = \ + System6.0 \ + BSDKernel \ + IOKit \ + Libkern \ + Mach + +SYMBOL_SET_BUILD = $(foreach set, $(SYMBOL_COMPONENT_LIST), $(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)/$(set).symbolset) +SYMBOL_SET_FAT = $(foreach set, $(SYMBOL_COMPONENT_LIST), $(OBJROOT)/$(set).symbolset) + +## .SUFFIXES: .symbolset .symbollist + +$(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)/allsymbols: $(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)/mach_kernel + nm -gj $< > $@ + +$(SYMBOL_SET_BUILD): $(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)/%.symbolset : %.exports %.$(ARCH_CONFIG_LC).exports $(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)/allsymbols + $(KEXT_CREATE_SYMBOL_SET) \ + -arch $(ARCH_CONFIG_LC) \ + -import $(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)/allsymbols \ + -export $*.exports \ + -export $*.$(ARCH_CONFIG_LC).exports \ + -output $@; + +$(SYMBOL_SET_FAT): $(OBJROOT)/%.symbolset : $(foreach arch, $(INSTALL_ARCHS), $(OBJROOT)/$(KERNEL_CONFIG)_$(arch)/%.symbolset) + $(LIPO) $(foreach arch, $(INSTALL_ARCHS), $(OBJROOT)/$(KERNEL_CONFIG)_$(arch)/$*.symbolset) -create -output $@; + + +build_symbol_sets: $(SYMBOL_SET_BUILD) + +install_symbol_sets: $(SYMBOL_SET_FAT) + install $(INSTALL_FLAGS) $(OBJROOT)/System6.0.symbolset $(DSTROOT)/$(INSTALL_DATA_DIR)/System.kext/PlugIns/System6.0.kext/kernel.6.0; + install $(INSTALL_FLAGS) $(OBJROOT)/BSDKernel.symbolset $(DSTROOT)/$(INSTALL_DATA_DIR)/System.kext/PlugIns/BSDKernel.kext/BSDKernel; + install $(INSTALL_FLAGS) $(OBJROOT)/IOKit.symbolset $(DSTROOT)/$(INSTALL_DATA_DIR)/System.kext/PlugIns/IOKit.kext/IOKit; + install $(INSTALL_FLAGS) $(OBJROOT)/Libkern.symbolset $(DSTROOT)/$(INSTALL_DATA_DIR)/System.kext/PlugIns/Libkern.kext/Libkern; + install $(INSTALL_FLAGS) $(OBJROOT)/Mach.symbolset $(DSTROOT)/$(INSTALL_DATA_DIR)/System.kext/PlugIns/Mach.kext/Mach; + +do_build_all: build_symbol_sets + +do_build_install: install_symbol_sets + include $(MakeInc_rule) include $(MakeInc_dir)