Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Моя новая софтина 
:(
    Опции темы
GrayCardinal
Дата 10.9.2008, 09:46 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 18
Всего: 58



День добрый !
После нескольких лет мудоханья с automake/Scons/AAP решил своять свою прогу для линковки/сборки. Писано на Ruby.
http://sf.net/projects/rubymake

Цитата

== RubyMake

Install process is very simple. Just copy all .rb files to "/usr/lib/ruby/<version>" directory.

To start copy ./rmake_sample file to the directory with project (name - "rmake") and edit it.
It's required to specify project's name and list of source files.

All this can be done in initialize method. Then decomment required build type.
        build_binary
        build_shared
Build executable/shared library accordingly.
        build_binary_oneshot
        build_shared_oneshot
Skip compilation and build executable/shared library accordingly (link at once).

Next make file executable:
$ chmod a+x ./rmake

After this following commands will be avaible
$ ./rmake <release | debug | all>

Build release, debug or both versions. If there are object files only changed files are compiled. 
If "@threads = N" specified, application will use N threads for compilation.

$ ./rmake pack
Archive current directory to <name-date>.tar.bz2

$ ./rmake cleanALL
Remove ./debug and ./release

© Oleg Puchinin 2008
[email protected]



Это сообщение отредактировал(а) GrayCardinal - 21.12.2008, 14:50


--------------------
PM MAIL WWW   Вверх
pythonwin
Дата 10.9.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 2
Всего: 36



GrayCardinal, а что эта прога делает и чем она лучше аналогов?
PM WWW GTalk Jabber   Вверх
Mayk
Дата 10.9.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 1
Всего: 134



Цитата(pythonwin @  10.9.2008,  17:28 Найти цитируемый пост)
GrayCardinal, а что эта прога делает и чем она лучше аналогов? 

Конкретный аналог - Rake


Код

file "prog" => ["a.o", "b.o"] do |t|
  sh "cc -o #{t.name} #{t.prerequisites.join(' ')}" 
end


Штуки типа FileList позволяют здорово экономить время. 


GrayCardinal, просьба покажи пример файла который
1) из каталога src выбирает все *.g файлы
2) на каждый запускает cocor src/$*.g -o generated/$*.cpp  [простите мой makefile'овский акцент] 
3) после этого делает выбирает все *.cpp файлы из src/ и generated/
4) компилирует их и ложит полученные .o в obj/
5) собирает .o и делает из них bin/program 





--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
GrayCardinal
Дата 10.9.2008, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 18
Всего: 58



Прога компилит и линкует Си/Си++ проги. Не факт что чем-то лучше, но мне ТАК больше нравится smile

Mayk
smile Мосты строить прога пока не умеет smile А рака понять я так и не смог. Хм. Как перечисленные действия были бы на других прогах ? 



--------------------
PM MAIL WWW   Вверх
Mayk
Дата 10.9.2008, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 1
Всего: 134



Цитата(GrayCardinal @  10.9.2008,  19:40 Найти цитируемый пост)
Как перечисленные действия были бы на других прогах ? 

Покажу на rake. вместо программ вызываеццо echo  smile 
Код

require 'rake/clean'
OBJECTS=FileList[]
GENERATED_SOURCE=FileList[]
GRAMMARS=FileList["grammars/*.g"]
SOURCE=FileList["src/*.cpp"]
GENPATH="generated/"
OBJPATH="obj/"
EXEPATH="bin/program"

# replace path and extension for string
def repPathExt(original, newPath, newExt)
    return original.sub(/.*\/([^.]*).*/,"#{newPath}\\1#{newExt}")
end

# create rules for grammars

GRAMMARS.each do |fn|
    target = repPathExt(fn, GENPATH, ".cpp")
    GENERATED_SOURCE.include(target)
    file target => [fn] do
        sh "echo COCOR #{target} | tee #{target}"
    end
end
ALL_SOURCE=FileList[GENERATED_SOURCE, SOURCE]

# create rules for .objs
ALL_SOURCE.each do |fn|
    target = repPathExt(fn, OBJPATH, ".o")
    OBJECTS.include(target)
    file target => [fn] do
        sh "echo GCC #{target} | tee #{target}"
    end
end

file EXEPATH => OBJECTS do |t|
    sh "echo GCC -O#{EXEPATH}  #{t.prerequisites} | tee #{EXEPATH}"
end

task :default => [EXEPATH]

CLEAN.include(GENERATED_SOURCE)
CLEAN.include(OBJECTS)
CLEAN.include(EXEPATH)

Цитата

21:28:dvl:~/src/raketest$ find
.
./bin
./obj
./src
./src/ooo.cpp
./grammars
./grammars/2.g
./grammars/a.g
./Rakefile
./generated
./.Rakefile.swp
21:28:dvl:~/src/raketest$ rake
(in /media/disk/src/raketest)
echo COCOR generated/2.cpp | tee generated/2.cpp
COCOR generated/2.cpp
echo GCC obj/2.o | tee obj/2.o
GCC obj/2.o
echo COCOR generated/a.cpp | tee generated/a.cpp
COCOR generated/a.cpp
echo GCC obj/a.o | tee obj/a.o
GCC obj/a.o
echo GCC obj/ooo.o | tee obj/ooo.o
GCC obj/ooo.o
echo GCC -Obin/program  obj/2.o obj/a.o obj/ooo.o | tee bin/program
GCC -Obin/program obj/2.o obj/a.o obj/ooo.o
21:28:dvl:~/src/raketest$ rake
(in /media/disk/src/raketest)
21:28:dvl:~/src/raketest$ touch grammars/2.g 
21:28:dvl:~/src/raketest$ rake
(in /media/disk/src/raketest)
echo COCOR generated/2.cpp | tee generated/2.cpp
COCOR generated/2.cpp
echo GCC obj/2.o | tee obj/2.o
GCC obj/2.o
echo GCC -Obin/program  obj/2.o obj/a.o obj/ooo.o | tee bin/program
GCC -Obin/program obj/2.o obj/a.o obj/ooo.o

прошу обратить внимание на то что правила формируются программой на лету. 
добавить новые правила - элементарно. а это не редкая ситуация имхо.  
в rake'е есть ещё что-то наподобие gmake'овского %.o: %.cpp; но йа его не осилил.  smile 


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Lazin
Дата 11.9.2008, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 1
Всего: 154



vellum smile 
PM MAIL Skype GTalk   Вверх
GrayCardinal
Дата 11.9.2008, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 18
Всего: 58



Lazin
В топку питон... но софтяну изучу smile


--------------------
PM MAIL WWW   Вверх
pythonwin
Дата 11.9.2008, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 2
Всего: 36



Цитата(GrayCardinal @  11.9.2008,  12:50 Найти цитируемый пост)
В топку питон...

странно от тебя такое слышать :(
PM WWW GTalk Jabber   Вверх
GrayCardinal
Дата 21.12.2008, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 18
Всего: 58



А вот английский вариант доки. Спасибо powerfox'у !  smile  (см начало) smile


Это сообщение отредактировал(а) GrayCardinal - 21.12.2008, 14:51


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Клуб юнуксоидов"
powerfox
ZeeLax
nickless

Что такое клуб юнуксоидов?

Это место более свободного общения специалистов и любителей *NIX систем.


Новичкам: Этот раздел предназначен в основном именно для общения а не решения проблем.


Правила всего раздела Linux/UNIX сюда не распространяются, но здесь имеются свои правила:


  • Оскорбления запрещены.
  • Holy wars разрешены, но в небольших размерах. Если вы создаёте что-то уровня Windows vs. Linux, то постите это в Религиозных войнах, пожалуйста.
  • Если вы хотите выставить здесь какое-либо своё творение - милости просим.
  • За интересные новости, интересные статьи, высказывания и юмор (в тему) + в репу.

Короче, по репе получите по полной программе ;-) Happy hacking!



Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Клуб юнуксоидов | Следующая тема »


 




[ Время генерации скрипта: 0.1016 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.