Problem beim Kompilieren (statisch) von libapr

dogge101

Gesperrt
Mitglied seit
24 Jun 2009
Beiträge
234
Punkte für Reaktionen
0
Punkte
0
Ich versuche mich jetzt gerade an libapr. Kompiliert auch schon soweit.

Jetzt habe ich noch eine Option für statisches Linken ins Makefile eingebaut weil libapr die libcrypto will. Und da komm ich irgendwie nicht weiter.

Buildlog:
Code:
freetz@freetz-linux:~/test/freetz-trunk$ make apr-{clean,precompiled}
make -j2 -C source/apr-1.3.7 clean
make[1]: Betrete Verzeichnis '/home/freetz/test/freetz-trunk/source/apr-1.3.7'
make[1]: *** Keine Regel, um »clean« zu erstellen.  Schluss.
make[1]: Verlasse Verzeichnis '/home/freetz/test/freetz-trunk/source/apr-1.3.7'
make: [apr-clean] Fehler 2 (ignoriert)
rm -f /home/freetz/test/freetz-trunk/toolchain/build/gcc-4.2.4-uClibc-0.9.29/mipsel-linux-uclibc/usr/lib/libapr*.so* \
                /home/freetz/test/freetz-trunk/toolchain/build/gcc-4.2.4-uClibc-0.9.29/mipsel-linux-uclibc/usr/bin/apr-1-config \
                /home/freetz/test/freetz-trunk/toolchain/build/gcc-4.2.4-uClibc-0.9.29/mipsel-linux-uclibc/usr/include/apr-1 \
                /home/freetz/test/freetz-trunk/toolchain/build/gcc-4.2.4-uClibc-0.9.29/mipsel-linux-uclibc/usr/lib/pkgconfig/apr-1.pc \

PATH="/home/freetz/test/freetz-trunk/toolchain/target/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" make -j2 \
                DESTDIR="/home/freetz/test/freetz-trunk/toolchain/build/gcc-4.2.4-uClibc-0.9.29/mipsel-linux-uclibc" \
                -C source/apr-1.3.7 install
make[1]: Betrete Verzeichnis '/home/freetz/test/freetz-trunk/source/apr-1.3.7'
make[1]: *** Keine Regel, um »install« zu erstellen.  Schluss.
make[1]: Verlasse Verzeichnis '/home/freetz/test/freetz-trunk/source/apr-1.3.7'
make: *** [source/apr-1.3.7/lib/.libs/libapr-1.a] Fehler 2
freetz@freetz-linux:~/test/freetz-trunk$

Habe noch den Patch für Freetz trunk angehängt.
 

Anhänge

  • apr.diff.txt
    4.6 KB · Aufrufe: 4
Zuletzt bearbeitet:
Daran lag es nicht. Ich habe jetzt noch mal trunk frisch ausgecheckt und kompiliert. Danach habe ich das Patch angewendet und apr kompiliert. Gleicher Fehler.
 
Gibt es denn in source/apr-1.3.7 ein Makefile mit clean bzw. install Target?

MfG Oliver
 
Das Kompilieren von libapr hat ja schon funktioniert!

Nur seit dem ich die Option für das statische Linken mit eingebaut habe, bringt er diese Fehlermeldung.
 
Zuletzt bearbeitet:
Ok. Fehler gefunden. Jetzt kann ich libapr dynamisch oder statisch linken :)

Finales Patch im Anhang. Das Patch kann wie folgt auf freetz-trunk angewendet werden:

Code:
freetz@freetz-linux:~/test/freetz-trunk$ svn copy make/libs/expat.mk make/libs/apr.mk
A         make/libs/apr.mk
freetz@freetz-linux:~/test/freetz-trunk$ patch -p0 < /home/freetz/apr.diff 
patching file make/libs/Config.in
patching file make/libs/apr.mk
freetz@freetz-linux:~/test/freetz-trunk$ make menuconfig
freetz@freetz-linux:~/test/freetz-trunk$ make apr-{clean,precompiled}

Dann kann ich mich mal an libaprutil machen welches unter anderem libapr als Abhängigkeit benötigt.
 

Anhänge

  • apr.diff.txt
    4.6 KB · Aufrufe: 13
Zuletzt bearbeitet:
So, jetzt muss ich den Thread noch mal rausholen.

Ich muss in $(TARGET_TOOLCHAIN_STAGING_DIR)/bin/apr-1-config noch ein paar Anpassungen mit SED vornehmen. Im entsprechenden Makefile (https://dev.openwrt.org/browser/packages/libs/apr/Makefile#L57) bei OpenWrt habe ich das gefunden:

Code:
$(SED) 's,^datadir=\"/usr/share\",datadir=\"$(STAGING_DIR)/usr/share\",g' $(1)/usr/bin/apr-1-config 
$(SED) 's,^installbuilddir=\"/usr/share/build-1\",installbuilddir=\"$(STAGING_DIR)/usr/share/build-1\",g' $(1)/usr/bin/apr-1-config 
$(SED) 's,^libdir=\"$$$${exec_prefix}/lib,libdir=\"$(STAGING_DIR)/usr/lib,g' $(1)/usr/bin/apr-1-config 
$(SED) 's,^includedir=\"$$$${prefix}/include/,includedir=\"$(STAGING_DIR)/usr/include/,g' $(1)/usr/bin/apr-1-config 
$(SED) 's,-L$$$$libdir,,g' $(1)/usr/bin/apr-1-config 
$(SED) 's,-R$$$$libdir,,g' $(1)/usr/bin/apr-1-config 
$(SED) 's,/usr/share/build-1,$(STAGING_DIR)/usr/share/build-1,g' $(1)/usr/share/build-1/apr_rules.mk

Wie mach ich das in Freetz?
 
Wie kommst du drauf, dass du das machen musst? Funktioniert was nicht. Teilweise wird das von dem Makro erledigt:
Code:
$(PKG_FIX_LIBTOOL_LA) $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/bin/apr-1-config
MfG Oliver
 
wie ist der stand bei libaprutil?
 
Es kompiliert...

Oder was wolltest du jetzt wissen?

MfG Oliver
 
wie ich es kompiliere. Ein patch dazu wäre schön, damit ich subversion kompilieren kann.

edit:

Code:
michael@astrapi-pc200:~/projekte/freetz/7113_subversion> make apr-util-precompiled
PATH="/home/michael/projekte/freetz/7113_subversion/toolchain/target/bin:/home/michael/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin" make -j2 \
        DESTDIR="/home/michael/projekte/freetz/7113_subversion/toolchain/build/gcc-4.2.4-uClibc-0.9.28/mipsel-linux-uclibc" \
        -C source/apr-util-1.3.8 install
make[1]: Entering directory `/home/michael/projekte/freetz/7113_subversion/source/apr-util-1.3.8'
Makefile:48: /home/michael/projekte/freetz/7113_subversion/source/apr-util-1.3.8/build/rules.mk: Datei oder Verzeichnis nicht gefunden
make[1]: *** Keine Regel, um »/home/michael/projekte/freetz/7113_subversion/source/apr-util-1.3.8/build/rules.mk« zu erstellen.  Schluss.
make[1]: Leaving directory `/home/michael/projekte/freetz/7113_subversion/source/apr-util-1.3.8'
make: *** [/home/michael/projekte/freetz/7113_subversion/toolchain/build/gcc-4.2.4-uClibc-0.9.28/mipsel-linux-uclibc/usr/lib/libaprutil.so.1.3.8] Fehler 2
michael@astrapi-pc200:~/projekte/freetz/7113_subversion>

will meiner Meinung nach heißen, das er die rules.mk nicht findet. Normalerweise sollte er die beim ./configure aus dem apr-build-dir kopieren. Wenn ich die Datei händisch kopiere, läuft danach alles durch. OpenWRT mach dies mit der Anweisung

Code:
CONFIGURE_VARS += \
  ac_cv_file_dbd_apr_dbd_mysql_c=no \
  APR_BUILD_DIR="$(STAGING_DIR)/usr/share/build-1" \

wie kann ich dies in freetz einbauen, das er entweder die Variable APR_BUILD_DIR dem ./configure übergibt, oder vor dem ./configure die rules.mk am die passende Stelle kopiert?
 
Zuletzt bearbeitet:
Hast du dir mal die makefiles der anderen Libraries im Freetz angeschaut? Alles unter make/libs/ wäre dafür von Relevanz.
 
ja sicher, nicht alle, aber viele, hab da nix von der rules.mk gefunden.
 
Hier im Thread hängt doch ein Patch an mit dem das funktioniert. Wieso nimmst du den nicht?

MfG Oliver
 
weil der patch für die libapr ist und nicht für die libaprutil, hatt ich vergessen zu erwähnen
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.