LINUX.ORG.RU

Makefile


0

0

Написал я прогу.
Необходимо написать install(make).

У меня один бинарник. В папке пользователя должен быть создан каталог .wdf

Из рабочей папки должен быть скопирован каталог image в ~/image

Как должно выглядеть это?

Makefile мне генерировал qmake (Designer), по этому его формат для меня темный лес.


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

А как программа узнает где ты ее компилировал если запущена она из /usr/bin?

С чего тогда вдруг OO засирает папку /usr/share/OpenOffice-1*?

Не-е-ет. Это должен сделать makefile.

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

Получить в программе путь до HOME (getenv("HOME")) для текущего юзверя и добавить к этому пути ./wmf или что там тебе надо.

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

Отправь её в /usr/share, пусть программа оттуда копирует.
Скопировать бинарник в /usr/bin?
cp (или install) binary /usr/bin. Пиши это в Makefile

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

Ты хочешь сказать что пользователь сам должен сам копировать папки, файлы программы?

А зачем тогда makefile? Давайте ручками все компилировать.

О... А ядро тоже можно ручками компилировать!!!

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

что значит рабочая папка ? если я запускаю /usr/bin/prog из ~, то рабочая папка = ~, если из /mnt/win_c/windows/ - то /mnt/win_c/windows/. У тебя чё, везде будет каталог images ? :)

Навскидку, надо проинсталлить твою прогу ВМЕСТЕ с каталогм изображнений (images), скажем, в /usr. Когда запускаешь прогу, проверяешь (программно), есть ли ~/images. Если нет, то копируешь /usr/share/proga/images/ в ~/images и продолжаешь загрузку. Легче всего это сделать скриптом

Формально он будет выглдеть так:

prog.sh

ЕСЛИ существует ~/images ПЕРЕЙТИ на ВЫХОД
ИНАЧЕ mkdir ~/images && cp /usr/share/prog/images/* ~/images

ВЫХОД:
/usr/bin/prog-real

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

Человек скачал мою прогу в архиве, распоковал и видит:
./image
./Makefile
./main.cpp
...
./data.cpp

Скомпилировал и решил установить - make install
Бинарник копируется в /usr/bin
Папка image копируется в ~/.wdf (создается соответствующая папка)

Если я не скопирую папку, где ее будет искать бинарник?

Разумно? О, да, конечно!

Так вот, как что-то куда-то копировать, создавать папки в makefile?

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

ты притворяешься?

бинари в {prefix}/bin/

картинки в {prefix}/shared/Super_Proga/

и программно делаешь, что надо: можешь папки создавать у запустившего узера в хоумдире, можешь туда копировать, что надо...

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

Я же написал тебе: добавляй в Makefile cp proga /usr/bin.

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

> Бинарник копируется в /usr/bin Папка image копируется в ~/.wdf (создается соответствующая папка)

А что делает прога, когда её запускает другой пользователь?

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

ты вообще прочитал то, что я написал ? При каждом запуске прога будет проверять, есть ли ~/.wdf, если нет - то создавать его и копировать туда что нужно из твоих также УСТАНОВЛЕННЫХ файлов.

А вообще, к проге надо прикручивать automake и конфигурировать на уровне configure.ac и Makefile.am - так удобнее.

Как правильно заметил watashiwa_daredeska, если пользователей >1, то копировать во время устновки в ~/.wdf не получиться. Надо делать, как я описал выше.

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

> Точно! Спасибо.
> configure не хочу писать. Запарно. Лучше пусть в /usr все кидает.

Типа "линух рулит остальное сукзь"?

Ты бы хотя бы $PREFIX там сделал, что ли.

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