OpenBSD-4.6/gnu/egcs/gcc/Makefile.bsd-wrapper

#	$OpenBSD: Makefile.bsd-wrapper,v 1.22 2009/03/09 21:07:06 miod Exp $

MAN=		cpp.1 gcc.1 protoize.1 gcov.1
MLINKS+=	gcc.1 cc.1
MLINKS+=	protoize.1 unprotoize.1

.if defined(BOOTSTRAP)
LANGUAGES=--enable-languages=c
.else
LANGUAGES=--enable-languages='c,c++,objc,f77' 
MAN+=		cp/g++.1 f/g77.1
MLINKS+=	g++.1 c++.1
MLINKS+=	g77.1 f77.1
BEFOREMAN=	config.status
.endif

FAKE_FILES=	/usr/share/info/cppinternals.info \
		/usr/share/info/gccint.info

LIBIBERTY_INCLUDES=${.CURDIR}/../../lib/libiberty/include
GNUCFLAGS=	${CFLAGS} ${COPTS} -DOPENBSD_NATIVE \
		-I${LIBIBERTY_INCLUDES}

VAXHOST_CFLAGS=	-DIN_GCC -DOPENBSD_NATIVE -DHAVE_CONFIG_H -O0
MAKE_FLAGS= 	CFLAGS="${GNUCFLAGS}" \
		CC="${CC}" LDFLAGS="${LDSTATIC}" \
		DEMANGLER_PROG= \
		DEMANGLE_H= \
		LIBIBERTY_INCLUDES=${LIBIBERTY_INCLUDES} \
		build_infodir=. \
		MAKEINFO='makeinfo --no-split'

.if ${MACHINE_ARCH} == "vax"
MAKE_FLAGS+=	HOST_CFLAGS="${VAXHOST_CFLAGS} -I${LIBIBERTY_INCLUDES}"
.endif

GXX_INCDIR=	/usr/include/g++
CLEANFILES=	.gdbinit */.gdbinit *.info* \
		c-parse.c c-parse.h c-parse.y cexp.c cp/parse.c cp/parse.h \
		f/*.info* objc-parse.c objc-parse.y target_path \
		genrtl.c genrtl.h fixinc.sh fixinc/Makefile \
		po/Makefile  po/Makefile.in  po/POTFILES

CXX_HEADERS=	${.CURDIR}/cp/inc/typeinfo ${.CURDIR}/cp/inc/exception \
		${.CURDIR}/cp/inc/new ${.CURDIR}/cp/inc/new.h

.if ${MACHINE} == "arc" || ${MACHINE} == "pmax" || ${MACHINE} == "wgrisc"
M_ARCH=		mipsel
.elif ${MACHINE} == "hkmips" || ${MACHINE} == "sgi"
M_ARCH=		mips
.else
M_ARCH=		${MACHINE_ARCH}
.endif


GCCARCH=	${M_ARCH}-unknown-openbsd${OSREV}

all:	config.status
	exec ${MAKE} ${MAKE_FLAGS} all doc

tconfig.h:	config.status
	exec ${MAKE} ${MAKE_FLAGS} tconfig.h

tree-check.h: config.status
	exec ${MAKE} ${MAKE_FLAGS} $@


.FORCE:	.IGNORE

.include <bsd.own.mk>

.ifdef GLOBAL_AUTOCONF_CACHE
CF=	--cache-file=${GLOBAL_AUTOCONF_CACHE}
.else
CF=
.endif

config.status: Makefile.in configure c-parse.in
	PATH="/bin:/usr/bin:/sbin:/usr/sbin" \
	INSTALL_PROGRAM="${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP}" \
	MAKEINFO='makeinfo --no-split' \
	/bin/sh ${.CURDIR}/configure --with-gnu-as --with-gnu-ld \
		--prefix=/usr --mandir='$$(prefix)/share/man' \
		--with-local-prefix=/usr ${CF} \
		${LANGUAGES} --enable-cpp --disable-nls \
		--with-gxx-include-dir=${GXX_INCDIR} ${GCCARCH} && touch config.status

includes:
	@-for i in ${CXX_HEADERS}; do \
		j=`basename $$i` \
		cmp -s $$i ${DESTDIR}/${GXX_INCDIR}/$$j || \
		    ${INSTALL} ${INSTALL_COPY} -m 444 $$i \
		    ${DESTDIR}/${GXX_INCDIR}; \
	done

.ifdef NOMAN
maninstall:
	@echo NOMAN is set
.endif

# XXX INSTALL_TARGET should be install-normal, more or less
# the only reason is not so is because our man handling is special
# (pre-formatted) and also because of cpp, that we install by hand
# elsewhere, until we get rid of that old `compatibility' script.

target_path: config.status
	__target=`sed -n '/^target=/s/target=//p' Makefile`; \
	__version=`sed -n '/^gcc_version=/s/gcc_version=//p' Makefile`; \
	echo /usr/lib/gcc-lib/$$__target/$$__version >target_path

install:	maninstall target_path
	${MAKE} ${MAKE_FLAGS} \
		prefix=${DESTDIR}/usr \
		INSTALL_PROGRAM="${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP}" \
		infodir=${DESTDIR}/usr/share/info \
		tooldir=/tmp assertdir=/tmp \
		INSTALL_TARGET='install-common $$(INSTALL_HEADERS) \
		     $$(INSTALL_LIBGCC) install-info \
		     intl.install lang.install-normal' \
		NO_TARGET_GCC=true bindir=${DESTDIR}/usr/bin \
		install
	chown -R ${BINOWN}:${BINGRP} ${DESTDIR}/usr/lib/gcc-lib
	chmod -R a+rX ${DESTDIR}/usr/lib/gcc-lib
#	if [ -e ${DESTDIR}/usr/lib/libf2c.a ]; then \
#		chown ${BINOWN}:${BINGRP} ${DESTDIR}/usr/lib/libf2c.a; \
#		chmod 444 ${DESTDIR}/usr/lib/libf2c.a; \
#	fi
	if [ -e ${DESTDIR}/usr/include/f2c.h ]; then \
		chown ${BINOWN}:${BINGRP} ${DESTDIR}/usr/include/f2c.h; \
		chmod 444 ${DESTDIR}/usr/include/f2c.h; \
	fi
	${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP} -m 755 cpp \
	   ${DESTDIR}/usr/libexec/cpp
	${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP} -m 755 xgcc \
	   ${DESTDIR}/usr/bin/gcc
	ln -f ${DESTDIR}/usr/bin/gcc ${DESTDIR}/usr/bin/cc
	[ -f ${DESTDIR}/usr/bin/g77 ] && \
		ln -f ${DESTDIR}/usr/bin/g77 ${DESTDIR}/usr/bin/f77
#	ln -fs `cat target-path`/cpp \
#		${DESTDIR}/usr/libexec
	for i in ${FAKE_FILES}; do \
	    touch ${DESTDIR}$$i; \
	done

clean cleandir: 
	-@if [ -e Makefile ]; then ${MAKE} distclean; fi
	-rm -f ${CLEANFILES}

depend:
	ln -sf ${.CURDIR}/cccp.1 ${.OBJDIR}/cpp.1

lint:
	# Nothing here so far...

tags:
	# Nothing here so far...

.include <bsd.obj.mk>
.include <bsd.subdir.mk>
.ifndef NOMAN
.include <bsd.man.mk>
.endif