xref: /xnu-8792.61.2/osfmk/default_pager/Makefile (revision 42e220869062b56f8d7d0726fd4c88954f87902c) !
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
9MIG_TYPES = \
10	default_pager_types.defs
11
12MIG_DEFS = \
13
14MIG_USHDRS = \
15
16MIG_UUHDRS = \
17
18MIGINCLUDES = ${MIG_UUHDRS} ${MIG_USHDRS}
19
20DATAFILES = \
21	default_pager_types.h \
22	${MIG_DEFS}
23
24INSTALL_MI_LIST	= ${DATAFILES}
25
26INSTALL_SF_MI_LCL_LIST = ${DATAFILES}
27
28INSTALL_MI_GEN_LIST = ${MIGINCLUDES}
29
30INSTALL_SF_MI_LCL_GEN_LIST = ${MIGINCLUDES}
31
32INSTALL_MI_DIR = default_pager
33
34EXPORT_MI_LIST	= \
35	${DATAFILES}
36
37EXPORT_MI_GEN_LIST = \
38	${MIGINCLUDES}
39
40EXPORT_MI_DIR = default_pager
41
42${MIGINCLUDES} : ${MIG_TYPES}
43
44${MIG_UUHDRS} : \
45	%.h : %.defs
46	@$(LOG_MIG) $@
47	$(_v)$(MIG) $(MIGFLAGS)		\
48		-server /dev/null	\
49		-user /dev/null		\
50		-header $@		\
51		$<
52
53${MIG_USHDRS} : \
54	%_server.h : %.defs
55	@$(LOG_MIG) $@
56	$(_v)$(MIG) $(MIGFLAGS)		\
57		-server /dev/null	\
58		-user /dev/null		\
59		-header /dev/null	\
60		-sheader $@		\
61		$<
62
63#
64# Build path
65#
66INCFLAGS_MAKEFILE= -I..
67
68MIGKSFLAGS	= -DMACH_KERNEL_PRIVATE -DKERNEL_SERVER=1
69MIGKUFLAGS	= -DMACH_KERNEL_PRIVATE -DKERNEL_USER=1 -maxonstack 1024
70
71#
72# MIG-generated headers that are traditionally used by kernel
73# level code.
74#
75MIG_KUHDRS = \
76
77MIG_KUSRC = \
78
79MIG_KSHDRS = \
80
81MIG_KSSRC = \
82
83#
84# JMM -
85# Since there are two generated header files with the same name, one for
86# install and export, the other for internal use (and they are different)
87# we can't explicitly list two rules for the same target.  So rules for
88# generating internal headers will be handled implicitly by creating rules
89# to generate the internal C sources, and the headers get created as a
90# side-effect.
91#
92# This is all temporary scaffolding, as we are moving to a model where
93# the MIG-generated code is identical in all environments.  At first, it
94# will contain some environment-specific ifdefs, but over time should not
95# even require that as we move towards making all the environments look
96# the same.
97#
98COMP_FILES = ${MIG_KUSRC} ${MIG_KSSRC}
99
100do_build_all:: $(COMP_FILES)
101
102${COMP_FILES} : ${MIG_TYPES}
103
104${MIG_KUSRC} : \
105	%_user.c : %.defs
106	@$(LOG_MIG) $@
107	$(_v)${MIG} ${MIGFLAGS} ${MIGKUFLAGS}        \
108		-user    $*_user.c              \
109		-header  $*.h              \
110		-server  /dev/null		\
111		-sheader /dev/null		\
112		$<
113
114${MIG_KSSRC}: \
115	%_server.c : %.defs
116	@$(LOG_MIG) $@
117	$(_v)${MIG} ${MIGFLAGS} ${MIGKSFLAGS}        \
118		-user    /dev/null              \
119		-header  /dev/null              \
120		-server  $*_server.c		\
121		-sheader $*_server.h		\
122		$<
123
124include $(MakeInc_rule)
125include $(MakeInc_dir)
126