From edef0b602541b73afa24eff6944894e3c9eb3155 Mon Sep 17 00:00:00 2001 From: Nicolas Thill Date: Thu, 8 Dec 2005 22:15:42 +0000 Subject: [PATCH 1/1] add uSTL package SVN-Revision: 2603 --- openwrt/package/Config.in | 1 + openwrt/package/Makefile | 1 + openwrt/package/ustl/Config.in | 12 + openwrt/package/ustl/Makefile | 65 ++++ openwrt/package/ustl/files/Common.mk | 74 +++++ openwrt/package/ustl/files/config.h | 286 ++++++++++++++++++ openwrt/package/ustl/ipkg/ustl.control | 4 + .../ustl/patches/01-install-DESTDIR.patch | 56 ++++ 8 files changed, 499 insertions(+) create mode 100644 openwrt/package/ustl/Config.in create mode 100644 openwrt/package/ustl/Makefile create mode 100644 openwrt/package/ustl/files/Common.mk create mode 100644 openwrt/package/ustl/files/config.h create mode 100644 openwrt/package/ustl/ipkg/ustl.control create mode 100644 openwrt/package/ustl/patches/01-install-DESTDIR.patch diff --git a/openwrt/package/Config.in b/openwrt/package/Config.in index 10d1c02429..7766a63012 100644 --- a/openwrt/package/Config.in +++ b/openwrt/package/Config.in @@ -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" diff --git a/openwrt/package/Makefile b/openwrt/package/Makefile index a9df886d95..9b814c17aa 100644 --- a/openwrt/package/Makefile +++ b/openwrt/package/Makefile @@ -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 diff --git a/openwrt/package/ustl/Config.in b/openwrt/package/ustl/Config.in new file mode 100644 index 0000000000..b08bc791dc --- /dev/null +++ b/openwrt/package/ustl/Config.in @@ -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/ + diff --git a/openwrt/package/ustl/Makefile b/openwrt/package/ustl/Makefile new file mode 100644 index 0000000000..d07c4c3b00 --- /dev/null +++ b/openwrt/package/ustl/Makefile @@ -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 diff --git a/openwrt/package/ustl/files/Common.mk b/openwrt/package/ustl/files/Common.mk new file mode 100644 index 0000000000..dea71e1158 --- /dev/null +++ b/openwrt/package/ustl/files/Common.mk @@ -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} + diff --git a/openwrt/package/ustl/files/config.h b/openwrt/package/ustl/files/config.h new file mode 100644 index 0000000000..348649678a --- /dev/null +++ b/openwrt/package/ustl/files/config.h @@ -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 " + +/// 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 header file. +#define HAVE_ASSERT_H 1 + +/// Define to 1 if you have the header file. +#define HAVE_CTYPE_H 1 + +/// Define to 1 if you have the header file. +#define HAVE_ERRNO_H 1 + +/// Define to 1 if you have the header file. +#define HAVE_FCNTL_H 1 + +/// Define to 1 if you have the header file. +#define HAVE_FLOAT_H 1 + +/// Define to 1 if you have the header file. +#define HAVE_INTTYPES_H 1 + +/// Define to 1 if you have the header file. +#define HAVE_LIMITS_H 1 + +/// Define to 1 if you have the 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 header file. +#define HAVE_MALLOC_H 1 + +// Define to 1 if you have the 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 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 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 header file. +#define HAVE_STDARG_H 1 + +// Define to 1 if you have the header file. +#define HAVE_STDDEF_H 1 + +// Define to 1 if you have the header file. +#define HAVE_STDINT_H 1 + +// Define to 1 if you have the header file. +#define HAVE_STDIO_H 1 + +// Define to 1 if you have the 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 header file. +#define HAVE_STRINGS_H 1 + +// Define to 1 if you have the 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 header file. +#define HAVE_SYS_STAT_H 1 + +// Define to 1 if you have the header file. +#define HAVE_SYS_TYPES_H 1 + +// Define to 1 if you have that is POSIX.1 compatible. +#define HAVE_SYS_WAIT_H 1 + +// Define to 1 if you have the header file. +#define HAVE_TIME_H 1 + +// Define to 1 if you have the header file. +#define HAVE_UNISTD_H 1 + +// Define to 1 if you have the 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 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 does not define. +/* typedef long off_t; */ + +// Define to `unsigned' if does not define. +/* typedef long size_t; */ + +#endif // CONFIG_H_01E33670634DAAC779EE5FF41CCBB36F + diff --git a/openwrt/package/ustl/ipkg/ustl.control b/openwrt/package/ustl/ipkg/ustl.control new file mode 100644 index 0000000000..210877d62f --- /dev/null +++ b/openwrt/package/ustl/ipkg/ustl.control @@ -0,0 +1,4 @@ +Package: ustl +Priority: optional +Section: libs +Description: An STL (Standard Template Library) for embedded systems diff --git a/openwrt/package/ustl/patches/01-install-DESTDIR.patch b/openwrt/package/ustl/patches/01-install-DESTDIR.patch new file mode 100644 index 0000000000..ec3a959d3f --- /dev/null +++ b/openwrt/package/ustl/patches/01-install-DESTDIR.patch @@ -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 -- 2.30.2