EmbDev.net

Forum: ARM programming with GCC/GNU tools make.exe: *** No rule to make target `all'. Stop.


von Zoran Arsovski (Guest)


Rate this post
useful
not useful
Hi,

I'm newbie in this field. I want to compile uSmartX with WinARM but I
got this following message:

> "make.exe" all
make.exe: *** No rule to make target `all'.  Stop.

> Process Exit Code: 2
> Time Taken: 00:01

This is my makefile for any case:

# Makefile for ARM target

# Define directories.
  uSMARTX_INC_DIR = ../../../inc/
  uSMARTX_SRC_DIR = ../../../src/
  uSMARTX_HAL_DIR = ../../hal/
  uSMARTX_HAL_INC_DIR = ../inc/

# Define programs.
  AR = arm-elf-ar
    COMPILE = arm-elf-gcc
    ASSEMBLE = arm-elf-gcc -x assembler-with-cpp
    REMOVE = rm -f
    COPY = cp
    MOVE = mv

# MCU name
  MCU = arm7tdmi

# Output format. Can be [srec|ihex].
    FORMAT = ihex

# Target file name (without extension).
  TARGET = libusmartx

# List C source files here.
  SRC =  $(uSMARTX_SRC_DIR)usmartx.c \
      $(uSMARTX_SRC_DIR)queue.c \
      $(uSMARTX_SRC_DIR)mailbox.c \
      $(uSMARTX_SRC_DIR)semaphore.c \
      $(uSMARTX_SRC_DIR)mballoc.c \
      $(uSMARTX_SRC_DIR)cycbuff.c \

# List Assembler source files here.
  ASRC = $(uSMARTX_HAL_DIR)hal_gnu.s

# Compiler flags.
  CPFLAGS = -c -g -O2 -Wall

# Assembler flags.
    ASFLAGS = -Wa,-ahlms=$(<:.s=.lst),--gstabs

# Linker flags (passed via GCC).
  LDFLAGS =

# Additional library flags (-lm = math library).
  LIBFLAGS =

# Define all project specific object files.
  OBJ  = $(SRC:.c=.o) $(ASRC:.s=.o)

# Define all listing files.
  LST = $(ASRC:.s=.lst) $(SRC:.c=.lst)

# Compiler flags to generate dependency files.
  GENDEPFLAGS = -Wp,-M,-MP,-MT,$(*F).o,-MF,.dep/$(@F).d

# Add target processor to flags.
     CPFLAGS += -mcpu=$(MCU) $(GENDEPFLAGS)
  ASFLAGS += -mcpu=$(MCU)
  LDFLAGS += -mcpu=$(MCU)

# Default target.
.PHONY : Lib
Lib: Clean $(TARGET).a clear_output

# Link: create ELF output file from object files.
.SECONDARY : $(TRG).elf
.PRECIOUS : $(OBJ)
%.a: $(OBJ)
  $(AR) rs $(TARGET).a $(OBJ)

# Compile: create object files from C source files.
%.o : %.c
  $(COMPILE) -c $(CPFLAGS) -I$(uSMARTX_INC_DIR) -I$(uSMARTX_HAL_INC_DIR)
$< -o $@

# Assemble: create object files from assembler files.
%.o : %.s
  $(ASSEMBLE) -c $(ASFLAGS) $< -o $@

# Target: clean project.
.SILENT : Clean
.PHONY : Clean
Clean :
  $(REMOVE) $(TARGET).hex
  $(REMOVE) $(TARGET).obj
  $(REMOVE) $(TARGET).elf
  $(REMOVE) $(TARGET).bin
  $(REMOVE) $(TARGET).map
  $(REMOVE) $(TARGET).obj
  $(REMOVE) $(TARGET).sym
  $(REMOVE) $(TARGET).lnk
  $(REMOVE) $(TARGET).lss
  $(REMOVE) $(OBJ)
  $(REMOVE) $(LST)
  $(REMOVE) $(SRC:.c=.s)

# Target clear output files
.SILENT : clear_output
.PHONY: clear_output
clear_output :
  $(RM)  $(uSMARTX_SRC_DIR)*.o
  $(RM)  *.o

# Include the dependency files.
-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)


# List assembly only source file dependencies here:

If someone can help me with this problem I will be very greatful.

Thanks in advance

von Stefan (Guest)


Rate this post
useful
not useful
I also see no line for target 'all'. Seems your "all" target is renamed
'Lib'. Do you try to make a library? Call make with 'make Lib'

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.