Hello,

I don't have much experience with Makefile and such, and need to add the SQLite command-line client to the libsqlite3.so.0.8.6 that is compiled by the sqlite3.mk for uClinux below. This sqlite3.mk was apparently taken from OpenWrt:

# cd /usr/src/baps
# cat sqlite3.mk 
#
# sqlite3 for the Blackfin 
# David Rowe March 2008
#
# usage: make -f sqlite3.mk sqlite3-package
#
# Thanks OpenWRT for build options

include rules.mk

SQLITE3_VERSION=3.5.6
SQLITE3_DIRNAME=sqlite-$(SQLITE3_VERSION)
SQLITE3_DIR=$(BUILD_DIR)/$(SQLITE3_DIRNAME)
SQLITE3_SITE=http://www.sqlite.org
SQLITE3_SOURCE=sqlite-$(SQLITE3_VERSION).tar.gz
SQLITE3_CONFIGURE_OPTS = --host=bfin-linux-uclibc \
                --prefix=$(TARGET_DIR) \
                --enable-shared \
                --disable-static \
                --disable-tcl \
                --libdir=$(STAGING_LIB)

TARGET_DIR=$(BUILD_DIR)/tmp/sqlite3/ipkg/sqlite3
PKG_NAME:=sqlite3
PKG_VERSION:=$(SQLITE3_VERSION)
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/tmp/sqlite3

STAGING_INC=$(STAGING_DIR)/usr/include
STAGING_LIB=$(STAGING_DIR)/usr/lib
export CFLAGS=-mfdpic -Os -I$(STAGING_INC)
export LDFLAGS=-L$(STAGING_LIB)

$(DL_DIR)/$(SQLITE3_SOURCE):
        mkdir -p dl
        wget -P $(DL_DIR) $(SQLITE3_SITE)/$(SQLITE3_SOURCE)

$(SQLITE3_DIR)/.unpacked: $(DL_DIR)/$(SQLITE3_SOURCE)
        zcat $(DL_DIR)/$(SQLITE3_SOURCE) | tar -C $(BUILD_DIR) -xf -
        touch $(SQLITE3_DIR)/.unpacked

$(SQLITE3_DIR)/.configured: $(SQLITE3_DIR)/.unpacked
        cd $(SQLITE3_DIR); ./configure $(SQLITE3_CONFIGURE_OPTS)
        touch $(SQLITE3_DIR)/.configured

sqlite3: $(SQLITE3_DIR)/.configured
        cd $(SQLITE3_DIR); make install

        mkdir -p $(TARGET_DIR)/bin
        mkdir -p $(TARGET_DIR)/lib
        cp $(STAGING_LIB)/libsqlite3.so.0.8.6 $(TARGET_DIR)/lib
        ln -sf libsqlite3.so.0.8.6 $(TARGET_DIR)/lib/libsqlite3.so 
        ln -sf libsqlite3.so.0.8.6 $(TARGET_DIR)/lib/libsqlite3.so.0
        $(STRIP) $(TARGET_DIR)/lib/libsqlite3.so.0.8.6

        # mv include files to staging

        cp $(TARGET_DIR)/include/* $(STAGING_INC)
        rm -Rf $(TARGET_DIR)/include

        # doc

        mkdir -p $(TARGET_DIR)/usr/doc
        cp doc/sqlite3.txt $(TARGET_DIR)/usr/doc

        touch $(PKG_BUILD_DIR)/.built

all: sqlite3

dirclean:
        rm -rf $(SQLITE3_DIR)

define Package/$(PKG_NAME)
  SECTION:=utils
  CATEGORY:=Utilities
  TITLE:=SQLite (v3.x) database engine
  DESCRIPTION:=\
        SQLite is a small C library that implements a self-contained, \\\
        embeddable, zero-configuration SQL database engine.
  URL:=http://www.sqlite.org/
endef

# post installation

define Package/$(PKG_NAME)/postinst
endef

# pre-remove
define Package/$(PKG_NAME)/prerm
endef

$(eval $(call BuildPackage,$(PKG_NAME)))

sqlite3-package: sqlite3 $(PACKAGE_DIR)/$(PKG_NAME)_$(VERSION)_$(PKGARCH).ipk

Does someone know what I should add to it?

Generally speaking, if there are good documents to learn how to port/build applications for OpenWrt, I'm interested.

Thank you.

(Last edited by littlebigman on 28 Jun 2010, 22:53)