diff options
| author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2012-09-13 14:06:32 +0000 | 
|---|---|---|
| committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2012-09-13 14:06:32 +0000 | 
| commit | 11a92bce5516b6acdfe3270e884670c6ec85821d (patch) | |
| tree | e1f6a45f51b01e44b7a3dd72e41714cea5a7d2c8 | |
| parent | 037baacda71b6838fbe292404cace11e5270248f (diff) | |
| download | ChibiOS-11a92bce5516b6acdfe3270e884670c6ec85821d.tar.gz ChibiOS-11a92bce5516b6acdfe3270e884670c6ec85821d.tar.bz2 ChibiOS-11a92bce5516b6acdfe3270e884670c6ec85821d.zip  | |
Improved PPC makefiles.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4650 35acf78f-673a-0410-8e92-d51de3d6d3f4
| -rw-r--r-- | docs/Doxyfile_chm | 2 | ||||
| -rw-r--r-- | docs/Doxyfile_html | 2 | ||||
| -rw-r--r-- | os/kernel/include/ch.h | 4 | ||||
| -rw-r--r-- | os/ports/GCC/PPC/rules.mk | 139 | ||||
| -rw-r--r-- | readme.txt | 5 | 
5 files changed, 118 insertions, 34 deletions
diff --git a/docs/Doxyfile_chm b/docs/Doxyfile_chm index ae7595bc4..8688f79c9 100644 --- a/docs/Doxyfile_chm +++ b/docs/Doxyfile_chm @@ -31,7 +31,7 @@ PROJECT_NAME           = ChibiOS/RT  # This could be handy for archiving the generated documentation or
  # if some version control system is used.
 -PROJECT_NUMBER         = 2.5.0
 +PROJECT_NUMBER         = 2.5.1
  # Using the PROJECT_BRIEF tag one can provide an optional one line description
  # for a project that appears at the top of each page and should give viewer
 diff --git a/docs/Doxyfile_html b/docs/Doxyfile_html index a6f4a0939..f96084966 100644 --- a/docs/Doxyfile_html +++ b/docs/Doxyfile_html @@ -31,7 +31,7 @@ PROJECT_NAME           = ChibiOS/RT  # This could be handy for archiving the generated documentation or
  # if some version control system is used.
 -PROJECT_NUMBER         = 2.5.0
 +PROJECT_NUMBER         = 2.5.1
  # Using the PROJECT_BRIEF tag one can provide an optional one line description
  # for a project that appears at the top of each page and should give viewer
 diff --git a/os/kernel/include/ch.h b/os/kernel/include/ch.h index 073ab2280..031d27e62 100644 --- a/os/kernel/include/ch.h +++ b/os/kernel/include/ch.h @@ -40,7 +40,7 @@  /**
   * @brief   Kernel version string.
   */
 -#define CH_KERNEL_VERSION       "2.5.0"
 +#define CH_KERNEL_VERSION       "2.5.1unstable"
  /**
   * @name    Kernel version
 @@ -59,7 +59,7 @@  /**
   * @brief   Kernel version patch number.
   */
 -#define CH_KERNEL_PATCH         0
 +#define CH_KERNEL_PATCH         1
  /** @} */
  /**
 diff --git a/os/ports/GCC/PPC/rules.mk b/os/ports/GCC/PPC/rules.mk index eeb5ee77b..6b49e736a 100644 --- a/os/ports/GCC/PPC/rules.mk +++ b/os/ports/GCC/PPC/rules.mk @@ -1,4 +1,14 @@ -# PPC e200Z makefile scripts and rules.
 +# PPC makefile scripts and rules.
 +
 +# Output directory and files
 +ifeq ($(BUILDDIR),)
 +  BUILDDIR = build
 +endif
 +ifeq ($(BUILDDIR),.)
 +  BUILDDIR = build
 +endif
 +OUTFILES = $(BUILDDIR)/$(PROJECT).elf $(BUILDDIR)/$(PROJECT).hex \
 +           $(BUILDDIR)/$(PROJECT).bin $(BUILDDIR)/$(PROJECT).dmp
  # Automatic compiler options
  OPT = $(USE_OPT)
 @@ -15,14 +25,20 @@ ifeq ($(USE_VLE),yes)    MCU += -mvle
  endif
 -# Source files groups
 -SRC	     = $(CSRC)$(CPPSRC)
 +# Source files groups and paths
 +SRC	      = $(CSRC)$(CPPSRC)
 +SRCPATHS  = $(sort $(dir $(ASMXSRC)) $(dir $(ASMSRC)) $(dir $(SRC)))
 +
 +# Various directories
 +OBJDIR    = $(BUILDDIR)/obj
 +LSTDIR    = $(BUILDDIR)/lst
  # Object files groups
 -COBJS   = $(CSRC:.c=.o)
 -CPPOBJS = $(CPPSRC:.cpp=.o)
 -ASMOBJS = $(ASMSRC:.s=.o)
 -OBJS	= $(ASMOBJS) $(COBJS) $(CPPOBJS)
 +COBJS     = $(addprefix $(OBJDIR)/, $(notdir $(CSRC:.c=.o)))
 +CPPOBJS   = $(addprefix $(OBJDIR)/, $(notdir $(CPPSRC:.cpp=.o)))
 +ASMOBJS   = $(addprefix $(OBJDIR)/, $(notdir $(ASMSRC:.s=.o)))
 +ASMXOBJS  = $(addprefix $(OBJDIR)/, $(notdir $(ASMXSRC:.S=.o)))
 +OBJS	  = $(ASMXOBJS) $(ASMOBJS) $(COBJS) $(CPPOBJS)
  # Paths
  IINCDIR = $(patsubst %,-I%,$(INCDIR) $(DINCDIR) $(UINCDIR))
 @@ -35,56 +51,119 @@ ADEFS   = $(DADEFS) $(UADEFS)  # Libs
  LIBS    = $(DLIBS) $(ULIBS)
 -MCFLAGS = -mcpu=$(MCU)
 -ODFLAGS	= -x --syms
 -ASFLAGS = $(MCFLAGS) -Wa,-amhls=$(<:.s=.lst) $(ADEFS)
 -CPFLAGS = $(MCFLAGS) $(OPT) $(COPT) $(CWARN) -Wa,-alms=$(<:.c=.lst) $(DEFS)
 -ifeq ($(LINK_GC),yes)
 -  LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch,--gc-sections $(LLIBDIR)
 +# Various settings
 +MCFLAGS   = -mcpu=$(MCU)
 +ODFLAGS	  = -x --syms
 +ASFLAGS   = $(MCFLAGS) -Wa,-amhls=$(LSTDIR)/$(notdir $(<:.s=.lst)) $(ADEFS)
 +ASXFLAGS  = $(MCFLAGS) -Wa,-amhls=$(LSTDIR)/$(notdir $(<:.S=.lst)) $(ADEFS)
 +CFLAGS    = $(MCFLAGS) $(OPT) $(COPT) $(CWARN) -Wa,-alms=$(LSTDIR)/$(notdir $(<:.c=.lst)) $(DEFS)
 +CPPFLAGS  = $(MCFLAGS) $(OPT) $(CPPOPT) $(CPPWARN) -Wa,-alms=$(LSTDIR)/$(notdir $(<:.cpp=.lst)) $(DEFS)
 +ifeq ($(USE_LINK_GC),yes)
 +  LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(BUILDDIR)/$(PROJECT).map,--cref,--no-warn-mismatch,--gc-sections $(LLIBDIR)
  else
 -  LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch $(LLIBDIR)
 +  LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(BUILDDIR)/$(PROJECT).map,--cref,--no-warn-mismatch $(LLIBDIR)
  endif
  # Generate dependency information
 -CPFLAGS += -MD -MP -MF .dep/$(@F).d
 +CFLAGS   += -MD -MP -MF .dep/$(@F).d
 +CPPFLAGS += -MD -MP -MF .dep/$(@F).d
 +
 +# Paths where to search for sources
 +VPATH     = $(SRCPATHS)
  #
  # Makefile rules
  #
 -all: $(OBJS) $(PROJECT).elf $(PROJECT).hex $(PROJECT).bin $(PROJECT).dmp MAKE_ALL_RULE_HOOK
 +
 +all: $(OBJS) $(OUTFILES) MAKE_ALL_RULE_HOOK
  MAKE_ALL_RULE_HOOK:
 -$(CPPOBJS) : %.o : %.cpp
 +$(OBJS): | $(BUILDDIR)
 +
 +$(BUILDDIR) $(OBJDIR) $(LSTDIR):
 +ifneq ($(USE_VERBOSE_COMPILE),yes)
 +	@echo Compiler Options
 +	@echo $(CC) -c $(CFLAGS) -I. $(IINCDIR) main.c -o main.o
  	@echo
 -	$(CPPC) -c $(CPPFLAGS) -I . $(IINCDIR) $< -o $@
 +endif
 +	mkdir -p $(OBJDIR)
 +	mkdir -p $(LSTDIR)
 -$(COBJS) : %.o : %.c
 +$(CPPOBJS) : $(OBJDIR)/%.o : %.cpp Makefile
 +ifeq ($(USE_VERBOSE_COMPILE),yes)
  	@echo
 -	$(CC) -c $(CPFLAGS) -I . $(IINCDIR) $< -o $@
 +	$(CPPC) -c $(CPPFLAGS) -I. $(IINCDIR) $< -o $@
 +else
 +	@echo Compiling $<
 +	@$(CPPC) -c $(CPPFLAGS) -I. $(IINCDIR) $< -o $@
 +endif
 +
 +$(COBJS) : $(OBJDIR)/%.o : %.c Makefile
 +ifeq ($(USE_VERBOSE_COMPILE),yes)
 +	@echo
 +	$(CC) -c $(CFLAGS) -I. $(IINCDIR) $< -o $@
 +else
 +	@echo Compiling $<
 +	@$(CC) -c $(CFLAGS) -I. $(IINCDIR) $< -o $@
 +endif
 -$(ASMOBJS) : %.o : %.s
 +$(ASMOBJS) : $(OBJDIR)/%.o : %.s Makefile
 +ifeq ($(USE_VERBOSE_COMPILE),yes)
  	@echo
 -	$(AS) -c $(ASFLAGS) -I . $(IINCDIR) $< -o $@
 +	$(AS) -c $(ASFLAGS) -I. $(IINCDIR) $< -o $@
 +else
 +	@echo Compiling $<
 +	@$(AS) -c $(ASFLAGS) -I. $(IINCDIR) $< -o $@
 +endif
 -%elf: $(OBJS)
 +$(ASMXOBJS) : $(OBJDIR)/%.o : %.S Makefile
 +ifeq ($(USE_VERBOSE_COMPILE),yes)
 +	@echo 
 +	$(CC) -c $(ASXFLAGS) -I. $(IINCDIR) $< -o $@
 +else
 +	@echo Compiling $<
 +	@$(CC) -c $(ASXFLAGS) -I. $(IINCDIR) $< -o $@
 +endif
 +
 +%.elf: $(OBJS) $(LDSCRIPT)
 +ifeq ($(USE_VERBOSE_COMPILE),yes)
  	@echo
  	$(LD) $(OBJS) $(LDFLAGS) $(LIBS) -o $@
 +else
 +	@echo Linking $@
 +	@$(LD) $(OBJS) $(LDFLAGS) $(LIBS) -o $@
 +endif
 -%hex: %elf
 +%.hex: %.elf $(LDSCRIPT)
 +ifeq ($(USE_VERBOSE_COMPILE),yes)
  	$(HEX) $< $@
 +else
 +	@echo Creating $@
 +	@$(HEX) $< $@
 +endif
 -%bin: %elf
 +%.bin: %.elf $(LDSCRIPT)
 +ifeq ($(USE_VERBOSE_COMPILE),yes)
  	$(BIN) $< $@
 +else
 +	@echo Creating $@
 +	@$(BIN) $< $@
 +endif
 -%dmp: %elf
 +%.dmp: %.elf $(LDSCRIPT)
 +ifeq ($(USE_VERBOSE_COMPILE),yes)
  	$(OD) $(ODFLAGS) $< > $@
 +else
 +	@echo Creating $@
 +	@$(OD) $(ODFLAGS) $< > $@
 +	@echo Done
 +endif
  clean:
 -	-rm -f $(OBJS)
 -	-rm -f $(CSRC:.c=.lst) $(CPPSRC:.cpp=.lst) $(ASMSRC:.s=.lst)
 -	-rm -f $(PROJECT).elf $(PROJECT).dmp $(PROJECT).map $(PROJECT).hex $(PROJECT).bin
 -	-rm -fR .dep
 +	@echo Cleaning
 +	-rm -fR .dep $(BUILDDIR)
 +	@echo Done
  #
  # Include the dependency files, should be the last of the makefile
 diff --git a/readme.txt b/readme.txt index b1f52494d..06b442173 100644 --- a/readme.txt +++ b/readme.txt @@ -81,6 +81,11 @@  *** Releases                                                              ***
  *****************************************************************************
 +*** 2.5.1 ***
 +- NEW: Added VLE support to the Power Architecture GCC port.
 +- NEW: Updated the Power Architecture rules.mk file to put object and listing
 +  files into a ./build directory like ARM ports alread do.
 +
  *** 2.5.0 ***
  - FIX: Fixed anomaly in USB enumeration (bug 3565325)(backported to 2.4.3).
  - FIX: Fixed problem with lwIP statistics (bug 3564134)(backported to 2.4.3).
  | 
