1# $OpenBSD: Makefile.bsd-wrapper,v 1.69 2024/03/29 06:52:50 miod Exp $ 2 3MAN= gcc.1 cpp.1 gcov.1 4 5BINDIR=/usr/bin 6.if defined(BOOTSTRAP) 7LANGUAGES=--enable-languages=c 8.else 9LANGUAGES=--enable-languages='c,c++' 10.endif 11V=3.3.6 12 13LIBIBERTY_INCLUDES=${.CURDIR}/../../lib/libiberty/include 14GNUCFLAGS= ${CFLAGS} ${COPTS} -DOPENBSD_NATIVE \ 15 -I${LIBIBERTY_INCLUDES} 16 17MAKE_FLAGS= CFLAGS="${GNUCFLAGS}" \ 18 CC="${CC}" LDFLAGS="${LDSTATIC}" \ 19 DEMANGLER_PROG= \ 20 DEMANGLE_H= \ 21 LIBIBERTY_INCLUDES=${LIBIBERTY_INCLUDES} \ 22 LIBGCC2_INCLUDES=-I${LIBIBERTY_INCLUDES} \ 23 BUILD_LIBIBERTY=-liberty \ 24 LIBIBERTY=-liberty \ 25 HOST_LIBDEPS= \ 26 LIBDEPS= \ 27 build_infodir=. 28 29GXX_INCDIR= /usr/include/g++ 30CLEANFILES= .gdbinit */.gdbinit *.info* \ 31 c-parse.c c-parse.h c-parse.y cexp.c cp/parse.c cp/parse.h \ 32 target_path \ 33 print-rtl1.c gengtype-lex.c gengtype-yacc.c gengtype-yacc.h \ 34 genrtl.c genrtl.h fixinc.sh fixinc/Makefile \ 35 po/Makefile po/Makefile.in po/POTFILES 36 37GCCARCH= ${MACHINE_ARCH}-unknown-openbsd${OSREV} 38GCCINC= /usr/lib/gcc-lib/${GCCARCH}/$V/include 39 40# cross-compilation 41.if defined(CROSS_HOST) && defined(TARGET_ARCH) && defined(CROSSDIR) 42CONFIGTARGET= --build=${CROSS_HOST}-unknown-openbsd${OSREV} \ 43 --target=${TARGET_ARCH}-unknown-openbsd${OSREV} 44 45CONFIGPREFIX= ${CROSSDIR}/usr 46PATH= /bin:/usr/bin:/sbin:/usr/sbin:${CROSSDIR}/usr/bin 47GXX_INCDIR= ${CROSSDIR}/usr/include/g++ 48GNUCFLAGS= ${CFLAGS} ${COPTS} -DOPENBSD_CROSS -I${LIBIBERTY_INCLUDES} 49HOSTCFLAGS= ${CFLAGS} ${COPTS} -DOPENBSD_CROSS -I${LIBIBERTY_INCLUDES} 50HOST_CC=cc 51MAKE_FLAGS+= CFLAGS_FOR_BUILD="${HOSTCFLAGS}" HOST_CC=cc 52.elif defined(TARGET_ARCH) && defined(CROSSDIR) 53CONFIGTARGET= --target=${TARGET_ARCH}-unknown-openbsd${OSREV} 54CONFIGPREFIX= ${CROSSDIR}/usr 55MAKE_FLAGS+= GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" 56PATH= /bin:/usr/bin:/sbin:/usr/sbin:${CROSSDIR}/usr/bin 57GXX_INCDIR= ${CROSSDIR}/usr/include/g++ 58GNUCFLAGS= ${CFLAGS} ${COPTS} -DOPENBSD_CROSS -I${LIBIBERTY_INCLUDES} 59.else 60CONFIGTARGET= 61CONFIGPREFIX= /usr 62PATH= /bin:/usr/bin:/sbin:/usr/sbin 63.endif 64 65all: config.status 66 exec env PATH="${PATH}" ${MAKE} ${MAKE_FLAGS} all doc proto 67 68tconfig.h: config.status 69 exec ${MAKE} ${MAKE_FLAGS} tconfig.h 70 71tree-check.h: config.status 72 exec ${MAKE} ${MAKE_FLAGS} $@ 73 74 75.FORCE: .IGNORE 76 77.include <bsd.own.mk> 78 79.ifdef GLOBAL_AUTOCONF_CACHE 80CF= --cache-file=${GLOBAL_AUTOCONF_CACHE} 81.else 82CF= 83.endif 84 85config.status: gcc/Makefile.in gcc/configure gcc/c-parse.in 86 PATH="${PATH}" \ 87 INSTALL_PROGRAM="${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP}" \ 88 CPPFLAGS=-I${LIBIBERTY_INCLUDES} \ 89 MAKEINFO='makeinfo --no-split' \ 90 /bin/sh ${.CURDIR}/gcc/configure --with-gnu-as --with-gnu-ld \ 91 --prefix=${CONFIGPREFIX} --mandir='$$(prefix)/share/man' \ 92 --with-local-prefix=/usr ${CF} \ 93 ${LANGUAGES} --enable-cpp --disable-nls \ 94 --with-gxx-include-dir=${GXX_INCDIR} \ 95 --enable-__cxa_atexit \ 96 --enable-threads=posix \ 97 ${CONFIGTARGET} ${GCCARCH} && touch config.status 98 99.ifdef NOMAN 100maninstall: 101 @echo NOMAN is set 102.endif 103 104# XXX INSTALL_TARGET should be install-normal, more or less 105# the only reason is not so is because our man handling is special 106# (pre-formatted) and also because of cpp, that we install by hand 107# elsewhere, until we get rid of that old `compatibility' script. 108 109target_path: config.status 110 __target=`sed -n '/^target=/s/target=//p' Makefile`; \ 111 __version=`sed -n '/^gcc_version=/s/gcc_version=//p' Makefile`; \ 112 echo /usr/lib/gcc-lib/$$__target/$$__version >target_path 113 114install: maninstall target_path 115 ${MAKE} ${MAKE_FLAGS} \ 116 prefix=/usr \ 117 INSTALL_PROGRAM="${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP}" \ 118 GXX_TARGET_INSTALL_NAME=${.OBJDIR}/dummy1 \ 119 CXX_TARGET_INSTALL_NAME=${.OBJDIR}/dummy2 \ 120 infodir=/usr/share/info \ 121 tooldir=/tmp assertdir=/tmp \ 122 bindir=$(BINDIR) \ 123 install-common install-multilib \ 124 install-info intl.install \ 125 lang.install-normal 126 chown -R ${BINOWN}:${BINGRP} ${DESTDIR}/usr/lib/gcc-lib 127 chmod -R a+rX ${DESTDIR}/usr/lib/gcc-lib 128 mkdir -p ${DESTDIR}/usr/libexec ${DESTDIR}/usr/bin 129# if [ -e ${DESTDIR}/usr/lib/libf2c.a ]; then \ 130# chown ${BINOWN}:${BINGRP} ${DESTDIR}/usr/lib/libf2c.a; \ 131# chmod 444 ${DESTDIR}/usr/lib/libf2c.a; \ 132# fi 133 if [ -e ${DESTDIR}/usr/include/f2c.h ]; then \ 134 chown ${BINOWN}:${BINGRP} ${DESTDIR}/usr/include/f2c.h; \ 135 chmod 444 ${DESTDIR}/usr/include/f2c.h; \ 136 fi 137 ${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP} -m 755 cpp \ 138 ${DESTDIR}/usr/libexec/cpp 139 ${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP} -m 755 xgcc \ 140 ${DESTDIR}/usr/bin/gcc 141 ln -f ${DESTDIR}/usr/bin/gcc ${DESTDIR}/usr/bin/cc 142 143clean cleandir: 144 -@if [ -e Makefile ]; then ${MAKE} distclean; fi 145 -rm -f ${CLEANFILES} 146 147gcc.1 cpp.1 gcov.1: config.status 148 exec ${MAKE} ${MAKE_FLAGS} generated-manpages 149 150FILES= ${.CURDIR}/gcc/unwind.h 151.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" 152FILES+=${.CURDIR}/gcc/config/i386/mmintrin.h \ 153 ${.CURDIR}/gcc/config/i386/xmmintrin.h \ 154 ${.CURDIR}/gcc/config/i386/emmintrin.h \ 155 ${.CURDIR}/gcc/config/i386/pmmintrin.h 156.elif ${MACHINE_ARCH} == "powerpc" 157FILES+=${.CURDIR}/gcc/config/rs6000/altivec.h 158.endif 159 160includes: 161 mkdir -p ${DESTDIR}${GCCINC} 162 for i in ${FILES}; do \ 163 j=`basename $$i`; \ 164 cmp -s $$i ${DESTDIR}${GCCINC}/$$j || \ 165 ${INSTALL} ${INSTALL_COPY} -m 444 $$i ${DESTDIR}${GCCINC}/$$j; \ 166 ln -sf ${GCCINC}/$$j ${DESTDIR}/usr/include/$$j; \ 167 done 168 169tags: 170 # Nothing here so far... 171 172.include <bsd.obj.mk> 173.include <bsd.subdir.mk> 174.ifndef NOMAN 175.include <bsd.man.mk> 176.endif 177