xref: /xnu-8020.121.3/iokit/IOKit/Makefile (revision fdd8201d7b966f0c3ea610489d29bd841d358941)
1export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd
2export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def
3export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule
4export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir
5
6IOKIT_INCVERS = A
7IOKIT_INCFRAME = $(FRAMEDIR)/IOKit.framework
8IOKIT_INCDIR = $(IOKIT_INCFRAME)/Versions/$(IOKIT_INCVERS)/Headers
9IOKIT_PINCDIR = $(IOKIT_INCFRAME)/Versions/$(IOKIT_INCVERS)/PrivateHeaders
10
11INCDIR = $(IOKIT_INCDIR)
12LCLDIR = $(IOKIT_PINCDIR)
13
14include $(MakeInc_cmd)
15include $(MakeInc_def)
16
17INSTINC_SUBDIRS = \
18	nvram \
19	platform \
20	power \
21	pwr_mgt \
22	rtc \
23	system_management \
24	skywalk
25
26
27EXPINC_SUBDIRS = ${INSTINC_SUBDIRS}
28
29# By default, everything in xnu/iokit/IOKit gets installed into
30# Kernel.framework/Headers/IOKit AND Kernel.framework/PrivateHeaders/IOKit.
31# This is so the files with #ifdef ...PRIVATE portions can be processed.
32# xnu/README documents the INSTALL* and EXPORT_MI_DIR lists.
33ALL_HEADERS = $(notdir $(wildcard $(SOURCE)*.h))
34
35# Do not install these headers (anywhere).
36NOT_EXPORT_HEADERS = IOInterruptAccountingPrivate.h
37
38# Install these only in Kernel.framework's PrivateHeaders (not Headers).
39NOT_KF_MI_HEADERS  = $(NOT_EXPORT_HEADERS)			\
40		     IOKitKeysPrivate.h IOCPU.h			\
41		     IOHibernatePrivate.h IOPolledInterface.h	\
42		     IOCommandQueue.h IOLocksPrivate.h		\
43		     IOSyncer.h AppleKeyStoreInterface.h	\
44		     IOStatistics.h IOStatisticsPrivate.h	\
45		     IOKernelReporters.h			\
46		     IOInterruptAccounting.h			\
47		     IOPlatformIO.h				\
48		     IOPMGR.h IOPlatformActions.h
49
50
51# These should be additionally installed in IOKit.framework's public Headers
52INSTALL_MI_LIST	= IOBSD.h IOKitKeys.h IOKitServer.h IOReturn.h	    \
53		  IOSharedLock.h IOTypes.h IOMapTypes.h OSMessageNotification.h  \
54		  IODataQueueShared.h IOMessage.h IORPC.h IOUserServer.h
55
56# These should be additionally installed in IOKit.framework's PrivateHeaders
57INSTALL_MI_LCL_LIST = $(INSTALL_MI_LIST)
58INSTALL_MI_LCL_LIST += \
59		      IOKitKeysPrivate.h IOHibernatePrivate.h   \
60		      IOLocksPrivate.h IOStatistics.h 		\
61		      AppleKeyStoreInterface.h  		\
62		      IOReportTypes.h IOKernelReportStructs.h   \
63		      IOReportMacros.h IOInterruptAccounting.h
64
65INSTALL_MI_DIR = .
66
67EXPORT_MI_LIST	= $(filter-out $(NOT_EXPORT_HEADERS), $(ALL_HEADERS))
68
69EXPORT_MI_DIR = IOKit
70
71INSTALL_KF_MI_LIST = $(filter-out $(NOT_KF_MI_HEADERS), $(ALL_HEADERS))
72
73include $(MakeInc_rule)
74include $(MakeInc_dir)
75