configure fuer unterschiedliche Zielsysteme
Hallo, ich möchte ein Programmpaket auf mehreren Rechnern installieren. Dabei haben die Maschinen unterschiedliche Prozessoren und unterschiedliche Kernelversionen. Leider ist aber auf mehreren Maschinen kein gcc bzw. Entwicklungspaket installiert. configure bietet mir ja die Option, --target=, --host= und --build= irgendetwas anzugeben, aber wo finde ich denn Infos, was ich wie angeben kann, und am besten auch, wie ich das dann problemlos auf die anderen Maschinen bekomme? ;-) Aus configure --help geht das nicht so wirklich hervor.. und andere Doku hab ich noch nicht gesehen... Gruß, Sebastian -- Do not meddle in the affairs of Wizards, for they are subtle and quick to anger. Sebastian Helms - http://www.helms.sh - mailto:mail@helms.sh (PGP welcome) SuSE-Linux-Mailinglisten-FAQ: http://www.helms.sh/faq/
Am Don, 2001-09-27 um 19.56 schrieb 1001613405:
Hallo,
ich möchte ein Programmpaket auf mehreren Rechnern installieren. Dabei haben die Maschinen unterschiedliche Prozessoren und unterschiedliche Kernelversionen.
Leider ist aber auf mehreren Maschinen kein gcc bzw. Entwicklungspaket installiert.
configure bietet mir ja die Option, --target=, --host= und --build= irgendetwas anzugeben, Diese Optionen entstammen normalerweise den autoconf-Macros AC_CANONICAL_BUILD, AC_CANONICAL_HOST, AC_CANONICAL_TARGET und AC_CANONICAL_SYSTEM (Stichwort "Canonicalization" und "System-Types" in autoconf.info).
aber wo finde ich denn Infos, was ich wie angeben kann, Die Argumente dieser Optionen sind sogenannte Canonicalization-Triples in der Form CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM (z.B. i386-pc-linux, sparc-sun-solaris) oder Canonicalization-Quadruples CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM (z.B. i486-pc-linux-gnu).
Sie dienen dazu, Cross-Compilation zu ermöglichen.
build .. System auf dem das configure-Script läuft
host .. System, für das das Paket übersetzt werden soll.
target .. System, für das die zu erzeugenden Binaries Daten erzeugen
sollen.
Beispiel
<paket>/configure \
--build=i386-pc-linux-gnu \
--host=sparc-sun-solaris \
--target=i386-pc-cygwin
Bedeutet: unter i386-pc-linux-gnu wird ein Paket konfiguriert, das auf
sparc-sun-solaris laufen soll und dort Daten für i386-pc-cygwin
generiert.
Leider ist das eine recht komplexe Thematik, die den Rahmen dieser Liste
bei Weitem sprengt. Erschwerend kommt hinzu, das viele Pakete diese
Argumente missbrauchen.
Zur Konfiguration von Paketen innerhalb einer Architektur/OS-Familie
wirst Du diese Optionen in der Regel nicht benötigen (Ich nehme an Du
beziehst Dich auf Intel/AMD-Linux und willst für i686/PII/Atlon/Duron
o.ä. übersetzen).
Vermutlich willst Du "lediglich" Pakete für andere Intel/AMD Prozessoren
optimiert übersetzen. Dann wäre
CFLAGS=" und am besten auch, wie ich das dann problemlos auf
die anderen Maschinen bekomme? ;-)
cp, tar, rpm? :) Kommt darauf an was du meinst - Um das zu beantworten, brauchst's schon
mehr Details :)
Es könnte sein, dass Du lediglich rpm --target suchst. Aus configure --help geht das nicht so wirklich hervor.. und andere
Doku hab ich noch nicht gesehen... Detailierte Erläuterungen finden sich bei Ian Lance Taylor
http://www.airs.com/ian, im Goat-Book http://sources.redhat.com/autobook
und in den Infos von autoconf und automake.
Ralf
On Don, 27 Sep 2001, Sebastian Helms wrote:
ich möchte ein Programmpaket auf mehreren Rechnern installieren. Dabei haben die Maschinen unterschiedliche Prozessoren und unterschiedliche Kernelversionen.
Leider ist aber auf mehreren Maschinen kein gcc bzw. Entwicklungspaket installiert.
configure bietet mir ja die Option, --target=, --host= und --build= irgendetwas anzugeben, aber wo finde ich denn Infos, was ich wie angeben kann, und am besten auch, wie ich das dann problemlos auf die anderen Maschinen bekomme? ;-)
Aus configure --help geht das nicht so wirklich hervor.. und andere Doku hab ich noch nicht gesehen...
configure wird aus configure.in von autoconf erzeugt... Ergo: 'info autoconf' (und 'info automake'). Dort sind u.a. die moeglichen targets dokumentiert (bzw. schau einfach mal in das erzeugte configure, ne halt, das wird von config.guess erledigt) welche cpus / OSs da per case abgeklappert werden... In config.sub werden dann die "kanonischen" Namen erzeugt... ==== File: autoconf.info, Node: Specifying Names Like other GNU `configure' scripts, Autoconf-generated `configure' scripts can make decisions based on a canonical name for the system type, which has the form: CPU-COMPANY-SYSTEM `configure' can usually guess the canonical name for the type of system it's running on. To do so it runs a script called `config.guess' [..] e.g., CC=m68k-coff-gcc configure --target=m68k-coff ==== -dnh --
We're already nostalgic about The Week You Got Your Eyes Fixed. "Well, not really so much that week as what followed, The Month Matt Discovered Girls. *Big* chunk of delayed puberty he went through there, as soon as he could see what they look like." - Peter da Silva and adb [stolen from Matt's sig]
participants (3)
-
David Haller
-
Ralf Corsepius
-
Sebastian Helms