LINUX.ORG.RU

emacs compile


0

0

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


Re: emacs compile

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

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

alphex_kaanoken ★★★ ()
Ответ на: Re: emacs compile от alphex_kaanoken

Re: Re: emacs compile

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

surg ()
Ответ на: Re: Re: emacs compile от surg

Re: Re: Re: emacs compile

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

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

alphex_kaanoken ★★★ ()

Re: emacs compile

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

anonymous ()
Ответ на: Re: emacs compile от anonymous

Re: Re: emacs compile

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

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

alphex_kaanoken ★★★ ()
Ответ на: Re: Re: emacs compile от alphex_kaanoken

Re: Re: Re: emacs compile

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

surg ()

Re: emacs compile

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

#############################################################################
# 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 ()

Re: emacs compile

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

KtaK ★★ ()
Ответ на: Re: emacs compile от NewComer

Re: Re: emacs compile

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

surg ()
Ответ на: Re: Re: emacs compile от surg

Re: Re: Re: emacs compile

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

anonymous ()
Ответ на: Re: Re: Re: emacs compile от anonymous

Re: Re: Re: Re: emacs compile

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

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

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

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

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

surg ()
Ответ на: Re: Re: Re: Re: emacs compile от surg

Re: Re: Re: Re: Re: emacs compile

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

anonymous ()

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

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

surg ()
Ответ на: Re: Re: Re: Re: Re: emacs compile от anonymous

Re: Re: Re: Re: Re: Re: emacs compile

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

surg ()
Ответ на: Re: Re: Re: Re: emacs compile от surg

Re: Re: Re: Re: Re: emacs compile

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

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

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

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

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

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

hbee ★★★★ ()
Ответ на: Re: Вопрос в догонку от hbee

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

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

surg ()

Re: emacs compile

ховно этот ваш имакс :) - нихрена 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 ()
Ответ на: Re: emacs compile от anonymous

Re: Re: emacs compile

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

flamer ()
Ответ на: Re: Re: emacs compile от flamer

Re: Re: Re: emacs compile

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

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

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

anonymous ()
Ответ на: Re: emacs compile от anonymous

Re: Re: emacs compile

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

Ты гонишь!

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