1# 2# Mach Operating System 3# Copyright (c) 1986 Carnegie-Mellon University 4# All rights reserved. The CMU software License Agreement specifies 5# the terms and conditions for use and redistribution. 6# 7 8export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd 9export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def 10export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule 11export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir 12 13include $(MakeInc_cmd) 14include $(MakeInc_def) 15 16# 17# CFLAGS 18# 19CFLAGS+= -include meta_features.h -DPEXPERT_KERNEL_PRIVATE 20SFLAGS+= -include meta_features.h 21 22# 23# Directories for mig generated files 24# 25COMP_SUBDIRS = 26 27# 28# Make sure we don't remove this by accident if interrupted at the wrong 29# time. 30# 31.PRECIOUS: Makefile 32 33# 34# Theses macros are filled in by the config program depending on the 35# current configuration. The MACHDEP macro is replaced by the 36# contents of the machine dependent makefile template and the others 37# are replaced by the corresponding symbol definitions for the 38# configuration. 39# 40 41%OBJS 42 43%LIBOBJS 44 45%CFILES 46 47%CXXFILES 48 49%SFILES 50 51%MACHDEP 52 53# 54# Diagnostic opt-outs. We need to make this list empty. 55# 56# DO NOT ADD MORE HERE. 57# 58# -Wno-cast-align 59pe_identify_machine.o_CWARNFLAGS_ADD += -Wno-cast-align 60# -Wno-implicit-int-conversion 61pe_serial.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion 62# -Wno-shorten-64-to-32 63pe_identify_machine.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 64pe_init.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32 65# -Wno-sign-conversion 66bootargs.o_CWARNFLAGS_ADD += -Wno-sign-conversion 67device_tree.o_CWARNFLAGS_ADD += -Wno-sign-conversion 68pe_identify_machine.o_CWARNFLAGS_ADD += -Wno-sign-conversion 69pe_init.o_CWARNFLAGS_ADD += -Wno-sign-conversion 70pe_serial.o_CWARNFLAGS_ADD += -Wno-sign-conversion 71 72# Rebuild if per-file overrides change 73${OBJS}: $(firstword $(MAKEFILE_LIST)) 74 75# Rebuild if global compile flags change 76$(COBJS): .CFLAGS 77.CFLAGS: ALWAYS 78 $(_v)$(REPLACECONTENTS) $@ $(KCC) $(CFLAGS) $(INCFLAGS) 79$(CXXOBJS): .CXXFLAGS 80.CXXFLAGS: ALWAYS 81 $(_v)$(REPLACECONTENTS) $@ $(KC++) $(CXXFLAGS) $(INCFLAGS) 82$(SOBJS): .SFLAGS 83.SFLAGS: ALWAYS 84 $(_v)$(REPLACECONTENTS) $@ $(S_KCC) $(SFLAGS) $(INCFLAGS) 85 86$(COMPONENT).filelist: $(OBJS) 87 @$(LOG_LDFILELIST) "$(COMPONENT)" 88 $(_v)for obj in ${OBJS}; do \ 89 $(ECHO) $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \ 90 done > $(COMPONENT).filelist 91 92ifeq ($(XNU_LibAllFiles),1) 93LIBOBJS := $(OBJS) 94endif 95 96$(COMPONENT).libfilelist: $(LIBOBJS) 97 @$(LOG_LDFILELIST) "lib$(COMPONENT)" 98 $(_v)for obj in ${LIBOBJS}; do \ 99 $(ECHO) $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \ 100 done > $(COMPONENT).libfilelist 101 102ifeq ($(RC_ProjectName),xnu_libraries) 103do_all: $(COMPONENT).libfilelist 104else 105do_all: $(COMPONENT).filelist 106endif 107 108do_build_all:: do_all 109 110%RULES 111 112include $(MakeInc_rule) 113include $(MakeInc_dir) 114