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 8# 9# Export IDENT for sub-makefiles 10# 11export IDENT 12 13# 14# XXX: INCFLAGS to include libsa prototypes 15# 16INCFLAGS_MAKEFILE= -I$(SOURCE)libsa 17 18export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd 19export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def 20export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule 21export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir 22 23include $(MakeInc_cmd) 24include $(MakeInc_def) 25 26# 27# XXX: CFLAGS 28# 29CFLAGS+= -imacros meta_features.h -DMACH_KERNEL_PRIVATE $(CFLAGS_INLINE_CONFIG) 30 31# 32# Directories for mig generated files 33# 34COMP_SUBDIRS = \ 35 default_pager \ 36 device \ 37 mach_debug \ 38 mach \ 39 UserNotification \ 40 gssd \ 41 lockd 42 43COMP_SUBDIRS_I386 = \ 44 mach 45 46# 47# Make sure we don't remove this by accident if interrupted at the wrong 48# time. 49# 50.PRECIOUS: Makefile 51 52# 53# Theses macros are filled in by the config program depending on the 54# current configuration. The MACHDEP macro is replaced by the 55# contents of the machine dependent makefile template and the others 56# are replaced by the corresponding symbol definitions for the 57# configuration. 58# 59 60%OBJS 61 62%CFILES 63 64%MFILES 65 66%SFILES 67 68%BFILES 69 70%ORDERED 71%MACHDEP 72 73# 74# OBJSDEPS is the set of files (defined in the machine dependent 75# template if necessary) which all objects depend on (such as an 76# in-line assembler expansion filter) 77# 78${OBJS}: ${OBJSDEPS} 79 80 81%LOAD 82 83LDOBJS = $(OBJS) 84 85$(COMPONENT).o: $(LDOBJS) assym.s 86 $(_v)for hib_file in ${HIB_FILES}; \ 87 do \ 88 $(SEG_HACK) __HIB $${hib_file} -o $${hib_file}__; \ 89 mv $${hib_file}__ $${hib_file} ; \ 90 done; 91 @echo LD $(COMPONENT) 92 $(_v)$(LD) $(LDFLAGS_COMPONENT) -o $(COMPONENT).o ${LDOBJS} 93 94do_all: $(COMPONENT).o 95 96do_depend: do_all 97 $(_v)${MD} -u Makedep -f -d `ls *.d`; 98 99do_build_all: do_depend 100 101# genassym.o actually is an assembly file, 102# we name it genassym.o to help with the automatic 103# dependency generation 104 105genassym.o: $(SOURCE_DIR)/$(COMPONENT)/$(ARCH_CONFIG_LC)/genassym.c 106 $(_v)${KCC} ${CFLAGS} -MD ${_HOST_EXTRA_CFLAGS} -S -o ${@} -c ${INCFLAGS} $< 107 108assym.s: genassym.o 109 $(_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 > ${@} 110 111${SOBJS}: assym.s 112 113 114%RULES 115 116include $(MakeInc_rule) 117include $(MakeInc_dir) 118