##// END OF EJS Templates
Merge
Merge

File last commit:

r16:194f637a2640 default
r46:7d306b65e7c9 merge dev_alexis
Show More
rules.mk
70 lines | 2.5 KiB | text/x-makefile | MakefileLexer
#/*------------------------------------------------------------------------------
#-- This file is a part of the libuc, microcontroler library
#-- Copyright (C) 2012, Alexis Jeandet
#--
#-- This program is free software; you can redistribute it and/or modify
#-- it under the terms of the GNU General Public License as published by
#-- the Free Software Foundation; either version 3 of the License, or
#-- (at your option) any later version.
#--
#-- This program is distributed in the hope that it will be useful,
#-- but WITHOUT ANY WARRANTY; without even the implied warranty of
#-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#-- GNU General Public License for more details.
#--
#-- You should have received a copy of the GNU General Public License
#-- along with this program; if not, write to the Free Software
#-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#-------------------------------------------------------------------------------
#-- Author : Alexis Jeandet
#-- Mail : alexis.jeandet@gmail.com
#-------------------------------------------------------------------------------*/
#---------------------------------------------------------------------------------
# GCC EXECUTABLES
#---------------------------------------------------------------------------------
bin: $(DEVSOURCESND) $(BINDIR)/$(TARGET).elf $(BINDIR)/$(TARGET).bin $(BINDIR)/$(TARGET).hex
@echo "compile bin"
lib: $(TARGETINSTALLPATH)/$(TARGET).a
@echo "compile lib"
%.o : %.c
mkdir -p $(OBJDIR)
$(LIBUC_CC) -O3 -I $(INCLUDES) -c $(CFLAGS) $< -o $@
$(OBJECTFILES) : $(OBJDIR)/%.o : %.c $(DEPS)
mkdir -p $(OBJDIR)
$(LIBUC_CC) -O3 -I $(INCLUDES) -c $(CFLAGS) $< -o $@
$(ASMOBJECTFILES) : $(OBJDIR)/%.o : %.s
mkdir -p $(OBJDIR)
$(LIBUC_CC) -I $(INCLUDES) -c $(CFLAGS) $< -o $@
%.elf: $(LINKER_SCRIPT) $(OBJECTFILES)
mkdir -p $(BINDIR)
$(LIBUC_LD) -Map $(@:.elf=.map) $(LIBUC_LDFLAGS) $^ -o $@ $(LIBUC_BSP) $(LIBUC_LIBRARIES)
$(LIBUC_OBJDUMP) $(LIBUC_ODFLAGS) $@ > $(@:.elf=.dump)
$(LIBUC_SIZE) $@
%.bin: %.elf $(BIN_LIBS_DEPS)
$(LIBUC_OBJCOPY) $(LIBUC_CPFLAGS) -O binary $< $*.bin
@echo "BIN_LIBS_DEPS"
@echo $(BIN_LIBS_DEPS)
%.hex: %.elf
$(LIBUC_OBJCOPY) $(LIBUC_CPFLAGS) -O ihex $< $*.hex
%.a: $(OBJECTFILES)
mkdir -p $(TARGETINSTALLPATH)
mkdir -p $(HEADERSINSTALLPATH)
$(LIBUC_AR) rcs $@ $(OBJECTFILES) #$(LIBUC_AR) rcs $(TARGETINSTALLPATH)/$@ $(OBJECTFILES)
cp -f $(HEADERS) $(HEADERSINSTALLPATH)/