Bmake bits for GCC 3.1.

This commit is contained in:
David E. O'Brien 2002-04-06 23:18:01 +00:00
parent 4e6aeb72b4
commit 9e3b001017
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/cvs2svn/branches/WIP_GCC31/; revision=94008
25 changed files with 423 additions and 169 deletions

31
gnu/usr.bin/cc/Makefile Normal file
View file

@ -0,0 +1,31 @@
# $FreeBSD$
# The order of some of these are rather important. Some depend on previous
# subdirs.
SUBDIR= cc_fbsd cc_tools cc_int cccp cc1 cc protoize
.if !defined(NO_CPP)
SUBDIR+= cpp
.endif
.if !defined(NO_CXX)
SUBDIR+= cc1plus c++ c++filt doc
.if !defined(NO_COLLECT2)
SUBDIR+= collect2
.endif
.endif
.if !defined(NO_OBJC)
SUBDIR+= cc1obj
.endif
.if !defined(NO_FORTRAN)
SUBDIR+= f77 f771 f77doc
.endif
.if !defined(NO_GCOV)
SUBDIR+= gcov
.endif
.include <bsd.subdir.mk>

View file

@ -1 +1,5 @@
# $FreeBSD$
# Front-end-only bits
version!= sed -n /version_string/p ${GCCDIR}/version.c | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'

View file

@ -6,14 +6,12 @@
.if !defined(GCCDIR)
GCCDIR= ${.CURDIR}/../../../../contrib/gcc
TARGET_ARCH?= ${MACHINE_ARCH}
.include "Makefile.tgt"
# Machine description.
MD_FILE= ${GCCDIR}/config/${TARGET_ARCH}/${TARGET_ARCH}.md
target= ${TARGET_ARCH}-unknown-freebsd
version!= sed -n /version_string/p ${GCCDIR}/version.c | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'
CFLAGS+= -DIN_GCC -DHAVE_CONFIG_H
CFLAGS+= -DPREFIX=\"${TOOLS_PREFIX}/usr\"
CFLAGS+= -DWANT_COMPILER_INVARIANTS

View file

@ -1 +1,16 @@
# $FreeBSD$
TARGET_ARCH?= ${MACHINE_ARCH}
.if ${TARGET_ARCH} == "alpha"
GCC_CPU= alpha
.elif ${TARGET_ARCH} == "arm"
GCC_CPU= arm
.elif ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "x86-64"
GCC_CPU= i386
.elif ${TARGET_ARCH} == "powerpc"
GCC_CPU= rs6000
.elif ${TARGET_ARCH} == "sparc64"
GCC_CPU= sparc
TARGET_CPU_DEFAULT= TARGET_CPU_ultrasparc
.endif

View file

@ -0,0 +1,20 @@
# $FreeBSD$
.include "../Makefile.inc"
.include "../Makefile.fe"
.PATH: ${GCCDIR}/cp ${GCCDIR}
PROG= c++
SRCS= gcc.c g++spec.c
LINKS= ${BINDIR}/c++ ${BINDIR}/g++
LINKS+= ${BINDIR}/c++ ${BINDIR}/CC
NOMAN= 1
CFLAGS+= -DDEFAULT_TARGET_VERSION=\"$(version)\"
CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"$(target)\"
DPADD+= ${LIBCC_INT} ${LIBCC_FBSD}
LDADD+= ${LIBCC_INT} ${LIBCC_FBSD}
.include <bsd.prog.mk>

View file

@ -5,7 +5,7 @@
.PATH: ${GCCDIR}
PROG= c++filt
SRCS= cp-demangle.c cplus-dem+%DIKED.c getopt.c getopt1.c underscore.c
SRCS= cp-demangle.c cplus-dem+%DIKED.c
BINDIR= /usr/libexec/${OBJFORMAT}
NOMAN= 1
@ -14,19 +14,6 @@ CFLAGS+= -DMAIN -DIN_GCC -DVERSION=\"$(version)\"
DPADD+= ${LIBCC_INT}
LDADD+= ${LIBCC_INT}
CLEANFILES= tmp-dum.c tmp-dum.s underscore.c
underscore.c:
echo "int xxy_us_dummy;" >tmp-dum.c
${CC} -S tmp-dum.c
echo '/*WARNING: This file is automatically generated!*/' >underscore.c
if grep _xxy_us_dummy tmp-dum.s > /dev/null ; then \
echo "int prepends_underscore = 1;" >>underscore.c; \
else \
echo "int prepends_underscore = 0;" >>underscore.c; \
fi
rm -f tmp-dum.c tmp-dum.s
cplus-dem+%DIKED.c: cplus-dem.c
sed \
-e 's/^xmalloc[ ]/_DONT_xmalloc /g' \

View file

@ -0,0 +1,22 @@
# $FreeBSD$
.include "../Makefile.inc"
.include "../Makefile.fe"
.PATH: ${GCCDIR}
PROG= cc
MAN= gcc.1
SRCS= gcc.c gccspec.c
NOSHARED?=yes
LINKS= ${BINDIR}/cc ${BINDIR}/gcc
MLINKS= gcc.1 cc.1 gcc.1 c++.1 gcc.1 g++.1 gcc.1 CC.1
CFLAGS+= -DDEFAULT_TARGET_VERSION=\"$(version)\"
CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"$(target)\"
DPADD+= ${LIBCC_INT} ${LIBCC_FBSD}
LDADD+= ${LIBCC_INT} ${LIBCC_FBSD}
.include <bsd.prog.mk>

View file

@ -5,12 +5,10 @@
.PATH: ../cc_tools ${GCCDIR}
PROG= cc1
SRCS= c-parse.c c-parse.h c-lang.c
# Ugh, compiled twice...
SRCS+= c-decl.c c-lex.c c-typeck.c
SRCS= main.c c-parse.c c-lang.c c-decl.c
BINDIR= /usr/libexec
NOMAN= 1
NOSHARED=yes
NOSHARED?=yes
CFLAGS+= -I.
@ -19,15 +17,18 @@ LDADD+= ${LIBCC_INT}
#-----------------------------------------------------------------------
# C parser
.ORDER: c-parse.c c-parse.h
c-parse.c c-parse.h: c-parse.in
.ORDER: c-parse.c
c-parse.c: c-parse.in
sed -e "/^ifobjc$$/,/^end ifobjc$$/d" \
-e "/^ifc$$/d" \
-e "/^end ifc$$/d" \
${.ALLSRC} > c-parse.y
${YACC} -d -o c-parse.c c-parse.y
${GCCDIR}/c-parse.in > c-parse.y
${YACC} -o c-parse.c.in c-parse.y
sed -e "s/malloc/xmalloc/g" \
-e "s/realloc/xrealloc/g" \
c-parse.c.in >c-parse.c
CLEANFILES+= c-parse.c c-parse.h c-parse.y # insurance
CLEANFILES+= c-parse.c c-parse.y # insurance
#-----------------------------------------------------------------------

View file

@ -5,12 +5,10 @@
.PATH: ../cc_tools ${GCCDIR}/objc ${GCCDIR}
PROG= cc1obj
SRCS= objc-parse.c c-parse.h objc-act.c
# Ugh, compiled twice...
SRCS+= c-decl.c c-lex.c c-typeck.c
SRCS= objc-parse.c objc-act.c objc-lang.c main.c c-decl.c
BINDIR= /usr/libexec
NOMAN= 1
NOSHARED=yes
NOSHARED?=yes
CFLAGS+= -I${GCCDIR}/objc -I.
@ -19,16 +17,18 @@ LDADD+= ${LIBCC_INT}
#-----------------------------------------------------------------------
# objc parser
.ORDER: objc-parse.c c-parse.h
objc-parse.c c-parse.h: c-parse.in
.ORDER: objc-parse.c
objc-parse.c: c-parse.in
sed -e "/^ifc$$/,/^end ifc$$/d" \
-e "/^ifobjc$$/d" \
-e "/^end ifobjc$$/d" \
${.ALLSRC} > objc-parse.y
${YACC} -d -o objc-parse.c objc-parse.y
mv objc-parse.h c-parse.h
${GCCDIR}/c-parse.in > objc-parse.y
${YACC} -o objc-parse.c.in objc-parse.y
sed -e "s/malloc/xmalloc/g" \
-e "s/realloc/xrealloc/g" \
objc-parse.c.in >objc-parse.c
CLEANFILES+= objc-parse.c c-parse.h objc-parse.y # insurance
CLEANFILES+= objc-parse.c objc-parse.y # insurance
#-----------------------------------------------------------------------

View file

@ -5,26 +5,29 @@
.PATH: ${GCCDIR}/cp ${GCCDIR}
PROG= cc1plus
SRCS= parse.c parse.h cfns.h
SRCS+= call.c class.c cvt.c decl.c decl2.c errfn.c error.c except.c expr.c \
SRCS= parse.c cfns.h
SRCS+= main.c cp-lang.c
SRCS+= call.c class.c cvt.c decl.c decl2.c error.c except.c expr.c \
friend.c init.c lex.c mangle.c method.c pt.c ptree.c repo.c rtti.c \
search.c semantics.c spew.c tree.c typeck.c typeck2.c xref.c dump.c optimize.c
search.c semantics.c spew.c tree.c typeck.c typeck2.c dump.c optimize.c
BINDIR= /usr/libexec
NOMAN= 1
NOSHARED=yes
NOSHARED?=yes
CFLAGS+= -I${GCCDIR}/cp -I.
DPADD+= ${LIBCC_INT}
LDADD+= ${LIBCC_INT}
.ORDER: parse.c parse.h
parse.c parse.h: parse.y
${YACC} -d -o parse.c ${.ALLSRC}
grep '^#define[ ]*YYEMPTY' parse.c >>parse.h
.ORDER: parse.c
parse.c: parse.y
${YACC} -o parse.c.in ${.ALLSRC}
sed -e "s/malloc/xmalloc/g" \
-e "s/realloc/xrealloc/g" \
parse.c.in >parse.c
CLEANFILES+= parse.c parse.h cfns.h
CLEANFILES+= parse.c cfns.h
cfns.h:
gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' \

View file

@ -0,0 +1,20 @@
# $FreeBSD$
.include "../Makefile.inc"
.PATH: ../cc_tools ${GCCDIR}
LIB= cc_drv
NOPROFILE= YES
NOPIC= YES
SRCS= multilib.h choose-temp.c obstack.c prefix.c pexecute.c version.c
CFLAGS+= -DIN_GCC
install:
@true
${OUT_OBJ}.o ${OUT_OBJ}.so: ${OUT_FILE}
.include <bsd.lib.mk>

View file

@ -0,0 +1,18 @@
# $FreeBSD$
LIBCDIR= ${.CURDIR}/../../../../lib/libc
.PATH: ${LIBCDIR}/gen ${LIBCDIR}/stdio
LIB= cc_fbsd
NOPROFILE= YES
NOPIC= YES
SRCS= getobjformat.c mktemp.c
CFLAGS+= -D_open=open
install:
@true
.include <bsd.lib.mk>

View file

@ -2,7 +2,7 @@
.include "../Makefile.inc"
.PATH: ../cc_tools ${GCCDIR}/config/${TARGET_ARCH} ${GCCDIR}
.PATH: ../cc_tools ${GCCDIR}/config/${GCC_CPU} ${GCCDIR}
LIB= cc_int
NOPROFILE= YES
@ -10,9 +10,9 @@ NOPIC= YES
# dbxout.c dwarfout.c emit-rtl.c explow.c expmed.c expr.c \
# alias.c bitmap.c dwarf2out.c dyn-string.c \
SRCS= c-aux-info.c c-common.c c-convert.c c-format.c \
SRCS= c-common.c c-format.c \
c-pragma.c c-semantics.c \
c-dump.c c-errors.c \
\
caller-save.c calls.c combine.c convert.c cse.c \
dbxout.c dwarfout.c dwarf2out.c dwarf2asm.c emit-rtl.c explow.c expmed.c expr.c \
final.c flow.c fold-const.c function.c getpwd.c global.c graph.c \
@ -24,11 +24,12 @@ SRCS= c-aux-info.c c-common.c c-convert.c c-format.c \
toplev.c tree.c unroll.c varasm.c version.c xcoffout.c \
alias.c bitmap.c dyn-string.c \
gcse.c genrtl.c profile.c regmove.c varray.c \
${TARGET_ARCH}.c
attribs.c cselib.c debug.c rtl-error.c tree-dump.c tree-inline.c \
${GCC_CPU}.c
SRCS+= bb-reorder.c conflict.c ggc-common.c \
ggc-page.c ifcvt.c lists.c predict.c regrename.c resource.c sibcall.c \
simplify-rtx.c ssa.c timevar.c
simplify-rtx.c ssa.c timevar.c ssa-dce.c ssa-ccp.c df.c fibheap.c
# insn-* gunk -- headers are built in cc_tools, as they are used by the
# "build-tools"
@ -40,24 +41,47 @@ insn-$F.c: ${.OBJDIR}/../cc_tools/gen$F ${MD_FILE}
.endfor
# shared between the drivers
SRCS+= multilib.h choose-temp.c obstack.c prefix.c pexecute.c version.c mbchar.c
SRCS+= multilib.h choose-temp.c obstack.c prefix.c pexecute.c version.c mbchar.c concat.c make-temp-file.c underscore.c
# C_AND_OBJC_OBJS
#SRCS+= attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \
# c-convert.o c-aux-info.o c-common.o c-format.o c-semantics.o \
# c-objc-common.o
# XXX: shared by cc1, cc1obj & cpp0
# cc1plus seems to be able to tolerate these here,
# BUT only if the right .o's are specified in cc1plus/Makefile
SRCS+= c-lex.c c-typeck.c \
c-errors.o c-pragma.o c-convert.o c-aux-info.o c-common.o c-format.o c-semantics.o c-objc-common.o
# libbackend
SRCS+= builtins.c dce.c diagnostic.c doloop.c dominance.c except.c gcse.c params.c sched-deps.c sched-vis.c sched-rgn.c sched-ebb.c \
stringpool.c c-lex.c
# shared by cc1/cc1obj
SRCS+= #c-decl.c
SRCS+= c-typeck.c
SRCS+= builtins.c diagnostic.c doloop.c dominance.c except.c gcse.c params.c sched-deps.c sched-vis.c sched-rgn.c sched-ebb.c \
stringpool.c c-lex.c langhooks.c hashtable.c \
hooks.c \
cfg.c cfganal.c cfgbuild.c cfgcleanup.c cfglayout.c cfgloop.c cfgrtl.c
# libcpp
SRCS+= cppdefault.c cpperror.c cppexp.c cppfiles.c cppinit.c cpphash.c \
cpplex.c cpplib.c cppmacro.c mkdeps.c
cpplex.c cpplib.c cppmacro.c mkdeps.c line-map.c
# stuff that makes libiberty now required (2.95) and shouldn't be...
SRCS+= obstack.c splay-tree.c hashtab.c partition.c lbasename.c md5.c
SRCS+= obstack.c splay-tree.c hashtab.c partition.c lbasename.c md5.c hex.c getopt.c getopt1.c
CFLAGS+= -DHAVE_CONFIG_H
CFLAGS+= -DTARGET_NAME=\"${target}\" -DIN_GCC
.if defined(TARGET_CPU_DEFAULT)
CFLAGS+= -DTARGET_CPU_DEFAULT=${TARGET_CPU_DEFAULT}
.endif
.if ${OBJFORMAT} == aout
UNDERSCORES= 1
.else
UNDERSCORES= 0
.endif
SRCS+= underscore.c
CLEANFILES+= underscore.c
underscore.c: Makefile
echo '/*WARNING: This file is automatically generated!*/' >${.TARGET}
echo "int prepends_underscore = ${UNDERSCORES};" >>${.TARGET}
install:
@true

View file

@ -11,23 +11,17 @@
# Prevent mkdep from using it, so that we don't have to give rules for
# aliases of generated headers.
CFLAGS+= -DGENERATOR_FILE -I.
CFLAGS+= -I.
.include "../Makefile.inc"
.PATH: ${GCCDIR} ${GCCDIR}/cp
CFLAGS+= -static -DGENERATOR_FILE
#-----------------------------------------------------------------------
# insn-* gunk
CLEANFILES+= gensupport+%DIKED.c
gensupport+%DIKED.c: gensupport.c
sed \
-e 's/^xmalloc/DONT_xmalloc/g' \
-e 's/^xrealloc/DONT_xrealloc/g' \
-e 's/^xstrdup/DONT_xstrdup/g' \
${.ALLSRC} > ${.TARGET}
.for F in attr codes config flags
insn-$F.h: gen$F ${MD_FILE}
./gen$F ${MD_FILE} > insn-$F.h
@ -41,8 +35,8 @@ gen-time-stamp: genattrtab genemit genextract genopinit genoutput genpeep genrec
.for F in attr codes config emit extract flags opinit output peep recog
build-tools: gen$F
gen$F: gen$F.o rtl.o obstack.o print-rtl.o bitmap.o errors.o gensupport+%DIKED.o ggc-none.o hashtab.o #safe-ctype.o
${CC} -static ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
gen$F: gen$F.o rtl.o obstack.o print-rtl.o bitmap.o errors.o gensupport.o ggc-none.o hashtab.o read-rtl.o
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
GENSRCS+= gen$F.c
CLEANFILES+= gen$F
@ -51,20 +45,20 @@ CLEANFILES+= gen$F
.for F in attrtab
build-tools: gen$F
gen$F: gen$F.o rtl.o print-rtl.o obstack.o bitmap.o errors.o gensupport+%DIKED.o ggc-none.o hashtab.o
${CC} -static ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
gen$F: gen$F.o rtl.o print-rtl.o obstack.o bitmap.o errors.o gensupport.o ggc-none.o hashtab.o read-rtl.o
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
GENSRCS+= gen$F.c
CLEANFILES+= gen$F
.endfor
SRCS+= bitmap.c errors.c gensupport+%DIKED.c ggc-none.c hashtab.c obstack.c print-rtl.c regclass.c rtl.c rtlanal.c
SRCS+= bitmap.c errors.c gensupport.c ggc-none.c hashtab.c obstack.c print-rtl.c regclass.c rtl.c rtlanal.c read-rtl.c
.for F in check genrtl
.for F in check genrtl preds
build-tools: gen$F
gen$F: gen$F.o
${CC} -static -DGENERATOR_FILE ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
GENSRCS+= gen$F.c
CLEANFILES+= gen$F
@ -84,33 +78,31 @@ tree-check.h: gencheck
./gencheck > ${.TARGET}
GENSRCS+= tree-check.h
#-----------------------------------------------------------------------
# Predicates stuff.
tm-preds.h: genpreds
./genpreds > ${.TARGET}
GENSRCS+= tm-preds.h
#-----------------------------------------------------------------------
# the host/target compiler config.
COMMONHDRS= config.h hconfig.h multilib.h options.h specs.h tconfig.h tm.h \
COMMONHDRS= config.h hconfig.h multilib.h options.h specs.h tconfig.h \
tm_p.h configargs.h safe-ctype.h
GENSRCS+= ${COMMONHDRS} gencheck.h
${COMMONHDRS}: ${.CURDIR}/Makefile
MFILE?= ${.CURDIR}/Makefile
${COMMONHDRS}: ${MFILE}
configargs.h:
echo 'static const char configuration_arguments[] =' > ${.TARGET}
echo ' "FreeBSD/${TARGET_ARCH} system compiler";' >> ${.TARGET}
echo 'static const char thread_model[] = "posix";' >> ${.TARGET}
config.h hconfig.h:
echo '#include "auto-host.h"' > ${.TARGET}
echo '#include "gansidecl.h"' >> ${.TARGET}
echo '#include "${TARGET_ARCH}/xm-${TARGET_ARCH}.h"' >> ${.TARGET}
echo '#include "defaults.h"' >> ${.TARGET}
echo '#include "hwint.h"' >> ${.TARGET}
echo '#ifndef POSIX' >> ${.TARGET}
echo '# define POSIX' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
echo '#ifndef GENERATOR_FILE' >> ${.TARGET}
echo '#include "insn-codes.h"' >> ${.TARGET}
echo '#include "insn-flags.h"' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
hconfig.h:
echo '#include "auto-host.h"' > ${.TARGET}
echo '#include <tconfig.h>' >> ${.TARGET}
gencheck.h:
echo '#include "cp/cp-tree.def"' > ${.TARGET}
@ -135,45 +127,73 @@ specs.h:
echo '#include "f/lang-specs.h"' >> ${.TARGET}
echo '#include "objc/lang-specs.h"' >> ${.TARGET}
tconfig.h:
echo '#include "gansidecl.h"' > ${.TARGET}
echo '#include "${TARGET_ARCH}/xm-${TARGET_ARCH}.h"' >> ${.TARGET}
echo '#include "defaults.h"' >> ${.TARGET}
echo '#ifndef GENERATOR_FILE' >> ${.TARGET}
echo '#include "insn-codes.h"' >> ${.TARGET}
echo '#include "insn-flags.h"' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
echo '#define USING_SJLJ_EXCEPTIONS 0' >> ${.TARGET}
config.h:
echo '#include <hconfig.h>' > ${.TARGET}
echo '#ifndef GENERATOR_FILE' >> ${.TARGET}
echo '#include "insn-codes.h"' >> ${.TARGET}
echo '#include "insn-flags.h"' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
# KEEP THIS IN SYNC with src/gcc/lib/libgcc/Makefile !!
tm.h:
echo '#include "gansidecl.h"' > ${.TARGET}
echo '#include "${TARGET_ARCH}/${TARGET_ARCH}.h"' >> ${.TARGET}
tconfig.h:
echo '#ifdef IN_GCC' > ${.TARGET}
echo 'struct rtx_def;' >> ${.TARGET}
echo 'typedef struct rtx_def *rtx;' >> ${.TARGET}
echo 'struct rtvec_def;' >> ${.TARGET}
echo 'typedef struct rtvec_def *rtvec;' >> ${.TARGET}
echo 'union tree_node;' >> ${.TARGET}
echo 'typedef union tree_node *tree;' >> ${.TARGET}
echo '' >> ${.TARGET}
echo '#include "ansidecl.h"' >> ${.TARGET}
echo '#include "${GCC_CPU}/${GCC_CPU}.h"' >> ${.TARGET}
.if ${TARGET_ARCH} == "i386"
echo '#include "${TARGET_ARCH}/att.h"' >> ${.TARGET}
echo '#include "${GCC_CPU}/att.h"' >> ${.TARGET}
.endif
echo '#include <freebsd-native.h>' >> ${.TARGET}
echo '#include <freebsd.h>' >> ${.TARGET}
.if exists(${GCCDIR}/config/${TARGET_ARCH}/elf.h)
echo '#include "${TARGET_ARCH}/elf.h"' >> ${.TARGET}
.if ${TARGET_ARCH} != "alpha"
echo '#include "dbxelf.h"' >> ${.TARGET}
echo '#include "elfos.h"' >> ${.TARGET}
.endif
echo '#include "${TARGET_ARCH}/freebsd.h"' >> ${.TARGET}
.if ${TARGET_ARCH} == "i386"
echo '#include "${TARGET_ARCH}/perform.h"' >> ${.TARGET}
echo '#include <freebsd-native.h>' >> ${.TARGET}
echo '#include "freebsd-spec.h"' >> ${.TARGET}
echo '#include "freebsd.h"' >> ${.TARGET}
.if ${TARGET_ARCH} == "alpha"
echo '#include "${GCC_CPU}/elf.h"' >> ${.TARGET}
.endif
echo '#include "defaults.h"' >> ${.TARGET}
echo '#ifndef GENERATOR_FILE' >> ${.TARGET}
echo '#include "insn-codes.h"' >> ${.TARGET}
echo '#include "insn-flags.h"' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
.if ${TARGET_ARCH} != "i386"
.if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h)
echo '#include "${GCC_CPU}/sysv4.h"' >> ${.TARGET}
.endif
.endif
echo '#include "${GCC_CPU}/freebsd.h"' >> ${.TARGET}
echo '#include "defaults.h"' >> ${.TARGET}
echo '#ifndef POSIX' >> ${.TARGET}
echo '# define POSIX' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
echo '#define CONFIG_SJLJ_EXCEPTIONS 0' >> ${.TARGET}
echo '#endif /* IN_GCC */' >> ${.TARGET}
tm_p.h:
echo '#include "${TARGET_ARCH}/${TARGET_ARCH}-protos.h"' > ${.TARGET}
echo '#include <freebsd-native.h>' >> ${.TARGET}
echo '#ifndef GENERATOR_FILE' >> ${.TARGET}
echo '#include "insn-codes.h"' >> ${.TARGET}
echo '#include "insn-flags.h"' >> ${.TARGET}
echo '#ifdef IN_GCC' > ${.TARGET}
echo '#include "${GCC_CPU}/${GCC_CPU}-protos.h"' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
echo '#include "tm-preds.h"' >> ${.TARGET}
safe-ctype.h: Makefile
echo '#include <ctype.h>' > ${.TARGET}
.for Z in TOUPPER TOLOWER ISDIGIT ISXDIGIT ISUPPER ISLOWER ISALPHA ISALNUM \
ISSPACE ISPUNCT ISGRAPH ISBLANK ISPRINT ISCNTRL
echo '#define ${Z} ${Z:L}' >> ${.TARGET}
.endfor
echo "#define ISIDST(x) \
((x) == '_' || isalpha(x))" >> ${.TARGET}
echo "#define ISIDNUM(x) \
(isdigit(x) || ISIDST(x))" >> ${.TARGET}
echo "#define IS_VSPACE(x) \
((x) == '\n' || (x) == '\r')" >> ${.TARGET}
echo "#define IS_NVSPACE(x) \
(!IS_VSPACE(x) && (isspace(x) || (x) == '\0'))" >> ${.TARGET}
echo "#define IS_SPACE_OR_NUL(x) \
(isspace(x) || (x) == '\0')" >> ${.TARGET}
#-----------------------------------------------------------------------
# General things.
@ -200,7 +220,7 @@ OBJS+= ${SRCS:N*.h:R:S/$/.o/g}
# all headers. Filter out the objects that would cause problems (i.e.,
# objects that will be used to create programs that will generate headers).
#
${OBJS:Nbitmap.o:Nerrors.o:Ngenattr.o:Ngencheck.o:Ngencodes.o:Ngenconfig.o:Ngenflags.o:Ngengenrtl.o:Ngensupport+%DIKED.o:Nggc-none.o:Nhashtab.o:Nobstack.o:Nprint-rtl.o:Nrtl.o}: ${SRCS:M*.h}
${OBJS:Nbitmap.o:Nerrors.o:Ngenattr.o:Ngencheck.o:Ngencodes.o:Ngenconfig.o:Ngenflags.o:Ngengenrtl.o:Ngenpreds.o:Ngensupport.o:Nggc-none.o:Nhashtab.o:Nobstack.o:Nprint-rtl.o:Nread-rtl.o:Nrtl.o}: ${SRCS:M*.h}
# Next, make each of the problematic objects depend on only most headers.
# Filter out the headers that would cause problems (and a few more when it
@ -210,17 +230,5 @@ bitmap.o genattr.o gencodes.o genconfig.o genflags.o obstack.o print-rtl.o \
rtl.o: ${SRCS:M*.h:Ninsn-*.h}
gencheck.o: gencheck.h ${SRCS:M*.h:Ngenrtl.h:Ntree-check.h:Ninsn-*.h}
gengenrtl.o: ${SRCS:M*.h:Ngenrtl.h:Ninsn-*.h}
genpreds.o: ${COMMONHDRS}
.endif
#GENSRCS+= safe-ctype.h
${OBJS} gensupport+%DIKED.o: safe-ctype.h
safe-ctype.h: Makefile
echo '#include <ctype.h>' > ${.TARGET}
.for Z in TOUPPER TOLOWER ISDIGIT ISXDIGIT ISUPPER ISLOWER ISALPHA ISALNUM ISSPACE ISPUNCT ISGRAPH ISBLANK ISPRINT ISCNTRL
echo '#define ${Z} ${Z:L}' >> ${.TARGET}
.endfor
echo "#define ISIDST(x) ((x) == '_' || isalpha(x))" >> ${.TARGET}
echo "#define ISIDNUM(x) (isdigit(x) || ISIDST(x))" >> ${.TARGET}
echo "#define IS_VSPACE(x) ((x) == '\n' || (x) == '\r')" >> ${.TARGET}
echo "#define IS_NVSPACE(x) (!IS_VSPACE(x) && (isspace(x) || (x) == '\0'))" >> ${.TARGET}
echo "#define IS_SPACE_OR_NUL(x) (isspace(x) || (x) == '\0')" >> ${.TARGET}

View file

@ -10,7 +10,6 @@
#define FBSD_MAJOR 5
#undef SYSTEM_INCLUDE_DIR /* We don't need one for now. */
#undef GCC_INCLUDE_DIR /* We don't need one for now. */
#undef TOOL_INCLUDE_DIR /* We don't need one for now. */
#undef LOCAL_INCLUDE_DIR /* We don't wish to support one. */
@ -33,7 +32,7 @@
*/
#undef TOOLDIR_BASE_PREFIX /* Old?? This is not documented. */
#define STANDARD_EXEC_PREFIX PREFIX"/libexec/"
#define MD_EXEC_PREFIX /* We don't want one. */
#undef MD_EXEC_PREFIX /* We don't want one. */
/* Under FreeBSD, the normal location of the various *crt*.o files is the
/usr/lib directory. */

View file

@ -5,12 +5,30 @@
.PATH: ${GCCDIR}
PROG= cpp0
SRCS= cppmain.c
SRCS= cppmain.c c-parse.c c-lang.c c-decl.c
BINDIR= /usr/libexec
NOMAN= 1
NOSHARED?=yes
DPADD+= ${LIBCC_INT}
LDADD+= ${LIBCC_INT}
#-----------------------------------------------------------------------
# C parser
.ORDER: c-parse.c
c-parse.c: c-parse.in
sed -e "/^ifobjc$$/,/^end ifobjc$$/d" \
-e "/^ifc$$/d" \
-e "/^end ifc$$/d" \
${GCCDIR}/c-parse.in > c-parse.y
${YACC} -o c-parse.c.in c-parse.y
sed -e "s/malloc/xmalloc/g" \
-e "s/realloc/xrealloc/g" \
c-parse.c.in >c-parse.c
CLEANFILES+= c-parse.c c-parse.y # insurance
#-----------------------------------------------------------------------
.include <bsd.prog.mk>

View file

@ -2,29 +2,13 @@
.include "../Makefile.inc"
.PATH: ${GCCDIR}
.PATH: ${GCCDIR} ${GCCDIR}/../libiberty
PROG= collect2
SRCS= collect2.c cplus-dem.c tlink.c underscore.c
BINDIR= /usr/libexec
SRCS= collect2.c cp-demangle.c cplus-dem.c tlink.c
NOMAN=
NOSHARED?=yes
DPADD+= ${LIBCC_INT}
LDADD+= ${LIBCC_INT}
CLEANFILES= tmp-dum.c tmp-dum.s underscore.c
underscore.c: Makefile
echo "int xxy_us_dummy;" >tmp-dum.c
${CC} -S tmp-dum.c
echo '/*WARNING: This file is automatically generated!*/' >underscore.c
if grep _xxy_us_dummy tmp-dum.s > /dev/null ; then \
echo "int prepends_underscore = 1;" >>underscore.c; \
else \
echo "int prepends_underscore = 0;" >>underscore.c; \
fi
# wrong to do this here, but easiest way out to duplicate gcc.c.
echo "char *xstrerror(int e) { return strerror(e); }" >>underscore.c
rm -f tmp-dum.c tmp-dum.s
.include <bsd.prog.mk>

View file

@ -0,0 +1,18 @@
# $FreeBSD$
.include "../Makefile.inc"
.include "../Makefile.fe"
.PATH: ${GCCDIR}
PROG= cpp
SRCS= gcc.c cppspec.c
NOMAN= 1
CFLAGS+= -DDEFAULT_TARGET_VERSION=\"$(version)\"
CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"$(target)\"
DPADD+= ${LIBCC_INT} ${LIBCC_FBSD}
LDADD+= ${LIBCC_INT} ${LIBCC_FBSD}
.include <bsd.prog.mk>

View file

@ -5,12 +5,30 @@
.PATH: ${GCCDIR}
PROG= cpp0
SRCS= cppdefault.c cpperror.c cppexp.c cppfiles.c cpphash.c cppinit.c cpplex.c cpplib.c \
cppmain.c cppulp.c mkdeps.c
SRCS= cppmain.c c-parse.c c-lang.c c-decl.c
BINDIR= /usr/libexec
NOMAN= 1
NOSHARED?=yes
DPADD+= ${LIBCC_INT}
LDADD+= ${LIBCC_INT}
#-----------------------------------------------------------------------
# C parser
.ORDER: c-parse.c
c-parse.c: c-parse.in
sed -e "/^ifobjc$$/,/^end ifobjc$$/d" \
-e "/^ifc$$/d" \
-e "/^end ifc$$/d" \
${.ALLSRC} > c-parse.y
${YACC} -o c-parse.c.in c-parse.y
sed -e "s/malloc/xmalloc/g" \
-e "s/realloc/xrealloc/g" \
c-parse.c.in >c-parse.c
CLEANFILES+= c-parse.c c-parse.y # insurance
#-----------------------------------------------------------------------
.include <bsd.prog.mk>

View file

@ -0,0 +1,19 @@
# $FreeBSD$
.include "../Makefile.inc"
.PATH: ${GCCDIR}/cp ${GCCDIR}
INFO= gcc cpp gxxint
INFOSECTION= "Gcc Documentation"
INFOENTRY_gcc= "* gcc: (gcc). The EGCS GNU C compiler."
INFOENTRY_cpp= "* cpp: (cpp). The EGCS GNU C pre-processor."
INFOENTRY_gxxint= "* gxxint: (gxxint). The EGCS GNU compiler family internal documentation."
gcc.info: gcc.texi invoke.texi install.texi extend.texi gcov.texi rtl.texi \
md.texi tm.texi
MAKEINFOFLAGS+= -I ${GCCDIR} -I ${GCCDIR}/cp
.include <bsd.info.mk>

View file

@ -0,0 +1,23 @@
# $FreeBSD$
.include "../Makefile.inc"
.include "../Makefile.fe"
.PATH: ${GCCDIR}/f ${GCCDIR}
PROG= f77
SRCS= gcc.c g77spec.c version.c
NOMAN= # not while compile from GCC repo checkout
CFLAGS+= -DDEFAULT_TARGET_VERSION=\"$(version)\"
CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"$(target)\"
DPADD= ${LIBCC_INT} ${LIBCC_FBSD}
LDADD= ${LIBCC_INT} ${LIBCC_FBSD}
CLEANFILES= f77.1
f77.1: g77.1
ln -sf ${.ALLSRC} ${.TARGET}
.include <bsd.prog.mk>

View file

@ -2,13 +2,13 @@
.include "${.CURDIR}/../Makefile.inc"
.PATH: ${GCCDIR}/f
.PATH: ${GCCDIR}/f ${GCCDIR}
PROG= f771
SRCS= bad.c bit.c bld.c com.c data.c equiv.c expr.c global.c implic.c info.c \
intrin.c lab.c lex.c malloc.c name.c parse.c proj.c src.c st.c sta.c \
intrin.c lab.c lex.c malloc.c name.c parse.c src.c st.c sta.c \
stb.c stc.c std.c ste.c storag.c stp.c str.c sts.c stt.c stu.c stv.c \
stw.c symbol.c target.c top.c type.c version.c where.c
stw.c symbol.c target.c top.c type.c version.c where.c main.c
BINDIR= /usr/libexec
NOMAN=
@ -18,16 +18,10 @@ DPADD= ${LIBCC_INT}
LDADD= ${LIBCC_INT}
build-tools: fini
# The use of ``proj+%BT.o'' is to get around bogus dependacy information
# created for build-tools sources.
fini: fini.o proj+%BT.o # ${GCCDIR}/safe-ctype.c
fini: fini.o
${CC} -static ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
proj+%BT.o: proj.c
${CC} ${CFLAGS} -o ${.TARGET} -c ${.ALLSRC}
CLEANFILES+= fini fini.o proj+%BT.o
CLEANFILES+= fini fini.o
#-----------------------------------------------------------------------
# str-* gunk

View file

@ -0,0 +1,13 @@
# $FreeBSD$
.include "../Makefile.inc"
.PATH: ${GCCDIR}/f
INFO= g77
MAKEINFOFLAGS+= -I ${GCCDIR}/f
g77.info: g77.texi intdoc.texi
.include <bsd.info.mk>

View file

@ -5,6 +5,9 @@
.PATH: ${GCCDIR} ${GCCDIR}/doc
PROG= gcov
SRCS= gcov.c
SRCS= gcov.c version.c
DPADD= ${LIBCC_INT}
LDADD= ${LIBCC_INT}
.include <bsd.prog.mk>

View file

@ -2,6 +2,20 @@
.include "../Makefile.inc"
.PATH: ${GCCDIR}
.PATH: ${.CURDIR}/../cc_tools ${GCCDIR} ${GCCDIR}/../libiberty
PROG= protoize
NOMAN=
# things are rather hard-coded, we work around that here
CFLAGS+= -DDEFAULT_TARGET_VERSION=\"\"
CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"../libdata/gcc\"
DPADD= ${LIBCC_INT}
LDADD= ${LIBCC_INT}
CLEANFILES= config.h
config.h: auto-host.h freebsd-native.h
cat ${.ALLSRC} >${.TARGET}
.include <bsd.prog.mk>