beginning of local stub makefiles, to allow building from subdirectories ( I'm explic...
[reactos.git] / reactos / tools / depend.mk
1 # Automatic dependancy tracking
2 # Define $DEP_OBJECTS before this file is included
3 # $DEP_OBJECTS contain a list of object files that are checked for dependancies
4
5 ifneq ($(DEPENDENCIES),no)
6 ifneq ($(MAKECMDGOALS),implib)
7
8 DEP_FILTERED := $(filter-out $(DEP_EXCLUDE_FILTER), $(DEP_OBJECTS:.o=.d))
9
10 PCH :=
11
12 ifeq ($(ROS_USE_PCH),yes)
13 ifneq ($(TARGET_PCH),)
14
15 PCH = $(TARGET_PCH).gch
16
17 DEP_FILTERED := $(DEP_FILTERED) $(TARGET_PCH:.h=.d)
18
19 endif # TARGET_PCH
20 endif
21
22 DEP_FILES := $(join $(dir $(DEP_FILTERED)), $(addprefix ., $(notdir $(DEP_FILTERED))))
23
24 ifneq ($(MAKECMDGOALS),clean)
25 ifneq ($(DEP_FILES),)
26 -include $(DEP_FILES)
27 endif
28 endif
29
30 ifeq ($(SEP),\)
31 DEPENDS_PATH := $(subst /,\,$(PATH_TO_TOP))\tools
32 else
33 DEPENDS_PATH := $(PATH_TO_TOP)/tools
34 endif
35
36 .%.d: %.c $(PATH_TO_TOP)/tools/depends$(EXE_POSTFIX) $(GENERATED_HEADER_FILES)
37 $(HALFVERBOSEECHO) [DEPENDS] $@
38 $(CC) $(CFLAGS) -M $< | $(DEPENDS_PATH)$(SEP)depends$(EXE_POSTFIX) $(@D) $@
39
40 .%.d: %.cc $(PATH_TO_TOP)/tools/depends$(EXE_POSTFIX) $(GENERATED_HEADER_FILES)
41 $(HALFVERBOSEECHO) [DEPENDS] $@
42 $(CC) $(CFLAGS) -M $< | $(DEPENDS_PATH)$(SEP)depends$(EXE_POSTFIX) $(@D) $@
43
44 .%.d: %.cpp $(PATH_TO_TOP)/tools/depends$(EXE_POSTFIX) $(GENERATED_HEADER_FILES)
45 $(HALFVERBOSEECHO) [DEPENDS] $@
46 $(CC) $(CFLAGS) -M $< | $(DEPENDS_PATH)$(SEP)depends$(EXE_POSTFIX) $(@D) $@
47
48 .%.d: %.S $(PATH_TO_TOP)/tools/depends$(EXE_POSTFIX) $(GENERATED_HEADER_FILES)
49 $(HALFVERBOSEECHO) [DEPENDS] $@
50 $(CC) $(CFLAGS) -M $< | $(DEPENDS_PATH)$(SEP)depends$(EXE_POSTFIX) $(@D) $@
51
52 .%.d: %.s $(PATH_TO_TOP)/tools/depends$(EXE_POSTFIX) $(GENERATED_HEADER_FILES)
53 $(HALFVERBOSEECHO) [DEPENDS] $@
54 $(CC) $(CFLAGS) -M $< | $(DEPENDS_PATH)$(SEP)depends$(EXE_POSTFIX) $(@D) $@
55
56 .%.d: %.asm $(PATH_TO_TOP)/tools/depends$(EXE_POSTFIX) $(GENERATED_HEADER_FILES)
57 $(HALFVERBOSEECHO) [DEPENDS] $@
58 $(NASM_CMD) $(NFLAGS) -M $< | $(DEPENDS_PATH)$(SEP)depends$(EXE_POSTFIX) $(@D) $@
59
60 .%.d: %.h $(PATH_TO_TOP)/tools/depends$(EXE_POSTFIX) $(GENERATED_HEADER_FILES)
61 $(HALFVERBOSEECHO) [DEPENDS] $@
62 $(PCH_CC) $(CFLAGS) -M $< | $(DEPENDS_PATH)$(SEP)depends$(EXE_POSTFIX) $(@D) $@
63
64 endif
65 endif