add libmissing (implementing functions missing from uClibc)
authorNicolas Thill <nico@openwrt.org>
Wed, 5 Oct 2005 21:30:33 +0000 (21:30 +0000)
committerNicolas Thill <nico@openwrt.org>
Wed, 5 Oct 2005 21:30:33 +0000 (21:30 +0000)
SVN-Revision: 2055

openwrt/toolchain/Makefile
openwrt/toolchain/libmissing/Makefile [new file with mode: 0644]
openwrt/toolchain/libmissing/files/math.c [new file with mode: 0644]

index 2b1358b123a3d8ecf048535d1bbb2f3099209e90..c56f263bcc03c5d63840893df81ae5446e617f2d 100644 (file)
@@ -1,6 +1,6 @@
 # Main makefile for the toolchain
 include $(TOPDIR)/rules.mk
-TARGETS:=sed utils binutils gcc uClibc ipkg-utils gdb
+TARGETS:=sed utils binutils gcc uClibc ipkg-utils gdb libmissing
 
 TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS))
 TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
diff --git a/openwrt/toolchain/libmissing/Makefile b/openwrt/toolchain/libmissing/Makefile
new file mode 100644 (file)
index 0000000..bd3749d
--- /dev/null
@@ -0,0 +1,30 @@
+include $(TOPDIR)/rules.mk
+
+LIBMISSING_DIR:=$(TOOL_BUILD_DIR)/libmissing
+
+LIBMISSING_SRCS+=./files/math.c
+LIBMISSING_OBJS:=$(patsubst ./files/%.c,$(LIBMISSING_DIR)/%.o,$(LIBMISSING_SRCS))
+
+$(LIBMISSING_DIR)/.prepared:
+       mkdir -p $(LIBMISSING_DIR)
+       touch $@
+
+$(LIBMISSING_OBJS): $(LIBMISSING_DIR)/%.o : ./files/%.c
+       $(TARGET_CC) $(TARGET_CFLAGS) -c $< -o $@
+
+$(LIBMISSING_DIR)/libmissing.a: $(LIBMISSING_OBJS)
+       $(TARGET_CROSS)ar rc $(LIBMISSING_DIR)/libmissing.a $(LIBMISSING_OBJS)
+
+$(STAGING_DIR)/usr/lib/libmissing.a: $(LIBMISSING_DIR)/libmissing.a
+       mkdir -p $(STAGING_DIR)/usr/lib
+       cp -fpR $< $@
+       touch -c $@
+
+source:
+prepare: $(LIBMISSING_DIR)/.prepared
+compile: $(LIBMISSING_DIR)/libmissing.a
+install: $(STAGING_DIR)/usr/lib/libmissing.a
+clean: 
+       rm -rf \
+               $(STAGING_DIR)/usr/lib/libmissing.a \
+               $(LIBMISSING_DIR) \
diff --git a/openwrt/toolchain/libmissing/files/math.c b/openwrt/toolchain/libmissing/files/math.c
new file mode 100644 (file)
index 0000000..cc8a661
--- /dev/null
@@ -0,0 +1,35 @@
+/* vi: set sw=4 ts=4: */
+
+/* cosf for uClibc
+ *
+ * wrapper for cos(x)
+ */
+
+#include "math.h"
+
+#ifdef __STDC__
+       float cosf(float x)             /* wrapper cos */
+#else
+       float cosf(x)                   /* wrapper cos */
+       float x;
+#endif
+{
+       return (float) cos( (double)x );
+}
+
+/* sinf for uClibc
+ *
+ * wrapper for sin(x)
+ */
+
+#include "math.h"
+
+#ifdef __STDC__
+       float sinf(float x)             /* wrapper sin */
+#else
+       float sinf(x)                   /* wrapper sin */
+       float x;
+#endif
+{
+       return (float) sin( (double)x );
+}