Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | # # This file contains rules which are shared between multiple Makefiles. # # # False targets. # .PHONY: dummy # # Special variables which should not be exported # unexport EXTRA_ASFLAGS unexport EXTRA_CFLAGS unexport EXTRA_LDFLAGS unexport EXTRA_ARFLAGS unexport SUBDIRS unexport SUB_DIRS unexport ALL_SUB_DIRS unexport MOD_SUB_DIRS unexport O_TARGET unexport O_OBJS unexport L_OBJS unexport M_OBJS unexport MOD_LIST_NAME # # Get things started. # first_rule: sub_dirs $(O_TARGET) $(L_TARGET) # # Common rules # %.s: %.c $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -S $< -o $@ %.o: %.c $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< %.o: %.s $(AS) $(ASFLAGS) $(EXTRA_CFLAGS) -o $@ $< # # Rule to compile a set of .o files into one .o file # ifdef O_TARGET $(O_TARGET): $(O_OBJS) $(TOPDIR)/include/linux/config.h rm -f $@ ifdef O_OBJS $(LD) $(EXTRA_LDFLAGS) -r -o $@ $(O_OBJS) else $(AR) rcs $@ endif endif # # Rule to compile a set of .o files into one .a file # ifdef L_TARGET $(L_TARGET): $(L_OBJS) $(TOPDIR)/include/linux/config.h rm -f $@ $(AR) $(EXTRA_ARFLAGS) rcs $@ $(L_OBJS) endif # # This make dependencies quickly # fastdep: dummy if [ -n "$(wildcard *.[chS])" ]; then \ $(AWK) -f $(TOPDIR)/scripts/depend.awk *.[chS] > .depend; fi ifdef ALL_SUB_DIRS set -e; for i in $(ALL_SUB_DIRS); do $(MAKE) -C $$i fastdep; done endif # # A rule to make subdirectories # sub_dirs: dummy ifdef SUB_DIRS set -e; for i in $(SUB_DIRS); do $(MAKE) -C $$i; done endif # # A rule to make modules # ifdef M_OBJS PDWN=$(shell /bin/sh $(TOPDIR)/scripts/pathdown.sh) endif modules: $(M_OBJS) dummy ifdef MOD_SUB_DIRS set -e; for i in $(MOD_SUB_DIRS); do $(MAKE) -C $$i modules; done endif ifneq "$(strip $(MOD_LIST_NAME))" "" rm -f $$TOPDIR/modules/$(MOD_LIST_NAME) ifdef MOD_SUB_DIRS for i in $(MOD_SUB_DIRS); do \ echo `basename $$i`.o >> $$TOPDIR/modules/$(MOD_LIST_NAME); done endif ifdef M_OBJS echo $(M_OBJS) >> $$TOPDIR/modules/$(MOD_LIST_NAME) endif endif ifdef M_OBJS echo $(PDWN) cd $$TOPDIR/modules; for i in $(M_OBJS); do \ ln -sf ../$(PDWN)/$$i .; done endif # # A rule to do nothing # dummy: # # This is useful for testing # script: $(SCRIPT) # # include dependency files they exist # ifeq (.depend,$(wildcard .depend)) include .depend endif ifeq ($(TOPDIR)/.hdepend,$(wildcard $(TOPDIR)/.hdepend)) include $(TOPDIR)/.hdepend endif |