# # Mach Operating System # Copyright (c) 1986 Carnegie-Mellon University # All rights reserved. The CMU software License Agreement specifies # the terms and conditions for use and redistribution. # # # Export IDENT for sub-makefiles # export IDENT # # XXX: INCFLAGS to include libsa prototypes # INCFLAGS_MAKEFILE= -I$(SOURCE)libsa export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir include $(MakeInc_cmd) include $(MakeInc_def) # # XXX: CFLAGS # CFLAGS+= -imacros meta_features.h -DMACH_KERNEL_PRIVATE $(CFLAGS_INLINE_CONFIG) # # Directories for mig generated files # COMP_SUBDIRS = \ default_pager \ device \ mach_debug \ mach \ UserNotification \ gssd \ kextd \ lockd COMP_SUBDIRS_I386 = \ mach COMP_SUBDIRS_X86_64 = \ mach # # Make sure we don't remove this by accident if interrupted at the wrong # time. # .PRECIOUS: Makefile # # Theses macros are filled in by the config program depending on the # current configuration. The MACHDEP macro is replaced by the # contents of the machine dependent makefile template and the others # are replaced by the corresponding symbol definitions for the # configuration. # %OBJS %CFILES %MFILES %SFILES %BFILES %ORDERED %MACHDEP # # OBJSDEPS is the set of files (defined in the machine dependent # template if necessary) which all objects depend on (such as an # in-line assembler expansion filter) # ${OBJS}: ${OBJSDEPS} %LOAD LDOBJS = $(OBJS) $(COMPONENT).o: $(LDOBJS) assym.s $(_v)for hib_file in ${HIB_FILES}; \ do \ $(SEG_HACK) __HIB $${hib_file} -o $${hib_file}__; \ mv $${hib_file}__ $${hib_file} ; \ done; @echo LDFILELIST $(COMPONENT) $(_v)( for obj in ${LDOBJS}; do \ echo $(TARGET)$(COMP_OBJ_DIR)/$(KERNEL_CONFIG)/$${obj}; \ done; ) > $(COMPONENT).o do_all: $(COMPONENT).o do_depend: do_all $(_v)${MD} -u Makedep -f -d `ls *.d`; do_build_all: do_depend # genassym.o actually is an assembly file, # we name it genassym.o to help with the automatic # dependency generation genassym.o: $(SOURCE_DIR)/$(COMPONENT)/$(ARCH_CONFIG_LC)/genassym.c $(_v)${KCC} ${CFLAGS} -MD ${_HOST_EXTRA_CFLAGS} -S -o ${@} -c ${INCFLAGS} $< assym.s: genassym.o $(_v)sed -e '/#DEFINITION#/!d' -e 's/^.*#DEFINITION#//' -e 's/\$$//' -e 'p' -e 's/#//2' -e 's/[^A-Za-z0-9_]*\([A-Za-z0-9_]*\)/ \1_NUM/2' genassym.o > ${@} ${SOBJS}: assym.s %RULES include $(MakeInc_rule) include $(MakeInc_dir)