Создание makefile

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Аватара пользователя
picaro
новенький
Сообщения: 16
Зарегистрирован: 15.12.2007 02:40:24

Создание makefile

Сообщение picaro »

Вот поставил я себе free pascal и lazarus, сделал прогу и решил передать её товарищу.
У товарища Лазарь не ставиться - в "засраную" слаку поставить из сорцов что-то сложно, но у него есть фри паскаль.
Вопрос: как скомпилить мою прогу без лазаря, одним фрипаскалём?
Mirror
новенький
Сообщения: 49
Зарегистрирован: 22.05.2005 12:02:48
Откуда: Порту

Сообщение Mirror »

У меня есть подозрение, что если это и возможно, то с большими трудностями, так как всё равно придётся тащить с собой какую-то часть Лазаруса. :)
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

Дело не в Makefile, просто надо подтянуть все необходимые модули... Не такая уж и проблема.
Аватара пользователя
picaro
новенький
Сообщения: 16
Зарегистрирован: 15.12.2007 02:40:24

Сообщение picaro »

Меня интересует вот что: у меня есть и ФПК и Лазарь, как мне скомпилить прогу из командной строки?
Тащить куски Лазаря (исходники компинентов) легче чем маяться с его установкой.
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

Пример можно в DC посмотреть. Там все компилится через скрипт без запуска Лазаря. Ссылку можно в проектах форума посмотреть
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Есть в лазаре хорошая уилита - lazbuild
Вот она именно этим и занимается, т.е. компилирует из командной строки проект/пакет, не требуя запуска IDE.
Аватара пользователя
picaro
новенький
Сообщения: 16
Зарегистрирован: 15.12.2007 02:40:24

Сообщение picaro »

Padre_Mortius писал(а):Пример можно в DC посмотреть. Там все компилится через скрипт без запуска Лазаря. Ссылку можно в проектах форума посмотреть

Макфайл - это и есть скрипт для автоматической компиляции и сборки проекта.
Сорц Double Commander (если он имелся в виду) я так и не нашёл, но мне интересно чем они его (скрипт) делали, не руками же писали.

alexs писал(а):Есть в лазаре хорошая уилита - lazbuild
Вот она именно этим и занимается, т.е. компилирует из командной строки проект/пакет, не требуя запуска IDE.

А без Лазаря скомпилить (одним фри паскалём) не удасться?
Компоненты - этож исходные тексты, которые можно скинуть туда, где компилятор их найдёт и подцепит.
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

picaro писал(а):Сорц Double Commander (если он имелся в виду) я так и не нашёл

https://sourceforge.net/svn/?group_id=188452

ручками

Код: Выделить всё

#!/bin/bash 

# if you compile first time you must have "lazres" tools
# to create it execute "$lazpath/lazbuild $lazpath/tools/lazres.lpi"
# and change variable "lazpath" and "lcl"
# after it execute this script with parameter "all" at doublecmd dir
# "./_make.sh all" it create lrs file and build doublecmd 
# and you can comment last line and uncomment next to last to use lazbuild
#                                                 by Attid
# ToDo recompile component when use parameter "all"

#path to lazarus
lazpath=/root/Prog/lazarus
#widgetset gtk or gtk2
lcl=gtk2

if [ "$1" = "all" ]
then
  for LFM in `ls /at/project/doublecmd/*.lfm`
  do
    LRS=`echo $LFM | sed -e 's/\.lfm$/\.lrs/'`
    /home/at/lazarus/svn/tools/lazres $LRS $LFM
  done
fi

#$lazpath/lazbuild --widgetset=$lcl doublecmd.lpi
fpc doublecmd.lpr -S2cdgi -OG3 -g -gl -vewnhi -l -Ficomponents/KASToolBar/ -Ficomponents/KASToolBar/lib/i386-linux/ -Ficomponents/viewer/ -Fu$lazpath/components/jpeg/lib/i386-linux/ -Fucomponents/KASToolBar/lib/i386-linux/ -Fu$lazpath/components/synedit/units/i386-linux/ -Fu$lazpath/lcl/units/i386-linux/ -Fu$lazpath/lcl/units/i386-linux/$lcl/ -Fucomponents/viewer/lib/i386-linux/ -Fu$lazpath/packager/units/i386-linux/ -Fu. -odoublecmd -dLCL -dLCL$lcl


лазарь вроде умеет создовать майкфайл
опции компилятора-компиляция-создовать Makefile
правда работает или нет не скажу =)
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

picaro писал(а):Компоненты - этож исходные тексты, которые можно скинуть туда, где компилятор их найдёт и подцепит.

Тебе фактически всё равно прийдётся иметь сорцы лазаря (только папка IDE не будет нужна) - LCL никто не отменял :-).
Так что игра свечь не стоит - качай лазарус.
Аватара пользователя
picaro
новенький
Сообщения: 16
Зарегистрирован: 15.12.2007 02:40:24

Сообщение picaro »

лазарь вроде умеет создовать майкфайл
опции компилятора-компиляция-создовать Makefile
правда работает или нет не скажу =)

Я прежде чем спрашивать порылся в инете и нашёл, что макфайлы Лазарь может создавать только для пакетов, но не для проектов.
Может быть каким-нибудь сторонним средством?
ручками

Как я понял скрипт для использования на одной взятой машине (судя по путям).
Тебе фактически всё равно прийдётся иметь сорцы лазаря (только папка IDE не будет нужна) - LCL никто не отменял .
Так что игра свечь не стоит - качай лазарус.

А если я захочу каму-нибудь дать свою прогу для другого дистриба? Мне придётся в зависимостях писать Лазаруса?
Аватара пользователя
Alexx2000
постоялец
Сообщения: 490
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи
Контактная информация:

Сообщение Alexx2000 »

picaro писал(а):Как я понял скрипт для использования на одной взятой машине (судя по путям).


Просто в данном случае Лазарус стоит не в стандартных каталогах Unix, если он ставился из пакетов, то явно путь указывать скорее всего не надо (точно не скажу ибо из пакетов не ставил).

picaro писал(а):А если я захочу каму-нибудь дать свою прогу для другого дистриба? Мне придётся в зависимостях писать Лазаруса?


Если прога в исходниках, то думаю да...
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

picaro писал(а): Мне придётся в зависимостях писать Лазаруса?

Ну ты же ставиш в зависимостях fpc :lol:
былобы всё это в стандартных пакетах fpc - не нужен былбы тебе лазарь.
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

кстати, а можно как-нибудь сделать, чтобы пользоваться LCL отдельно от Lazarus'a? Чтобы в какой-нибудь Kate код набирать, а потом fpc скомпилить...
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Почему нет - пожалуста набирай :-).
Просто не очень удобно это. И как формы будеш ты рисовать?
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

в рантайме ^_^ Т.е. надо просто скопировать LCL а потом путь туда указать в fpc.cfg?
Ответить