LINUX.ORG.RU

Про стой Makefile


0

1

Обычной выглядит так:

CC=gcc
CFLAGS=-I.
DEPS = hellomake.h

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

hellomake: hellomake.o hellofunc.o 
	gcc -o hellomake hellomake.o hellofunc.o -I.

как сделать так что бы имя файла можно было задавать из вне? Тоесть у меня 10 маленьких программ и не лепить же им свой мейкфайл.


Ответ на: комментарий от tensai_cirno

Ecть 10 файлов: 0.cc 1.cc 2.cc ... 9.cc

По своей структуре они одинаковы(include из одного и тогоже места). Нужен маkefile такой чтобы он собирал один из 10 и при этом любой.

Andaril
() автор топика
Ответ на: комментарий от Andaril

да, он самый, а вот к нему интерактивное пособие по использованию

shty ★★★★★
()
Ответ на: комментарий от Andaril

Собирал любой - это как, рандомно?

Какие зависимости у твоих файлов [09].cc?

Если зависимости одинаковые, то делай как-нибудь вот так:

[code] 1 2 3 4 5: dep.cc $(CXX) -o $@ $@.cc $< [/code]

И дальше make 1, make 2, make 3, make 4

anonymous
()
Ответ на: комментарий от anonymous

check out mamaz new makefail, kidz!

CC=g++
CFLAGS=-I$(INCLUDES_CPP)
DEPS=Estudiant.o
OBJ=$(OBJETOS_CPP)

%.o: %.cpp
	$(CC) -c  $^ $(CFLAGS)


%.exe: $(BLA).o
	$(CC) -o $(BLA).exe $(BLA).o $(OBJ)/$(DEPS)

run: $(BLA).exe
	./$^ < dat > sort && cat sort

.PHONY: clean

clean:
	rm -f $(BLA).o $(BLA).exe sort
единственное надо будет tee юзать вместо > и dat сделать что бы для всех файлов один был.

Andaril
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.