| # make.rules - common build rules |
| # |
| # modification history |
| # -------------------- |
| # 04-15-02,mj created |
| # |
| ######################################################################## |
| ifeq ($(TARGET),) |
| TARGET = $(notdir $(subst \,/,$(shell cd))) |
| endif |
| default : $(TARGET).o |
| |
| # Set searching directories for target and dependencies |
| vpath %.o $(OBJDIR) |
| |
| # Include RULES file if it exists |
| ifeq ($(shell if exist $(DEPENDENCIES) $(ECHO) 1),1) |
| include $(DEPENDENCIES) |
| endif |
| |
| # Accumulate source files specified in each directory makefile |
| COBJECTS = $(CSOURCES:.c=.o) |
| AOBJECTS = $(ASOURCES:.s=.o) |
| ifeq ($(OBJECTS),) |
| OBJECTS = $(COBJECTS) $(AOBJECTS) |
| endif |
| |
| $(TARGET).o : $(OBJECTS) deps |
| @ $(ECHO) 'Building $@' |
| $(LD) $(LDFLAGS) -Map $(OBJDIR)/$(TARGET).map -o $(OBJDIR)/$(TARGET).o $(addprefix $(OBJDIR)/,$(notdir $(OBJECTS))) |
| |
| $(OBJECTS) : %.o : %.c |
| .c.o : |
| @if not exist $(OBJDIR) mkdir $(OBJDIR) |
| $(CC) $(CFLAGS) $(EXTRA_DEFINE) $(EXTRA_INCLUDE) $(ADDED_CFLAGS) -c $< -o $(OBJDIR)/$(notdir $@) |
| |
| deps : $(CSOURCES) |
| @$(ECHO) '##' > $(DEPENDENCIES) |
| @$(ECHO) '## This file is generated by "make"!' >> $(DEPENDENCIES) |
| @$(ECHO) '##' >> $(DEPENDENCIES) |
| @for %x in ($^) do \ |
| @$(ECHO) ' %x' & \ |
| $(CC) -M -MG $(CFLAGS) %x >> $(DEPENDENCIES) & \ |
| @$(ECHO) '##' >> $(DEPENDENCIES) |
| |
| .PHONY: clean |
| clean: |
| $(RM) $(DEPENDENCIES) |
| - ($(CD) $(OBJDIR)) && $(RM) *.o |
| - ($(CD) $(OBJDIR)) && $(RM) *.map |
| |
| FORCE : |
| |
| # end of file |