2011-08-25 9 views
5

Diciamo che ho un progetto del genere:File di configurazione e di log file di installazione con automake

(dev dir) 
- README 
- INSTALL 
/src 
    - blah.cpp 
    - blah.hpp 
/conf 
    - blah_one.xml 
    - blah_two.xml 

ho fatto fuori un configure.ac e Makefile.am di installare i binari sotto (/ usr/local)/bin . configure.ac è qualcosa di simile:

AC_INIT([blah], [0.1]) 
AC_PREREQ([2.67]) 
AM_INIT_AUTOMAKE([1.11]) 
AC_CONFIG_SRCDIR([src/blah.cpp]) 
AC_PROG_CXX 
AC_LANG([C++]) 
AC_HEADER_STDC 
AC_CONFIG_FILES([Makefile]) 
AC_CONFIG_FILES([src/Makefile]) 
AC_OUTPUT 

... Makefile è qualcosa di simile

SUBDIRS = src 

... e src/Makefile.am è qualcosa di simile

bin_PROGRAMS = blah 
blah_SOURCES = blah.cpp blah.hpp 

tutto funziona e "make install" installa correttamente il file binario in (/ usr/local)/bin.

Ora:

voglio estendere questi per rendere il comando "make install" (dopo configurare, costruire e qualunque) per installare i file di configurazione e blah_one.xml blah_two.xml in/etc/bla, e di " preparare "una directory di registro in/var/log/blah/

Qual è il modo corretto per farlo?

risposta

8

Beh, mi piacerebbe fare questo:

blahconfdir=$(sysconfdir)/blah 
blahconf_DATA = blah_one.xml blah_two.xml 
blahlogdir = $(localstatedir)/log/blah 

poi quando si configura:

./configure --sysconfdir=/etc --localstatedir=/var 

Senza conoscere i dettagli del tuo passo "preparare", è difficile sapere che cosa deve accadere, e come farlo accadere.

+0

È corretto assumere che sysconfdir =/etc e localstatedir =/var su un sistema linux "normale" ed evitare gli switch? – St0rM

+0

Devi impostarli o inventare alcune directory o verranno installate sotto la directory prefisso (/ usr/local). – ldav1s

+0

Non è sufficiente specificare --prefix =/per evitarlo? – St0rM