port libmysqlclient to our makefile type and make it install -dev stuff into the staging dir

SVN-Revision: 609
owl
Felix Fietkau 2005-04-10 16:28:32 +00:00
parent 36bf587a92
commit 833d74c7dd
7 changed files with 90 additions and 238 deletions

View File

@ -19,40 +19,103 @@ PKG_SOURCE_CAT := zcat
PKG_SOURCE_DIR := $(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_SOURCE_DIR)
PKG_IPK := $(PACKAGE_DIR)/libmysqlclient_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
PKG_IPK_DIR := $(PKG_BUILD_DIR)/ipkg
$(DL_DIR)/$(PKG_SOURCE_FILE):
mkdir -p $(DL_DIR)
$(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) $(PKG_MD5SUM) $(PKG_SOURCE_SITE)
$(PKG_BUILD_DIR)/ipkg/rules: $(DL_DIR)/$(PKG_SOURCE_FILE)
mkdir -p $(TOOL_BUILD_DIR)
rm -rf $(PKG_BUILD_DIR)
$(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE_FILE)
$(PKG_SOURCE_CAT) $(DL_DIR)/$(PKG_SOURCE_FILE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
$(PATCH) $(PKG_BUILD_DIR) ./patches
cp -fpR ./ipkg $(PKG_BUILD_DIR)/
chmod a+x $(PKG_BUILD_DIR)/ipkg/rules
touch $(PKG_BUILD_DIR)/ipkg/rules
touch $(PKG_BUILD_DIR)/.patched
$(PKG_IPK): $(PKG_BUILD_DIR)/ipkg/rules
cd $(PKG_BUILD_DIR); \
TOPDIR="$(TOPDIR)" IPKG_RULES_INC="$(TOPDIR)/rules.mk" \
INSTALL_DIR="$(STAGING_DIR)" \
./ipkg/rules package
$(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.patched
(cd $(PKG_BUILD_DIR); rm -rf config.cache; \
touch configure.in; \
touch aclocal.m4; \
touch Makefile.in; \
touch config.h.in; \
touch configure; \
$(TARGET_CONFIGURE_OPTS) \
CFLAGS="-I$(STAGING_DIR)/usr/include" \
LDFLAGS="-L$(STAGING_DIR)/usr/lib" \
OPTIMIZE_CFLAGS="$(TARGET_CFLAGS)" \
OPTIMIZE_CXXFLAGS="$(TARGET_CFLAGS)" \
ac_atomic_add=yes \
ac_atomic_sub=yes \
ac_cv_sys_restartable_syscalls=yes \
ac_cv_conv_longlong_to_float=yes \
mysql_cv_compress=yes \
mysql_cv_gethostname_style=glibc2 \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
--prefix=/ \
--exec-prefix=/ \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libexecdir=/usr/lib \
--sysconfdir=/etc \
--datadir=/usr/share \
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
--enable-shared \
--enable-static \
--disable-assembler \
--with-pthread \
--without-raid \
--with-unix-socket-path=/tmp \
--without-libwrap \
--without-pstack \
--with-low-memory \
--without-server \
--without-embedded-server \
--without-query-cache \
--without-mysqlfs \
--without-vio \
--without-openssl \
--without-docs \
--without-bench \
--without-readline \
$(DISABLE_NLS) \
$(DISABLE_LARGEFILE) \
);
touch $(PKG_BUILD_DIR)/.configured
$(PKG_BUILD_DIR)/libmysql/.libs/libmysqlclient.so: $(PKG_BUILD_DIR)/.configured
$(MAKE) -C "$(PKG_BUILD_DIR)/libmysql" \
CC="$(HOSTCC)" \
LINK="$(HOSTCC) -o conf_to_src -lc" \
CFLAGS="" \
conf_to_src
$(MAKE) -C "$(PKG_BUILD_DIR)" \
SUBDIRS="include libmysql" \
all
$(STAGING_DIR)/include/mysql/mysql.h: $(PKG_BUILD_DIR)/libmysql/.libs/libmysqlclient.so
$(MAKE) -C "$(PKG_BUILD_DIR)" \
DESTDIR="$(STAGING_DIR)" \
SUBDIRS="include libmysql" \
install
$(PKG_IPK): $(PKG_BUILD_DIR)/libmysql/.libs/libmysqlclient.so
$(SCRIPT_DIR)/make-ipkg-dir.sh $(PKG_IPK_DIR) libmysqlclient.control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH)
mkdir -p $(PKG_IPK_DIR)/usr/lib
cp $< $(PKG_IPK_DIR)/usr/lib/
mkdir -p $(PACKAGE_DIR)
$(IPKG_BUILD) $(PKG_IPK_DIR) $(PACKAGE_DIR)
$(IPKG_STATE_DIR)/info/libmysqlclient.list: $(PKG_IPK)
$(IPKG) install $(PKG_IPK)
source: $(DL_DIR)/$(PKG_SOURCE_FILE)
prepare: $(PKG_BUILD_DIR)/ipkg/rules
compile: $(PKG_IPK)
source: $(DL_DIR)/$(PKG_SOURCE)
prepare: $(PKG_BUILD_DIR)/.patched
compile: $(STAGING_DIR)/include/mysql/mysql.h $(PKG_IPK)
install: $(IPKG_STATE_DIR)/info/libmysqlclient.list
clean:
-cd $(PKG_BUILD_DIR); \
TOPDIR="$(TOPDIR)" IPKG_RULES_INC="$(TOPDIR)/rules.mk" \
INSTALL_DIR="$(STAGING_DIR)" \
./ipkg/rules clean
rm -rf $(PKG_BUILD_DIR)
rm -f $(PKG_IPK)

View File

@ -1,8 +0,0 @@
Package: libmysqlclient-dev
Priority: optional
Section: devel
Version: [TBDL]
Architecture: [TBDL]
Maintainer: Nico <nthill@free.fr>
Source: http://nthill.free.fr/openwrt/sources/mysql/
Description: MySQL client library (development)

View File

@ -1,9 +0,0 @@
Package: libmysqlclient
Priority: optional
Section: libs
Version: [TBDL]
Architecture: [TBDL]
Maintainer: Nico <nthill@free.fr>
Source: http://nthill.free.fr/openwrt/sources/mysql/
Description: MySQL client library
Depends: zlib

View File

@ -1,9 +0,0 @@
Package: mysql-utils
Priority: optional
Section: admin
Version: [TBDL]
Architecture: [TBDL]
Maintainer: Nico <nthill@free.fr>
Source: http://nthill.free.fr/openwrt/sources/mysql/
Description: some MySQL client utilities
Depends: libmysqlclient, zlib

View File

@ -1,191 +0,0 @@
#!/usr/bin/make -f
ifneq ($(strip ${IPKG_RULES_INC}),)
include $(IPKG_RULES_INC)
endif
##
PKG_VERSION := $(shell cat ./ipkg/version)
CURRENT_DIR := $(shell pwd)
INSTALL_DIR ?= $(CURRENT_DIR)/ipkg-install
unexport INSTALL_DIR
I_LIBMYSQLCLIENT := ipkg/libmysqlclient
I_LIBMYSQLCLIENT_DEV := ipkg/libmysqlclient-dev
I_MYSQL_UTILS := ipkg/mysql-utils
BUILD_DEPS := \
$(STAGING_DIR)/usr/include/ncurses.h \
# $(STAGING_DIR)/usr/include/zlib.h \
CONFIGURE_OPTS = \
--enable-shared \
--enable-static \
--disable-assembler \
--with-pthread \
--without-raid \
--with-unix-socket-path=/tmp \
--without-libwrap \
--without-pstack \
--with-low-memory \
--without-server \
--without-embedded-server \
--without-query-cache \
--without-mysqlfs \
--without-vio \
--without-openssl \
--without-docs \
--without-bench \
--without-readline \
##
all: package
.stamp-configured: $(BUILD_DEPS)
touch configure.in
touch aclocal.m4
touch Makefile.in
touch config.h.in
touch configure
rm -rf config.cache
$(TARGET_CONFIGURE_OPTS) \
CFLAGS="-I$(STAGING_DIR)/usr/include" \
LDFLAGS="-L$(STAGING_DIR)/usr/lib" \
OPTIMIZE_CFLAGS="$(TARGET_CFLAGS)" \
OPTIMIZE_CXXFLAGS="$(TARGET_CFLAGS)" \
ac_atomic_add=yes \
ac_atomic_sub=yes \
ac_cv_sys_restartable_syscalls=yes \
ac_cv_conv_longlong_to_float=yes \
mysql_cv_compress=yes \
mysql_cv_gethostname_style=glibc2 \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
--program-prefix="" \
--program-suffix="" \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--datadir=/usr/share \
--includedir=/usr/include \
--infodir=/usr/share/info \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
--localstatedir=/var \
--mandir=/usr/share/man \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
$(DISABLE_LARGEFILE) \
$(DISABLE_NLS) \
$(CONFIGURE_OPTS) \
touch .stamp-configured
.stamp-built: .stamp-configured
$(MAKE) -C "libmysql" \
CC="$(HOSTCC)" \
LINK="$(HOSTCC) -o conf_to_src -lc" \
CFLAGS="" \
conf_to_src
$(MAKE) \
SUBDIRS="include libmysql" \
all
$(MAKE) -C "client" mysqladmin mysqlshow
touch .stamp-built
$(INSTALL_DIR)/usr/include/mysql/mysql.h: .stamp-built
mkdir -p $(INSTALL_DIR)
$(MAKE) \
DESTDIR="$(INSTALL_DIR)" \
SUBDIRS="include libmysql" \
install
$(MAKE) -C "client" \
DESTDIR="$(INSTALL_DIR)" \
bin_PROGRAMS="mysqladmin mysqlshow" \
install
configure: .stamp-configured
build: .stamp-built
install: $(INSTALL_DIR)/usr/include/mysql/mysql.h
package: $(INSTALL_DIR)/usr/include/mysql/mysql.h
mkdir -p $(I_LIBMYSQLCLIENT)/usr/lib/
cp -fpR $(INSTALL_DIR)/usr/lib/mysql/libmysqlclient.so.* $(I_LIBMYSQLCLIENT)/usr/lib/
$(STRIP) $(I_LIBMYSQLCLIENT)/usr/lib/libmysqlclient.so.*
mkdir -p $(I_LIBMYSQLCLIENT_DEV)/usr/include
cp -fpR $(INSTALL_DIR)/usr/include/mysql $(I_LIBMYSQLCLIENT_DEV)/usr/include/
mkdir -p $(I_LIBMYSQLCLIENT_DEV)/usr/lib/mysql
cp -fpR $(INSTALL_DIR)/usr/lib/mysql/libmysqlclient.a $(I_LIBMYSQLCLIENT_DEV)/usr/lib/mysql/
cp -fpR $(INSTALL_DIR)/usr/lib/mysql/libmysqlclient.so* $(I_LIBMYSQLCLIENT_DEV)/usr/lib/mysql/
mkdir -p $(I_MYSQL_UTILS)/usr/bin
cp -fpR $(INSTALL_DIR)/usr/bin/mysqladmin $(I_MYSQL_UTILS)/usr/bin/
cp -fpR $(INSTALL_DIR)/usr/bin/mysqlshow $(I_MYSQL_UTILS)/usr/bin/
$(STRIP) $(I_MYSQL_UTILS)/usr/bin/*
chmod 0755 ipkg/*/CONTROL/
chmod 0644 ipkg/*/CONTROL/control
perl -pi -e "s/^Arch.*:.*/Architecture: $(ARCH)/g" ipkg/*/CONTROL/control
ifneq ($(strip $(PKG_VERSION)),)
perl -pi -e "s/^Vers.*:.*/Version: $(PKG_VERSION)/g" ipkg/*/CONTROL/control
endif
$(IPKG_BUILD) $(I_LIBMYSQLCLIENT) $(IPKG_TARGET_DIR)
$(IPKG_BUILD) $(I_LIBMYSQLCLIENT_DEV) $(IPKG_TARGET_DIR)
$(IPKG_BUILD) $(I_MYSQL_UTILS) $(IPKG_TARGET_DIR)
clean:
-$(MAKE) -C "client" \
DESTDIR="$(INSTALL_DIR)" \
bin_PROGRAMS="mysqladmin mysqlshow" \
uninstall
-$(MAKE) \
DESTDIR="$(INSTALL_DIR)" \
uninstall clean
rm -rf .stamp-* \
$(I_LIBMYSQLCLIENT)/usr \
$(I_LIBMYSQLCLIENT_DEV)/usr \
$(I_MYSQL_UTILS)/usr \
control:
@cat $(I_LIBMYSQLCLIENT)/CONTROL/control
@echo
@cat $(I_LIBMYSQLCLIENT_DEV)/CONTROL/control
@echo
@cat $(I_MYSQL_UTILS)/CONTROL/control
@echo
.PHONY: configure build install package clean control

View File

@ -1 +0,0 @@
4.0.24-2

View File

@ -0,0 +1,7 @@
Package: libmysqlclient
Priority: optional
Section: libs
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Depends: zlib
Description: MySQL client library