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