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