This is my Makefile:
----------------------------------------------------------------
CROSS_PREFIX = mips-elf-

CC        = $(CROSS_PREFIX)gcc
LD        = $(CROSS_PREFIX)ld
OBJCOPY   = $(CROSS_PREFIX)objcopy
OBJDUMP   = $(CROSS_PREFIX)objdump

SRCDIR = src/a src/b src/c

VPATH = $(SRCDIR)

CC_OPTS =

SRC_C  = $(foreach dir, $(SRCDIR), $(wildcard $(dir)/*.c))
SRC_S  = $(foreach dir, $(SRCDIR), $(wildcard $(dir)/*.S))
SRC    = $(SRC_C) $(SRC_S)

OBJ_C  = $(foreach file, $(notdir $(patsubst %.c, %.o, $(SRC_C))), $(file) )
OBJ_S  = $(foreach file, $(notdir $(patsubst %.S, %.o, $(SRC_S))), $(file) )
OBJ    = $(OBJ_C) $(OBJ_S)

#TARGET = AAXX.a

.PHONY : all clean

all: $(TARGET)

$(TARGET): $(OBJ)
        mips-elf-ar rcv $@ $(OBJ)

%.o: %.c 
        $(CC) $(CC_OPTS) -c -o $@ $<

%.o: %.S
        $(CC) $(CC_OPTS_A) -c -o $@ $<

clean:
        rm -f $(TARGET) *.o
        
TARGET = AAXX.a
----------------------------------------------------------------

And I run `make'
$make
make: Nothing to be done for `all'.

My expected target AAXX.a is not produced. I think `make' resolve the variable 
TARGET as null when it checks the target `all', so that it thinks nothing to be 
done for `all'.

Must I place the variable TARGET assignment before the target `all' in the 
Makefile?



_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to