Vybudovat systém vysoce modulární přenosný open source projekt

hlasů
1

Máme open source software projekt v samém počátku. Tento program je považován za vysoce modulární: například podkladové databáze může být buď sqlite, postgre nebo Berkley, v závislosti na preferencích konečného uživatele.

Pouze jeden systematický přístup jsem si jistý pomocí, je použít autotools (sestavení systému GNU). Chtěl bych vědět, nicméně, že existují jakékoliv slibnou alternativu k ní? Musí být s otevřeným zdrojovým kódem a musí být dobře přenosné. Mělo by se také vyhnout se všem nedostatku autotools systému, například nedostatek podpory souběžnosti (konfigurovat scénář je velmi pomalé).

Položena 23/11/2009 v 13:33
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

Zvažte také pomocí cmake vysoce modulární projekty.

Odpovězeno 23/11/2009 v 14:01
zdroj uživatelem

hlasů
0

Můžete velmi dobře stavět věci souběžně s autotools. Je pouze potřeba, aby se zabránilo dělat rekurzivní značku pro věci, které chcete postavit paralelně. Základní myšlenkou je, že mají Makefile.amjako:

bin_PROGRAMS =
noinst_LDLIBRARIES =
SUBDIRS = sub1 sub2 .
include here1/Makefile-files
include here2/Makefile-files

a here1/Makefile-filesjako:

bin_PROGRAMS += here1
noinst_LDLIBRARIES += libhere1.la
here1_SOURCES = here1/src1.c here1/src2.c here1/src3.c
libhere1_la_SOURCES = here1/lib1.c here1/lib2.c

Potom se věci v podadresáři sub1/a sub2/bude postaven odděleně od aktuálního adresáře a před ním (i když příslušné staví mohl dělat věci paralelně se stejným hattrick!), A pak aktuální adresář začne stavět věci do proudu dir je Makefile.ama here[12]/Makefile-filesparalelně.

Například libgphoto2použít tento mechanismus pro vybudování 50+ ovladače kamery souběžně poté, co byly postaveny několik prerequesites. To výrazně urychluje celkovou dobu sestavení.

OK, configureskript sám nebude urychlena tím, ale aspoň to bude ještě dělat cross-kompilaci (narozdíl od některých alternativních sestavení systémů). (Ty jsou výpis přenosné jako jeden ze svých požadavků, a to často znamená, cross-kompilaci).

Odpovězeno 23/11/2009 v 13:54
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more