xref: /dragonfly/gnu/usr.bin/cc47/cc1plus/Makefile (revision cfd1aba3)
1GCC_LANG_DIR=	gcc/cp
2.include "../Makefile.langs"
3
4PROG=		cc1plus
5NOMAN=		1
6NOSHARED?=	yes
7
8# The cnfs.gperf file has a bug in the generator that is masked when built
9# with std=gnu89.  Since gcc is built with this standard by default, the
10# gcc devs have never bothered to fix it.
11
12CSTD=		gnu89
13
14# The compiler itself, modified from gcc/cp/Make-lang.in
15# Currently CXX_TARGET_OBJS is the same as C_TARGTET_OBJS, but to ensure this
16# code is future proof, rebuild the object files instead of using the object
17# files at ../cc1
18COMMOBJS=	${C_COMMON_OBJS:S/^/..\/cc1\//:.c=.o} \
19		../cc1/main.o \
20		../cc1/stub-objc.o \
21		../cc1/tree-mudflap.o
22CXX_C_SRC=	attribs.c ${CXX_TARGET_OBJS}
23
24# Language-specific object files for C++ and Objective C++.
25CXX_AND_OBJCXX_OBJS= \
26	call.c \
27	decl.c \
28	expr.c \
29	pt.c \
30	typeck2.c \
31	class.c \
32	decl2.c \
33	error.c \
34	lex.c \
35	parser.c \
36	ptree.c \
37	rtti.c \
38	typeck.c \
39	cvt.c \
40	except.c \
41	friend.c \
42	init.c \
43	method.c \
44	search.c \
45	semantics.c \
46	tree.c \
47	repo.c \
48	dump.c \
49	optimize.c \
50	mangle.c \
51	cp-objcp-common.c \
52	name-lookup.c \
53	cxx-pretty-print.c \
54	cp-gimplify.c
55FULLSRC=	${CXX_C_SRC} ${CXX_AND_OBJCXX_OBJS} cp-lang.c
56SRCS=		${FULLSRC}
57OBJS=		${COMMOBJS} cc1plus-checksum.o
58
59BACKEND= ${LIBBACKEND} ${LIBCOMMONTARG} ${LIBCOMMON} ${LIBCPP} ${LIBDECNUMBER}
60LDADD=   ${BACKEND} ${LIBIBERTY} ${BACKENDLIBS}
61DPADD=   ${BACKEND} ${LIBIBERTY} ${BACKENDLIBS}
62
63CFLAGS+= -DIN_GCC_FRONTEND
64
65checksum-options:
66	echo "${LD} ${LDFLAGS}" > ${.TARGET}
67
68cc1plus-checksum.o: ${COMMOBJS} ${FULLSRC:.c=.o} checksum-options
69	${TOOLDIR}/genchecksum.nx ${COMMOBJS} ${FULLSRC:.c=.o} \
70	    ${BACKEND} checksum-options > ${.TARGET:.o=.c}
71	${CC} ${CFLAGS} -c ${.TARGET:.o=.c}
72
73CLEANFILES+=	cc1plus-checksum.* checksum-options
74
75.include <bsd.prog.mk>
76