The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Создание автоматизированного Make-сценария. (makefile example)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: makefile, example,  (найти похожие документы)
Date: Mon, 21 Jan 2002 21:44:37 +0000 (UTC) From: Anton Kovalenko <[email protected]> Newsgroups: fido7.ru.linux Subject: Создание автоматизированного Make-сценария. AP> Hy это как сказать. Мейкфайл-то он не генеpит. Ну вот. Зачем тебе генерить мейкфайл? Или ты считаешь, что туда надо прописывать каждый файл в твоем проекте? Вот тебе шаблон: --- #!/usr/bin/make -f SOURCES := $(wildcard *.c) OBJECTS = $(SOURCES:.c=.o) PROJNAME = $(notdir $(PWD)) BINARY= $(PROJNAME) $(BINARY): $(OBJECTS) $(CC) $(LDFLAGS) -o $@ $(OBJECTS) # а здеся мы генерим зависимости от заголовков include $(SOURCES:.c=.d) %.d: %.c gcc -MM -MG $< \ | sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \ [ -s $@ ] || rm -f $@ clean: rm -f *.d *.o .PHONY: clean # дальше было много интересного, но уже лично для меня: # автогенерация заголовков, документации и т.д. --- Что же мы видим, товарищи, на примере этой модели? А видим мы Makefile, который можно взять и положить в любой каталог со свалкой исходников. Имя бинарника будет совпадать с именем каталога такого "проекта". Дополнительные библиотеки и каталоги для include можешь вписать в начало файла ( LDFLAGS= -lлиба -lеще CFLAGS= -Iкаталог -Iеще ). Этим, собственно, "подстройка" под новый проект на первых порах и ограничится. Теперь вопрос: что тут генерить? То есть среда разработки должна догадаться, что какая-то либа или .h-ка лежат в /home/vasya/test/libs/new/(libs|include)? Покажи мне такую среду, и я откушу себе голову. А все остальное хотя бы вышеприведенный Makefile (мое наколенное творчество эпохи раннего rtfm'а) "подхватит" сам. Если ты собираешься писать что-нибудь сложнее того, для чего такого "мейкфайла" хватает, тогда все равно придется rtfm: info make, info autoconf, info libtool. Ну и, конечно, научиться программировать. И, когда у тебя make poslat_nachalniku_ishodnik будет делать то, что отражено в имени target'а, заодно решится проблема, чем лучше работать с файлами: с файлами лучше _вообще не работать_, на это есть система. А если приходится гонять файлики вручную, без разницы, чем ты это делаешь: mc или cp, mv, rm... Хочется работать по-старинке - возьми какую-нибудь ide типа anjuta, vide или (censored) kdevelop, и генери себе makefile сколько угодно. Только не пытайся потом доказывать, что это, типа, удобнее - над тобой смеяться будут... -- Удачи! Антон Коваленко /* http://softlenin.chat.ru */.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру