![]() |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Поделиться |
![]()
Сообщение
#31
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 228 Регистрация: 11.7.2010 Вставить ник Цитата Пользователь №: 1867 Страна: Россия Город: Москва Пол: Муж. Репутация: ![]() ![]() ![]() |
... Покопаюсь еще немного. Может "штатные" Makefile повыкидываю и свой напишу. ... Написал. Размер Makefile уменьшился более чем в 10 раз. ![]() Теперь там можно делать: 1. make [transgui] ...параметр необязательный - (дефолтный). 2. make clean 3. make install [путь] ... тут по дефолту в /usr/... 4. make uninstall (чистое и полное удаление из системы) (3 и 4 из под рута, естественно). Должно сработать и в Дебиане (проверял аналогичное на др. программах). Фрагмент спека: Код ... %build make %install cp %SOURCE1 transgui.desktop cp %SOURCE2 transgui.1 make install DESTDIR=%buildroot%_prefix ... НУ и т. д. ЗЫ. To Drool. Если будешь софтину поддерживать - пришлю сорцы на мыло. Может пригодится. Мало-ли еще что-то на паскакале попадется, где сборка пакетов не предусмотрена... ![]() |
|
|
![]()
Сообщение
#32
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 1764 Регистрация: 28.7.2010 Вставить ник Цитата Из: Берислав, Херсонщина Пользователь №: 1879 Страна: Украина Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Так приложи его сюда, не потеряется.
-------------------- |
|
|
![]()
Сообщение
#33
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1479 Регистрация: 7.6.2011 Вставить ник Цитата Пользователь №: 2118 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Написал. Размер Makefile уменьшился более чем в 10 раз. ![]() Хм, а может автору закинуть, чтобы применил в апстриме ? -------------------- Пакеты на яндекс.диске
|
|
|
![]()
Сообщение
#34
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 228 Регистрация: 11.7.2010 Вставить ник Цитата Пользователь №: 1867 Страна: Россия Город: Москва Пол: Муж. Репутация: ![]() ![]() ![]() |
Хм, а может автору закинуть, чтобы применил в апстриме ? Пожалуй не стоит. Т. к. софтина кроссплатформенная, а мой Makefile будет работать только под Linux (проверял на ALT-e и Debian-e, других у меня нет). Тут надо делать как в DC сделано. Там автор написал сборочные скрипты под всё, причем весьма грамотные, уже несколько лет не корректирует по большому счету. Т. е. с пониманием относится к пользователям. В отличие от ... ![]() Да и спек там весьма простой. Хотя поначалу были и там проблемы. Насколько я помню Шенцев с ними намучался, когда первый раз собирал DC (где-то в рассылке читал длинный тред). ЗЫ. Сделаю как Гена посоветовал. Положу сорцы transgui на киевский сервер (это хороший пример того - как неплохую софтину можно плохо приготовить). А в этой теме напишу небольшой хелп, как это понимать и на что обращать внимание при сборке паскальных программ. Там есть некоторые тонкости. Только поэкспериментирую еще немного. ![]() Сообщение отредактировал NotHAM - 7.1.2014, 18:21 |
|
|
![]()
Сообщение
#35
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 228 Регистрация: 11.7.2010 Вставить ник Цитата Пользователь №: 1867 Страна: Россия Город: Москва Пол: Муж. Репутация: ![]() ![]() ![]() |
... Только поэкспериментирую еще немного... Поэкспериментировал. ftp://ftp.linux.kiev.ua/pub/Linux/ALT/peo...kages/transgui/ Там лежат 2 пакета с исходниками - *.1.src.rpm и *.2.src.rpm. 1-й с замененными Makefile и transgui.lpi, 2-й с дополнительным скриптом install.sh. Просматриваются 3 варианта сборки пакета transgui. 1. Подмена Makefile и transgui.lpi. Используется lazbuild (фактически после подготовки тут будет вызван fpc с параметрами, которые ему передаст лазарь в файле transgui.lpi). Ключевые параметры оптимизации кода: -CX Умная компоновка при генерации кода (полезно почти всегда). -O3 (O1,O2) 1-быстро и дружественно к отладчику, 2-плюс быстрые оптимизации, 3-плюс медленные оптимизации. В transgui.lpi передан ключ О3. -Xs Вырезать символы из исполняемого файла. -XX Умная компоновка при сборке, полезна всегда. -g Генерация отладочной информации для GDB (в разы увеличивает размер бинарника), поэтому отключен. Поскольку сам lazbuild эти параметры не понимает, их нужно передать через *.lpi, потому его и подменял (новый сгенерирован в Lazarus-е). Примечание: в Makefile вызов strip можно отключить (убрать, закомментировать), так как всё что нужно - передано сборочными ключами. ДОСТОИНСТВА варианта: - Очень удобно для отладки. Можно отлаживать даже в хомяке, если в системе установлены fpc и Lazarus. - Работают команды make clean и др. (см. в одном из предыдущих постов). А также make help (про неё там забыл упомянуть). - Можно сразу установить в систему и попробовать без сборки пакета, а если что не так - сразу удалить без всяких там apt-ов/синаптиков. - Makefile можно как угодно редактировать, там всё просто и понятно (должно быть! ![]() НЕДОСТАТКИ. - Работает только под Линуксом (правда не только под АЛЬТом). - Размер бинарника чуть великоват (4.32 МБ), хотя это и не принципиально (см. ниже). - Серьезное вмешательство в исходники. - Не знаю насколько это годится для сложных проектов. 2. Написание инсталляционного скрипта. Что и было сделано на базе того-же Makefile. Тут все работает как задумано автором (никаких подмен нет). А именно: Используется не lazbuild (fpc), а ppc386 с параметрами -O2 -g- -CX -XX -Xs, которые передаются через "штатный" Makefile, сгенерированный из Makefile.fpc c помощью FPCmake. ДОСТОИНСТВА. - Бинарник чуть поменьше (4.24 МБ), возможно потому, что в процессе компиляции многократно вызывается lazres над файлами *.lrs. См. "нечитабельный" Makefile и лог сборки. (Чтобы посмотреть лог - нужно собрать в хашере, или ещё где либо). - Никакого вмешательства в исходники нет. Скрипт подкладывается "с боку". - Должен работать не только в АЛЬте, а и в др. Линуксах, где такие-же установочные каталоги (например в Федоре и Дебиане - не проверял). - Скрипт просто редактировать под себя (если руки не кривые). - Годится для сложных проектов. НЕДОСТАТКИ. - Работает только под Линуксом (правда должен не только под АЛЬТом). - Крайне неудобен в отладке (почти всё пересборкой проверяется). Это проблема не скрипта а Makefile, в котором не предусмотрен даже make install (про остальное молчу). - Редактировать Makefile низя, только через правку Makefile.fpc с последующей перегенерацией, что весьма хлопотно. 3. Всё делать в спеке, как это сделал Гена. Практически совпадает с вариантом 2, но без скрипта. ДОСТОИНСТВА. Те же что и в 2 (кроме тех, что касаются скрипта). НЕДОСТАТКИ. Те же. Плюс ... - Работает только под АЛЬТом. Другим линуксоидам сначала нужно разучивать что означают АЛЬТовские макросы из спека. ЗЫ. Надеюсь что Гена будет не в претензии за то, что в спеках в качестве майнтейнера я оставил его, да и в changelog-ах ничего не отразил. И еще - исходники перепаковал в tar-архивы, как это в АЛЬТе принято. Сообщение отредактировал NotHAM - 8.1.2014, 21:38 |
|
|
![]()
Сообщение
#36
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 1764 Регистрация: 28.7.2010 Вставить ник Цитата Из: Берислав, Херсонщина Пользователь №: 1879 Страна: Украина Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Заметил косяк в desktop-файле - нет перехвата magnet-ссылок и торрент-файлов. Добавил это дело, отправляю сборку в сизиф/t7/t6. Ну и заодно почистил spec-файл.
-------------------- |
|
|
![]()
Сообщение
#37
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 228 Регистрация: 11.7.2010 Вставить ник Цитата Пользователь №: 1867 Страна: Россия Город: Москва Пол: Муж. Репутация: ![]() ![]() ![]() |
А СС= ... и СРР= ... таки оставил.
![]() Ну не нужно это там. Это-же Паскаль. Хотя в данном случае это всёравно игнорируется. ![]() |
|
|
![]()
Сообщение
#38
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 1764 Регистрация: 28.7.2010 Вставить ник Цитата Из: Берислав, Херсонщина Пользователь №: 1879 Страна: Украина Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
От, беда
![]() ![]() ![]() -------------------- |
|
|
![]()
Сообщение
#39
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 228 Регистрация: 11.7.2010 Вставить ник Цитата Пользователь №: 1867 Страна: Россия Город: Москва Пол: Муж. Репутация: ![]() ![]() ![]() |
Это разве беда ???
Вот у меня со скриптом была беда - так беда! ![]() Сначала забыл его в /gear/rules прописать, правда быстро сообразил (после первого же облома). Потом собираю - не собирается. Ошибка в скрипте, который автоматически генерится в %buildroot для сборки пакета. Ищу по номеру строки - мой скрипт не вызывается (ошибка - нет его). Чудеса. ![]() Иду в shell - там скрипт есть. Запускаю руками - всё работает, всё правильно раскладывает. Иду обратно - опять облом. Твою мать. И тут до меня медленно так доходит - я ведь в спеке забыл при вызове скрипта прописать ./<скрипт>, т. е точку со слэшем. Руками пишу, а в спеке забыл. ![]() От расстройства плюнул и пошел в машине лампочку в фаре менять. И что ты думаешь - умудрился её поставить кверху ногами (ближний свет начал работать как дальний). И ведь загнал же, Невзирая на то что там пазы есть, и пружину сжал (правда шла почему-то туговато). Вот это была беда. ![]() Назавтра поправил ... ЗЫ. Прошу сильно не ржать. ![]() |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.8.2025, 4:07 |