LINUX.ORG.RU

emacs compile


0

0

Используется emacs+ecb. Как емаксу сказать, что make-файл надо искать не в текущей директории, а в другом месте (корне проекта)?


либо когда он спрашивает опции к мейку указать (если твой файлец выше уровнем) -f ../Makefile

либо в ecb перейти в нужную директорию и там сделать мейк - можно как то по другому, но Я лично делаю именно так, мне все равно иногда приходиться править Мейкфайл.

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

а если структура исходников разлапистая? Считаь на скока уровней переходить выше? Каждый раз переходить в окно с деревом там выбирать и тока после этого запускать на компиляцию? Ужель не существует более элегантного способа?

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

>Ужель не существует более элегантного способа?

существует наверняка просто Я им не пользуюсь - и не могу сказать, пользуюсь как написал, надо смотреть документацию на досуге.

alphex_kaanoken ★★★
()

Не знаю как с ecb, я его не использую, но в emacs я обычно делаю в первый раз make из корня проекта (есть у emacs такая комманда cd кстати), а следующие разы делаю make только из окна compile, в котором рабочая директория всегда корень проекта. Вроде бы вполне удобно :-)

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

>Не знаю как с ecb, я его не использую, но в emacs я обычно делаю в первый раз make из корня проекта (есть у emacs такая комманда cd кстати), а следующие разы делаю make только из окна compile, в котором рабочая директория всегда корень проекта. Вроде бы вполне удобно :-)

так далеться и в ecb - просто имелось в виду нечто иное видимо.

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

Ок. Спасибо, это вариант. И, что немаловажно, вполне себе рабочий ;) Но я человек избалованный всякими IDE, емакс еще только-только начинаю. И мне как-то непривычно делать это лишние телодвижение -- переключение в окно компиляции. Нельзя ли как-нибудь обойтись без него?

surg
() автор топика

Если у вас проект многокомпонентный (скажем, несколько бинарей, исходныки которых разложены по своим поддиректориями), то разумнее будет завести свой макефайл на каждый компонент, а в корне проекта создать макефайл верхнего уровня типа:

#############################################################################
# Makefile for building targets in sub directories.
#############################################################################

ifeq ($(PGSQLDIR),)
PGSQLDIR = /usr/local/pgsql
endif

ifeq ($(QTDIR),)
QTDIRDIR = /usr/local/qt
endif

export INSTALLDIR PGSQLDIR QTDIR PROJECT_DIR

SUBDIRS = component1 \
compunent2 \
compunentn

all:
$(MAKE) $(SUBDIRS)

$(SUBDIRS): FORCE
if [ -d $@ ]; then cd $@ ; $(MAKE); fi

clean:
for i in $(SUBDIRS); do ( if [ -d $$i ]; then cd $$i ; $(MAKE) $@; fi; ) ; done

install:
for i in $(SUBDIRS); do ( if [ -d $$i ]; then cd $$i ; $(MAKE) $@; fi; ) ; done

FORCE:

8<-----------------------------------------------------

И тогда можно будет, работая над каким-то компонентом, пересобирать только его.

NewComer
()

Я в таких случаях заменяю стандатртную комманду "make -k" на "cd /my-dir; make"

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

Нет в проекте нет [пока] разных компонент, а посему мейк-файл один. Вопрос в том, как находясь в окне редактирования (не переходя в окно компиляции) заставить мейкаться файл, который лежит в корне проекта.

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

Наверное можно написать макрос emacs для этого и подвесить на какое-нибудь сочетание клавиш. Вариант KtaK тоже вполне хорош. А вообще, я делаю всё в emacs рефлексивно и меня несколько нажатий на клавиши уже не напрягает, да и пальцы тренируются ;-)

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

- как узнать пользователя windows?

- По раскачанному указательному пальцу.

- А пользователя unix?

- По раскачанным десяти пальцам :)

Я-то человек избалованный всякими IDE, и мне рефлексивно не хочется. Вот покопаюсь в доках и сделаю, как завещал KtaK.

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

А в emacs без пальцевых рефлексов вообще сложновато жить :-) Может быть вам лучше попробовать kdevelop? Очень хорошая вещь для людей избалованных msvc и borland :-)

anonymous
()

Вопрос в догонку

Есть ли какие стандартные средства для быстрого перекнючения исходник/хидер ?

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

Не могу внятно сформулировать чем, но оно мне не понравилось. А избалован я вовсе не msvc (ни разу в жизни не видал) и borland (со времен паскаля не прикасался), а эклипсом и идеей. А выучить пользоваться емаксом -- давняя мечта :) Придется привыкать ко всем его распальцовкам. Карма... :)

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

Вообще-то это юниксовая традиция - по Makefile на директорию, включая дае пустые и служебные. Зачем оно так надо - читаем Autobook.

flamer
()
Ответ на: Вопрос в догонку от surg

>Есть ли какие стандартные средства для быстрого перекнючения исходник/хидер ?

Можно посмотреть здесь: http://www.hendawi.com/emacs/sourcepair.el

Я использую собственные функции, т.к. у меня в проектах обычно сложная структура каталогов, вроде project/src/subsystem/include...

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

пасиба за наводку, пока мне вполне достаточно этого

surg
() автор топика

ховно этот ваш имакс :) - нихрена out of the box ne rabotaet, каждый должен по пол года потратить чтоб работать начать, а когда он все настроит уже и слезать как то неприятно (ведь стоко времени поткачено на настройку ecb, gnus,auc-texa (font-lock faces + for all modes that have spcific faces like jdb,auctex), personal keyb shortcuts , personal editing macros ( in elisp)... не говоря уже о проблеммах которые возникают у льдей которым не повезло захотеть настроить (X)Emacs под винду(нормальро текст рэндэрит толко XEmacs) ...(отсутствие (out of the box) стандартных unix утилит (в том числе grep etags ispell(есть aspell но он без напильника под винду не работает, и словарь для него в koi8r а перекодировки из cp1251 (out of the box) нету ... + гемор по перенастройке всего что касается compile/build + обработка error'ов от майкросовтовского компилятора и еще много чего - всего не перечислишь вот jedit другое дело - всё работает, но от bean shell настроение портится после elisp'а может кому не лень написать новый кросс платформенный редактор на основе(к примеру) с + ml, чтоб с high extendibililty/cofigurability и predefined configurations for various platforms/compilers/tex-distributions ? :))))))

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

Ты таки евришь в возможность "predefined configurations"? Люди все разные. Вот если бы продавались preconfigured автоматы для бриться - то все стали бы одинаковыми...

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

в имаксе и так есть one large predefined configuration которая в него намертво вбита, все юзают С-x 1 С-x 2 С-x f С-x ... M-x C-k C-w ...

так что все и так одинаковые, находятся индивиды которум удаётся к примеру С-x ... на С-q поменять, или что еще сложней кросплатформенно элиспом заставить (икс)имакс в режиме русской раскладки shortcuts понимать

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

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

"гемор по перенастройке всего что касается ... обработка error'ов от майкросовтовского компилятора"

Ты гонишь!

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