--- /dev/null
+#
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libnotimpl
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/libnotimpl
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libnotimpl
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=Implements functions missing from uClibc
+endef
+
+define cc
+ $(TARGET_CC) $(TARGET_CFLAGS) -Wall -c src/$(1).c -o $(PKG_BUILD_DIR)/$(1).o
+endef
+
+define Build/Prepare
+ rm -rf $(PKG_BUILD_DIR)
+ mkdir -p $(PKG_BUILD_DIR)
+endef
+
+define Build/Compile
+ $(call cc,math)
+ $(TARGET_CROSS)ar rc $(PKG_BUILD_DIR)/libnotimpl.a $(PKG_BUILD_DIR)/*.o
+endef
+
+define Build/InstallDev
+ mkdir -p $(STAGING_DIR)/usr/lib
+ $(CP) $(PKG_BUILD_DIR)/libnotimpl.a $(STAGING_DIR)/usr/lib/
+endef
+
+define Build/UninstallDev
+ rm -f $(STAGING_DIR)/usr/lib/libnotimpl.a
+endef
+
+$(eval $(call Build/DefaultTargets))
--- /dev/null
+/* vi: set sw=4 ts=4: */
+
+#include <math.h>
+
+
+/* cosf for uClibc
+ *
+ * wrapper for cos(x)
+ */
+
+#ifdef __STDC__
+ float cosf(float x)
+#else
+ float cosf(x)
+ float x;
+#endif
+{
+ return (float) cos( (double)x );
+}
+
+
+/* sinf for uClibc
+ *
+ * wrapper for sin(x)
+ */
+
+#ifdef __STDC__
+ float sinf(float x)
+#else
+ float sinf(x)
+ float x;
+#endif
+{
+ return (float) sin( (double)x );
+}
+
+
+/* ceilf for uClibc
+ *
+ * wrapper for ceil(x)
+ */
+
+#ifdef __STDC__
+ float ceilf(float x)
+#else
+ float ceilf(x)
+ float x;
+#endif
+{
+ return (float) ceil( (double)x );
+}
+
+
+/* rintf for uClibc
+ *
+ * wrapper for rint(x)
+ */
+
+#ifdef __STDC__
+ float rintf(float x)
+#else
+ float rintf(x)
+ float x;
+#endif
+{
+ return (float) rint( (double)x );
+}
+