Subject: Re: bsd.*.mk: ".cpp" not recognized as C++?
To: Hauke Fath <hauke@Espresso.Rhein-Neckar.DE>
From: Frederick Bruckman <fb@enteract.com>
List: tech-toolchain
Date: 11/13/1999 06:16:31
On Sat, 13 Nov 1999, Frederick Bruckman wrote:

> On Sat, 13 Nov 1999, Hauke Fath wrote:
> 
> > while trying to build IBM's open-source Java compiler "jikes" on NetBSD, I
> > found that BSD make does not recognize the wintel style C++ file extension
> > "*.cpp" for a C++ source file. While I would not debate that .C looks much
> > nicer ;) there are a lot of C++ sources with wintel origin  out there.

The info file for "gcc" lists both `.cxx' and `.cpp' as valid C++
suffixes, so we probably should recognize them both.
 
> > Would we want to add this, or is there any easy way of teaching the make
> > system about equivalences ("treat .cpp like .C)?
> 
> As easy as this (follows). Alternatively, you could add ``.SUFFIXES: .cpp'',
> followed by the rules, anywhere in the "jikes" Makefile.

> Index: sys.mk
> ===================================================================
> RCS file: /cvsroot/sharesrc/share/mk/sys.mk,v
> retrieving revision 1.54
> diff -c -r1.54 sys.mk
> *** sys.mk	1999/03/10 14:06:14	1.54
> --- sys.mk	1999/11/13 11:53:56
> ***************
> *** 3,9 ****
>   
>   unix?=		We run NetBSD.
>   
> ! .SUFFIXES: .out .a .ln .o .s .S .c .cc .C .F .f .r .y .l .cl .p .h .sh .m4
>   
>   .LIBS:		.a
>   
> --- 3,9 ----
>   
>   unix?=		We run NetBSD.
>   
> ! .SUFFIXES: .out .a .ln .o .s .S .c .cc .cpp .C .F .f .r .y .l .cl .p .h .sh .m4
>   
>   .LIBS:		.a
>   
> ***************
> *** 106,111 ****
> --- 106,120 ----
>   .cc.o:
>   	${COMPILE.cc} ${.IMPSRC}
>   .cc.a:
> + 	${COMPILE.cc} ${.IMPSRC}
> + 	${AR} ${ARFLAGS} $@ $*.o
> + 	rm -f $*.o
> + 
> + .cpp:
> + 	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
> + .cpp.o:
> + 	${COMPILE.cc} ${.IMPSRC}
> + .cpp.a:
>   	${COMPILE.cc} ${.IMPSRC}
>   	${AR} ${ARFLAGS} $@ $*.o
>   	rm -f $*.o
> 
> 
> 
>