add uSTL package

SVN-Revision: 2603
This commit is contained in:
Nicolas Thill 2005-12-08 22:15:42 +00:00
parent e2af66b181
commit 14c6723d39
8 changed files with 499 additions and 0 deletions

View file

@ -207,6 +207,7 @@ source "package/libvorbisidec/Config.in"
source "package/libxml2/Config.in"
source "package/libxslt/Config.in"
source "package/uclibc++/Config.in"
source "package/ustl/Config.in"
source "package/zlib/Config.in"
comment "Multimedia"

View file

@ -200,6 +200,7 @@ package-$(BR2_PACKAGE_UCLIBCXX) += uclibc++
package-$(BR2_PACKAGE_ULOGD) += ulogd
package-$(BR2_PACKAGE_UPDATEDD) += updatedd
package-$(BR2_COMPILE_USBUTILS) += usbutils
package-$(BR2_PACKAGE_USTL) += ustl
package-$(BR2_COMPILE_UTIL_LINUX) += util-linux
package-$(BR2_PACKAGE_UDEV) += udev
package-$(BR2_PACKAGE_VTUN) += vtun

View file

@ -0,0 +1,12 @@
config BR2_PACKAGE_USTL
prompt "ustl.............................. C++ Standard Template Library for embedded systems"
tristate
default m if CONFIG_DEVEL
help
uSTL is a partial implementation of the STL (Standard Template
Library) that reduces code size by factoring memory management
code into a non-template base class and deriving containers
from it.
http://ustl.sourceforge.net/

View file

@ -0,0 +1,65 @@
# $Id: Makefile 2230 2005-10-22 12:12:59Z nbd $
include $(TOPDIR)/rules.mk
PKG_NAME:=ustl
PKG_VERSION:=0.8
PKG_RELEASE:=1
PKG_MD5SUM:=dd59483c327f1bd1356273bc5ae4dde0
PKG_SOURCE_URL:=@SF/ustl
PKG_SOURCE:=$(PKG_NAME)-0.8-0.tar.bz2
PKG_CAT:=bzcat
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
include $(TOPDIR)/package/rules.mk
BR2_PACKAGE_USTL:=m
$(eval $(call PKG_template,USTL,ustl,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
$(PKG_BUILD_DIR)/.configured:
cp ./files/config.h $(PKG_BUILD_DIR)/
cp ./files/Common.mk $(PKG_BUILD_DIR)/
touch $@
$(PKG_BUILD_DIR)/.built:
rm -rf $(PKG_INSTALL_DIR)
mkdir -p $(PKG_INSTALL_DIR)
$(MAKE) -C $(PKG_BUILD_DIR) \
CROSS="$(TARGET_CROSS)" \
OPTFLAGS="$(TARGET_CFLAGS)" \
DESTDIR="$(PKG_INSTALL_DIR)" \
all install
touch $@
$(IPKG_USTL):
install -d -m0755 $(IDIR_USTL)/usr/lib
cp -fpR $(PKG_INSTALL_DIR)/usr/lib/libustl.so.* $(IDIR_USTL)/usr/lib/
$(RSTRIP) $(IDIR_USTL)
$(IPKG_BUILD) $(IDIR_USTL) $(PACKAGE_DIR)
$(STAGING_DIR)/usr/lib/libustl.so: $(PKG_BUILD_DIR)/.built
mkdir -p $(STAGING_DIR)/usr/include
cp -fpR $(PKG_INSTALL_DIR)/usr/include/ustl* $(STAGING_DIR)/usr/include/
mkdir -p $(STAGING_DIR)/usr/lib
cp -fpR $(PKG_INSTALL_DIR)/usr/lib/libustl.a $(STAGING_DIR)/usr/lib/
cp -fpR $(PKG_INSTALL_DIR)/usr/lib/libustl.so* $(STAGING_DIR)/usr/lib/
touch $@
install-dev: $(STAGING_DIR)/usr/lib/libustl.so
uninstall-dev:
rm -rf \
$(STAGING_DIR)/usr/include/ustl* \
$(STAGING_DIR)/usr/lib/libustl.a \
$(STAGING_DIR)/usr/lib/libustl.so* \
compile-targets: install-dev
clean-targets: uninstall-dev
mostlyclean:
-$(MAKE) -C $(PKG_BUILD_DIR) clean
rm -f $(PKG_BUILD_DIR)/.built

View file

@ -0,0 +1,74 @@
LIBNAME = ustl
MAJOR = 0
MINOR = 8
BUILD = 0
CC = $(CROSS)gcc
CXX = $(CROSS)g++
LD = $(CROSS)gcc
AR = $(CROSS)ar
RANLIB = $(CROSS)ranlib
DOXYGEN = echo
INSTALL = /usr/bin/install
RM = rm -f
LN = ln -sf
prefix = /usr
exec_prefix = /usr
BINDIR = /usr/bin
INCDIR = /usr/include
LIBDIR = /usr/lib
DESTDIR =
INSTALLDIR = ${INSTALL} -d
INSTALLLIB = ${INSTALL} -p -m 644
INSTALLEXE = ${INSTALL} -p -m 755
INSTALLDATA = ${INSTALL} -p -m 644
CWARNOPTS = -Werror -Wall -W -Wpointer-arith -Wno-cast-align \
-Wcast-qual -Wwrite-strings -Wredundant-decls
CXXWARNOPTS = ${CWARNOPTS} -Wconversion -Wsign-promo -Wsynth -Woverloaded-virtual
PROCESSOR_OPTS =
INLINE_OPTS = -finline-limit=65535
CUSTOMINCDIR =
CUSTOMLIBDIR =
BUILD_SHARED = 1
BUILD_STATIC = 1
#DEBUG = 1
#PROFILE = 1
STANDALONE = -nodefaultlibs
CFLAGS = \
${CUSTOMINCDIR} ${OPTFLAGS} ${CWARNOPTS} ${STANDALONE}
CXXFLAGS = \
${CUSTOMINCDIR} ${OPTFLAGS} ${INLINE_OPTS} \
${CXXWARNOPTS} ${STANDALONE} -fno-builtin
LDFLAGS = ${CUSTOMLIBDIR} ${STANDALONE}
OPTFLAGS = ${PROCESSOR_OPTS}
ifdef DEBUG
OPTFLAGS += -O0 -g
else
OPTFLAGS += -O3 -DNDEBUG=1
endif
ifdef PROFILE
OPTFLAGS += -pg
endif
ifdef STANDALONE
LIBS += -lsupc++ -lgcc_eh -lgcc -lc
endif
ifdef BUILD_SHARED
CFLAGS += -fPIC
CXXFLAGS += -fPIC
endif
SHBLDFL = -shared
LIBA = lib${LIBNAME}.a
LIBSO = lib${LIBNAME}.so
ifdef MAJOR
LIBSOLNK = ${LIBSO}.${MAJOR}.${MINOR}
LIBSOBLD = ${LIBSO}.${MAJOR}.${MINOR}.${BUILD}
endif
TOCLEAN += ${LIBSO} ${LIBA} ${LIBSOBLD}

View file

@ -0,0 +1,286 @@
// config.h
//
// Autogenerated from config.h.in by bsconf.
//
#ifndef CONFIG_H_01E33670634DAAC779EE5FF41CCBB36F
#define CONFIG_H_01E33670634DAAC779EE5FF41CCBB36F
// Define to the one symbol short name of this package.
#define USTL_NAME "ustl"
// Define to the full name and version of this package.
#define USTL_STRING "ustl 0.8"
// Define to the version of this package.
#define USTL_VERSION 0x080
// Define to the address where bug reports for this package should be sent.
#define USTL_BUGREPORT "Mike Sharov <msharov@users.sourceforge.net>"
/// Define to 1 if you want stream operations to throw exceptions on
/// insufficient data or insufficient space. All these errors should
/// be preventable in output code; the input code should verify the
/// data in a separate step. It slows down stream operations a lot,
/// but it's your call. By default only debug builds throw.
///
#undef WANT_STREAM_BOUNDS_CHECKING
#if !defined(WANT_STREAM_BOUNDS_CHECKING) && !defined(NDEBUG)
#define WANT_STREAM_BOUNDS_CHECKING 1
#endif
/// Define to 1 if you want to build without libstdc++
#define WITHOUT_LIBSTDCPP 1
/// Define to 1 if you don't want the standard streams.
/// You will not be able to run bvt tests if you do this.
///
#undef WITHOUT_CIN_COUT_CERR
/// Define GNU extensions if unavailable.
#ifndef __GNUC__
/// GCC (and some other compilers) define '__attribute__'; ustl is using this
/// macro to alert the compiler to flag inconsistencies in printf/scanf-like
/// function calls. Just in case '__attribute__' isn't defined, make a dummy.
///
#ifndef __attribute__
#define __attribute__(p)
#endif
#endif
#if defined(__GNUC__) && (__GNUC__ >= 4)
#define DLL_EXPORT __attribute__((visibility("default")))
#define DLL_LOCAL __attribute__((visibility("hidden")))
#else
#define DLL_EXPORT
#define DLL_LOCAL
#endif
#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(__i386__)
/// GCC 3+ supports the prefetch directive, which some CPUs use to improve caching
#define prefetch(p,rw,loc) __builtin_prefetch(p,rw,loc)
#else
#define prefetch(p,rw,loc)
#endif
#if !defined(__GNUC__) || (__GNUC__ < 3)
/// __alignof__ returns the recommended alignment for the type
#define __alignof__(v) min(sizeof(v), sizeof(void*))
#endif
/// Define to 1 if you have the `atexit' function.
#define HAVE_ATEXIT 1
/// Define to 1 if you have the <assert.h> header file.
#define HAVE_ASSERT_H 1
/// Define to 1 if you have the <ctype.h> header file.
#define HAVE_CTYPE_H 1
/// Define to 1 if you have the <errno.h> header file.
#define HAVE_ERRNO_H 1
/// Define to 1 if you have the <fcntl.h> header file.
#define HAVE_FCNTL_H 1
/// Define to 1 if you have the <float.h> header file.
#define HAVE_FLOAT_H 1
/// Define to 1 if you have the <inttypes.h> header file.
#define HAVE_INTTYPES_H 1
/// Define to 1 if you have the <limits.h> header file.
#define HAVE_LIMITS_H 1
/// Define to 1 if you have the <locale.h> header file.
#define HAVE_LOCALE_H 1
/// Define to 1 if your system has a working `malloc' function.
#define HAVE_MALLOC 1
// Define to 1 if you have the <malloc.h> header file.
#define HAVE_MALLOC_H 1
// Define to 1 if you have the <alloca.h> header file.
#define HAVE_ALLOCA_H 1
// Define to 1 if you have the `memchr' function.
#define HAVE_MEMCHR 1
// Define to 1 if you have the `memmove' function.
#define HAVE_MEMMOVE 1
// Define to 1 if you have the <memory.h> header file.
#define HAVE_MEMORY_H 1
// Define to 1 if you have the `memset' function.
#define HAVE_MEMSET 1
// Define to 1 if the system has the type `ptrdiff_t'.
#define HAVE_PTRDIFF_T 1
// Define to 1 if you have the <signal.h> header file.
#define HAVE_SIGNAL_H 1
// Define to 1 if you have the __va_copy function
#define HAVE_VA_COPY 1
// Define to 1 if `stat' has the bug that it succeeds when given the
// zero-length file name argument.
/* #undef HAVE_STAT_EMPTY_STRING_BUG */
// Define to 1 if you have the <stdarg.h> header file.
#define HAVE_STDARG_H 1
// Define to 1 if you have the <stddef.h> header file.
#define HAVE_STDDEF_H 1
// Define to 1 if you have the <stdint.h> header file.
#define HAVE_STDINT_H 1
// Define to 1 if you have the <stdio.h> header file.
#define HAVE_STDIO_H 1
// Define to 1 if you have the <stdlib.h> header file.
#define HAVE_STDLIB_H 1
// Define to 1 if you have the `strerror' function.
#define HAVE_STRERROR 1
// Define to 1 if you have the <strings.h> header file.
#define HAVE_STRINGS_H 1
// Define to 1 if you have the <string.h> header file.
#define HAVE_STRING_H 1
// Define to 1 if you have the `strrchr' function.
#define HAVE_STRRCHR 1
// Define to 1 if you have the `strsignal' function.
#define HAVE_STRSIGNAL 1
// Define to 1 if you have the `strtol' function.
#define HAVE_STRTOL 1
// Define to 1 if you have the <sys/stat.h> header file.
#define HAVE_SYS_STAT_H 1
// Define to 1 if you have the <sys/types.h> header file.
#define HAVE_SYS_TYPES_H 1
// Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible.
#define HAVE_SYS_WAIT_H 1
// Define to 1 if you have the <time.h> header file.
#define HAVE_TIME_H 1
// Define to 1 if you have the <unistd.h> header file.
#define HAVE_UNISTD_H 1
// Define to 1 if you have the <math.h> header file.
#define HAVE_MATH_H 1
// Define to 1 if you have the rintf function. Will use rint otherwise.
#undef HAVE_RINTF
// STDC_HEADERS is defined to 1 on sane systems.
#if defined(HAVE_ASSERT_H) && defined(HAVE_CTYPE_H) &&\
defined(HAVE_ERRNO_H) && defined(HAVE_FLOAT_H) &&\
defined(HAVE_LIMITS_H) && defined(HAVE_LOCALE_H) &&\
defined(HAVE_MATH_H) && defined(HAVE_SIGNAL_H) &&\
defined(HAVE_STDARG_H) && defined(HAVE_STDDEF_H) &&\
defined(HAVE_STDIO_H) && defined(HAVE_STDLIB_H) &&\
defined(HAVE_STRING_H) && defined(HAVE_TIME_H)
#define STDC_HEADERS 1
#endif
// STDC_HEADERS is defined to 1 on unix systems.
#if defined(HAVE_FCNTL_H) && defined(HAVE_SYS_STAT_H) && defined(HAVE_UNISTD_H)
#define STDUNIX_HEADERS 1
#endif
// Define to 1 if you have the <byteswap.h> header file.
#if (__GNUC__ >= 3) // gcc 2.95 somehow doesn't recognize 'asm volatile' in libc byteswap.h
#define HAVE_BYTESWAP_H 1
#endif
// Define to 1 if `lstat' dereferences a symlink specified with a trailing slash.
#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
// Define to 1 if your compiler treats char as a separate type along with
// signed char and unsigned char. This will create overloads for char.
#define HAVE_THREE_CHAR_TYPES 1
// Define as the return type of signal handlers (`int' or `void').
#define RETSIGTYPE void
// Define to 1 if you have 64 bit types available
#define HAVE_INT64_T 1
// Define to 1 if you have the long long type
#define HAVE_LONG_LONG 1
// Define to 1 if you want unrolled specializations for fill and copy
#undef WANT_UNROLLED_COPY
// Define to 1 if you want to use MMX/SSE/3dNow! processor instructions
#undef WANT_MMX
// Define to byte sizes of types
#define SIZE_OF_CHAR 1
#define SIZE_OF_SHORT 2
#define SIZE_OF_INT 4
#define SIZE_OF_LONG 4
#define SIZE_OF_LONG_LONG 8
#define SIZE_OF_POINTER 4
#define SIZE_OF_SIZE_T 4
#define SIZE_OF_BOOL SIZE_OF_CHAR
#undef SIZE_T_IS_LONG
// Byte order macros, converted in utypes.h
#define USTL_LITTLE_ENDIAN 4321
#define USTL_BIG_ENDIAN 1234
#define USTL_BYTE_ORDER USTL_LITTLE_ENDIAN
// Extended CPU capabilities
#define CPU_HAS_FPU 1
#define CPU_HAS_EXT_DEBUG 1
#define CPU_HAS_TIMESTAMPC 1
#define CPU_HAS_MSR 1
#define CPU_HAS_CMPXCHG8 1
#define CPU_HAS_APIC 1
#define CPU_HAS_SYSCALL 1
#define CPU_HAS_MTRR 1
#define CPU_HAS_CMOV 1
#define CPU_HAS_FCMOV 1
#if WANT_MMX
#undef CPU_HAS_MMX 1
#undef CPU_HAS_FXSAVE
#undef CPU_HAS_SSE 1
#undef CPU_HAS_SSE2 1
#undef CPU_HAS_SSE3
#undef CPU_HAS_EXT_3DNOW
#undef CPU_HAS_3DNOW
#endif
// GCC vector extensions
#if defined(CPU_HAS_MMX) || defined(CPU_HAS_SSE)
#undef HAVE_VECTOR_EXTENSIONS
#endif
#if CPU_HAS_SSE && defined(__GNUC__)
#define __sse_align __attribute__((aligned(16)))
#else
#define __sse_align
#endif
// Define to empty if `const' does not conform to ANSI C.
/* #define const */
// Define as `__inline' if that's what the C compiler calls it, or to nothing
// if it is not supported.
/* #define inline __inline */
// Define to `long' if <sys/types.h> does not define.
/* typedef long off_t; */
// Define to `unsigned' if <sys/types.h> does not define.
/* typedef long size_t; */
#endif // CONFIG_H_01E33670634DAAC779EE5FF41CCBB36F

View file

@ -0,0 +1,4 @@
Package: ustl
Priority: optional
Section: libs
Description: An STL (Standard Template Library) for embedded systems

View file

@ -0,0 +1,56 @@
diff -ruN ustl-0.8-old/Makefile ustl-0.8-new/Makefile
--- ustl-0.8-old/Makefile 2005-11-10 21:06:53.000000000 +0100
+++ ustl-0.8-new/Makefile 2005-12-08 13:57:07.000000000 +0100
@@ -39,35 +39,35 @@
.PHONY: install-static install-shared uninstall-static uninstall-shared
install-shared: ${LIBSOBLD} install-incs
- @echo "Installing ${LIBSOBLD} to ${LIBDIR} ..."
- @${INSTALLDIR} ${LIBDIR}
- @${INSTALLLIB} ${LIBSOBLD} ${LIBDIR}
- @(cd ${LIBDIR}; ${RM} ${LIBSO} ${LIBSOLNK}; ${LN} -sf ${LIBSOBLD} ${LIBSO}; ${LN} -sf ${LIBSOBLD} ${LIBSOLNK})
+ @echo "Installing ${LIBSOBLD} to ${DESTDIR}${LIBDIR} ..."
+ @${INSTALLDIR} ${DESTDIR}${LIBDIR}
+ @${INSTALLLIB} ${LIBSOBLD} ${DESTDIR}${LIBDIR}
+ @(cd ${DESTDIR}${LIBDIR}; ${RM} ${LIBSO} ${LIBSOLNK}; ${LN} -sf ${LIBSOBLD} ${LIBSO}; ${LN} -sf ${LIBSOBLD} ${LIBSOLNK})
uninstall-shared: uninstall-incs
- @echo "Removing ${LIBSOBLD} from ${LIBDIR} ..."
- @${RM} -f ${LIBDIR}/${LIBSO} ${LIBDIR}/${LIBSOLNK} ${LIBDIR}/${LIBSOBLD}
+ @echo "Removing ${LIBSOBLD} from ${DESTDIR}${LIBDIR} ..."
+ @${RM} -f ${DESTDIR}${LIBDIR}/${LIBSO} ${DESTDIR}${LIBDIR}/${LIBSOLNK} ${DESTDIR}${LIBDIR}/${LIBSOBLD}
install-static: ${LIBA} install-incs
- @echo "Installing ${LIBA} to ${LIBDIR} ..."
- @${INSTALLDIR} ${LIBDIR}
- @${INSTALLLIB} ${LIBA} ${LIBDIR}
+ @echo "Installing ${LIBA} to ${DESTDIR}${LIBDIR} ..."
+ @${INSTALLDIR} ${DESTDIR}${LIBDIR}
+ @${INSTALLLIB} ${LIBA} ${DESTDIR}${LIBDIR}
uninstall-static: uninstall-incs
- @echo "Removing ${LIBA} from ${LIBDIR} ..."
- @${RM} -f ${LIBDIR}/${LIBA}
+ @echo "Removing ${LIBA} from ${DESTDIR}${LIBDIR} ..."
+ @${RM} -f ${DESTDIR}${LIBDIR}/${LIBA}
install-incs: ${INCS}
- @echo "Installing headers to ${INCDIR} ..."
- @${INSTALLDIR} ${INCDIR}/${LIBNAME}
+ @echo "Installing headers to ${DESTDIR}${INCDIR} ..."
+ @${INSTALLDIR} ${DESTDIR}${INCDIR}/${LIBNAME}
@for i in $(filter-out ${LIBNAME}.h,${INCS}); do \
- ${INSTALLDATA} $$i ${INCDIR}/${LIBNAME}/$$i; \
+ ${INSTALLDATA} $$i ${DESTDIR}${INCDIR}/${LIBNAME}/$$i; \
done;
- @${INSTALLDATA} ${LIBNAME}.h ${INCDIR}
+ @${INSTALLDATA} ${LIBNAME}.h ${DESTDIR}${INCDIR}
uninstall-incs:
- @echo "Removing headers from ${INCDIR} ..."
- @${RM} -rf ${INCDIR}/${LIBNAME} ${INCDIR}/${LIBNAME}.h
+ @echo "Removing headers from ${DESTDIR}${INCDIR} ..."
+ @${RM} -rf ${DESTDIR}${INCDIR}/${LIBNAME} ${DESTDIR}${INCDIR}/${LIBNAME}.h
%.o: %.cc