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
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
Log in with Google account
No account? Register here.