aboutsummaryrefslogtreecommitdiff
path: root/gnu/usr.bin/cc/c++filt
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>1996-10-13 17:37:03 +0000
committerPeter Wemm <peter@FreeBSD.org>1996-10-13 17:37:03 +0000
commit4023b3033bd3486e93857e8c3dc6b7646bd5a7eb (patch)
treecba3ebd3f8d401f0c4388eb42334945026750822 /gnu/usr.bin/cc/c++filt
parentf738f84d69e56b5e921206410743a81e95df250e (diff)
downloadsrc-4023b3033bd3486e93857e8c3dc6b7646bd5a7eb.tar.gz
src-4023b3033bd3486e93857e8c3dc6b7646bd5a7eb.zip
Build/install c++filt from g++, we already have all the sources and
it's and useful. (Ever tried to read 'nm' and 'ldd -v' output on a c++ object or library? :-) This filter decodes the mangled symbol names.) Requested by: Chuck Robey <chuckr@glue.umd.edu>
Notes
Notes: svn path=/head/; revision=18913
Diffstat (limited to 'gnu/usr.bin/cc/c++filt')
-rw-r--r--gnu/usr.bin/cc/c++filt/Makefile55
1 files changed, 55 insertions, 0 deletions
diff --git a/gnu/usr.bin/cc/c++filt/Makefile b/gnu/usr.bin/cc/c++filt/Makefile
new file mode 100644
index 000000000000..5e801de45adb
--- /dev/null
+++ b/gnu/usr.bin/cc/c++filt/Makefile
@@ -0,0 +1,55 @@
+#
+# $Id$
+#
+
+PROG = c++filt
+SRCS = cplus-dem.c getopt.c getopt1.c
+OBJS+= underscore.o # defeat 'make depend'
+BINDIR= /usr/bin
+NOMAN= 1
+CFLAGS+= -DMAIN -DIN_GCC -DVERSION=\"$(version)\"
+
+
+#
+# XXX This is a hack, but it seems to work. libgcc1.a is supposed to be
+# compiled by the native compiler, and libgcc2.a is meant to be compiled
+# by *this* version of gcc.
+#
+# Normally, this does not make any difference, since we only have gcc, but
+# when bootstrapping from gcc-2.6.3, we have to use the freshly built 2.7.2
+# compiler for some of the libgcc2.c __attribute__ stuff.
+#
+.if exists(${.OBJDIR}/../cc)
+XCC= ${.OBJDIR}/../cc/cc
+.else
+XCC= ${.CURDIR}/../cc/cc
+.endif
+
+.if exists(${.OBJDIR}/../cc1)
+XCC+= -B${.OBJDIR}/../cc1/
+.else
+XCC+= -B${.CURDIR}/../cc1/
+.endif
+
+.if exists(${.OBJDIR}/../cpp)
+XCC+= -B${.OBJDIR}/../cpp/
+.else
+XCC+= -B${.CURDIR}/../cpp/
+.endif
+
+CLEANFILES+= underscore.c
+underscore.o: underscore.c
+
+underscore.c:
+ echo "int xxy_us_dummy;" >tmp-dum.c
+ ${XCC} -S tmp-dum.c
+ echo '/*WARNING: This file is automatically generated!*/' >underscore.c
+ if grep _xxy_us_dummy tmp-dum.s > /dev/null ; then \
+ echo "int prepends_underscore = 1;" >>underscore.c; \
+ else \
+ echo "int prepends_underscore = 0;" >>underscore.c; \
+ fi
+ rm -f tmp-dum.c tmp-dum.s
+
+.include <bsd.prog.mk>
+