summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2011-05-19 11:41:44 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2011-05-19 11:41:44 +0200
commite8ca169ae2dcbbf86320f93de493de7c2cf1c1cc (patch)
tree35604465f5784360a4a83d36f79ac0cb6f8804c0
parent23013ef65cb2328d0958809ed88ab9a832440ace (diff)
parent957bb3959c18f96c9ac1c7553e897bbbd95f0d51 (diff)
Merge branch 'master' of git+ssh://openadk.org/git/openadk
-rw-r--r--mk/build.mk5
-rw-r--r--package/base-files/src/etc/profile3
-rw-r--r--package/joe/Makefile48
-rw-r--r--package/joe/patches/patch-umath_c25
-rw-r--r--package/log4cplus/Makefile26
-rw-r--r--package/ntpclient/Makefile14
-rw-r--r--package/pcrepp/Makefile33
-rw-r--r--package/pcrepp/patches/patch-Makefile_am10
-rw-r--r--package/pcrepp/patches/patch-Makefile_in11
-rwxr-xr-xscripts/create-sys6
-rw-r--r--target/arm/sys-available/toolchain-arm5
-rw-r--r--target/arm/sys-available/toolchain-armeb11
-rw-r--r--target/config/Config.in16
-rw-r--r--target/mips/sys-available/toolchain-mips3
-rw-r--r--target/mips/sys-available/toolchain-mipsel9
-rw-r--r--target/tarch.lst11
-rw-r--r--toolchain/uClibc/patches/ld64.patch12
-rw-r--r--tools/adk/pkgmaker.c97
18 files changed, 319 insertions, 26 deletions
diff --git a/mk/build.mk b/mk/build.mk
index 66a081e97..8dbd321d2 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -498,13 +498,14 @@ bulktoolchain:
mkdir -p $(TOPDIR)/bin/toolchain_$${arch}_$$libc; \
( \
echo === building $$arch $$libc toolchain-$$arch on $$(date); \
+ tarch=$$(echo $$arch|sed -e "s#el##" -e "s#eb##"); \
$(GMAKE) prereq && \
- $(GMAKE) ARCH=$$arch SYSTEM=toolchain-$$arch LIBC=$$libc defconfig; \
+ $(GMAKE) ARCH=$$tarch SYSTEM=toolchain-$$arch LIBC=$$libc defconfig; \
$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit;fi; \
rm .config; \
) 2>&1 | tee $(TOPDIR)/bin/toolchain_$${arch}_$${libc}/build.log; \
if [ -f .exit ];then echo "Bulk build failed!"; rm .exit; exit 1;fi \
- done <${TOPDIR}/target/arch.lst ;\
+ done <${TOPDIR}/target/tarch.lst ;\
done
# build all target architecture, target systems and libc combinations
diff --git a/package/base-files/src/etc/profile b/package/base-files/src/etc/profile
index c326f87c2..96f03b980 100644
--- a/package/base-files/src/etc/profile
+++ b/package/base-files/src/etc/profile
@@ -10,3 +10,6 @@ cat /etc/banner 2>&-
[ -x /usr/bin/vim ] && alias vi=vim || alias vim=vi
[ -x /usr/bin/arp ] || arp() { cat /proc/net/arp; }
[ -x /usr/bin/ldd ] || ldd() { LD_TRACE_LOADED_OBJECTS=1 "$@"; }
+alias l='ls -lF'
+alias la='ls -A'
+alias ll='ls -alF'
diff --git a/package/joe/Makefile b/package/joe/Makefile
new file mode 100644
index 000000000..483b38873
--- /dev/null
+++ b/package/joe/Makefile
@@ -0,0 +1,48 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${TOPDIR}/rules.mk
+
+PKG_NAME:= joe
+PKG_VERSION:= 3.7
+PKG_RELEASE:= 1
+PKG_MD5SUM:= 66de1b073e869ba12abbfcde3885c577
+PKG_DESCR:= JOE - Joe's Own Editor
+PKG_SECTION:= editor
+PKG_URL:= http://joe-editor.sourceforge.net/
+PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=joe-editor/}
+
+PKG_FLAVOURS_JOE:= DOC LANGUAGE SYNTAX
+PKGFD_DOC:= Install documentation
+PKGFD_LANGUAGE:= Install translation files
+PKGFD_SYNTAX:= Install syntax highlighting files
+
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,JOE,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+post-install:
+ ${INSTALL_DIR} ${IDIR_JOE}/usr/bin
+ ${INSTALL_DIR} ${IDIR_JOE}/etc/joe
+ ${CP} ${WRKINST}/usr/bin/* ${IDIR_JOE}/usr/bin
+ ${CP} ${WRKINST}/etc/joe/* ${IDIR_JOE}/etc/joe
+
+ifeq (${ADK_PACKAGE_JOE_DOC},y)
+ ${INSTALL_DIR} ${IDIR_JOE}/usr/share/doc
+ ${INSTALL_DIR} ${IDIR_JOE}/usr/share/man
+ ${CP} ${WRKINST}/usr/share/doc/* ${IDIR_JOE}/usr/share/doc
+ ${CP} ${WRKINST}/usr/share/man/* ${IDIR_JOE}/usr/share/man
+endif
+
+ifeq (${ADK_PACKAGE_JOE_LANGUAGE},y)
+ ${INSTALL_DIR} ${IDIR_JOE}/usr/share/joe/lang
+ ${CP} ${WRKINST}/usr/share/joe/lang/* ${IDIR_JOE}/usr/share/joe/lang
+endif
+
+ifeq (${ADK_PACKAGE_JOE_SYNTAX},y)
+ ${INSTALL_DIR} ${IDIR_JOE}/usr/share/joe/syntax
+ ${INSTALL_DIR} ${IDIR_JOE}/usr/share/joe/charmaps
+ ${CP} ${WRKINST}/usr/share/joe/syntax/* ${IDIR_JOE}/usr/share/joe/syntax
+ ${CP} ${WRKINST}/usr/share/joe/charmaps/* ${IDIR_JOE}/usr/share/joe/charmaps
+endif
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/joe/patches/patch-umath_c b/package/joe/patches/patch-umath_c
new file mode 100644
index 000000000..03c815f44
--- /dev/null
+++ b/package/joe/patches/patch-umath_c
@@ -0,0 +1,25 @@
+--- joe-3.7.orig/umath.c 2011-05-06 11:28:53.000000000 +0200
++++ joe-3.7/umath.c 2011-05-16 09:10:08.000000000 +0200
+@@ -396,10 +396,18 @@
+ double m_fabs(double n) { return fabs(n); }
+ double m_erf(double n) { return erf(n); }
+ double m_erfc(double n) { return erfc(n); }
+-double m_j0(double n) { return j0(n); }
+-double m_j1(double n) { return j1(n); }
+-double m_y0(double n) { return y0(n); }
+-double m_y1(double n) { return y1(n); }
++#if defined(__UCLIBC__)
++double m_j0(double n) { return 0; }
++double m_j1(double n) { return 0; }
++double m_y0(double n) { return 0; }
++double m_y1(double n) { return 0; }
++#else
++double m_j0(double n) { return j0(n); }
++double m_j1(double n) { return j1(n); }
++double m_y0(double n) { return y0(n); }
++double m_y1(double n) { return y1(n); }
++#endif
++
+
+ double calc(BW *bw, unsigned char *s)
+ {
diff --git a/package/log4cplus/Makefile b/package/log4cplus/Makefile
new file mode 100644
index 000000000..b2e2aab1a
--- /dev/null
+++ b/package/log4cplus/Makefile
@@ -0,0 +1,26 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${TOPDIR}/rules.mk
+
+PKG_NAME:= log4cplus
+PKG_VERSION:= 1.0.4
+PKG_RELEASE:= 1
+PKG_MD5SUM:= 977d0a390b3be1a4ad8cfab2e4dd3af3
+PKG_DESCR:= Logging framework for C++
+PKG_SECTION:= libs
+PKG_DEPENDS:= libpthread
+PKG_BUILDDEP:= libpthread
+PKG_URL:= http://log4cplus.sourceforge.net/
+PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=log4cplus/log4cplus-stable/${PKG_VERSION}/}
+
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
+
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,LOG4CPLUS,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+post-install:
+ ${CP} ${WRKINST}/* ${IDIR_LOG4CPLUS}
+
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/ntpclient/Makefile b/package/ntpclient/Makefile
index baa7d48f9..e5e1f88de 100644
--- a/package/ntpclient/Makefile
+++ b/package/ntpclient/Makefile
@@ -16,6 +16,14 @@ PKG_SITES:= http://doolittle.icarus.com/ntpclient/
DISTFILES:= ${PKG_NAME}_${PKG_VERSION}.tar.gz
WRKDIST= ${WRKDIR}/${PKG_NAME}-2007
+PKG_FLAVOURS_NTPCLIENT:= STARTUP
+PKGFD_STARTUP:= Fetch time on startup
+
+PKG_FLAVOURS_STRING_NTPCLIENT:= HOST
+PKGFD_HOST:= Fetch time from this NTP host
+PKGFX_HOST:= 0.de.pool.ntp.org
+PKGFC_HOST:= depends on ADK_PACKAGE_NTPCLIENT_STARTUP
+
include ${TOPDIR}/mk/package.mk
$(eval $(call PKG_template,NTPCLIENT,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
@@ -30,4 +38,10 @@ do-install:
${INSTALL_DIR} ${IDIR_NTPCLIENT}/usr/sbin
${INSTALL_BIN} ${WRKBUILD}/ntpclient ${IDIR_NTPCLIENT}/usr/sbin/
+ifeq (${ADK_PACKAGE_NTPCLIENT_STARTUP},y)
+ ${INSTALL_DIR} ${IDIR_NTPCLIENT}/etc/init.d
+ touch ${IDIR_NTPCLIENT}/etc/init.d/ntpclient
+ echo -e "#!/bin/sh\n#INIT 91\nntpclient -h ${ADK_PACKAGE_NTPCLIENT_HOST} -s\nexit 0" > ${IDIR_NTPCLIENT}/etc/init.d/ntpclient
+endif
+
include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/pcrepp/Makefile b/package/pcrepp/Makefile
new file mode 100644
index 000000000..639f5ad53
--- /dev/null
+++ b/package/pcrepp/Makefile
@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${TOPDIR}/rules.mk
+
+PKG_NAME:= pcrepp
+PKG_VERSION:= 0.9.5
+PKG_RELEASE:= 1
+PKG_MD5SUM:= 1fe6ea8e23ece01fde2ce5fb4746acc2
+PKG_DESCR:= Cpp Wrapper classes for PCRE
+PKG_SECTION:= libs
+PKG_URL:= http://www.daemon.de/PCRE
+PKG_SITES:= http://www.daemon.de/idisk/Apps/pcre++/
+PKG_DEPENDS:= libpcre
+PKG_BUILDDEP:= pcre
+PKG_NEED_CXX:= 1
+PKG_CXX:= pcrepp
+
+PKG_CFLINE_PCREPP:= depends on ADK_TARGET_LIB_EGLIBC || ADK_TARGET_LIB_GLIBC
+
+DISTFILES:= pcre++-${PKG_VERSION}.tar.gz
+
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,PCREPP,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+post-extract:
+ mv ${WRKDIR_BASE}/w-${PKG_NAME}-${PKG_VERSION}-${PKG_RELEASE}/pcre++-${PKG_VERSION} ${WRKBUILD}
+
+post-install:
+ ${CP} ${WRKINST}/* ${WRKINST}/../pkg-${PKG_NAME}
+
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/pcrepp/patches/patch-Makefile_am b/package/pcrepp/patches/patch-Makefile_am
new file mode 100644
index 000000000..d224337ec
--- /dev/null
+++ b/package/pcrepp/patches/patch-Makefile_am
@@ -0,0 +1,10 @@
+--- pcrepp-0.9.5.orig/Makefile.am 2011-05-13 10:25:39.116697222 +0200
++++ pcrepp-0.9.5/Makefile.am 2011-05-13 10:18:08.609616331 +0200
+@@ -1,6 +1,6 @@
+
+
+-SUBDIRS = libpcre++ doc examples test
++SUBDIRS = libpcre++
+
+ bin_SCRIPTS = pcre++-config
+
diff --git a/package/pcrepp/patches/patch-Makefile_in b/package/pcrepp/patches/patch-Makefile_in
new file mode 100644
index 000000000..c10eab68d
--- /dev/null
+++ b/package/pcrepp/patches/patch-Makefile_in
@@ -0,0 +1,11 @@
+--- pcrepp-0.9.5.orig/Makefile.in 2011-05-13 10:25:39.126696935 +0200
++++ pcrepp-0.9.5/Makefile.in 2011-05-13 10:18:08.619616044 +0200
+@@ -77,7 +77,7 @@
+ STRIP = @STRIP@
+ VERSION = @VERSION@
+
+-SUBDIRS = libpcre++ doc examples test
++SUBDIRS = libpcre++
+
+ bin_SCRIPTS = pcre++-config
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
diff --git a/scripts/create-sys b/scripts/create-sys
index 6e61e017c..ffa0ed70f 100755
--- a/scripts/create-sys
+++ b/scripts/create-sys
@@ -3,11 +3,11 @@ topdir=$(readlink -nf $(dirname $0)/.. 2>/dev/null || (cd $(dirname $0)/..; pwd
systems=$(grep -h config target/*/sys-available/*|cut -d " " -f 2)
while read arch; do
- count=1
+ count=0
+ rm -rf $topdir/target/$arch/sys-enabled &&
mkdir -p $topdir/target/$arch/sys-enabled &&
cd $topdir/target/$arch/sys-enabled &&
- ln -sf ../sys-available/toolchain-$arch 0-toolchain-$arch
- for i in $(ls $topdir/target/$arch/sys-available/|grep -v toolchain);do
+ for i in $(ls $topdir/target/$arch/sys-available/);do
cd $topdir/target/$arch/sys-enabled/ &&
ln -sf ../sys-available/$i $count-$i
count=$((count+1))
diff --git a/target/arm/sys-available/toolchain-arm b/target/arm/sys-available/toolchain-arm
index a5e31c711..ade935950 100644
--- a/target/arm/sys-available/toolchain-arm
+++ b/target/arm/sys-available/toolchain-arm
@@ -1,10 +1,11 @@
config ADK_TARGET_SYSTEM_TOOLCHAIN_ARM
- bool "Toolchain only"
+ bool "Toolchain only (little endian)"
select ADK_arm
select ADK_toolchain_arm
+ select ADK_little
select ADK_TOOLCHAIN
select ADK_EABI
select ADK_TARGET_NO_FPU
help
- ARM toolchain.
+ ARM toolchain (little endian).
diff --git a/target/arm/sys-available/toolchain-armeb b/target/arm/sys-available/toolchain-armeb
new file mode 100644
index 000000000..8a99ca78a
--- /dev/null
+++ b/target/arm/sys-available/toolchain-armeb
@@ -0,0 +1,11 @@
+config ADK_TARGET_SYSTEM_TOOLCHAIN_ARMEB
+ bool "Toolchain only (big endian)"
+ select ADK_arm
+ select ADK_toolchain_armeb
+ select ADK_big
+ select ADK_TOOLCHAIN
+ select ADK_EABI
+ select ADK_TARGET_NO_FPU
+ help
+ ARM toolchain (big endian).
+
diff --git a/target/config/Config.in b/target/config/Config.in
index 8697f337e..c1feb7053 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -30,22 +30,6 @@ config ADK_TOOLCHAIN_ARCHIVE
endchoice
choice
-prompt "Target Endianess"
-depends on (ADK_LINUX_ARM || ADK_LINUX_MIPS) && ADK_TOOLCHAIN
-config ADK_ENDIAN
- boolean "Choose target endianess"
-
-config ADK_TARGET_LITTLE_ENDIAN
- boolean "Little endian"
- select ADK_little
-
-config ADK_TARGET_BIG_ENDIAN
- boolean "Big endian"
- select ADK_big
-
-endchoice
-
-choice
prompt "Target Kernel"
depends on ADK_TARGET_SYSTEM_LEMOTE_YEELONG
config ADK_TARGET_KERNEL
diff --git a/target/mips/sys-available/toolchain-mips b/target/mips/sys-available/toolchain-mips
index d07306ee8..783d71fa0 100644
--- a/target/mips/sys-available/toolchain-mips
+++ b/target/mips/sys-available/toolchain-mips
@@ -1,6 +1,7 @@
config ADK_TARGET_SYSTEM_TOOLCHAIN_MIPS
- bool "Toolchain only"
+ bool "Toolchain only (big endian)"
select ADK_mips
+ select ADK_big
select ADK_toolchain_mips
select ADK_TOOLCHAIN
help
diff --git a/target/mips/sys-available/toolchain-mipsel b/target/mips/sys-available/toolchain-mipsel
new file mode 100644
index 000000000..7eb9a743f
--- /dev/null
+++ b/target/mips/sys-available/toolchain-mipsel
@@ -0,0 +1,9 @@
+config ADK_TARGET_SYSTEM_TOOLCHAIN_MIPSEL
+ bool "Toolchain only (little endian)"
+ select ADK_mips
+ select ADK_little
+ select ADK_toolchain_mipsel
+ select ADK_TOOLCHAIN
+ help
+ MIPS toolchain.
+
diff --git a/target/tarch.lst b/target/tarch.lst
new file mode 100644
index 000000000..16d0f0d69
--- /dev/null
+++ b/target/tarch.lst
@@ -0,0 +1,11 @@
+arm
+armeb
+cris
+mips
+mipsel
+ppc
+ppc64
+sparc
+sparc64
+x86
+x86_64
diff --git a/toolchain/uClibc/patches/ld64.patch b/toolchain/uClibc/patches/ld64.patch
new file mode 100644
index 000000000..2a9cc22b3
--- /dev/null
+++ b/toolchain/uClibc/patches/ld64.patch
@@ -0,0 +1,12 @@
+diff -Nur uClibc-0.9.32-rc3.orig/Rules.mak uClibc-0.9.32-rc3/Rules.mak
+--- uClibc-0.9.32-rc3.orig/Rules.mak 2011-03-16 20:11:13.000000000 +0100
++++ uClibc-0.9.32-rc3/Rules.mak 2011-05-08 21:55:43.986610132 +0200
+@@ -120,7 +120,7 @@
+ SHARED_LIBNAME := $(LIBC).so.$(ABI_VERSION)
+ UBACKTRACE_DSO := libubacktrace.so.$(MAJOR_VERSION)
+ ifneq ($(findstring $(TARGET_ARCH) , hppa64 ia64 mips64 powerpc64 s390x sparc64 x86_64 ),)
+-UCLIBC_LDSO_NAME := ld64-uClibc
++UCLIBC_LDSO_NAME := ld-uClibc
+ ARCH_NATIVE_BIT := 64
+ else
+ UCLIBC_LDSO_NAME := ld-uClibc
diff --git a/tools/adk/pkgmaker.c b/tools/adk/pkgmaker.c
index 7c04b6b74..7b79bfb72 100644
--- a/tools/adk/pkgmaker.c
+++ b/tools/adk/pkgmaker.c
@@ -271,7 +271,7 @@ int main() {
char *pkg_name, *pkg_depends, *pkg_section, *pkg_descr, *pkg_url;
char *pkg_cxx, *pkg_subpkgs, *pkg_cfline, *pkg_dflt, *pkg_multi;
char *pkg_need_cxx, *pkg_need_java, *pkgname;
- char *pkg_host_depends, *pkg_arch_depends, *pkg_flavours, *pkg_choices, *pseudo_name;
+ char *pkg_host_depends, *pkg_arch_depends, *pkg_flavours, *pkg_flavours_string, *pkg_choices, *pseudo_name;
char *packages, *pkg_name_u, *pkgs;
char *saveptr, *p_ptr, *s_ptr;
int result;
@@ -283,6 +283,7 @@ int main() {
pkg_url = NULL;
pkg_depends = NULL;
pkg_flavours = NULL;
+ pkg_flavours_string = NULL;
pkg_choices = NULL;
pkg_subpkgs = NULL;
pkg_arch_depends = NULL;
@@ -412,12 +413,18 @@ int main() {
continue;
if ((parse_var(buf, "PKG_DEPENDS", pkg_depends, &pkg_depends)) == 0)
continue;
+ if ((parse_var_with_pkg(buf, "PKG_FLAVOURS_STRING_", pkg_flavours_string, &pkg_flavours_string, &pkgname, 20)) == 0)
+ continue;
if ((parse_var_with_pkg(buf, "PKG_FLAVOURS_", pkg_flavours, &pkg_flavours, &pkgname, 13)) == 0)
continue;
if ((parse_var_hash(buf, "PKGFD_", pkgmap)) == 0)
continue;
+ if ((parse_var_hash(buf, "PKGFX_", pkgmap)) == 0)
+ continue;
if ((parse_var_hash(buf, "PKGFS_", pkgmap)) == 0)
continue;
+ if ((parse_var_hash(buf, "PKGFC_", pkgmap)) == 0)
+ continue;
if ((parse_var_with_pkg(buf, "PKG_CHOICES_", pkg_choices, &pkg_choices, &pkgname, 12)) == 0)
continue;
if ((parse_var_hash(buf, "PKGCD_", pkgmap)) == 0)
@@ -452,6 +459,8 @@ int main() {
fprintf(stderr, "Package subpackages are %s\n", pkg_subpkgs);
if (pkg_flavours != NULL && pkgname != NULL)
fprintf(stderr, "Package flavours for %s are %s\n", pkgname, pkg_flavours);
+ if (pkg_flavours_string != NULL && pkgname != NULL)
+ fprintf(stderr, "Package string flavours for %s are %s\n", pkgname, pkg_flavours_string);
if (pkg_choices != NULL && pkgname != NULL)
fprintf(stderr, "Package choices for %s are %s\n", pkgname, pkg_choices);
if (pkg_url != NULL)
@@ -695,6 +704,30 @@ int main() {
token = strtok(pkg_flavours, " ");
while (token != NULL) {
fprintf(cfg, "\nconfig ADK_PACKAGE_%s_%s\n", pkgname, toupperstr(token));
+
+ // process default value
+ strncat(hkey, "PKGFX_", 6);
+ strncat(hkey, token, strlen(token));
+ memset(hvalue, 0 , MAXVALUE);
+ strmap_get(pkgmap, hkey, hvalue, sizeof(hvalue));
+ memset(hkey, 0 , MAXVAR);
+ pkg_fd = strdup(hvalue);
+ if (strlen(pkg_fd) > 0)
+ fprintf(cfg, "\tdefault %s\n", pkg_fd);
+ else
+ fprintf(cfg, "\tdefault n\n");
+
+
+ // process flavour cfline
+ strncat(hkey, "PKGFC_", 6);
+ strncat(hkey, token, strlen(token));
+ memset(hvalue, 0 , MAXVALUE);
+ strmap_get(pkgmap, hkey, hvalue, sizeof(hvalue));
+ memset(hkey, 0 , MAXVAR);
+ pkg_fd = strdup(hvalue);
+ if (strlen(pkg_fd) > 0)
+ fprintf(cfg, "\t%s\n", pkg_fd);
+
fprintf(cfg, "\tboolean ");
strncat(hkey, "PKGFD_", 6);
strncat(hkey, token, strlen(token));
@@ -704,7 +737,6 @@ int main() {
pkg_fd = strdup(hvalue);
fprintf(cfg, "\"%s\"\n", pkg_fd);
- fprintf(cfg, "\tdefault n\n");
fprintf(cfg, "\tdepends on ADK_PACKAGE_%s\n", pkgname);
strncat(hkey, "PKGFS_", 6);
strncat(hkey, token, strlen(token));
@@ -729,6 +761,65 @@ int main() {
pkg_flavours = NULL;
}
+ /* package flavours string */
+ if (pkg_flavours_string != NULL) {
+ token = strtok(pkg_flavours_string, " ");
+ while (token != NULL) {
+ fprintf(cfg, "\nconfig ADK_PACKAGE_%s_%s\n", pkgname, toupperstr(token));
+
+ // process default value
+ strncat(hkey, "PKGFX_", 6);
+ strncat(hkey, token, strlen(token));
+ memset(hvalue, 0 , MAXVALUE);
+ strmap_get(pkgmap, hkey, hvalue, sizeof(hvalue));
+ memset(hkey, 0 , MAXVAR);
+ pkg_fd = strdup(hvalue);
+ if (strlen(pkg_fd) > 0)
+ fprintf(cfg, "\tdefault \"%s\"\n", pkg_fd);
+
+ // process flavour cfline
+ strncat(hkey, "PKGFC_", 6);
+ strncat(hkey, token, strlen(token));
+ memset(hvalue, 0 , MAXVALUE);
+ strmap_get(pkgmap, hkey, hvalue, sizeof(hvalue));
+ memset(hkey, 0 , MAXVAR);
+ pkg_fd = strdup(hvalue);
+ if (strlen(pkg_fd) > 0)
+ fprintf(cfg, "\t%s\n", pkg_fd);
+
+ fprintf(cfg, "\tstring ");
+ strncat(hkey, "PKGFD_", 6);
+ strncat(hkey, token, strlen(token));
+ memset(hvalue, 0 , MAXVALUE);
+ strmap_get(pkgmap, hkey, hvalue, sizeof(hvalue));
+ memset(hkey, 0 , MAXVAR);
+ pkg_fd = strdup(hvalue);
+ fprintf(cfg, "\"%s\"\n", pkg_fd);
+
+ fprintf(cfg, "\tdepends on ADK_PACKAGE_%s\n", pkgname);
+ strncat(hkey, "PKGFS_", 6);
+ strncat(hkey, token, strlen(token));
+
+ result = strmap_get(pkgmap, hkey, hvalue, sizeof(hvalue));
+ if (result == 1) {
+ val = strtok_r(hvalue, " ", &saveptr);
+ while (val != NULL) {
+ if (strncmp(val, "kmod", 4) == 0)
+ fprintf(cfg, "\tselect ADK_KPACKAGE_%s\n", toupperstr(val));
+ else
+ fprintf(cfg, "\tselect ADK_PACKAGE_%s\n", toupperstr(val));
+ val = strtok_r(NULL, " ", &saveptr);
+ }
+ }
+ memset(hkey, 0, MAXVAR);
+ fprintf(cfg, "\thelp\n");
+ fprintf(cfg, "\t %s\n", pkg_fd);
+ token = strtok(NULL, " ");
+ }
+ free(pkg_flavours_string);
+ pkg_flavours_string = NULL;
+ }
+
/* package choices */
if (pkg_choices != NULL) {
fprintf(cfg, "\nchoice\n");
@@ -785,6 +876,7 @@ int main() {
free(pkg_url);
free(pkg_depends);
free(pkg_flavours);
+ free(pkg_flavours_string);
free(pkg_choices);
free(pkg_subpkgs);
free(pkg_arch_depends);
@@ -799,6 +891,7 @@ int main() {
pkg_url = NULL;
pkg_depends = NULL;
pkg_flavours = NULL;
+ pkg_flavours_string = NULL;
pkg_choices = NULL;
pkg_subpkgs = NULL;
pkg_arch_depends = NULL;