--- /dev/null
+# DragonFly maintains two sets of compilers.
+# In order to keep man page generation simple when the primary compiler
+# changes, this makefile will direct the makefile that included it how
+# to name the man pages and if it should hardlink a generic man page to it.
+# The same approach is used for the two sets of binutils
+
+CC_PRIMARY= gcc44
+CC_BACKUP= gcc47
+
+.if defined(COMPVERSION)
+.if (${COMPVERSION} == ${CC_PRIMARY})
+IS_PRIMARY= 1
+MANPAGEVER= 44
+.else
+.endif
+
+.if (${COMPVERSION} == ${CC_BACKUP})
+MANPAGEVER= 47
+.else
+.endif
+.endif
GCCPOINTVER= ${GCCCOMPLETEVER:R}
GCCSHORTVER= ${GCCPOINTVER:S/.//}
-GCCDOCSUFFIX= ${GCCSHORTVER}
-
CSTD?= gnu89
CFLAGS+= -DGCCPOINTVER=\"${GCCPOINTVER}\"
.include "Makefile.inc"
+COMPVERSION= gcc44
+
.if !defined(NO_CXX)
lang_tree_files= cp/cp-tree.def
.endif
.include "../Makefile.inc"
.include "../Makefile.langs"
+.include "../../Makefile.cco"
PROG= c++
LINKS= ${BINDIR}/c++ ${BINDIR}/g++
LINKS+= ${BINDIR}/c++ ${BINDIR}/CC
-MAN= g++${GCCSHORTVER}.1
-
-.if ${GCCDOCSUFFIX} != ${GCCSHORTVER}
-MLINKS= g++${GCCSHORTVER}.1 g++${GCCDOCSUFFIX}.1
-.endif
+MFILE= g++${MANPAGEVER}.1
+MAN= ${MFILE}
SRCS= ${GCC_SRCS} g++spec.c intl.c prefix.c version.c
SRCS+= ${EXTRA_GCC_SRCS}
CFLAGS+= -DGCC_DRIVER
-g++${GCCSHORTVER}.1: ${GCCDIR}/gcc/doc/g++.1
+${MFILE}: ${GCCDIR}/gcc/doc/g++.1
cp ${.ALLSRC} ${.TARGET}
-CLEANFILES+= g++${GCCSHORTVER}.1
+CLEANFILES+= ${MFILE}
+
+.if defined(IS_PRIMARY)
+MLINKS+= ${MFILE} g++.1
+.endif
.include <bsd.prog.mk>
.include "../Makefile.inc"
.include "../Makefile.langs"
+.include "../../Makefile.cco"
PROG= cc
LINKS= ${BINDIR}/cc ${BINDIR}/gcc
-MAN= gcc${GCCSHORTVER}.1
-MLINKS= gcc${GCCSHORTVER}.1 cc.1 \
- gcc${GCCSHORTVER}.1 c++.1 \
- gcc${GCCSHORTVER}.1 g++.1 \
- gcc${GCCSHORTVER}.1 gcc.1 \
- gcc${GCCSHORTVER}.1 CC.1
-
-.if ${GCCDOCSUFFIX} != ${GCCSHORTVER}
-MLINKS+=gcc${GCCSHORTVER}.1 cc${GCCDOCSUFFIX}.1
-MLINKS+=gcc${GCCSHORTVER}.1 c++${GCCDOCSUFFIX}.1
-MLINKS+=gcc${GCCSHORTVER}.1 g++${GCCDOCSUFFIX}.1
-MLINKS+=gcc${GCCSHORTVER}.1 gcc${GCCDOCSUFFIX}.1
-MLINKS+=gcc${GCCSHORTVER}.1 CC${GCCDOCSUFFIX}.1
-.endif
+MFILE= gcc${MANPAGEVER}.1
+MAN= ${MFILE}
SRCS= ${GCC_SRCS} gccspec.c intl.c prefix.c version.c
SRCS+= ${EXTRA_GCC_SRCS}
CFLAGS+= -DGCC_DRIVER
-gcc${GCCSHORTVER}.1: ${GCCDIR}/gcc/doc/gcc.1
+${MFILE}: ${GCCDIR}/gcc/doc/gcc.1
cp ${.ALLSRC} ${.TARGET}
-CLEANFILES+= gcc${GCCSHORTVER}.1
+CLEANFILES+= ${MFILE}
+
+MLINKS+= ${MFILE} cc${MANPAGEVER}.1
+MLINKS+= ${MFILE} CC${MANPAGEVER}.1
+MLINKS+= ${MFILE} c++${MANPAGEVER}.1
+MLINKS+= ${MFILE} g++${MANPAGEVER}.1
+
+.if defined(IS_PRIMARY)
+MLINKS+= ${MFILE} cc.1
+MLINKS+= ${MFILE} CC.1
+MLINKS+= ${MFILE} gcc.1
+MLINKS+= ${MFILE} c++.1
+MLINKS+= ${MFILE} g++.1
+.endif
.include <bsd.prog.mk>
.include "../Makefile.inc"
.include "../Makefile.langs"
+.include "../../Makefile.cco"
PROG= cpp
-MAN= cpp${GCCSHORTVER}.1
-MLINKS= cpp${GCCSHORTVER}.1 cpp.1
-
-.if ${GCCSHORTVER} != ${GCCDOCSUFFIX}
-MLINKS+=cpp${GCCSHORTVER}.1 cpp${GCCDOCSUFFIX}.1
-.endif
+MFILE= cpp${GCCSHORTVER}.1
+MAN= ${MFILE}
SRCS= ${GCC_SRCS} cppspec.c intl.c prefix.c version.c
SRCS+= ${EXTRA_GCC_SRCS}
CFLAGS+= -DGCC_DRIVER
-cpp${GCCSHORTVER}.1: ${GCCDIR}/gcc/doc/cpp.1
+${MFILE}: ${GCCDIR}/gcc/doc/cpp.1
cp ${.ALLSRC} ${.TARGET}
-CLEANFILES+= cpp${GCCSHORTVER}.1
+CLEANFILES+= ${MFILE}
+
+.if defined(IS_PRIMARY)
+MLINKS+= ${MFILE} cpp.1
+.endif
.include <bsd.prog.mk>
# Install as nameVER for the time being
.for _i in ${ORIGINFO}
-.for docsfx in ${GCCSHORTVER} ${GCCDOCSUFFIX}
+.for docsfx in ${GCCSHORTVER}
.if empty(INFO:M${_i}${docsfx})
INFO+= ${_i}${docsfx}
INFOENTRY_${_i}${docsfx}= ${INFOENTRY_${_i}:C/\./${docsfx}./1}
.endfor
.endfor
# End magic rewriting
-.if ${GCCDOCSUFFIX} == ""
-INFO+= ${ORIGINFO}
-.endif
cpp.info: cpp.texi fdl.texi cppenv.texi cppopts.texi \
gcc-common.texi gcc-vers.texi
.include "../Makefile.inc"
.include "../Makefile.langs"
+.include "../../Makefile.cco"
PROG= gcov
-MAN= gcov${GCCSHORTVER}.1
-MLINKS= gcov${GCCSHORTVER}.1 gcov.1
-
-.if ${GCCDOCSUFFIX} != ${GCCSHORTVER}
-MLINKS+=gcov${GCCSHORTVER}.1 gcov${GCCDOCSUFFIX}.1
-.endif
+MFILE= gcov${GCCSHORTVER}.1
+MAN= ${MFILE}
SRCS= gcov.c intl.c errors.c version.c
-gcov${GCCSHORTVER}.1: ${GCCDIR}/gcc/doc/gcov.1
+${MFILE}: ${GCCDIR}/gcc/doc/gcov.1
cp ${.ALLSRC} ${.TARGET}
-CLEANFILES+= gcov${GCCSHORTVER}.1
+CLEANFILES+= ${MFILE}
+
+.if defined(IS_PRIMARY)
+MLINKS+= ${MFILE} gcov.1
+.endif
.include <bsd.prog.mk>
GCCPOINTVER= ${GCCCOMPLETEVER:R}
GCCSHORTVER= ${GCCPOINTVER:S/.//}
-GCCDOCSUFFIX= ${GCCSHORTVER}
-
-
CFLAGS+= -DGCCPOINTVER=\"${GCCPOINTVER}\"
CFLAGS+= -DGCCSHORTVER=\"${GCCSHORTVER}\"
CFLAGS+= -DBASEVER=\"${GCCCOMPLETEVER}\"
.include "Makefile.inc"
+COMPVERSION= gcc47
+
.if !defined(NO_CXX)
lang_tree_files+= cp/cp-tree.def
.endif
GCC_LANG_DIR= gcc/cp
.include "../Makefile.langs"
+.include "../../Makefile.cco"
PROG= c++
+MFILE= g++${MANPAGEVER}.1
+MAN= ${MFILE}
+
LINKS= ${BINDIR}/c++ ${BINDIR}/g++
LINKS+= ${BINDIR}/c++ ${BINDIR}/CC
-MAN= g++${GCCSHORTVER}.1
-
-.if ${GCCDOCSUFFIX} != ${GCCSHORTVER}
-MLINKS= g++${GCCSHORTVER}.1 g++${GCCDOCSUFFIX}.1
-.endif
OBJS+= ${GCC_SRCS:S/^/..\/cc\//:.c=.o}
OBJS+= ${EXTRA_GCC_SRCS:S/^/..\/cc\//:.c=.o}
CFLAGS+= -DCONFIGURE_SPECS="\"\""
-g++${GCCSHORTVER}.1: ${GCCDIR}/gcc/doc/g++.1
+${MFILE}: ${GCCDIR}/gcc/doc/g++.1
cp ${.ALLSRC} ${.TARGET}
-CLEANFILES+= g++${GCCSHORTVER}.1
+CLEANFILES+= ${MFILE}
+
+.if defined(IS_PRIMARY)
+MLINKS+= ${MFILE} g++.1
+.endif
.include <bsd.prog.mk>
.include "../Makefile.langs"
+.include "../../Makefile.cco"
PROG= cc
LINKS= ${BINDIR}/cc ${BINDIR}/gcc
-MAN= gcc${GCCSHORTVER}.1
-MLINKS= gcc${GCCSHORTVER}.1 cc.1 \
- gcc${GCCSHORTVER}.1 c++.1 \
- gcc${GCCSHORTVER}.1 g++.1 \
- gcc${GCCSHORTVER}.1 gcc.1 \
- gcc${GCCSHORTVER}.1 CC.1
-
-.if ${GCCDOCSUFFIX} != ${GCCSHORTVER}
-MLINKS+=gcc${GCCSHORTVER}.1 cc${GCCDOCSUFFIX}.1
-MLINKS+=gcc${GCCSHORTVER}.1 c++${GCCDOCSUFFIX}.1
-MLINKS+=gcc${GCCSHORTVER}.1 g++${GCCDOCSUFFIX}.1
-MLINKS+=gcc${GCCSHORTVER}.1 gcc${GCCDOCSUFFIX}.1
-MLINKS+=gcc${GCCSHORTVER}.1 CC${GCCDOCSUFFIX}.1
-.endif
+MFILE= gcc${MANPAGEVER}.1
+MAN= ${MFILE}
SRCS= ${GCC_SRCS} gccspec.c
SRCS+= ${EXTRA_GCC_SRCS}
CFLAGS+= -DCONFIGURE_SPECS="\"\""
-gcc${GCCSHORTVER}.1: ${GCCDIR}/gcc/doc/gcc.1
+${MFILE}: ${GCCDIR}/gcc/doc/gcc.1
cp ${.ALLSRC} ${.TARGET}
-CLEANFILES+= gcc${GCCSHORTVER}.1
+CLEANFILES+= ${MFILE}
+
+MLINKS+= ${MFILE} cc${MANPAGEVER}.1
+MLINKS+= ${MFILE} CC${MANPAGEVER}.1
+MLINKS+= ${MFILE} c++${MANPAGEVER}.1
+MLINKS+= ${MFILE} g++${MANPAGEVER}.1
+
+.if defined(IS_PRIMARY)
+MLINKS+= ${MFILE} cc.1
+MLINKS+= ${MFILE} CC.1
+MLINKS+= ${MFILE} gcc.1
+MLINKS+= ${MFILE} c++.1
+MLINKS+= ${MFILE} g++.1
+.endif
.include <bsd.prog.mk>
.include "../Makefile.inc"
.include "../Makefile.langs"
+.include "../../Makefile.cco"
PROG= cpp
-MAN= cpp${GCCSHORTVER}.1
-MLINKS= cpp${GCCSHORTVER}.1 cpp.1
-
-.if ${GCCSHORTVER} != ${GCCDOCSUFFIX}
-MLINKS+=cpp${GCCSHORTVER}.1 cpp${GCCDOCSUFFIX}.1
-.endif
+MFILE= cpp${MANPAGEVER}.1
+MAN= ${MFILE}
OBJS+= ${GCC_SRCS:S/^/..\/cc\//:.c=.o}
OBJS+= ${EXTRA_GCC_SRCS:S/^/..\/cc\//:.c=.o}
CFLAGS+= -DCONFIGURE_SPECS="\"\""
-cpp${GCCSHORTVER}.1: ${GCCDIR}/gcc/doc/cpp.1
+${MFILE}: ${GCCDIR}/gcc/doc/cpp.1
cp ${.ALLSRC} ${.TARGET}
-CLEANFILES+= cpp${GCCSHORTVER}.1
+CLEANFILES+= ${MFILE}
+
+.if defined(IS_PRIMARY)
+MLINKS+= ${MFILE} cpp.1
+.endif
.include <bsd.prog.mk>
# Install as nameVER for the time being
.for _i in ${ORIGINFO}
-.for docsfx in ${GCCSHORTVER} ${GCCDOCSUFFIX}
+.for docsfx in ${GCCSHORTVER}
.if empty(INFO:M${_i}${docsfx})
INFO+= ${_i}${docsfx}
INFOENTRY_${_i}${docsfx}= ${INFOENTRY_${_i}:C/\./${docsfx}./1}
.endfor
.endfor
# End magic rewriting
-.if ${GCCDOCSUFFIX} == ""
-INFO+= ${ORIGINFO}
-.endif
cpp.info: cpp.texi fdl.texi cppenv.texi cppopts.texi \
gcc-common.texi gcc-vers.texi
.include "../Makefile.langs"
+.include "../../Makefile.cco"
PROG= gcov
-MAN= gcov${GCCSHORTVER}.1
-MLINKS= gcov${GCCSHORTVER}.1 gcov.1
-
-.if ${GCCDOCSUFFIX} != ${GCCSHORTVER}
-MLINKS+=gcov${GCCSHORTVER}.1 gcov${GCCDOCSUFFIX}.1
-.endif
+MFILE= gcov${MANPAGEVER}.1
+MAN= ${MFILE}
SRCS= gcov.c
-gcov${GCCSHORTVER}.1: ${GCCDIR}/gcc/doc/gcov.1
+${MFILE}: ${GCCDIR}/gcc/doc/gcov.1
cp ${.ALLSRC} ${.TARGET}
-CLEANFILES+= gcov${GCCSHORTVER}.1
+CLEANFILES+= ${MFILE}
+
+.if defined(IS_PRIMARY)
+MLINKS+= ${MFILE} gcov.1
+.endif
.include <bsd.prog.mk>