Beberapa makro M4 tampaknya tidak didefinisikan

56

Saya mencoba menginstal ulang pacman di distribusi Arch Linux saya. Ketika saya menjalankan skrip configure "configure.ac", saya mendapatkan banyak makro yang tidak terdefinisi:

error: possibly undefined macro: AM_INIT_AUTOMAKE.
If this token and others are legitimate, please use m4_pattern_allow.
See the autoconf documentation.
error: possibly undefined macro: AC_PROG_LIBTOOL
error: possibly undefined macro: AM_GNU_GETTEXT 
error: possibly undefined macro: AM_GNU_GETTEXT_VERSION
error: possibly undefined macro: AM_CONDITIONAL

Adakah yang tahu apa yang menyebabkan makro ini tidak terdefinisi? Setelah datang dari Ubuntu (di mana semuanya berfungsi, dan karenanya membosankan), saya tidak begitu tahu tentang automake.

SirTasty
sumber
Mengapa Anda membangun dari sumber? Mengapa Anda tidak mengunduh paket-paket di komputer lain, menyalinnya dan mengekstraknya untuk di-root sesuai wiki.archlinux.org/index.php/…
jasonwryan
Tampaknya apa? Apakah itu seluruh urutan kesalahan? Bagaimana Anda mengambil sumbernya?
Gilles 'SANGAT berhenti menjadi jahat'
2
Jason, saya tidak punya pacman di komputer saya yang lain, dan saya lebih suka tidak mengunduh pengelola paket lain. Ditambah lagi jika saya tidak membangun dari sumber, saya tidak akan memiliki kesempatan luar biasa ini untuk belajar tentang M4 dan automake. Maaf tentang hasil edit yang buruk, saya menghapusnya. Ya, itu adalah keseluruhan urutan kesalahan. Saya mengambil sumber dari situs web ArchLinux di projects.archlinux.org/pacman.git dengan wget.
SirTasty
configure.ac bukan skrip configure dan tidak bisa dijalankan.
qdii
3
"Kenapa kamu membangun dari sumber?" Tidak ada urusan gd Anda :)
Greg Schmit

Jawaban:

65

Coba ini, mungkin ini bisa membantu:

autoreconf --install

(Lihat halaman manual, ada --forceopsi juga)

Stéphane Gimenez
sumber
Program cvs tidak ditemukan; autopoint gagal dengan status keluar 1. Saya menginstal cvs dari sumber, akan memberi tahu Anda bagaimana kelanjutannya.
SirTasty
1
@ SirTasty: cvs ?? hmm, mungkin coba pakai autoconfdan automakelangsung?
Stéphane Gimenez
Autoconf memberi saya peringatan makro yang tidak ditentukan. automake memberi saya (titik koma garis terpisah) Makefile.am:2: WANT_DOC does not appear in AM_CONDITIONAL:; Makefile.am: required file ./ChangeLog not found ; configure.ac:57: file yang diperlukan config.h.in tidak ditemukan`
SirTasty
Saya bukan ahli autotools (atau penggemar juga). Mungkin menunggu seseorang muncul ... Secara kebetulan, bagaimana dengan yang aclocalpertama?
Stéphane Gimenez
Saya memiliki kesalahan autoconf yang serupa (pada redhat fc19) dan autoreconf --install menyelesaikannya.
gaoithe
24

Makro dalam pesan kesalahan yang Anda poskan didefinisikan oleh automake dan libtool ; sepertinya Anda perlu menginstal paket-paket itu.

Lalu coba autoreconf --install

Riccardo Murri
sumber
Kedua paket tersebut diinstal, atau setidaknya "yang otomatis" dan "yang libtool" mengembalikan hasil yang masuk akal.
SirTasty
2
@ SirTasty Maka Anda mungkin perlu menjalankan "autoreconf" seperti yang disarankan Stéphane.
Riccardo Murri
6
Pada sistem CentOS6.7 saya, saya harus melakukan ini:sudo yum install autoconf automake libtool cmake autoconf-archive gcc-c++
Mark Hudson
1
Bagi saya, dengan kesalahan configure.ac:118: error: possibly undefined macro: AC_MSG_ERRORpada Manjaro Linux, menginstal autoconf-archivemelakukan trik, meskipun kesalahan lain menghasilkan yang sekarang juga telah dihindari. Paket-paket lain diinstal. Sekedar informasi, perincian lebih lanjut tentang itu dimulai dari github.com/NixOS/nix/pull/3154#issuecomment-545207139 .
James Ray
4

Untuk orang lain yang mencari: Walaupun automake dan libtool adalah kandidat yang sangat mungkin, beberapa sistem tidak akan menginstal gettext secara otomatis. Ini juga diperlukan.

Matius
sumber
1

Saya sangat bingung ketika mendapatkan kesalahan ini, karena saya telah menginstal semuanya dan autoreconf --install tidak membantu. Masalahnya adalah aclocal.m4 rusak dan menghapusnya sebelum autoreconf memecahkan masalah.

tss
sumber