xref: /xnu-12377.61.12/libsa/conf/Makefile.template (revision 4d495c6e23c53686cf65f45067f79024cf5dcee8)
1*4d495c6eSApple OSS Distributions#
2*4d495c6eSApple OSS Distributions# Mach Operating System
3*4d495c6eSApple OSS Distributions# Copyright (c) 1986 Carnegie-Mellon University
4*4d495c6eSApple OSS Distributions# All rights reserved.  The CMU software License Agreement specifies
5*4d495c6eSApple OSS Distributions# the terms and conditions for use and redistribution.
6*4d495c6eSApple OSS Distributions#
7*4d495c6eSApple OSS Distributions
8*4d495c6eSApple OSS Distributionsexport MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd
9*4d495c6eSApple OSS Distributionsexport MakeInc_def=${SRCROOT}/makedefs/MakeInc.def
10*4d495c6eSApple OSS Distributionsexport MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule
11*4d495c6eSApple OSS Distributionsexport MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir
12*4d495c6eSApple OSS Distributions
13*4d495c6eSApple OSS Distributionsinclude $(MakeInc_cmd)
14*4d495c6eSApple OSS Distributionsinclude $(MakeInc_def)
15*4d495c6eSApple OSS Distributions
16*4d495c6eSApple OSS Distributions#
17*4d495c6eSApple OSS Distributions# CFLAGS
18*4d495c6eSApple OSS Distributions#
19*4d495c6eSApple OSS DistributionsCFLAGS+= -include meta_features.h -DLIBSA_KERNEL_PRIVATE
20*4d495c6eSApple OSS DistributionsSFLAGS+= -include meta_features.h
21*4d495c6eSApple OSS Distributions
22*4d495c6eSApple OSS Distributions#
23*4d495c6eSApple OSS Distributions# Directories for mig generated files
24*4d495c6eSApple OSS Distributions#
25*4d495c6eSApple OSS DistributionsCOMP_SUBDIRS =
26*4d495c6eSApple OSS Distributions
27*4d495c6eSApple OSS Distributions#
28*4d495c6eSApple OSS Distributions#  Make sure we don't remove this by accident if interrupted at the wrong
29*4d495c6eSApple OSS Distributions#  time.
30*4d495c6eSApple OSS Distributions#
31*4d495c6eSApple OSS Distributions.PRECIOUS: Makefile
32*4d495c6eSApple OSS Distributions
33*4d495c6eSApple OSS Distributions#
34*4d495c6eSApple OSS Distributions#  Theses macros are filled in by the config program depending on the
35*4d495c6eSApple OSS Distributions#  current configuration.  The MACHDEP macro is replaced by the
36*4d495c6eSApple OSS Distributions#  contents of the machine dependent makefile template and the others
37*4d495c6eSApple OSS Distributions#  are replaced by the corresponding symbol definitions for the
38*4d495c6eSApple OSS Distributions#  configuration.
39*4d495c6eSApple OSS Distributions#
40*4d495c6eSApple OSS Distributions
41*4d495c6eSApple OSS Distributions%OBJS
42*4d495c6eSApple OSS Distributions
43*4d495c6eSApple OSS Distributions%LIBOBJS
44*4d495c6eSApple OSS Distributions
45*4d495c6eSApple OSS Distributions%CFILES
46*4d495c6eSApple OSS Distributions
47*4d495c6eSApple OSS Distributions%CXXFILES
48*4d495c6eSApple OSS Distributions
49*4d495c6eSApple OSS Distributions%SFILES
50*4d495c6eSApple OSS Distributions
51*4d495c6eSApple OSS Distributions%MACHDEP
52*4d495c6eSApple OSS Distributions
53*4d495c6eSApple OSS Distributions# Rebuild if per-file overrides change
54*4d495c6eSApple OSS Distributions${OBJS}: $(firstword $(MAKEFILE_LIST))
55*4d495c6eSApple OSS Distributions
56*4d495c6eSApple OSS Distributions# Rebuild if global compile flags change
57*4d495c6eSApple OSS Distributions$(COBJS): .CFLAGS
58*4d495c6eSApple OSS Distributions.CFLAGS: ALWAYS
59*4d495c6eSApple OSS Distributions	$(_v)$(REPLACECONTENTS) $@ $(KCC) $(CFLAGS) $(INCFLAGS)
60*4d495c6eSApple OSS Distributions$(CXXOBJS): .CXXFLAGS
61*4d495c6eSApple OSS Distributions.CXXFLAGS: ALWAYS
62*4d495c6eSApple OSS Distributions	$(_v)$(REPLACECONTENTS) $@ $(KC++) $(CXXFLAGS) $(INCFLAGS)
63*4d495c6eSApple OSS Distributions$(SOBJS): .SFLAGS
64*4d495c6eSApple OSS Distributions.SFLAGS: ALWAYS
65*4d495c6eSApple OSS Distributions	$(_v)$(REPLACECONTENTS) $@ $(S_KCC) $(SFLAGS) $(INCFLAGS)
66*4d495c6eSApple OSS Distributions
67*4d495c6eSApple OSS DistributionsKLD_FILES = $(OBJS)
68*4d495c6eSApple OSS Distributions
69*4d495c6eSApple OSS Distributions$(COMPONENT).filelist: $(OBJS)
70*4d495c6eSApple OSS Distributions	$(_v)for kld_file in ${KLD_FILES}; do      \
71*4d495c6eSApple OSS Distributions		$(SEG_HACK) -s __TEXT -n __KLD -o $${kld_file}__ $${kld_file} || exit 1; \
72*4d495c6eSApple OSS Distributions		mv $${kld_file}__ $${kld_file} || exit 1; \
73*4d495c6eSApple OSS Distributions		$(SEG_HACK) -i __KLD -n __KLDDATA -o $${kld_file}__ $${kld_file} || exit 1; \
74*4d495c6eSApple OSS Distributions		mv $${kld_file}__ $${kld_file} || exit 1; \
75*4d495c6eSApple OSS Distributions	done
76*4d495c6eSApple OSS Distributions	@$(LOG_LDFILELIST) "$(COMPONENT)"
77*4d495c6eSApple OSS Distributions	$(_v)for obj in ${OBJS}; do	\
78*4d495c6eSApple OSS Distributions		 $(ECHO) $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \
79*4d495c6eSApple OSS Distributions	done > $(COMPONENT).filelist
80*4d495c6eSApple OSS Distributions
81*4d495c6eSApple OSS Distributionsifeq ($(XNU_LibAllFiles),1)
82*4d495c6eSApple OSS DistributionsLIBOBJS := $(OBJS)
83*4d495c6eSApple OSS Distributionsendif
84*4d495c6eSApple OSS Distributions
85*4d495c6eSApple OSS Distributions$(COMPONENT).libfilelist: $(LIBOBJS)
86*4d495c6eSApple OSS Distributions	@$(LOG_LDFILELIST) "lib$(COMPONENT)"
87*4d495c6eSApple OSS Distributions	$(_v)for obj in ${LIBOBJS}; do	\
88*4d495c6eSApple OSS Distributions		 $(ECHO) $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \
89*4d495c6eSApple OSS Distributions	done > $(COMPONENT).libfilelist
90*4d495c6eSApple OSS Distributions
91*4d495c6eSApple OSS Distributions
92*4d495c6eSApple OSS Distributionsifeq ($(RC_ProjectName),xnu_libraries)
93*4d495c6eSApple OSS Distributionsdo_all: $(COMPONENT).libfilelist
94*4d495c6eSApple OSS Distributionselse
95*4d495c6eSApple OSS Distributionsdo_all: $(COMPONENT).filelist
96*4d495c6eSApple OSS Distributionsendif
97*4d495c6eSApple OSS Distributions
98*4d495c6eSApple OSS Distributionsdo_build_all:: do_all
99*4d495c6eSApple OSS Distributions
100*4d495c6eSApple OSS Distributions%RULES
101*4d495c6eSApple OSS Distributions
102*4d495c6eSApple OSS Distributionsinclude $(MakeInc_rule)
103*4d495c6eSApple OSS Distributionsinclude $(MakeInc_dir)
104*4d495c6eSApple OSS Distributions
105*4d495c6eSApple OSS Distributions# the KLD segment is mapped read-only on arm, so if we include llvm profiling
106*4d495c6eSApple OSS Distributions# here it will segfault the kernel.  (see arm_vm_init.c) We don't currently have
107*4d495c6eSApple OSS Distributions# a way of retrieving these counters from KLD anyway, so there's no harm in just
108*4d495c6eSApple OSS Distributions# disabling them.
109*4d495c6eSApple OSS DistributionsCXXFLAGS_GEN:=$(filter-out -fprofile-instr-generate,$(CXXFLAGS_GEN))
110*4d495c6eSApple OSS DistributionsCXXFLAGS_GEN:=$(filter-out -fcoverage-mapping,$(CXXFLAGS_GEN))
111*4d495c6eSApple OSS DistributionsCFLAGS_GEN:=$(filter-out -fprofile-instr-generate,$(CFLAGS_GEN))
112*4d495c6eSApple OSS DistributionsCFLAGS_GEN:=$(filter-out -fcoverage-mapping,$(CFLAGS_GEN))
113