Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > GNU toolchain > помогите разобраться с makefile


Автор: daemonaz 16.2.2012, 12:18
Дан вот такой makefile и плюс исходники на си с либом, Мне хотелось бы чтобы makefile сам создавал папки в случае их отсутствия, например obj, bin, elf, а также нужно чтобы объектные файлы *.o создавались в нужной папке /OBJ, что нужно поправить в makefile? Спасибо 

Код


include Make.params

BIN= bin
ELF= elf
OBJ= obj

# Simple build rules

.c.o:
# -I directory of includes
    $(CC) -c $(ACTUAL_CFLAGS) -I$(PREFIX)/include $*.c

# -L directory of libraries
.o:
    $(CC) $(ACTUAL_LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld $*.o -o $@

APPS= my_first_app

all: $(APPS)

my_first_app: my_first_app.o
    $(CC) $(ACTUAL_LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld $^ -o ${ELF}/$@.elf
    arm-eabi-objcopy --strip-debug --strip-unneeded ${ELF}/$@.elf -O binary ${BIN}/$@.bin

clean:
    rm -f *.o *.elf
    rm ${BIN}/*
    rm ${ELF}/*


Автор: boostcoder 16.2.2012, 17:00
как-то так:
Цитата

include Make.params

BIN= bin
ELF= elf
OBJ= obj

OBJDIR= somedir

# Simple build rules
# -I directory of includes
# -L directory of libraries
.c.o:
    $(CC) -c $(ACTUAL_CFLAGS) -I$(PREFIX)/include $*.c

.o:
    $(CC) $(ACTUAL_LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld $*.o -o $(OBJDIR)/$@

APPS= my_first_app

all: make_paths $(APPS)

my_first_app: $(OBJDIR)/my_first_app.o
    $(CC) $(ACTUAL_LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld $^ -o ${ELF}/$@.elf
    arm-eabi-objcopy --strip-debug --strip-unneeded ${ELF}/$@.elf -O binary ${BIN}/$@.bin

make_paths:
    mkdir ...
    mkdir ...

clean:
    rm -f *.o *.elf
    rm ${BIN}/*
    rm ${ELF}/*


не проверял.

Автор: destrojan 9.3.2012, 13:02
http://linux.yaroslavl.ru/docs/prog/gnu_make_3-79_russian_manual.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)