GNU Autotools: Jak se vám zahrnout zdrojové soubory v tarballu ‚make dist‘, které jsou nad kořenového zdrojového adresáře?

hlasů
4

Mám Subversion projekt, který používá Gnu autotools (tj automake, autoconf a libtool) pro správu zdrojového kódu v rámci podsložky (s názvem ‚dílčího balíčku‘). Tyto dílčího balíčku reference zdrojové soubory, které jsou nad kořenem zdrojovém adresáři dílčího balíčku je, a jsou společné s jinými subpackages. Bohužel, při spuštění ‚make dist‘ vytvořit distribuční tarball se společné zdrojové soubory nedostanou zahrnuty v distribuci.

Existuje způsob, jak používat autoconf / automake přesunout tyto společné zdrojové soubory do podadresáře dílčího balíčku před distribucí zdroj, a nechat makefile sám nastaví správně poukazují na přemístěných zdrojové soubory? Je zřejmé, že by bylo možné mít makefile přesunout tyto zdrojové soubory přes před kompilací, ale i pro práci v Subversion, to způsobuje problémy, protože tyto přesunuty soubory jsou revize kontrolována a jeho snadné omylem upravit přesunut soubor namísto originálu ,

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


2 odpovědí

hlasů
3

Ty by mohly mít prázdný adresář dílčího balíčku, nazvaný řekněme „obyčejný“, s makefile, který zkopíruje na externí soubory. Pak můžete použít cíl dist-háček přesunout soubory přímo do verze „obyčejného“ adresář že dostane zapnul do tarballu. Tímto způsobem nebudete muset starat o nich ležet a upravován. Ty by také přepsat Makefile.am, Makefile.in a Makefile v „běžné“, jak jste zkopírovali.

Příklad na dílčího balíčku / společného / Makefile.am (nevyzkoušené):

dist-hook:
    cp -p $(top_srcdir)/../common/Makefile* $(top_srcdir)/../common/*.[ch] $(distdir)

Nejsem si 100% jistý, že to bude fungovat, i když. To by mohlo zlomit zbytek vašeho balíčku, v závislosti na tom, kde vše, co očekává, že najít ty zdrojové soubory; pravděpodobně zlomí což dist, pokud rozbalit tarball a snaží se, aby dist odtamtud. Měli byste vědět, že tento druh podvodu je odsuzován. Ale doufám, že jsem vám dal dost nápadů hrát si s.

Odpovězeno 03/12/2009 v 19:09
zdroj uživatelem

hlasů
2

Namísto přesouvání souborů kolem (což vždycky zní podezřele ke mně), proč ne používat symbolické odkazy? Ty by mohly mít svůj odkaz dílčího balíčku pouze lokální soubory, a Makefilepravidlo, které říká, že „v případě, že místní soubory tady není, vytvořte symbolický odkaz na soubor rodiče“. Během make distsymbolický odkaz bude automaticky převeden do formátu prostého souboru.

Odpovězeno 09/12/2009 v 08:16
zdroj uživatelem

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