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