Bmake glue for GCC 3.4.2-prerelease.

This commit is contained in:
Alexander Kabaev 2004-07-28 05:27:21 +00:00
parent 2814077c60
commit 81efba8c9e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=132751
26 changed files with 1700 additions and 1568 deletions

View File

@ -766,10 +766,6 @@ _aicasm= sys/modules/aic7xxx/aicasm
_share= share/syscons/scrnmaps
.endif
.if !defined(NO_FORTRAN)
_fortran= gnu/usr.bin/cc/f771
.endif
.if !defined(NO_KERBEROS) && !defined(NOCRYPT) && !defined(NO_OPENSSL)
_kerberos5_tools= kerberos5/tools
.endif
@ -784,7 +780,6 @@ build-tools:
bin/sh \
${_rescue} \
gnu/usr.bin/cc/cc_tools \
${_fortran} \
lib/libncurses \
${_share} \
${_aicasm} \

View File

@ -12,11 +12,13 @@
bsnmp
..
c++
3.3
3.4
backward
..
bits
..
debug
..
ext
..
..

View File

@ -6,14 +6,14 @@ CCDIR= ${.CURDIR}/../../usr.bin/cc
.PATH: ${GCCDIR}/config/${GCC_CPU} ${GCCDIR}
SRCS= crtstuff.c tconfig.h
SRCS= crtstuff.c tconfig.h tm.h
OBJS= crtbegin.o crtend.o
SOBJS= crtbegin.So crtend.So
CSTD?= gnu89
CFLAGS+= -DIN_GCC -DHAVE_LD_EH_FRAME_HDR
CFLAGS+= -finhibit-size-directive -fno-inline-functions \
-fno-exceptions -fno-zero-initialized-in-bss \
-fno-omit-frame-pointer
-fno-omit-frame-pointer -fno-unit-at-a-time
CFLAGS+= -I${GCCDIR}/config -I${GCCDIR} -I. \
-I${CCDIR}/cc_tools
CRTS_CFLAGS= -DCRTSTUFFS_O -DSHARED ${PICFLAG}
@ -38,7 +38,7 @@ BEGINSRC?= crtstuff.c
ENDSRC?= crtstuff.c
all: ${OBJS} ${SOBJS} ${TGTOBJS}
${OBJS} ${SOBJS}: tconfig.h
${OBJS} ${SOBJS}: tm.h
CLEANFILES= ${OBJS} ${SOBJS} ${TGTOBJS}
@ -58,8 +58,8 @@ crtend.So: ${ENDSRC}
${CC} ${CFLAGS} -g0 -DCRT_END ${CRTS_CFLAGS} \
-c -o ${.TARGET} ${.ALLSRC:N*.h}
CLEANFILES+= tconfig.h
tconfig.h: ${CCDIR}/cc_tools/Makefile
CLEANFILES+= tm.h tconfig.h
tm.h tconfig.h: ${CCDIR}/cc_tools/Makefile
${MAKE} -f ${.ALLSRC} MFILE=${.ALLSRC} GCCDIR=${GCCDIR} ${.TARGET}
realinstall:

View File

@ -59,7 +59,7 @@ U77SRCS= gerror_.c perror_.c ierrno_.c itime_.c time_.c \
etime_.c dtime_.c isatty_.c ltime_.c fstat_.c stat_.c \
lstat_.c access_.c link_.c getlog_.c ttynam_.c getcwd_.c \
symlnk_.c vxttime_.c vxtidate_.c gmtime_.c fdate_.c \
secnds_.c bes.c dbes.c chdir_.c chmod_.c lnblnk_.c \
secnds_.c chdir_.c chmod_.c lnblnk_.c \
hostnm_.c rename_.c fgetc_.c fputc_.c umask_.c \
sys_clock_.c date_.c second_.c flush1_.c mclock_.c \
alarm_.c datetime_.c

View File

@ -44,41 +44,43 @@ OBJS= # added to below in various ways depending on TARGET_ARCH
#
# When upgrading GCC, get the following defintions straight from Makefile.in
#
# Library members defined in libgcc2.c.
# Variable length limited to 255 charactes when passed to a shell script.
LIB2FUNCS_1 = _muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 _clz \
_cmpdi2 _ucmpdi2 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi \
_fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi
LIB2FUNCS_2 = _floatdixf _fixunsxfsi _fixtfdi _fixunstfdi _floatditf \
_clear_cache _trampoline __main _exit _absvsi2 _absvdi2 _addvsi3 \
_addvdi3 _subvsi3 _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2 _ctors
LIB2FUNCS = _muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 \
_cmpdi2 _ucmpdi2 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi \
_fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi \
_floatdixf _fixunsxfsi _fixtfdi _fixunstfdi _floatditf _clear_cache \
_enable_execute_stack _trampoline __main _absvsi2 _absvdi2 _addvsi3 \
_addvdi3 _subvsi3 _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2 _ctors \
_ffssi2 _ffsdi2 _clz _clzsi2 _clzdi2 _ctzsi2 _ctzdi2 _popcount_tab \
_popcountsi2 _popcountdi2 _paritysi2 _paritydi2
# Defined in libgcc2.c, included only in the static library.
LIB2FUNCS_ST = _eprintf _bb __gcc_bcmp
LIB2FUNCS_ST = _eprintf __gcc_bcmp
FPBIT_FUNCS = _pack_sf _unpack_sf _addsub_sf _mul_sf _div_sf \
_fpcmp_parts_sf _compare_sf _eq_sf _ne_sf _gt_sf _ge_sf \
_lt_sf _le_sf _unord_sf _si_to_sf _sf_to_si _negate_sf _make_sf \
_sf_to_df _thenan_sf _sf_to_usi _usi_to_sf
_sf_to_df _sf_to_tf _thenan_sf _sf_to_usi _usi_to_sf
DPBIT_FUNCS = _pack_df _unpack_df _addsub_df _mul_df _div_df \
_fpcmp_parts_df _compare_df _eq_df _ne_df _gt_df _ge_df \
_lt_df _le_df _unord_df _si_to_df _df_to_si _negate_df _make_df \
_df_to_sf _thenan_df _df_to_usi _usi_to_df
_df_to_sf _df_to_tf _thenan_df _df_to_usi _usi_to_df
TPBIT_FUNCS = _pack_tf _unpack_tf _addsub_tf _mul_tf _div_tf \
_fpcmp_parts_tf _compare_tf _eq_tf _ne_tf _gt_tf _ge_tf \
_lt_tf _le_tf _unord_tf _si_to_tf _tf_to_si _negate_tf _make_tf \
_tf_to_df _tf_to_sf _thenan_tf _tf_to_usi _usi_to_tf
# These might cause a divide overflow trap and so are compiled with
# unwinder info.
LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4
MACHMODE_H = machmode.h machmode.def
LIB2ADD = $(LIB2FUNCS_EXTRA)
LIB2ADD_ST = $(LIB2FUNCS_STATIC_EXTRA)
# Additional sources to handle exceptions; overridden on ia64.
LIB2ADDEH = unwind-dw2.c unwind-dw2-fde.c unwind-sjlj.c unwind-c.c
# Additional sources to handle exceptions; overridden by targets as needed.
LIB2ADDEH = unwind-dw2.c unwind-dw2-fde.c unwind-sjlj.c gthr-gnat.c unwind-c.c
#-----------------------------------------------------------------------
#
@ -93,8 +95,10 @@ LIB2FUNCS_EXTRA = qrnnd.asm
.if ${TARGET_ARCH} == "arm"
# from config/arm/t-strongarm-elf
LIB1ASMSRC = lib1funcs.asm
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func
CFLAGS+= -Dinhibit_libc -fno-inline
LIB1ASMSRC = lib1funcs.asm
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func
OBJS+= dp-bit.o fp-bit.o
# We want fine grained libraries, so use the new code to build the
# floating point emulation libraries.
XXX fix this: NEED_FP_EMULATION set to "yes" with different rules per platform
@ -103,11 +107,11 @@ XXX fix this: NEED_FP_EMULATION set to "yes" with different rules per platform
.if ${TARGET_ARCH} == "ia64"
# from config/ia64/t-ia64
LIB1ASMSRC = lib1funcs.asm
LIB1ASMFUNCS = __divtf3 __divdf3 __divsf3 \
__divdi3 __moddi3 __udivdi3 __umoddi3 \
__divsi3 __modsi3 __udivsi3 __umodsi3 __save_stack_nonlocal \
__nonlocal_goto __restore_stack_nonlocal __trampoline
LIB2ADDEH = unwind-ia64.c unwind-sjlj.c unwind-c.c
LIB1ASMFUNCS = __divxf3 __divdf3 __divsf3 \
__divdi3 __moddi3 __udivdi3 __umoddi3 \
__divsi3 __modsi3 __udivsi3 __umodsi3 __save_stack_nonlocal \
__nonlocal_goto __restore_stack_nonlocal __trampoline __compat
LIB2ADDEH = unwind-ia64.c unwind-sjlj.c unwind-c.c gthr-gnat.c
.endif
.if ${TARGET_ARCH} == "powerpc"
@ -178,11 +182,11 @@ OBJS_S= ${SYMS:S/$/.So/}
STATICOBJS= ${SYMS_ST:S/$/.o/}
SRCS= ${LIB2ADD} ${LIB2ADDEH}
COMMONHDRS= tconfig.h
COMMONHDRS= tm.h tconfig.h
SRCS+= ${COMMONHDRS}
CLEANFILES+= ${COMMONHDRS}
tconfig.h: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile
${COMMONHDRS}: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile
${MAKE} -f ${.ALLSRC} MFILE=${.ALLSRC} GCCDIR=${GCCDIR} ${.TARGET}
${OBJS} beforedepend: ${COMMONHDRS}

View File

@ -23,12 +23,12 @@ INCSDIR=${INCLUDEDIR}/objc
CFLAGS+= -fpic
.endif
CFLAGS+= -fgnu-runtime -DHAVE_GTHR_DEFAULT -DIN_TARGET_LIBS
CFLAGS+= -fgnu-runtime -DHAVE_GTHR_DEFAULT -DIN_GCC -DIN_TARGET_LIBS
CFLAGS+= -I. -I${.CURDIR}/../../usr.bin/cc/cc_tools
CFLAGS+= -I${OBJCDIR}/objc -I${OBJCDIR}
CFLAGS+= -I${GCCDIR}/config -I${GCCDIR}
GENHDRS= runtime-info.h tconfig.h
GENHDRS= runtime-info.h tconfig.h tm.h
CLEANFILES+= ${GENHDRS}
SRCS+= ${GENHDRS}
@ -38,7 +38,7 @@ runtime-info.h:
`${CC} --print-prog-name=cc1obj` -print-objc-runtime-info \
< /dev/null > ${.TARGET}
tconfig.h: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile
tconfig.h tm.h : ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile
${MAKE} -f ${.ALLSRC} MFILE=${.ALLSRC} GCCDIR=${GCCDIR} ${.TARGET}
.include <bsd.lib.mk>

View File

@ -5,33 +5,32 @@ SRCDIR= ${.CURDIR}/../../../contrib/libstdc++
SUPDIR= ${SRCDIR}/libsupc++
.PATH: ${SRCDIR}/src ${SRCDIR}/libmath ${SRCDIR}/config/io \
${SRCDIR}/config/locale/generic ${SRCDIR} ${SRCDIR}/std \
${SRCDIR}/config/locale/generic ${SRCDIR}/include \
${SUPDIR} ${GCCDIR}
#SUBDIR= doc
LIB= stdc++
SHLIB_MAJOR= 4
CFLAGS+= -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
CFLAGS+= -I${.CURDIR} -I${SUPDIR} -I${GCCDIR}
CXXFLAGS+= -fno-implicit-templates -ffunction-sections -fdata-sections -Wno-deprecated
#LDFLAGS+= -Wl,-version-info,4:0:0 -Wl,--version-script=${SRCDIR}/src/linker.map
CFLAGS+= -I${.CURDIR} -I${SUPDIR} -I${GCCDIR} -I${SRCDIR}/include
CXXFLAGS+= -fno-implicit-templates -ffunction-sections -fdata-sections \
-Wno-deprecated
LDADD= -lm
DPADD= ${LIBM}
# libstdc++ sources (libstdc++/src/Makefile.in, do not reorder)
SRCS+= bitset.cc codecvt.cc complex_io.cc concept-inst.cc ctype.cc \
ext-inst.cc fstream.cc fstream-inst.cc functexcept.cc \
globals.cc io-inst.cc ios.cc istream-inst.cc limits.cc \
locale.cc locale-inst.cc localename.cc misc-inst.cc \
ostream-inst.cc sstream-inst.cc stdexcept.cc stl-inst.cc \
streambuf-inst.cc string-inst.cc strstream-fixed.cc \
valarray-inst.cc vterminate.cc wstring-inst.cc
# libstdc++ sources
SRCS+= allocator.cc codecvt.cc complex_io.cc ctype.cc debug.cc functexcept.cc \
globals_locale.cc globals_io.cc ios.cc ios_failure.cc ios_init.cc \
ios_locale.cc limits.cc list.cc locale.cc locale_init.cc \
locale_facets.cc localename.cc stdexcept.cc strstream.cc tree.cc \
allocator-inst.cc concept-inst.cc fstream-inst.cc ext-inst.cc \
io-inst.cc istream-inst.cc locale-inst.cc locale-misc-inst.cc \
misc-inst.cc ostream-inst.cc sstream-inst.cc streambuf-inst.cc \
string-inst.cc valarray-inst.cc wlocale-inst.cc wstring-inst.cc
# target sources
SRCS+= codecvt_members.cc collate_members.cc ctype_members.cc \
SRCS+= atomicity.cc codecvt_members.cc collate_members.cc ctype_members.cc \
messages_members.cc monetary_members.cc numeric_members.cc \
time_members.cc
@ -39,80 +38,43 @@ SRCS+= codecvt_members.cc collate_members.cc ctype_members.cc \
SRCS+= basic_file_stdio.cc c_locale.cc
# C parts of math
SRCS+= nan.c signbit.c signbitf.c signbitl.c stubs.c
SRCS+= signbitf.c signbitl.c stubs.c
# Embedded copy of libsupc++
SRCS+= del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc \
eh_alloc.cc eh_aux_runtime.cc eh_catch.cc eh_exception.cc \
eh_globals.cc eh_personality.cc eh_terminate.cc eh_throw.cc eh_type.cc \
guard.cc new_handler.cc new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc \
pure.cc tinfo.cc tinfo2.cc vec.cc
SRCS+= del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc eh_alloc.cc \
eh_aux_runtime.cc eh_catch.cc eh_exception.cc eh_globals.cc \
eh_personality.cc eh_term_handler.cc eh_terminate.cc eh_throw.cc \
eh_type.cc eh_unex_handler.cc guard.cc new_handler.cc new_op.cc \
new_opnt.cc new_opv.cc new_opvnt.cc pure.cc tinfo.cc tinfo2.cc \
vec.cc vterminate.cc
# from libiberty:
SRCS+= cp-demangle.c dyn-string.c
SRCS+= cp-demangle.c
strstream-fixed.cc: ${SRCDIR}/src/strstream.cc
sed -e 's,^#include <strstream>,#include <backward/strstream>,g' \
< ${SRCDIR}/src/strstream.cc > strstream-fixed.cc
# MD headers location
.if ${MACHINE_ARCH} == "sparc64"
MARCHDIR= sparc
.elif ${MACHINE_ARCH} == "i386" && ${MACHINE_CPU} != 'i386'
MARCHDIR= i486
.elif ${MACHINE_ARCH} == "amd64"
MARCHDIR= i486
.else
MARCHDIR= ${MACHINE_ARCH}
.endif
CLEANFILES+= strstream-fixed.cc
ATOMICITY_H= atomicity.h
.if exists(${SRCDIR}/config/cpu/${MARCHDIR}/atomicity.h)
ATOMICITY_H= ${SRCDIR}/config/cpu/${MARCHDIR}/atomicity.h
.else
ATOMICITY_H= ${SRCDIR}/config/cpu/generic/atomicity.h
.endif
atomicity.cc: ${ATOMICITY_H}
ln -sf ${.ALLSRC} ${.TARGET}
INCSGROUPS= BITSHDRS BKWHDRS EXTHDRS BASEHDRS BASEXHDRS STDHDRS \
TARGETHDRS THRHDRS
BITSHDRS= basic_ios.h basic_ios.tcc basic_string.h basic_string.tcc \
boost_concept_check.h char_traits.h codecvt.h concept_check.h \
cpp_type_traits.h deque.tcc fpos.h fstream.tcc functexcept.h \
gslice.h gslice_array.h indirect_array.h \
ios_base.h istream.tcc list.tcc \
locale_classes.h locale_facets.h locale_facets.tcc \
localefwd.h mask_array.h ostream.tcc pthread_allocimpl.h \
slice_array.h sstream.tcc stl_algo.h stl_algobase.h \
stl_alloc.h stl_bvector.h stl_construct.h stl_deque.h \
stl_function.h stl_heap.h stl_iterator.h \
stl_iterator_base_funcs.h stl_iterator_base_types.h \
stl_list.h stl_map.h stl_multimap.h stl_multiset.h \
stl_numeric.h stl_pair.h stl_pthread_alloc.h stl_queue.h \
stl_raw_storage_iter.h stl_relops.h stl_set.h stl_stack.h \
stl_tempbuf.h stl_threads.h stl_tree.h stl_uninitialized.h \
stl_vector.h stream_iterator.h streambuf.tcc \
streambuf_iterator.h stringfwd.h type_traits.h \
valarray_array.h valarray_array.tcc valarray_meta.h \
vector.tcc
BITSHDRS:= ${BITSHDRS:S;^;${SRCDIR}/include/bits/;}
BITSHDRSDIR= ${INCLUDEDIR}/c++/3.3/bits
BKWHDRS= algo.h algobase.h alloc.h backward_warning.h bvector.h \
complex.h defalloc.h deque.h fstream.h function.h \
hash_map.h hash_set.h hashtable.h heap.h iomanip.h \
iostream.h istream.h iterator.h list.h map.h multimap.h \
multiset.h new.h ostream.h pair.h queue.h rope.h set.h \
slist.h stack.h stream.h streambuf.h strstream \
tempbuf.h tree.h vector.h
BKWHDRS:= ${BKWHDRS:S;^;${SRCDIR}/include/backward/;}
BKWHDRSDIR= ${INCLUDEDIR}/c++/3.3/backward
EXTHDRS= algorithm enc_filebuf.h functional hash_map hash_set \
iterator memory numeric rb_tree rope ropeimpl.h slist \
stdio_filebuf.h stl_hash_fun.h stl_hashtable.h stl_rope.h
EXTHDRS:= ${EXTHDRS:S;^;${SRCDIR}/include/ext/;}
EXTHDRSDIR= ${INCLUDEDIR}/c++/3.3/ext
# This is the common subset of files that all three "C" header models use.
BASEHDRS= std_cassert.h std_cctype.h std_cerrno.h std_cfloat.h \
std_ciso646.h std_climits.h std_clocale.h std_cmath.h \
std_csetjmp.h std_csignal.h std_cstdarg.h std_cstddef.h \
std_cstdio.h std_cstdlib.h std_cstring.h std_ctime.h \
std_cwchar.h std_cwctype.h
.for h in ${BASEHDRS}
BASEHDRSNAME_$h=${h:R:S;^std_;;}
.endfor
BASEHDRS:= ${BASEHDRS:S;^;${SRCDIR}/include/c_std/;}
BASEHDRSDIR= ${INCLUDEDIR}/c++/3.3
# Some of the different "C" header models need extra files.
BASEXHDRS= ${SRCDIR}/include/c_std/cmath.tcc
BASEXHDRSDIR= ${INCLUDEDIR}/c++/3.3/bits
TARGETHDRS THRHDRS DEBUGHDRS
CXXINCLUDEDIR= ${INCLUDEDIR}/c++/3.4
STDHDRS= std_algorithm.h std_bitset.h std_complex.h std_deque.h \
std_fstream.h std_functional.h std_iomanip.h std_ios.h \
@ -125,34 +87,91 @@ STDHDRS= std_algorithm.h std_bitset.h std_complex.h std_deque.h \
STDHDRSNAME_$h=${h:R:S;^std_;;}
.endfor
STDHDRS:= ${STDHDRS:S;^;${SRCDIR}/include/std/;}
STDHDRSDIR= ${INCLUDEDIR}/c++/3.3
STDHDRSDIR= ${CXXINCLUDEDIR}
TARGETHDRS= io/basic_file_stdio.h io/c_io_stdio.h \
BITSHDRS= allocator.h atomicity.h basic_ios.h basic_ios.tcc \
basic_string.h basic_string.tcc boost_concept_check.h \
char_traits.h codecvt.h concept_check.h concurrence.h \
cpp_type_traits.h deque.tcc fstream.tcc functexcept.h \
gslice.h gslice_array.h indirect_array.h ios_base.h \
istream.tcc list.tcc locale_classes.h locale_facets.h \
locale_facets.tcc localefwd.h mask_array.h ostream.tcc \
postypes.h stream_iterator.h streambuf_iterator.h \
slice_array.h sstream.tcc stl_algo.h stl_algobase.h \
stl_bvector.h stl_construct.h stl_deque.h stl_function.h \
stl_heap.h stl_iterator.h stl_iterator_base_funcs.h \
stl_iterator_base_types.h stl_list.h stl_map.h stl_multimap.h \
stl_multiset.h stl_numeric.h stl_pair.h stl_queue.h \
stl_raw_storage_iter.h stl_relops.h stl_set.h stl_stack.h \
stl_tempbuf.h stl_threads.h stl_tree.h stl_uninitialized.h \
stl_vector.h streambuf.tcc stringfwd.h type_traits.h \
valarray_array.h valarray_array.tcc valarray_before.h \
valarray_after.h vector.tcc
BITSHDRS:= ${BITSHDRS:S;^;${SRCDIR}/include/bits/;}
BITSHDRSDIR= ${CXXINCLUDEDIR}/bits
BKWHDRS= complex.h iomanip.h istream.h ostream.h stream.h streambuf.h \
algo.h algobase.h alloc.h bvector.h defalloc.h deque.h \
function.h hash_map.h hash_set.h hashtable.h heap.h iostream.h \
iterator.h list.h map.h multimap.h new.h multiset.h pair.h \
queue.h rope.h set.h slist.h stack.h tempbuf.h tree.h \
vector.h fstream.h strstream backward_warning.h
BKWHDRS:= ${BKWHDRS:S;^;${SRCDIR}/include/backward/;}
BKWHDRSDIR= ${CXXINCLUDEDIR}/backward
EXTHDRS= algorithm bitmap_allocator.h debug_allocator.h demangle.h \
enc_filebuf.h stdio_filebuf.h stdio_sync_filebuf.h functional \
hash_map hash_set iterator malloc_allocator.h memory \
mt_allocator.h new_allocator.h numeric pod_char_traits.h \
pool_allocator.h rb_tree rope ropeimpl.h slist hash_fun.h \
hashtable.h
EXTHDRS:= ${EXTHDRS:S;^;${SRCDIR}/include/ext/;}
EXTHDRSDIR= ${CXXINCLUDEDIR}/ext
# This is the common subset of files that all three "C" header models use.
BASEHDRS= std_cassert.h std_cctype.h std_cerrno.h std_cfloat.h \
std_ciso646.h std_climits.h std_clocale.h std_cmath.h \
std_csetjmp.h std_csignal.h std_cstdarg.h std_cstddef.h \
std_cstdio.h std_cstdlib.h std_cstring.h std_ctime.h \
std_cwchar.h std_cwctype.h
.for h in ${BASEHDRS}
BASEHDRSNAME_$h=${h:R:S;^std_;;}
.endfor
BASEHDRS:= ${BASEHDRS:S;^;${SRCDIR}/include/c_std/;}
BASEHDRSDIR= ${CXXINCLUDEDIR}
# Some of the different "C" header models need extra files.
BASEXHDRS= ${SRCDIR}/include/c_std/cmath.tcc
BASEXHDRSDIR= ${CXXINCLUDEDIR}/bits
DEBUGHDRS= bitset debug.h deque formatter.h hash_map hash_map.h \
hash_multimap.h hash_multiset.h hash_set hash_set.h list \
map map.h multimap.h multiset.h safe_base.h safe_iterator.h \
safe_iterator.tcc safe_sequence.h set set.h string vector
DEBUGHDRS:= ${DEBUGHDRS:S;^;${SRCDIR}/include/debug/;}
DEBUGHDRSDIR= ${CXXINCLUDEDIR}/debug
TARGETHDRS= allocator/new_allocator_base.h \
io/basic_file_stdio.h \
io/c_io_stdio.h \
locale/generic/c_locale.h \
locale/generic/c++locale_internal.h \
locale/generic/codecvt_specializations.h \
locale/generic/messages_members.h \
locale/generic/time_members.h \
locale/generic/codecvt_specializations.h \
os/bsd/freebsd/ctype_base.h \
os/bsd/freebsd/ctype_inline.h \
os/bsd/freebsd/ctype_noninline.h \
os/bsd/freebsd/os_defines.h
TARGETHDRS:= ${TARGETHDRS:S;^;${SRCDIR}/config/;}
TARGETHDRS+= ${.CURDIR}/c++config.h
TARGETHDRS+= c++config.h
TARGETHDRSNAME_basic_file_stdio.h= basic_file.h
TARGETHDRSNAME_c_io_stdio.h= c++io.h
TARGETHDRSNAME_c_locale.h= c++locale.h
TARGETHDRSDIR= ${INCLUDEDIR}/c++/3.3/bits
MARCHHDRS= atomicity.h
.if ${MACHINE_ARCH} == "sparc64"
MARCHDIR= sparc
.elif ${MACHINE_ARCH} == "i386" && ${MACHINE_CPU} != 'i386'
MARCHDIR= i486
.else
MARCHDIR= ${MACHINE_ARCH}
.endif
TARGETHDRSNAME_new_allocator_base.h= c++allocator.h
TARGETHDRSDIR= ${CXXINCLUDEDIR}/bits
MARCHHDRS= atomic_word.h
.for h in ${MARCHHDRS}
.if exists(${SRCDIR}/config/cpu/${MARCHDIR}/${h})
TARGETHDRS+= ${SRCDIR}/config/cpu/${MARCHDIR}/${h}
@ -162,31 +181,45 @@ TARGETHDRS+= ${SRCDIR}/config/cpu/generic/${h}
.endfor
THRHDRS= gthr.h gthr-single.h gthr-posix.h gthr-default.h
THRHDRSDIR= ${INCLUDEDIR}/c++/3.3/bits
THRHDRSDIR= ${CXXINCLUDEDIR}/bits
uppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_]
gthr.h: ${GCCDIR}/gthr.h
sed -e '/^#/s/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*\)/_GLIBCPP_\1/g' \
sed -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCXX_\1/g' \
-e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \
-e 's,^#include "\(.*\)",#include <bits/\1>,g' \
< ${GCCDIR}/gthr.h > gthr.h
< ${.ALLSRC} > ${.TARGET}
gthr-single.h: ${GCCDIR}/gthr-single.h
sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \
-e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCPP_\1/g' \
< ${GCCDIR}/gthr-single.h > gthr-single.h
sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
-e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
< ${.ALLSRC} > ${.TARGET}
gthr-posix.h: ${GCCDIR}/gthr-posix.h
sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \
-e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCPP_\1/g' \
-e 's/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*WEAK\)/_GLIBCPP_\1/g' \
< ${GCCDIR}/gthr-posix.h > gthr-posix.h
sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
-e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
-e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
-e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \
< ${.ALLSRC} > ${.TARGET}
gthr-default.h: ${GCCDIR}/gthr-posix.h
sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \
-e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCPP_\1/g' \
-e 's/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*WEAK\)/_GLIBCPP_\1/g' \
sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
-e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
-e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
-e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \
-e 's,^#include "\(.*\)",#include <bits/\1>,g' \
< ${GCCDIR}/gthr-posix.h > gthr-default.h
< ${.ALLSRC} > ${.TARGET}
CLEANFILES+= ${THRHDRS}
c++config.h: ${.CURDIR}/config.h ${SRCDIR}/include/bits/c++config
cat ${SRCDIR}/include/bits/c++config > ${.TARGET} && \
sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
-e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
-e 's/VERSION/_GLIBCXX_VERSION/g' \
-e 's/WORDS_/_GLIBCXX_WORDS_/g' \
< ${.CURDIR}/config.h >> ${.TARGET} && \
echo "#endif // _CXXCONFIG_" >> ${.TARGET}
CLEANFILES+= c++config.h
.include <bsd.lib.mk>

File diff suppressed because it is too large Load Diff

View File

@ -14,7 +14,7 @@ SRCS= del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc \
pure.cc tinfo.cc tinfo2.cc vec.cc
# from libiberty:
SRCS+= cp-demangle.c dyn-string.c
SRCS+= cp-demangle.c
CFLAGS+= -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
CFLAGS+= -I${SRCDIR} -I${GCCDIR} -I${.CURDIR}/../libstdc++
@ -22,6 +22,6 @@ CXXFLAGS+= -fno-implicit-templates -ffunction-sections -fdata-sections
HDRS= exception new typeinfo cxxabi.h exception_defines.h
INCS= ${HDRS:S;^;${SRCDIR}/;}
INCSDIR=${INCLUDEDIR}/c++/3.3
INCSDIR=${INCLUDEDIR}/c++/3.4
.include <bsd.lib.mk>

View File

@ -10,7 +10,7 @@ SUBDIR+= cpp
.endif
.if !defined(NO_CXX)
SUBDIR+= cc1plus c++ c++filt
SUBDIR+= cc1plus c++
.if !defined(NO_COLLECT2)
#SUBDIR+= collect2
.endif

View File

@ -3,3 +3,13 @@
# Front-end-only bits
version!= sed -n /version_string/p ${GCCDIR}/version.c | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'
#
# These were previously defined in gcc.c. Just copy previous values from
# there. We ifdef most of them out for FREEBSD_NATIVE builds anyway.
# gcc.c won't compile without them though.
DRIVER_DEFINES = \
-DDEFAULT_TARGET_VERSION=\"$(version)\" \
-DDEFAULT_TARGET_MACHINE=\"$(target)\" \
CFLAGS+= ${DRIVER_DEFINES}

View File

@ -9,11 +9,11 @@ GCC_CPU= arm
.elif ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64"
GCC_CPU= i386
.elif ${TARGET_ARCH} == "ia64"
TARGET_CPU_DEFAULT= MASK_GNU_AS|MASK_GNU_LD
GCC_CPU= ia64
.elif ${TARGET_ARCH} == "powerpc"
GCC_CPU= rs6000
.elif ${TARGET_ARCH} == "sparc64"
GCC_CPU= sparc
TARGET_CPU_DEFAULT= TARGET_CPU_ultrasparc
CFLAGS+= -DTARGET_CPU_DEFAULT=${TARGET_CPU_DEFAULT}
.endif

View File

@ -11,9 +11,6 @@ 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}
LDADD= ${LIBCC_INT}

View File

@ -13,9 +13,6 @@ 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}
LDADD= ${LIBCC_INT}

View File

@ -5,14 +5,14 @@
.PATH: ${GCCDIR}
PROG= cc1
SRCS= main.c c-parse+%DIKED.c c-lang.c c-decl.c c-opts.c
SRCS= main.c c-parse+%DIKED.c c-lang.c stub-objc.c
BINDIR= /usr/libexec
NOMAN= 1
NOSHARED?=yes
CFLAGS+= -I.
DPADD= ${LIBCC_INT}
DPADD= ${LIBCC_INT}
LDADD= ${LIBCC_INT}
#-----------------------------------------------------------------------
@ -23,9 +23,8 @@ c-parse+%DIKED.c: c-parse.c
${.ALLSRC} > ${.TARGET}
c-parse.y: c-parse.in
sed -e "/^ifobjc$$/,/^end ifobjc$$/d" \
-e "/^ifc$$/d" \
-e "/^end ifc$$/d" \
sed -e "/^@@ifobjc.*/,/^@@end_ifobjc.*/d" \
-e "/^@@ifc.*/d" -e "/^@@end_ifc.*/d" \
${.ALLSRC} > ${.TARGET}
CLEANFILES= c-parse+%DIKED.c c-parse.c c-parse.y

View File

@ -5,14 +5,14 @@
.PATH: ${GCCDIR}/objc ${GCCDIR}
PROG= cc1obj
SRCS= objc-parse+DIKED.c objc-act.c objc-lang.c main.c c-decl.c
SRCS= main.c objc-parse+DIKED.c objc-act.c objc-lang.c c-decl.c
BINDIR= /usr/libexec
NOMAN= 1
NOSHARED?=yes
CFLAGS+= -I${GCCDIR}/objc -I.
DPADD= ${LIBCC_INT}
DPADD= ${LIBCC_INT}
LDADD= ${LIBCC_INT}
#-----------------------------------------------------------------------
@ -23,9 +23,8 @@ objc-parse+DIKED.c: objc-parse.c
${.ALLSRC} > ${.TARGET}
objc-parse.y: c-parse.in
sed -e "/^ifc$$/,/^end ifc$$/d" \
-e "/^ifobjc$$/d" \
-e "/^end ifobjc$$/d" \
sed -e "/^@@ifc.*/,/^@@end_ifc.*/d" \
-e "/^@@ifobjc.*/d" -e "/^@@end_ifobjc.*/d" \
${.ALLSRC} > ${.TARGET}
CLEANFILES= objc-parse+DIKED.c objc-parse.c objc-parse.y

View File

@ -5,11 +5,11 @@
.PATH: ${GCCDIR}/cp ${GCCDIR}
PROG= cc1plus
SRCS= parse+%DIKED.c parse.h cfns.h
SRCS+= main.c cp-lang.c c-opts.c \
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 dump.c optimize.c
SRCS= cfns.h
SRCS+= main.c cp-lang.c c-opts.c call.c class.c cvt.c cxx-pretty-print.c \
decl.c decl2.c error.c except.c expr.c dump.c friend.c init.c lex.c \
mangle.c method.c name-lookup.c parser.c pt.c ptree.c repo.c rtti.c \
search.c semantics.c tree.c typeck.c typeck2.c optimize.c
BINDIR= /usr/libexec
NOMAN= 1
@ -17,25 +17,15 @@ NOSHARED?=yes
CFLAGS+= -I${GCCDIR}/cp -I.
DPADD= ${LIBCC_INT}
PADD= ${LIBCC_INT}
LDADD= ${LIBCC_INT}
#-----------------------------------------------------------------------
# C++ parser
parse+%DIKED.c y.tab.h: parse.c
sed -e "s/malloc/xmalloc/g" \
-e "s/realloc/xrealloc/g" \
${.ALLSRC:M*c} > ${.TARGET}
parse.h: y.tab.h
cp -pf y.tab.h ${.TARGET}
grep '^#define[ ]*YYEMPTY' ${.TARGET:S/h$/c/} >>${.TARGET}
cfns.h: cfns.gperf
gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' \
gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
${.ALLSRC} > ${.TARGET}
CLEANFILES= parse+%DIKED.c parse.c parse.h y.tab.h cfns.h
CLEANFILES= cfns.h
.include <bsd.prog.mk>

View File

@ -2,38 +2,65 @@
.include "../Makefile.inc"
.PATH: ../cc_tools ${GCCDIR}/config/${GCC_CPU} ${GCCDIR} ${GCCDIR}/../libiberty
.PATH: ../cc_tools ${GCCDIR}/config/${GCC_CPU} ${GCCDIR}
LIB= cc_int
INTERNALLIB= 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-common.c c-dump.c c-format.c c-opts.c \
c-pragma.c c-semantics.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 \
gtype-desc.c haifa-sched.c \
integrate.c jump.c lcm.c local-alloc.c loop.c optabs.c \
print-rtl.c print-tree.c \
ra.c ra-build.c ra-colorize.c ra-debug.c ra-rewrite.c \
real.c recog.c reg-stack.c regclass.c \
reload.c reload1.c reorg.c rtl.c rtlanal.c \
sbitmap.c sdbout.c stmt.c stor-layout.c \
toplev.c tracer.c tree.c unroll.c varasm.c xcoffout.c \
alias.c bitmap.c dyn-string.c \
genrtl.c profile.c regmove.c varray.c \
attribs.c cselib.c debug.c rtl-error.c tree-dump.c tree-inline.c
# Files from libiberty.
SRCS= choose-temp.c concat.c cp-demangle.c cp-demint.c cplus-dem.c \
dyn-string.c errors.c fibheap.c getpwd.c getruntime.c hashtab.c \
hex.c lbasename.c make-temp-file.c md5.c obstack.c partition.c \
pexecute.c physmem.c splay-tree.c xexit.c xmalloc.c xmemdup.c \
xstrdup.c xstrerror.c xexit.c
# Language-independent files.
SRCS+= alias.c bb-reorder.c bitmap.c builtins.c caller-save.c calls.c \
cfg.c cfganal.c cfgbuild.c cfgcleanup.c cfglayout.c cfgloop.c \
cfgloopanal.c cfgloopmanip.c loop-init.c loop-unswitch.c loop-unroll.c \
cfgrtl.c combine.c conflict.c convert.c coverage.c cse.c cselib.c \
dbxout.c debug.c df.c diagnostic.c dojump.c doloop.c dominance.c \
dwarf2asm.c dwarf2out.c emit-rtl.c except.c explow.c \
expmed.c expr.c final.c flow.c fold-const.c function.c gcse.c \
genrtl.c ggc-common.c global.c graph.c gtype-desc.c \
haifa-sched.c hooks.c ifcvt.c \
integrate.c intl.c jump.c langhooks.c lcm.c lists.c local-alloc.c \
loop.c optabs.c options.c opts.c params.c postreload.c predict.c \
print-rtl.c print-tree.c value-prof.c \
profile.c ra.c ra-build.c ra-colorize.c ra-debug.c ra-rewrite.c \
real.c recog.c reg-stack.c regclass.c regmove.c regrename.c \
reload.c reload1.c reorg.c resource.c rtl.c rtlanal.c rtl-error.c \
sbitmap.c sched-deps.c sched-ebb.c sched-rgn.c sched-vis.c sdbout.c \
sibcall.c simplify-rtx.c sreal.c stmt.c stor-layout.c stringpool.c \
targhooks.c timevar.c toplev.c tracer.c tree.c tree-dump.c unroll.c \
varasm.c varray.c version.c vmsdbgout.c xcoffout.c alloc-pool.c \
et-forest.c cfghooks.c bt-load.c pretty-print.c ggc-page.c web.c
# Miscellaneous files.
SRCS+= hashtable.c tree-inline.c tree-optimize.c cgraph.c cgraphunit.c
# Host hooks.
SRCS+= host-default.c
# C and ObjC files.
SRCS+= attribs.c c-errors.c c-lex.c c-pragma.c c-decl.c c-typeck.c \
c-convert.c c-aux-info.c c-common.c c-opts.c c-format.c c-semantics.c \
c-incpath.c cppdefault.c c-ppoutput.c c-cppbuiltin.c prefix.c \
c-objc-common.c c-dump.c c-pch.c
# Files shared by cc1plus, cc1 and cc1obj
SRCS+= c-pretty-print.c
# Machine-dependent files.
SRCS+= ${GCC_CPU}.c
.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-c.c)
SRCS+= ${GCC_CPU}-c.c
.endif
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 ssa-dce.c ssa-ccp.c df.c fibheap.c
# libcpp files.
SRCS+= cpplib.c cpplex.c cppmacro.c cppexp.c cppfiles.c cpptrad.c \
cpphash.c cpperror.c cppinit.c cppcharset.c \
line-map.c mkdeps.c cpppch.c
# insn-* gunk -- headers are built in cc_tools, as they are used by the
# "build-tools"
@ -43,45 +70,20 @@ CLEANFILES+= insn-$F.c
insn-$F.c: ${.OBJDIR}/../cc_tools/gen$F ${MD_FILE}
${.OBJDIR}/../cc_tools/gen$F ${MD_FILE} > insn-$F.c
.endfor
.for F in modes
SRCS+= insn-$F.c
CLEANFILES+= insn-$F.c
insn-$F.c: ${.OBJDIR}/../cc_tools/gen$F
${.OBJDIR}/../cc_tools/gen$F > insn-$F.c
.endfor
# shared between the drivers
SRCS+= multilib.h choose-temp.c obstack.c prefix.c pexecute.c version.c mbchar.c concat.c make-temp-file.c
# C_AND_OBJC_OBJS
#SRCS+= attribs.c c-errors.c c-lex.c c-pragma.c c-decl.c c-typeck.c \
# c-convert.c c-aux-info.c c-common.c c-format.c c-semantics.c \
# c-objc-common.c
# 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-typeck.c \
c-errors.c c-convert.c c-aux-info.c c-objc-common.c
# libbackend
SRCS+= builtins.c diagnostic.c doloop.c dominance.c et-forest.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 cppmain.c cpptrad.c mkdeps.c line-map.c
# stuff that makes libiberty now required (2.95) and shouldn't be...
SRCS+= splay-tree.c hashtab.c partition.c lbasename.c md5.c hex.c xmemdup.c physmem.c
CFLAGS+= -DHAVE_CONFIG_H
CFLAGS+= -DTARGET_NAME=\"${target}\" -DIN_GCC
.if defined(TARGET_CPU_DEFAULT)
CFLAGS+= -DTARGET_CPU_DEFAULT=${TARGET_CPU_DEFAULT}
.endif
UNDERSCORES= 0
SRCS+= underscore.c
CLEANFILES+= underscore.c
underscore.c: Makefile
echo '/*WARNING: This file is automatically generated!*/' >${.TARGET}
echo "int prepends_underscore = ${UNDERSCORES};" >>${.TARGET}
# c-pch.o needs extra defines. Replicate the rule here rather than
# pollute compiler command line for all other files.
c-pch.o: c-pch.c
${CC} ${CFLAGS} -DHOST_MACHINE=\"${host}\" \
-DTARGET_MACHINE=\"${target}\" -c ${.IMPSRC}
.include <bsd.lib.mk>

View File

@ -16,10 +16,43 @@ CFLAGS+= -I.
.include "../Makefile.inc"
.PATH: ${GCCDIR}
.PATH: ${GCCDIR} ${GCCDIR}/f
CFLAGS+= -DGENERATOR_FILE
#
#-----------------------------------------------------------------------
# Build 'pocket' libiberty exclusively for build tools use.
LIBIBERTY_SRCS= choose-temp.c concat.c cp-demangle.c cp-demint.c cplus-dem.c \
dyn-string.c errors.c fibheap.c \
getpwd.c getruntime.c hashtab.c hex.c lbasename.c make-temp-file.c \
md5.c obstack.c partition.c pexecute.c physmem.c splay-tree.c xexit.c \
xmalloc.c xmemdup.c xstrdup.c xstrerror.c xexit.c
LIBIBERTY_OBJS= ${LIBIBERTY_SRCS:R:S/$/.o/g}
SRCS+= ${LIBIBERTY_SRCS}
LIBIBERTY=libiberty.a
${LIBIBERTY}: ${LIBIBERTY_OBJS}
@rm -f ${.TARGET}
@${AR} cq ${.TARGET} `lorder ${LIBIBERTY_OBJS} | tsort -q`
${RANLIB} ${.TARGET}
CLEANFILES+= ${LIBIBERTY}
#
#-----------------------------------------------------------------------
# options
OPTION_FILES=${GCCDIR}/f/lang.opt ${GCCDIR}/c.opt ${GCCDIR}/common.opt
.ORDER: options.h options.c
options.h options.c: opts.sh ${OPTION_FILES}
/bin/sh ${GCCDIR}/opts.sh mv options.c options.h ${OPTION_FILES}
GENSRCS+= options.c options.h
CLEANFILES+= options.c options.h
#-----------------------------------------------------------------------
# insn-* gunk
@ -43,8 +76,8 @@ gen-time-stamp: genattr genattrtab genconditions genconstants genemit \
.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.o \
ggc-none.o hashtab.o read-rtl.o concat.o insn-conditions.o
gen$F: gen$F.o rtl.o print-rtl.o bitmap.o gensupport.o ggc-none.o \
read-rtl.o insn-conditions.o min-insn-modes.o ${LIBIBERTY}
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
GENSRCS+= gen$F.c
@ -56,9 +89,9 @@ CLEANFILES+= gen$F
#
build-tools: genattrtab
genattrtab : genattrtab.o rtl.o obstack.o print-rtl.o bitmap.o errors.o \
gensupport.o ggc-none.o hashtab.o read-rtl.o concat.o \
insn-conditions.o genautomata.o varray.o getruntime.o
genattrtab : genattrtab.o rtl.o print-rtl.o bitmap.o gensupport.o ggc-none.o \
read-rtl.o insn-conditions.o genautomata.o varray.o min-insn-modes.o \
${LIBIBERTY}
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} -lm
GENSRCS+= genattrtab.c
@ -71,18 +104,17 @@ CLEANFILES+= genattrtab
.for F in constants conditions
build-tools: gen$F
gen$F: gen$F.o rtl.o obstack.o bitmap.o errors.o gensupport.o \
ggc-none.o hashtab.o read-rtl.o concat.o dummy-conditions.o
gen$F: gen$F.o rtl.o bitmap.o gensupport.o ggc-none.o read-rtl.o dummy-conditions.o min-insn-modes.o ${LIBIBERTY}
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
GENSRCS+= gen$F.c
CLEANFILES+= gen$F
.endfor
.for F in check genrtl preds
.for F in modes check genrtl preds
build-tools: gen$F
gen$F: gen$F.o
gen$F: gen$F.o ${LIBIBERTY}
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
GENSRCS+= gen$F.c
@ -96,10 +128,25 @@ genrtl.c genrtl.h: gengenrtl
GENSRCS+= genrtl.c genrtl.h
SRCS+= bitmap.c concat.c dummy-conditions.c errors.c genautomata.c \
SRCS+= bitmap.c concat.c dummy-conditions.c genautomata.c \
gensupport.c getruntime.c ggc-none.c hashtab.c \
obstack.c physmem.c print-rtl.c read-rtl.c rtl.c varray.c xmemdup.c
#-----------------------------------------------------------------------
# insn modes stuff.
.ORDER: insn-modes.c insn-modes.h
insn-modes.h: genmodes
./genmodes -h > insn-modes.h
insn-modes.c: genmodes
./genmodes > insn-modes.c
min-insn-modes.c: genmodes
./genmodes -m > min-insn-modes.c
GENSRCS+= insn-modes.c min-insn-modes.c insn-modes.h
#-----------------------------------------------------------------------
# Common parser stuff.
@ -136,7 +183,7 @@ gengtype-yacc+%DIKED.c: gengtype-yacc.c
-e "s/realloc/xrealloc/g" \
${.ALLSRC} > ${.TARGET}
gengtype: gengtype.o gengtype-yacc+%DIKED.o gengtype-lex.o xmemdup.o
gengtype: gengtype.o gengtype-yacc+%DIKED.o gengtype-lex.o ${LIBIBERTY}
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
GENSRCS+= gengtype.c
@ -156,13 +203,28 @@ gtype-time-stamp: gengtype ${GTFILES}
GENSRCS+= gtype-desc.c gtype-desc.h
CLEANFILES+= gt-*.h gtype-*.h
#
#-----------------------------------------------------------------------
# Fortran build tools
.if !defined(NO_FORTRAN)
gen-time-stamp: fini
build-tools: fini
fini: fini.o ${LIBIBERTY}
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
SRCS+= fini.c
CLEANFILES+= fini
.endif
#-----------------------------------------------------------------------
# Determine content of variables used by the target/host config files
#
# The list of headers to go into tconfig.h
# The list of headers to go into tm.h
#
TARGET_INC= ansidecl.h
.if ${TARGET_ARCH} == "amd64"
TARGET_INC= i386/biarch64.h
.endif
TARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h
.if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64"
TARGET_INC+= ${GCC_CPU}/unix.h
@ -189,13 +251,16 @@ TARGET_INC+= ${GCC_CPU}/x86-64.h
TARGET_INC+= ${GCC_CPU}/freebsd64.h
TARGET_INC+= freebsd64-fix.h
.endif
.if ${TARGET_ARCH} == "powepc"
TARGET_INC+= altivec-defs.h
.endif
TARGET_INC+= defaults.h
#
# Use TARGET_INC as a template and build a list of target specific
# include files for gengtype to scan
#
GCONFIG_H= ${.OBJDIR}/tconfig.h ${.CURDIR}/auto-host.h
GCONFIG_H= ${.CURDIR}/auto-host.h
.for H in ${TARGET_INC}
.for D in ${GCCDIR}/config ${GCCDIR} ${.CURDIR}
@ -210,29 +275,29 @@ GCONFIG_H+= $D/$H
#
srcdir= ${GCCDIR}
HASHTAB_H= ${GCCDIR}/hashtab.h
SPLAY_TREE_H= ${GCCDIR}/splay-tree.h
out_file= ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.c
GTFILES_SRCDIR= ${GCCDIR}
#
# Copied unchanged from gcc/Makefile.in
#
GTFILES = $(GCONFIG_H) $(srcdir)/location.h \
$(HASHTAB_H) \
$(srcdir)/bitmap.h $(srcdir)/function.h $(srcdir)/rtl.h $(srcdir)/optabs.h \
$(srcdir)/tree.h $(srcdir)/libfuncs.h $(srcdir)/hashtable.h $(srcdir)/real.h \
$(srcdir)/varray.h $(srcdir)/ssa.h $(srcdir)/insn-addr.h $(srcdir)/cselib.h \
GTFILES = $(srcdir)/input.h $(srcdir)/coretypes.h $(srcdir)/cpplib.h \
$(GCONFIG_H) $(HASHTAB_H) $(SPLAY_TREE_H) \
$(srcdir)/bitmap.h $(srcdir)/coverage.c $(srcdir)/function.h $(srcdir)/rtl.h \
$(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/libfuncs.h $(srcdir)/hashtable.h \
$(srcdir)/real.h $(srcdir)/varray.h $(srcdir)/insn-addr.h \
$(srcdir)/cselib.h $(srcdir)/basic-block.h $(srcdir)/cgraph.h \
$(srcdir)/c-common.h $(srcdir)/c-tree.h \
$(srcdir)/basic-block.h \
$(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c \
$(srcdir)/dwarf2out.c $(srcdir)/emit-rtl.c \
$(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \
$(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c $(srcdir)/cgraph.c \
$(srcdir)/dbxout.c $(srcdir)/dwarf2out.c $(srcdir)/dwarf2asm.c \
$(srcdir)/emit-rtl.c $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \
$(srcdir)/fold-const.c $(srcdir)/function.c \
$(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \
$(srcdir)/profile.c $(srcdir)/ra-build.c $(srcdir)/regclass.c \
$(srcdir)/reg-stack.c \
$(srcdir)/reg-stack.c $(srcdir)/cfglayout.c $(srcdir)/langhooks.c \
$(srcdir)/sdbout.c $(srcdir)/stmt.c $(srcdir)/stor-layout.c \
$(srcdir)/tree.c $(srcdir)/varasm.c \
$(out_file)
$(srcdir)/stringpool.c $(srcdir)/tree.c $(srcdir)/varasm.c $(out_file)
#
# Build a list of frontend directories to look into
@ -271,9 +336,10 @@ GTFILES+= ${GTFILES_FILES}
#-----------------------------------------------------------------------
# the host/target compiler config.
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 gtyp-gen.h
COMMONHDRS= bconfig.h config.h configargs.h gencheck.h multilib.h \
specs.h safe-ctype.h tconfig.h tm.h tm_p.h gcov-iov.h \
gtyp-gen.h
GENSRCS+= ${COMMONHDRS}
MFILE?= ${.CURDIR}/Makefile
${COMMONHDRS}: ${MFILE}
@ -282,10 +348,31 @@ configargs.h:
echo 'static const char configuration_arguments[] =' > ${.TARGET}
echo ' "FreeBSD/${TARGET_ARCH} system compiler";' >> ${.TARGET}
echo 'static const char thread_model[] = "posix";' >> ${.TARGET}
echo 'static const struct {' >> ${.TARGET}
echo ' const char *name, *value;' >> ${.TARGET}
echo '} configure_default_options[] = {' >> ${.TARGET}
echo ' { "NULL", "NULL" } };' >> ${.TARGET}
hconfig.h:
echo '#include "auto-host.h"' > ${.TARGET}
echo '#include <tconfig.h>' >> ${.TARGET}
tconfig.h:
echo '#ifndef GCC_TCONFIG_H' > ${.TARGET}
echo '#define GCC_TCONFIG_H' >> ${.TARGET}
echo '#ifdef IN_GCC' >> ${.TARGET}
echo '# include "ansidecl.h"' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
echo '#define USED_FOR_TARGET' >> ${.TARGET}
echo '#endif /* GCC_TCONFIG_H */' >> ${.TARGET}
bconfig.h:
echo '#ifndef GCC_BCONFIG_H' > ${.TARGET}
echo '#define GCC_BCONFIG_H' >> ${.TARGET}
echo '#include "auto-host.h"' >> ${.TARGET}
.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def)
echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET}
.endif
echo '#ifdef IN_GCC' >> ${.TARGET}
echo '# include "ansidecl.h"' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
echo '#endif /* GCC_BCONFIG_H */' >> ${.TARGET}
gencheck.h:
echo '#include "cp/cp-tree.def"' > ${.TARGET}
@ -301,56 +388,39 @@ multilib.h:
echo 'static const char *const multilib_exclusions_raw[] = { \
NULL };' >> ${.TARGET}
options.h:
echo '#include "cp/lang-options.h"' > ${.TARGET}
echo '#include "f/lang-options.h"' >> ${.TARGET}
echo '#include "objc/lang-options.h"' >> ${.TARGET}
specs.h:
echo '#include "cp/lang-specs.h"' > ${.TARGET}
echo '#include "f/lang-specs.h"' >> ${.TARGET}
echo '#include "objc/lang-specs.h"' >> ${.TARGET}
config.h:
echo '#include <hconfig.h>' > ${.TARGET}
echo '#ifndef GENERATOR_FILE' >> ${.TARGET}
echo '#include "insn-constants.h"' >> ${.TARGET}
echo '#include "insn-flags.h"' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
config.h: bconfig.h
echo '#include <bconfig.h>' > ${.TARGET}
tconfig.h:
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 '#ifndef GTY' >> ${.TARGET}
echo '# define GTY(x)' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
echo '' >> ${.TARGET}
.if ${TARGET_ARCH} == "amd64"
echo '#include "i386/biarch64.h"' >> ${.TARGET}
.endif
.if ${TARGET_ARCH} == "ia64"
echo '#define TARGET_CPU_DEFAULT (MASK_GNU_AS|MASK_GNU_LD)' >>${.TARGET}
tm.h:
echo '#ifndef GCC_TM_H' > ${.TARGET}
echo '#define GCC_TM_H' >> ${.TARGET}
.if defined(TARGET_CPU_DEFAULT)
echo "#define TARGET_CPU_DEFAULT (${TARGET_CPU_DEFAULT})" >> ${.TARGET}
.endif
echo '#ifdef IN_GCC' >> ${.TARGET}
.for H in ${TARGET_INC}
echo '#include "$H"' >> ${.TARGET}
.endfor
echo '#ifndef POSIX' >> ${.TARGET}
echo '# define POSIX' >> ${.TARGET}
echo '#if !defined GENERATOR_FILE && !defined USED_FOR_TARGET' >> ${.TARGET}
echo '# include "insn-constants.h"' >> ${.TARGET}
echo '# include "insn-flags.h"' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def)
echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET}
echo '#define EXTRA_CC_MODES 1' >> ${.TARGET}
.endif
echo '#endif /* GCC_TM_H */' >> ${.TARGET}
tm_p.h:
echo '#include "${GCC_CPU}/${GCC_CPU}-protos.h"' >> ${.TARGET}
echo '#include "tm-preds.h"' >> ${.TARGET}
safe-ctype.h: Makefile
safe-ctype.h:
echo '#include <ctype.h>' > ${.TARGET}
.for Z in TOUPPER TOLOWER ISDIGIT ISXDIGIT ISUPPER ISLOWER ISALPHA ISALNUM \
ISSPACE ISPUNCT ISGRAPH ISBLANK ISPRINT ISCNTRL
@ -391,8 +461,9 @@ gtyp-gen.h:
echo "\"$F\", " >> ${.TARGET}
.endfor
echo "NULL};" >> ${.TARGET}
echo "#define xexit exit" >> ${.TARGET}
gcov-iov.h:
echo "#define GCOV_VERSION ((gcov_unsigned_t)0x33303470)" >> ${.TARGET}
#-----------------------------------------------------------------------
# General things.
@ -400,7 +471,8 @@ gtyp-gen.h:
SRCS+= ${GENSRCS}
CLEANFILES+= ${GENSRCS}
all: ${SRCS}
all: ${SRCS}
build-tools: ${SRCS}
.include <bsd.prog.mk>
@ -415,19 +487,42 @@ CLEANFILES+= ${OBJS}
.if !exists(${DEPENDFILE})
# Fudge pre-dependfile dependencies of objects in much the same way as
# bsd.prog.mk would do if we defined PROG. There are complications to
# avoid circular dependencies. First, only make most objects depend on
# 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}: ${SRCS:M*.h:Ngtype-desc.h:Ngenrtl.h:Ntree-check.h:Ntm-preds.h:Ninsn-*.h}
# bsd.prog.mk would do if we defined PROG.
${OBJS:Ngencheck.o:Ngengenrtl.o:Ngenpreds.o}: tree-check.h tm-preds.h genrtl.h
${OBJS}: ${COMMONHDRS}
${OBJS:Ngengtype*.o:Nxmemdup.o:Ngengenrtl.o:Ngencheck.o:Ngenpreds.o}: gtype-desc.h
dummy-conditions.o:
gencheck.o:
genmodes.o:
genextract.o: insn-config.h
genpreds.o: insn-modes.h
genconstants.o: insn-modes.h genrtl.h
gengtype.o: insn-modes.h genrtl.h gtyp-gen.h
rtl.o: insn-modes.h gtype-desc.h genrtl.h
bitmap.o: insn-modes.h gtype-desc.h genrtl.h
ggc-none.o: gtype-desc.h
gensupport.o: insn-modes.h genrtl.h
varray.o: gtype-desc.h
genautomata.o: insn-modes.h genrtl.h
genconditions.o: insn-modes.h genrtl.h
gencodes.o: insn-modes.h genrtl.h
genconfig.o: insn-modes.h genrtl.h
print-rtl.o: insn-modes.h genrtl.h tm-preds.h tree-check.h
read-rtl.o: insn-modes.h genrtl.h
genattr.o: insn-modes.h genrtl.h
genemit.o: insn-modes.h genrtl.h
genflags.o: insn-modes.h genrtl.h
genopinit.o: insn-modes.h genrtl.h
genoutput.o: insn-modes.h genrtl.h
genpeep.o: insn-modes.h genrtl.h
genrecog.o: insn-modes.h genrtl.h
genextract.o: genrtl.h insn-config.h
genattrtab.o: insn-modes.h gtype-desc.h genrtl.h
genrtl.o: insn-modes.h genrtl.h gtype-desc.h
insn-conditions.o: insn-constants.h
insn-conditions.o: insn-constants.h tm-preds.h
insn-modes.o: insn-modes.h
min-insn-modes.o: insn-modes.h
gtype-desc.o: insn-modes.h insn-config.h insn-codes.h tree-check.h
.endif

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@
#undef LOCAL_INCLUDE_DIR /* We don't wish to support one. */
/* Look for the include files in the system-defined places. */
#define GPLUSPLUS_INCLUDE_DIR PREFIX"/include/c++/3.3"
#define GPLUSPLUS_BACKWARD_INCLUDE_DIR PREFIX"/include/c++/3.3/backward"
#define GPLUSPLUS_INCLUDE_DIR PREFIX"/include/c++/3.4"
#define GPLUSPLUS_BACKWARD_INCLUDE_DIR PREFIX"/include/c++/3.4/backward"
#define GCC_INCLUDE_DIR PREFIX"/include"
#ifdef CROSS_COMPILE
#define CROSS_INCLUDE_DIR PREFIX"/include"
@ -31,20 +31,19 @@
programs: /usr/libexec/<OBJFORMAT>/:STANDARD_EXEC_PREFIX:MD_EXEC_PREFIX
libraries: MD_EXEC_PREFIX:MD_STARTFILE_PREFIX:STANDARD_STARTFILE_PREFIX
*/
#undef TOOLDIR_BASE_PREFIX /* Old?? This is not documented. */
#undef STANDARD_BINDIR_PREFIX /* We don't need one for now. */
#define STANDARD_EXEC_PREFIX PREFIX"/libexec/"
#define STANDARD_LIBEXEC_PREFIX PREFIX"/libexec/"
#define TOOLDIR_BASE_PREFIX PREFIX
#undef MD_EXEC_PREFIX /* We don't want one. */
#define FBSD_DATA_PREFIX PREFIX"/libdata/gcc/"
/* Under FreeBSD, the normal location of the various *crt*.o files is the
/usr/lib directory. */
#define STANDARD_STARTFILE_PREFIX PREFIX"/lib/"
#ifdef CROSS_COMPILE
#define CROSS_STARTFILE_PREFIX PREFIX"/lib/"
#endif
#undef MD_STARTFILE_PREFIX /* We don't need one for now. */
#define STANDARD_STARTFILE_PREFIX PREFIX"/lib/"
#define STARTFILE_PREFIX_SPEC PREFIX"/lib/"
/* For the native system compiler, we actually build libgcc in a profiled
version. So we should use it with -pg. */
@ -57,14 +56,6 @@
/* FreeBSD is 4.4BSD derived */
#define bsd4_4
/* Dike out [stupid, IMHO] libiberty functions. */
#define xmalloc_set_program_name(dummy)
#define xmalloc malloc
#define xcalloc calloc
#define xrealloc realloc
#define xstrdup strdup
#define xstrerror strerror
/* And now they want to replace ctype.h.... grr... [stupid, IMHO] */
#define xxxISDIGIT isdigit
#define xxxISGRAPH isgraph

View File

@ -2,13 +2,10 @@
.include "../Makefile.inc"
.PATH: ${GCCDIR} ${GCCDIR}/../libiberty
.PATH: ${GCCDIR}
PROG= collect2
SRCS= collect2.c cp-demangle.c cplus-dem.c tlink.c
SRCS= collect2.c tlink.c version.c
NOMAN=
DPADD= ${LIBCC_INT}
LDADD= ${LIBCC_INT}
.include <bsd.prog.mk>

View File

@ -23,7 +23,7 @@ gccint.info: gccint.texi include/gcc-common.texi contribute.texi \
passes.texi c-tree.texi rtl.texi md.texi tm.texi hostconfig.texi \
fragments.texi configfiles.texi collect2.texi headerdirs.texi \
include/funding.texi gnu.texi include/gpl.texi include/fdl.texi \
contrib.texi languages.texi sourcebuild.texi gty.texi
contrib.texi languages.texi sourcebuild.texi gty.texi libgcc.texi
cpp.info: cpp.texi include/fdl.texi cppenv.texi cppopts.texi

View File

@ -14,22 +14,16 @@ NOMAN=
CFLAGS+= -I${GCCDIR}/f -I.
DPADD= ${LIBCC_INT}
DPADD= ${LIBCC_INT}
LDADD= ${LIBCC_INT}
build-tools: fini
fini: fini.o
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
CLEANFILES= fini fini.o
#-----------------------------------------------------------------------
# str-* gunk
.for i in 1t 2t fo io nq op ot
.ORDER: str-$i.h str-$i.j
str-$i.j str-$i.h: str-$i.fin fini
./fini ${GCCDIR}/f/str-$i.fin str-$i.j str-$i.h
str-$i.j str-$i.h: str-$i.fin
${.OBJDIR}/../cc_tools/fini ${GCCDIR}/f/str-$i.fin str-$i.j str-$i.h
FINIHDRS+= str-$i.j str-$i.h
.endfor

View File

@ -2,7 +2,7 @@
.include "../Makefile.inc"
.PATH: ${GCCDIR} ${GCCDIR}/doc ${GCCDIR}/../libiberty
.PATH: ${GCCDIR} ${GCCDIR}/doc
PROG= gcov
SRCS= gcov.c version.c

View File

@ -8,6 +8,10 @@
INCS= emmintrin.h mmintrin.h pmmintrin.h xmmintrin.h
.elif ${TARGET_ARCH} == "ia64"
INCS= ia64intrin.h
.elif ${TARGET_ARCH} == "arm"
INCS= mmintrin.h
.elif ${TARGET_ARCH} == "powerpc"
INCS= ppc-asm.h altivec.h spe.h
.endif
NOOBJ=