HowTo compile on Mac-it

From AMule Project FAQ
Revision as of 00:19, 15 February 2010 by Gmanz (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

English | Deutsch | Español | Français | Italiano

Come reperire e installare aMule su Apple Mac OS X.

  1. Puoi semplicemente scaricare l'applicazione ('rilascio in formato binario');
  2. Puoi compilare da SVN snapshot dei sorgenti o da rilascio dei sorgenti stabili.

Rilascio in formato binario

Se non vuoi installare e compilare tutti gli strumenti e i sorgenti, trova pure una delle versioni di aMule già precompilate. Il rilascio ufficiale è considerato 'stabile', ma di tanto in tanto le applicazioni sono compilate con i sorgenti attuali per permettere che più persone provino le nuove caratteristiche.

Controlla i Mac forum per i binari rilasciati dagli utenti: aMule forum

Per installare i binari scaricati, basta trascinare aMule in una cartella a scelta (e.g., /Applications).

Per lanciare aMule, doppio-click sull'icona dell'applicazione.

Nota: Potreste voler dare un'occhiata all'articolo su Mac specific usage.

Compilazione da sorgenti

Compilare dai sorgenti ottiene un report dei maggiori bug correnti, poichè è possibile compilare e testare l'SVN snapshot di ogni giorno.

Per compilare aMule da sorgenti hai bisogno di alcuni tool di sviluppo, la libreria wxWidgets e i sorgenti di aMule.

Prelevare i sorgenti e i tool di sviluppo

Passo 1: Scaricare e installare Xcode

Xcode è l'ambiente di sviluppo di Apple. Ne abbiamo bisogno per avere il compilatore GCC.

Necessiti almeno della versione 2.1 di Xcode, anche se è preferibile una versione più recente. Puoi scaricare la versione più recente di Xcode da Apple, ma ti devi autenticare per avere un account gratuito da sviluppatore oppure ti devi loggare nel tuo account su iTunes Store.

  1. Prelevare Xcode da http://developer.apple.com/tools/download
  2. "Member Site"->"Log In"->"Download Software"->"Developer Tools"->"Download Xcode Tools last release">"Install"

Passo 2: Installare MacPorts

MacPorts è un installer open source per molti tools open source portati su Mac OS X. aMule necessita di alcuni di questi tools per compilare. In alternativa, è possibile usare Fink per installare questi tools o (Fink attualmente difetta di questi tools necessari) è possibile installarli manualmente.

  1. Scaricare la versione più recente dei MacPorts
  2. Leggi documentazione MacPorts per imparare come installare le applicazioni usando MacPorts.
Sintassi dei più importanti comandi

La lista dei pacchetti può essere scaricata/aggiornata attraverso

 $ sudo port selfupdate

Puoi aggiornare tutti i pacchetti installati con

 $ sudo port upgrade installed

I pacchetti possono essere installati con

 $ sudo port install package_name

e rimossi con

 $ sudo port uninstall package_name

I vari port possono essere invocati con il segno più:

 $ sudo port install package_name +universal

Passo 3: Installare le librerie e i tools

Questi sono i pacchetti che forniscono (con le dipendenze) tutto le librerie necessarie e i tools per costruire wxWidgets e aMule con molte delle caratteristiche:

  1. automake
  2. binutils
  3. flex
  4. gettext
  5. libpng
  6. libcryptopp
  7. libiconv
  8. gd2
  9. jpeg
  10. libgeoip
  11. libupnp
  12. pkgconfig

Questo dovrebbe bastare:

 $ sudo port install automake binutils flex libpng libcryptopp gd2 libgeoip libupnp

Passo 4: Compilare wxMac

wxMac è il port delle librerie wxWidgets per Mac OS X. Questa libreria è usata per costruire aMule 'multi-piattaforma'.

Preleva i sorgenti da: http://www.wxwidgets.org/downloads/ (Archivio dei sorgenti: wxMac) e estrarre gli archivi sul tuo desktop.
L'installazione della patch TextCtrl è altamente raccomandata: scarica questo file patch sul tuo desktop, adesso apri un terminale e scrivi

$ patch ~/Desktop/wxMac-2.8.10/src/mac/carbon/textctrl.cpp ~/Desktop/textctrl_optimization.diff

ed impedice il aMule l'attaccatura nell'ambito della registrazione veloce

Nota: Questa patch aumenta molto le performance di wxTextCtrl e impedisce ad aMule di avere problemi con il login rapido.

scrivi

$ cd

lascia uno spazio dopo il comando, fai il drag and drop della cartella wxMac decompressa nella finestra Terminale: il percorso completo della cartella sarà stampato sul monitor. Per esempio:

$ cd ~/Desktop/wxMac-2.8.10/

Premi invio. Adesso configura e compila i pacchetti con il comando:

$ ./configure --disable-shared --enable-unicode --disable-debug --disable-debug_gdb --with-libiconv-prefix=/opt/local && make -j8

Nota: Il comando sopra non consente le informazioni di debug. Le informazioni di debug permetteno di sottoporre un utile stacktrace se aMule crasha o un esempio da sottoporre ai aMule developers. Se vuoi compilare in modalità debug tu puoi usare invece "--enable-debug --enable-debug_gdb".

Passo 5: Compilare aMule

Scarica sorgenti di aMule e estrai l'archivio nello stesso posto di wxMac (i.e. il tuo desktop se stai seguendo i suggerimenti). Apri un terminale e scrivi:

 $ cd

lascia uno spazio e trascina e rilascia la cartella decompressa di aMule il cui percorso sarà stampato sul monitor, per esempio:

 $ cd ~/Desktop/aMule-2.2.4

Premi Invio. Adesso è possibile configurare i sorgenti: ci sono diverse opzioni che possono essere usate per attivare o disattivare delle caratteristiche durante la compilazione. Questo è solo un esempio, che fornisce tutte le caratteristiche di aMule nella compilazione:

 $ ./configure --with-wx-config=../wxMac-2.8.10/wx-config  --enable-optimize --with-crypto-prefix=/opt/local \
 --with-gdlib-config=/opt/local/bin/gdlib-config  --with-libiconv-prefix=/opt/local --enable-cas --enable-webserver \
 --enable-amulecmd --enable-amule-gui --enable-wxcas --enable-alc --enable-alcc --enable-amule-daemon --enable-geoip \
 --with-geoip-lib=/opt/local/lib --with-geoip-headers=/opt/local/include --enable-geoip-static --enable-debug

Controlla la pagina configure per una lista completa delle opzioni. Dovresti prestare attenzione a questi elementi:

  1. L'esempio dato abilita le informazioni di debug. Per disabilitarlee scambia l'opzione --enable-debug con --disable-debug --enable-optimize.
  2. L'opzione --with-wx-config deve puntare al corretto percorso relativo della libreria compilata wxMac. L'esempio assume che le cartella di aMule e wxMac siano nella stessa directory (i.e. nel tuo desktop). Dovresti anche correggere il nome della cartella wxMac in accordo con la sua versione (nell'esempio è 2.8.10).
  3. L'opzione --with-crypto-prefix dovrebbe puntare a /usr/local/cryptopp se tu compili Crypto++ partendo dai sorgenti, da MacPorts.
  4. IMPORTANTE! Sembra che la versione Mac OS del tool ld non sia in grado di fare librerie statiche. Così se pensi di lanciare/installare la tua versione compilata di aMule su un altro Mac che non ha i MacPorts installati tu DEVI rimuovere l'opzione --enable-geoip-static per evitare che crashi quando lanci il programma.

Adesso è tempo di pacchettizzare con:

 $ make -j8

e

 ./src/utils/scripts/mac_packager

Tu dovresti trovarti il tuo pacchetto di aMule nella stessa cartella dei sorgenti.

APPENDICE: Binari Universali

Attenzione, questa sezione dovrebbe essere duramente revisionata finchè non funziona del tutto!

Se non vengono aggiunte delle opzioni specifiche, il sistema compila i pacchetti per l'architettura nativa (i.e. i386 se stai usando un Mac Intel o ppc per i PowerPC). Se pensi di distribuire i tuoi pacchetti o di usarli su piattaforme differenti probabilmente vuoi costruire dei binari universali.

Per fare dei binari universali dovresti

  1. Installare tutte le librerie e i tools (Passo 3) attraverso MacPorts invocando la variante +universal.
  2. Inserire l'opzione "--enable-universal_binary" al comando configure di wxMac (Passo 4).
  3. Aggiungere le seguenti opzioni all'aMule config, se stai usando Leopard (cambia "MacOSX10.5.sdk" con "MacOSX10.4.sdk" se stai usando Tiger):
 --disable-dependency-tracking \
 CFLAGS="-arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk" \
 CXXFLAGS="-arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk"