2010-08-21 33 views
6

configure kịch bản luôn bao gồm một cái gì đó như sau trong thông điệp giúp đỡ:Thêm một lựa chọn thư mục cài đặt tùy chỉnh để script configure Autoconf tạo

 
... 
By default, `make install' will install all the files in 
`/usr/local/bin', `/usr/local/lib' etc. You can specify 
an installation prefix other than `/usr/local' using `--prefix', 
for instance `--prefix=$HOME'. 

For better control, use the options below. 

Fine tuning of the installation directories: 
    --bindir=DIR   user executables [EPREFIX/bin] 
    --sbindir=DIR   system admin executables [EPREFIX/sbin] 
    --libexecdir=DIR  program executables [EPREFIX/libexec] 
    --sysconfdir=DIR  read-only single-machine data [PREFIX/etc] 
    --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] 
    --localstatedir=DIR  modifiable single-machine data [PREFIX/var] 
    --libdir=DIR   object code libraries [EPREFIX/lib] 
    --includedir=DIR  C header files [PREFIX/include] 
    --oldincludedir=DIR  C header files for non-gcc [/usr/include] 
    --datarootdir=DIR  read-only arch.-independent data root [PREFIX/share] 
    --datadir=DIR   read-only architecture-independent data [DATAROOTDIR] 
    --infodir=DIR   info documentation [DATAROOTDIR/info] 
    --localedir=DIR   locale-dependent data [DATAROOTDIR/locale] 
    --mandir=DIR   man documentation [DATAROOTDIR/man] 
    --docdir=DIR   documentation root 
          [DATAROOTDIR/doc/gedit-line-ending-style-plugin] 
    --htmldir=DIR   html documentation [DOCDIR] 
    --dvidir=DIR   dvi documentation [DOCDIR] 
    --pdfdir=DIR   pdf documentation [DOCDIR] 
    --psdir=DIR    ps documentation [DOCDIR] 

Program names: 
    --program-prefix=PREFIX   prepend PREFIX to installed program names 
... 

Những gì tôi muốn làm là thêm "plugindir", để phần này , như:

 
... 
    --dvidir=DIR   dvi documentation [DOCDIR] 
    --pdfdir=DIR   pdf documentation [DOCDIR] 
    --psdir=DIR    ps documentation [DOCDIR] 
    --plugindir=DIR   Gedit plugin files [LIBDIR/gedit-2/plugins] 
... 

để người dùng có thể chuyển vào --plugindir=... cho tập lệnh định cấu hình.

Tôi làm cách nào để thực hiện việc này?

+0

thể bản sao của [Hãy cài đặt, nhưng không vào thư mục mặc định?] (https://stackoverflow.com/questions/3239343/make-install-but-not-to-default-directories) – jww

Trả lời

0

Nếu tôi sửa các đường dẫn đó được đặt trong tệp share/autoconf/autoconf/general.m4. Danh sách này được mã hóa cứng nên rất khó để chèn những thứ vào danh sách. Bạn có thể thêm thông tin trợ giúp bổ sung bằng cách sử dụng macro AS_HELP_STRING. Có một số ví dụ cho biết thêm một plugindir, ví dụ: gstreamer, gimp, nhưng những ví dụ này không có thư mục plugin có thể định cấu hình.

+0

Thú vị. Dòng 1058 của tệp '/ usr/share/autoconf/autoconf/general.m4' của tôi chịu trách nhiệm cho dòng" Tinh chỉnh các thư mục cài đặt: ". Nó không, tuy nhiên, xuất hiện mà tôi có thể dễ dàng thêm vào phần "thư mục cài đặt" của kịch bản 'cấu hình' giúp văn bản mà không sửa đổi' general.m4'. Nhưng, ít nhất giờ tôi đã biết. –

+0

Phương pháp tiếp cận gstreamer hoặc xine có phù hợp với bạn không? – SiggyF

+0

Tôi không chắc chắn cách tiếp cận của gstreamer và xine bạn đang đề cập đến. Nhưng, những gì tôi đã làm được điều chỉnh một dòng từ 'general.m4', thêm' AC_SUBST ([plugindir], ['$ {libdir}/gedit-2/plugins']) 'vào' configure.ac' của tôi. Sau đó, tôi chỉ định các mục tiêu mà tôi muốn cài đặt vào "plugindir" trong biến 'plugin_DATA' trong' Makefile.am'. Nó không phải là người dùng cấu hình như tôi đã ban đầu đi, nhưng nó hoạt động tốt: http://code.google.com/p/gedit-line-ending-style-plugin/source/browse/trunk/src/Makefile. am –

3

Đặt những dòng sau trong configure.ac, gần đầu:

AC_ARG_WITH([pkgconfigdir], 
    [AS_HELP_STRING([--with-pkgconfigdir=DIR], [pkgconfig files])], 
    [pkgconfigdir=$withval], 
    [pkgconfigdir="\${libdir}/pkgconfig"]) 
AC_SUBST([pkgconfigdir], [$pkgconfigdir]) 

Sau đó, trong Makefile.am, bạn có thể tham khảo các thư mục như thế này:

pkgconfigdir = @[email protected] 
pkgconfig_DATA = mylibrary.pc 
+1

Đối số thứ hai là không cần thiết. 'pkgconfigdir = @ pkgconfigdir @' là không cần thiết. Thật tuyệt khi chỉ định mặc định trong trợ giúp. Bạn có thể sử dụng dấu nháy đơn thay vì thoát '$'. – proski

Các vấn đề liên quan