2011-08-25 24 views
5

Diyelim ki böyle bir proje var diyelim . configure.ac bir şey gibi:Yapılandırma dosyaları ve automake ile dosyaları yüklemesini log

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 bir şey

SUBDIRS = src 

gibi ... ve src/Makefile.am bir şey Her eserlerin
bin_PROGRAMS = blah 
blah_SOURCES = blah.cpp blah.hpp 

gibi ve "make install" komutunu (/ usr/local)/bin dizinini doğru şekilde kurar.

Şimdi:

Ben yapılandırma dosyaları/etc/vesaire altında blah_one.xml ve blah_two.xml yükleme ve (her ne, yapılandırmak sonra inşa etmek ve) komutu "make install" yapmak için bu uzatmak istiyorum

için " hazırla "bir günlük dizini/var/log/blah/

Hazırlamak için doğru yolu nedir?

cevap

8

Eh, bu yönde olur:

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

ardından yapılandırmak zaman:

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

senin "hazırlamak" adımın ayrıntılarını bilmeden, olması gerekenlerle bilmek zor, ve nasıl gerçekleşeceğini.

+0

"normal" linux sistemindeki sysconfdir =/etc ve localstatedir =/var değişkenlerini varsaymak ve anahtarlardan kaçınmak doğru mu? – St0rM

+0

Onları ya da bazı dizinleri icat etmeniz ya da önek dizini (/ usr/local) altında kurmanız gerekir. – ldav1s

+0

Bunu önlemek için yeterli değil --prefix = /? – St0rM