Ich versuche mich gerade an diesem Paket. Habe dazu ein paar Fragen.
- Soll ich das paket nach make/sqlite3/ oder nach make/libs/sqlite3/ packen?
- Kann ich in einer sqlite3/sqlite3.mk Datei das Binary und die Bibliotheken packen?
Ich versuche mich gerade an diesem Paket. Habe dazu ein paar Fragen.
- Soll ich das paket nach make/sqlite3/ oder nach make/libs/sqlite3/ packen?
- Kann ich in einer sqlite3/sqlite3.mk Datei das Binary und die Bibliotheken packen?
Meiner Meinung nach pflegst du am besten die libs und das Binary einzeln ein. Dann nämlich können andere Apps vllt. irgendwann einmal die Bibliotheken davon mit nutzen, ohne dass sie noch einmal eingebaut werden, denn dann wird schlicht eine Dependency gesetzt, und gut ist.
Boxen: 7240, 7170, W900V, W701V jeweils mit mehr oder minder aktuellem Freetz-Trunk und irgendwelchen Modifizierungen.
Aus aktuellem Anlaß: Support gehört ins Forum, IRC oder Trac-System, nicht in mein Postfach oder meine Messenger-Accounts.
ICQ und andere Kontaktinformationen ab nun nur noch per PN.
Also, einmal in make/sqlite/ und die Bibliotheken in make/libs/. Macht Sinn.
Hi.
Schau mal in make/curl/curl.mk. Da ist auch Binary und Lib kombiniert.
MfG Oliver
Router: Fritz!Box Fon WLAN 7570, 7390, 7320, 7270, 3170
Anbindung: T-Online DSL 16.000 RAM
Visit ##fritzbox on Freenode for help
Spenden für Freetz
Ah. Danke.
Das Binary kompiliert schon mal![]()
Wenn ich jetzt 'make menuconfig' aufrufe, bekomme ich folgende Meldung:
Wo ist der Fehler?Code:freetz@freetz-linux:~/freetz-trunk$ make menuconfig make/sqlite/Config.in:3:warning: 'select' used by config symbol 'FREETZ_PACKAGE_SQLITE' refer to undefined symbol 'FREETZ_LIB_libsqlite' # # using defaults found in .config # make: *** [menuconfig] Fehler 1 freetz@freetz-linux:~/freetz-trunk$
Anbei noch ein 'svn diff make/{sqlite,Config.in}':
Code:Index: make/sqlite/Makefile.in =================================================================== --- make/sqlite/Makefile.in (Revision 0) +++ make/sqlite/Makefile.in (Revision 0) @@ -0,0 +1,3 @@ +ifeq ($(strip $(FREETZ_PACKAGE_SQLITE)),y) +PACKAGES+=sqlite +endif Index: make/sqlite/sqlite.mk =================================================================== --- make/sqlite/sqlite.mk (Revision 0) +++ make/sqlite/sqlite.mk (Revision 0) @@ -0,0 +1,59 @@ +$(call PKG_INIT_BIN, 3.6.16) +$(PKG)_LIB_VERSION:=0.8.6 +$(PKG)_SOURCE:=$(pkg)-$($(PKG)_VERSION).tar.gz +$(PKG)_SITE:=http://www.sqlite.org +$(PKG)_BINARY:=$($(PKG)_DIR)/.libs/sqlite3 +$(PKG)_TARGET_BINARY:=$($(PKG)_DEST_DIR)/usr/bin/sqlite3 +$(PKG)_LIB_BINARY:=$($(PKG)_DIR)/lib/.libs/libsqlite3.so.$($(PKG)_LIB_VERSION) +$(PKG)_LIB_STAGING_BINARY:=$(TARGET_TOOLCHAIN_STAGING_DIR)/usr/lib/libsqlite3.so.$($(PKG)_LIB_VERSION) +$(PKG)_LIB_TARGET_BINARY:=root/usr/lib/libsqlite3.so.$($(PKG)_LIB_VERSION) + +$(PKG)_CONFIGURE_OPTIONS += --enable-shared +$(PKG)_CONFIGURE_OPTIONS += --enable-static +$(PKG)_CONFIGURE_OPTIONS += --disable-readline +$(PKG)_CONFIGURE_OPTIONS += LIBS="-lpthread" + + +$(PKG_SOURCE_DOWNLOAD) +$(PKG_UNPACKED) +$(PKG_CONFIGURED_CONFIGURE) + +$($(PKG)_BINARY): $($(PKG)_DIR)/.configured + PATH="$(TARGET_PATH)" \ + $(MAKE) -C $(SQLITE_DIR) \ + CC="$(TARGET_CC)" \ + CFLAGS="$(TARGET_CFLAGS)" + +$($(PKG)_LIB_STAGING_BINARY): $($(PKG)_LIB_BINARY) + PATH=$(TARGET_PATH) \ + $(MAKE) -C $(CURL_DIR) \ + DESTDIR="$(TARGET_TOOLCHAIN_STAGING_DIR)" \ + install + $(PKG_FIX_LIBTOOL_LA) \ + $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/lib/pkgconfig/sqlite3.pc \ + $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/lib/libsqlite3.la + +$($(PKG)_TARGET_BINARY): $($(PKG)_BINARY) + $(INSTALL_BINARY_STRIP) + +$($(PKG)_LIB_TARGET_BINARY): $($(PKG)_LIB_STAGING_BINARY) + mkdir -p $(dir $@) + cp -a $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/lib/libsqlite3*.so* root/usr/lib + $(TARGET_STRIP) $@ + +$(pkg): + +$(pkg)-precompiled: $($(PKG)_TARGET_BINARY) + +$(pkg)-clean: + -$(MAKE) -C $(SQLITE_DIR) clean + $(RM) -r $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/lib/libsqlite3* \ + $(TARGET_TOOLCHAIN_STAGING_DIR)/lib/pkgconfig/sqlite3.pc \ + $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/include/sqlite \ + $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/bin/sqlite3* + +$(pkg)-uninstall: + $(RM) $(SQLITE_TARGET_BINARY) + $(RM) root/usr/lib/libsqlite3*.so* + +$(PKG_FINISH) Index: make/sqlite/Config.in =================================================================== --- make/sqlite/Config.in (Revision 0) +++ make/sqlite/Config.in (Revision 0) @@ -0,0 +1,7 @@ +config FREETZ_PACKAGE_SQLITE + bool "SQLite (v3.x) database engine (CLI)" + select FREETZ_LIB_libsqlite + default n + help + SQLite is a small C library that implements a self-contained, embeddable, + zero-configuration SQL database engine. Index: make/Config.in =================================================================== --- make/Config.in (Revision 3483) +++ make/Config.in (Arbeitskopie) @@ -73,6 +73,7 @@ endmenu menu "Testing" +source make/sqlite/Config.in source make/apache/Config.in source make/bash/Config.in source make/bfusb/Config.in
Die Meldung ist doch schon relativ deutlich?
Wo hast Du denn 'FREETZ_LIB_libsqlite' definiert? Entweder gar nicht, oder in einer Datei, die nicht mit eingelesen wird.
Die Trennung in Library und Binary ist sinnvoll, wenn nicht jeder das Binary braucht. Du mußt dann aber auch irgendwo die Config-Option für die Library definieren.
Ich möchte das Binary und die Bibliothek aber nicht trennen. Deshalb hab ich make/curl/curl.mk als Template genommen. So wie mir Olli den Tipp gegeben hat.
Bearbeitet: Ok. Ein Bug gefunden. Der Kompilierprozess geht jetzt schon weiter![]()
Geändert von dogge101 (17.07.2009 um 19:00 Uhr)
Es ist geschafftMein erstes Programm (SQLite) ist für Freetz kompiliert.
Ich hänge mal den Patch an. Schaut doch mal drüber was man noch verbessern könnte.
Bearbeitet: Hmm, warum wird nicht das Prefix /usr verwendet? Stattdessen wird in $(TARGET_TOOLCHAIN_STAGING_DIR)/bin/sqlite3 installiert![]()
Geändert von dogge101 (17.07.2009 um 19:38 Uhr)
Hi.
Das sieht schon sehr gut aus. Bis auf 2 Sachen.
Ich hab das jetzt nicht auf der Box probiert. Ist das auch ohne curses bedienbar?Code:$(PKG)_CONFIGURE_OPTIONS += --disable-readline
Brauchst du das? Bei mir funktioniert es auch ohne diese Zeile.Code:$(PKG)_CONFIGURE_OPTIONS += LIBS="-lpthread"
Bei mir ist /usr ein Symlink auf ./
MfG Oliver
Router: Fritz!Box Fon WLAN 7570, 7390, 7320, 7270, 3170
Anbindung: T-Online DSL 16.000 RAM
Visit ##fritzbox on Freenode for help
Spenden für Freetz
Grr. Jetzt funktioniert es nicht mehr
Wenn ich den Patch aus dem Anhang mit 'patch -p0 < sqlite.diff.txt' anwende und dann 'make menuconfig' auswähle und Bin auswähle erhalte ich bei einem 'grep sqlite .config' nur folgendes:
In menuconfig wurde aber auch das Bin unter Testing ausgewählt. Was kann ich jetzt machen?Code:freetz@freetz-linux:~/freetz$ grep sqlite .config FREETZ_LIB_libsqlite=y freetz@freetz-linux:~/freetz$
Danke. Manchmal sieht mal den Wald vor lauter Bäumen nicht mehr
Weniger gut ist, dass das source/sqlite-3.6.16/.libs/sqlite3 Binary immer noch nicht nach root/usr/bin/sqlite3 kopiert wird. In build/modified/filesystem/usr/bin/sqlite3 ist es drin.
Geändert von dogge101 (18.07.2009 um 16:43 Uhr)
Das passt schon alles so wie es ist. Kannst du bitte meine Fragen beantworten?
MfG Oliver
Router: Fritz!Box Fon WLAN 7570, 7390, 7320, 7270, 3170
Anbindung: T-Online DSL 16.000 RAM
Visit ##fritzbox on Freenode for help
Spenden für Freetz
Echt? Gut, dann werde ich das mal auf der Box testen.
Ich gebe mich geschalgen.
AVM hat schon eine eigene SQLite (3.6.13) Lib für den Mediaserver drin. Leider ohne SQLite CLI. Der Quellcode wurde laut olistudent von AVM nicht veröffentlicht.
Olistudent meinte, man könne die AVM SQLite ersetzen. Das ist mir zu viel Aufwand und da kenne ich mich auch nicht aus. Fraglich ist dann natürlich, ob der mediaserver noch laufen würde.
Ich gebe an dieser Stelle auf. Wer will und genug Zeit hat, kann sich ja daran versuchen. Den Patch findet ihr als Anhang in Beitrag Nr. 9 in diesem Thread.
Ich checke das mal ein. Dann kann man immer noch schauen was man mit der libsqlite von AVM macht. Ich hab grad gesehen, dass die einen anderen Namen hat. Daher sollte es nicht zu Konflikten kommen.
Mfg Oliver
edit: http://trac.freetz.org/changeset/3489
Geändert von olistudent (19.07.2009 um 10:40 Uhr)
Router: Fritz!Box Fon WLAN 7570, 7390, 7320, 7270, 3170
Anbindung: T-Online DSL 16.000 RAM
Visit ##fritzbox on Freenode for help
Spenden für Freetz