Update to recent snapshot, make it more configurable too

This commit is contained in:
espie 1998-11-16 21:11:13 +00:00
parent 8f770164d7
commit f6f3063ebc
16 changed files with 994 additions and 72 deletions

View File

@ -1,28 +1,114 @@
# OpenBSD makefile for: egcs
# Version required: snapshot 1998-09-21
# Version required: snapshot 1998-11-09
# Date created: 25 sep 98
# Whom: Marc Espie
#
# $OpenBSD: Makefile,v 1.2 1998/10/02 18:57:28 espie Exp $
# $OpenBSD: Makefile,v 1.3 1998/11/16 21:11:13 espie Exp $
#
# This is a configuration file for egcs, recent snapshot
# right now, we only configure i386, C and C++.
LATEST=19980921
DIRECTORY=egcs/snapshots/1998-09-21/
DISTNAME= egcs-${LATEST}
# user configuration
# see files/tests for precise testing procedure
MAKE_TESTS=yes
MAKE_GXX=yes
MAKE_FORTRAN=yes
MAKE_OBJC=yes
# these are broken, as of this snapshot...
#MAKE_CHILL=yes
#MAKE_JAVA=yes
#PATCH_DEBUG=yes
# this configuration allow for ONE level of diff-files
LATEST=19981109
DIRECTORY=egcs/snapshots/%SUBDIR%/
.if defined(NEXT)
DISTNAME= egcs-${NEXT}
.else
DISTNAME= egcs-${LATEST}
.endif
CATEGORIES= lang
MAINTAINER= Marc.Espie@openbsd.org
# getting the right archives where they should be
MASTER_SITE_SUBDIR=${LATEST}
PATCH_SITE_SUBDIR=${NEXT}
DIST_SUBDIR=egcs
PATCH_SITES = ${MASTER_SITES}
PATCH_DIST_STRIP=-p1
DISTFILES= egcs-core-${LATEST}${EXTRACT_SUFX}
DISTFILES+= egcs-g++-${LATEST}${EXTRACT_SUFX}
# see files/tests for testing procedure
.if defined(MAKE_TESTS)
DISTFILES+=egcs-tests-${LATEST}${EXTRACT_SUFX}
.endif
.if defined(MAKE_GXX)
DISTFILES+= egcs-g++-${LATEST}${EXTRACT_SUFX}
.if defined(MAKE_TESTS)
DISTFILES+=egcs-g++-tests-${LATEST}${EXTRACT_SUFX}
.endif
.endif
.if defined(MAKE_FORTRAN)
DISTFILES+= egcs-g77-${LATEST}${EXTRACT_SUFX}
.if defined(MAKE_TESTS)
DISTFILES+=egcs-g77-testsuite-${LATEST}${EXTRACT_SUFX}
.endif
.endif
.if defined(MAKE_JAVA)
DISTFILES+=egcs-java-${LATEST}${EXTRACT_SUFX}
.endif
.if defined(MAKE_OBJC)
DISTFILES+=egcs-objc-${LATEST}${EXTRACT_SUFX}
.endif
.if defined(MAKE_CHILL)
DISTFILES+=egcs-chill-${LATEST}${EXTRACT_SUFX}
.endif
CATEGORIES= lang
MASTER_SITES= ftp://egcs.cygnus.com/pub/${DIRECTORY} \
ftp://ftp.lip6.fr/pub/${DIRECTORY}
MAINTAINER= Marc.Espie@openbsd.org
.if defined(NEXT)
PATCHFILES=egcs-core-${LATEST}-${NEXT}.diff.gz
.if defined(MAKE_TESTS)
PATCHFILES+=egcs-tests-${LATEST}-${NEXT}.diff.gz
.endif
.if defined(MAKE_GXX)
PATCHFILES+=egcs-g++-${LATEST}-${NEXT}.diff.gz
.if defined(MAKE_TESTS)
PATCHFILES+=egcs-g++-tests-${LATEST}-${NEXT}.diff.gz
.endif
.endif
.if defined(MAKE_FORTRAN)
PATCHFILES+=egcs-g77-${LATEST}-${NEXT}.diff.gz
.if defined(MAKE_TESTS)
PATCHFILES+=egcs-g77-testsuite-${LATEST}-${NEXT}.diff.gz
.endif
.endif
.if defined(MAKE_JAVA)
PATCHFILES+=egcs-java-${LATEST}-${NEXT}.diff.gz
.endif
.if defined(MAKE_OBJC)
PATCHFILES+=egcs-objc-${LATEST}-${NEXT}.diff.gz
.endif
.if defined(MAKE_CHILL)
PATCHFILES+=egcs-chill-${LATEST}-${NEXT}.diff.gz
.endif
.endif
# to do: check egcs-stable mirror list for sites which carry snapshots
BUILD_DEPENDS= autoconf:${PORTSDIR}/devel/autoconf
@ -40,17 +126,23 @@ CONFIGURE_SCRIPT=../source/configure
CONFIGURE_ENV=CFLAGS=-O2
CONFIGURE_ARGS= --prefix=${PREFIX} \
--verbose \
--verbose --with-gnu-ld --with-gnu-as \
--program-transform-name=s,^,e,
.if (${MACHINE_ARCH} != "alpha")
CONFIGURE_ARGS+=--enable-shared
.endif
.if defined(NEXT)
post-extract:
mv ${WRKDIR}/egcs-${LATEST} ${WRKSRC}
.endif
# get openbsd configuration files where they should be
post-patch:
cp -R ${FILESDIR}/config/* ${WRKSRC}
rm -rf ${WRKSRC}/texinfo ${WRKSRC}/gcc/ch
rm -rf ${WRKSRC}/texinfo
# rebuild configure file after patching, then move file around !!!
# XXX: don't try to autoconf the main configure file, it's not autoconf.
@ -60,4 +152,29 @@ pre-configure:
mv ${WRKSRC} ${WRKDIR}/source
mkdir ${WRKSRC}
M4FLAGS=-Uinclude -DDISTNAME=${DISTNAME}
.if defined(MAKE_GXX)
M4FLAGS+= -DGXX
.endif
.if defined(MAKE_G77)
M4FLAGS+= -DG77
.endif
.if defined(MAKE_CHILL)
M4FLAGS+= -DCHILL
.endif
.if defined(OBJC)
M4FLAGS+= -DOBJC
.endif
.if (${MACHINE_ARCH}) != "alpha")
M4FLAGS+= -DDYNAMIC
.endif
pre-install:
m4 ${M4FLAGS} -DARCH=`${WRKDIR}/source/config.guess` \
-DVERSION=`sed -e 's/.*\(egcs-[0-9.]*\) .*/\1/' <${WRKDIR}/source/gcc/version.c` \
<${FILESDIR}/PLIST.template >${PKGDIR}/PLIST
pre-clean:
-rm ${PKGDIR}/PLIST
.include <bsd.port.mk>

View File

@ -0,0 +1,236 @@
@cwd /usr/local
@name DISTNAME
bin/egcc
bin/eprotoize
bin/eunprotoize
bin/gcov
bin/ARCH-gcc
ARCH/include/_G_config.h
lib/gcc-lib/ARCH/VERSION/SYSCALLS.c.X
lib/gcc-lib/ARCH/VERSION/cc1
lib/gcc-lib/ARCH/VERSION/cpp
lib/gcc-lib/ARCH/VERSION/libgcc.a
lib/gcc-lib/ARCH/VERSION/specs
lib/libiberty.a
info/ecpp.info
info/ecpp.info-1
info/ecpp.info-2
info/ecpp.info-3
info/egcc.info
info/egcc.info-1
info/egcc.info-10
info/egcc.info-11
info/egcc.info-12
info/egcc.info-13
info/egcc.info-14
info/egcc.info-15
info/egcc.info-16
info/egcc.info-17
info/egcc.info-18
info/egcc.info-19
info/egcc.info-2
info/egcc.info-20
info/egcc.info-21
info/egcc.info-22
info/egcc.info-23
info/egcc.info-24
info/egcc.info-25
info/egcc.info-26
info/egcc.info-27
info/egcc.info-28
info/egcc.info-29
info/egcc.info-3
info/egcc.info-30
info/egcc.info-4
info/egcc.info-5
info/egcc.info-6
info/egcc.info-7
info/egcc.info-8
info/egcc.info-9
man/ecccp.1
man/egcc.1
ifdef(`CHILL',
bin/chill
info/chill.info
lib/gcc-lib/ARCH/VERSION/cc1chill
)ifdef(`GXX',
bin/ec++
bin/ec++filt
bin/eg++
include/g++-2/PlotFile.h
include/g++-2/SFile.h
include/g++-2/algo.h
include/g++-2/algobase.h
include/g++-2/algorithm
include/g++-2/alloc.h
include/g++-2/builtinbuf.h
include/g++-2/bvector.h
include/g++-2/cassert
include/g++-2/cctype
include/g++-2/cerrno
include/g++-2/cfloat
include/g++-2/ciso646
include/g++-2/climits
include/g++-2/clocale
include/g++-2/cmath
include/g++-2/complex
include/g++-2/complex.h
include/g++-2/csetjmp
include/g++-2/csignal
include/g++-2/cstdarg
include/g++-2/cstddef
include/g++-2/cstdio
include/g++-2/cstdlib
include/g++-2/cstring
include/g++-2/ctime
include/g++-2/cwchar
include/g++-2/cwctype
include/g++-2/defalloc.h
include/g++-2/deque
include/g++-2/deque.h
include/g++-2/editbuf.h
include/g++-2/floatio.h
include/g++-2/fstream
include/g++-2/fstream.h
include/g++-2/function.h
include/g++-2/functional
include/g++-2/hash_map
include/g++-2/hash_map.h
include/g++-2/hash_set
include/g++-2/hash_set.h
include/g++-2/hashtable.h
include/g++-2/heap.h
include/g++-2/indstream.h
include/g++-2/iolibio.h
include/g++-2/iomanip
include/g++-2/iomanip.h
include/g++-2/iosfwd
include/g++-2/iostdio.h
include/g++-2/iostream
include/g++-2/iostream.h
include/g++-2/iostreamP.h
include/g++-2/istream.h
include/g++-2/iterator
include/g++-2/iterator.h
include/g++-2/libio.h
include/g++-2/libioP.h
include/g++-2/list
include/g++-2/list.h
include/g++-2/map
include/g++-2/map.h
include/g++-2/memory
include/g++-2/multimap.h
include/g++-2/multiset.h
include/g++-2/numeric
include/g++-2/ostream.h
include/g++-2/pair.h
include/g++-2/parsestream.h
include/g++-2/pfstream.h
include/g++-2/procbuf.h
include/g++-2/pthread_alloc
include/g++-2/pthread_alloc.h
include/g++-2/queue
include/g++-2/rope
include/g++-2/rope.h
include/g++-2/ropeimpl.h
include/g++-2/set
include/g++-2/set.h
include/g++-2/slist
include/g++-2/slist.h
include/g++-2/stack
include/g++-2/stack.h
include/g++-2/std/bastring.cc
include/g++-2/std/bastring.h
include/g++-2/std/complext.cc
include/g++-2/std/complext.h
include/g++-2/std/dcomplex.h
include/g++-2/std/fcomplex.h
include/g++-2/std/ldcomplex.h
include/g++-2/std/straits.h
include/g++-2/stdexcept
include/g++-2/stdiostream.h
include/g++-2/stl.h
include/g++-2/stl_algo.h
include/g++-2/stl_algobase.h
include/g++-2/stl_alloc.h
include/g++-2/stl_bvector.h
include/g++-2/stl_config.h
include/g++-2/stl_construct.h
include/g++-2/stl_deque.h
include/g++-2/stl_function.h
include/g++-2/stl_hash_fun.h
include/g++-2/stl_hash_map.h
include/g++-2/stl_hash_set.h
include/g++-2/stl_hashtable.h
include/g++-2/stl_heap.h
include/g++-2/stl_iterator.h
include/g++-2/stl_list.h
include/g++-2/stl_map.h
include/g++-2/stl_multimap.h
include/g++-2/stl_multiset.h
include/g++-2/stl_numeric.h
include/g++-2/stl_pair.h
include/g++-2/stl_queue.h
include/g++-2/stl_raw_storage_iter.h
include/g++-2/stl_relops.h
include/g++-2/stl_rope.h
include/g++-2/stl_set.h
include/g++-2/stl_slist.h
include/g++-2/stl_stack.h
include/g++-2/stl_tempbuf.h
include/g++-2/stl_tree.h
include/g++-2/stl_uninitialized.h
include/g++-2/stl_vector.h
include/g++-2/stream.h
include/g++-2/streambuf.h
include/g++-2/strfile.h
include/g++-2/string
include/g++-2/strstream
include/g++-2/strstream.h
include/g++-2/tempbuf.h
include/g++-2/tree.h
include/g++-2/type_traits.h
include/g++-2/utility
include/g++-2/vector
include/g++-2/vector.h
lib/libstdc++.a.2.9.0
ifdef(`DYNAMIC',
lib/libstdc++.so.2.9
lib/libstdc++.so.2.9.0
lib/gcc-lib/ARCH/VERSION/libstdc++.so
)lib/gcc-lib/ARCH/VERSION/cc1plus
lib/gcc-lib/ARCH/VERSION/collect2
man/eg++.1
)ifdef(`G77',
bin/eg77
info/g77.info
info/g77.info-1
info/g77.info-10
info/g77.info-11
info/g77.info-12
info/g77.info-13
info/g77.info-14
info/g77.info-15
info/g77.info-16
info/g77.info-17
info/g77.info-18
info/g77.info-19
info/g77.info-2
info/g77.info-20
info/g77.info-3
info/g77.info-4
info/g77.info-5
info/g77.info-6
info/g77.info-7
info/g77.info-8
info/g77.info-9
lib/gcc-lib/ARCH/VERSION/f771
lib/gcc-lib/ARCH/VERSION/include/g2c.h
lib/gcc-lib/ARCH/VERSION/libg2c.a
man/eg77.1
)ifdef(`OBJC',
lib/gcc-lib/ARCH/VERSION/cc1obj
)@dirrm include/g++-2/std
@dirrm include/g++-2
@dirrm lib/gcc-lib/ARCH/VERSION
@exec [ ! -x /sbin/ldconfig ] || /sbin/ldconfig -m /usr/local/lib

View File

@ -1,3 +1,9 @@
MD5 (egcs-core-19980921.tar.gz) = 13f5a29f18a96e4dd1e2a55441284037
MD5 (egcs-g++-19980921.tar.gz) = 371e5b3f05b685aa8585dfb911cca9bd
MD5 (egcs-tests-19980921.tar.gz) = ebbe2a432b20acf490f5861cad93b063
MD5 (egcs/egcs-core-19981109.tar.gz) = e3bff21c5985de6ee946cf64e4797d68
MD5 (egcs/egcs-tests-19981109.tar.gz) = 740efa5901e0a3071847f1ee7895b90d
MD5 (egcs/egcs-g++-19981109.tar.gz) = 4f242afc45c8258a068f2bd305c69c61
MD5 (egcs/egcs-g++-tests-19981109.tar.gz) = a12924830e33565b7ca9af7636701b79
MD5 (egcs/egcs-g77-19981109.tar.gz) = 5d672c4261cfaffbf9dd6ab70b51f726
MD5 (egcs/egcs-g77-testsuite-19981109.tar.gz) = 1485cfe769b27512b17fd48491349b18
MD5 (egcs/egcs-java-19981109.tar.gz) = d9162b7f8dbf069f40077c494492694e
MD5 (egcs/egcs-objc-19981109.tar.gz) = 5ec0dac2be3b9eaa0474894841bb5e9c
MD5 (egcs/egcs-chill-19981109.tar.gz) = e574daed5262dc7fba86a6c0754f6ef6

View File

@ -1,6 +1,6 @@
--- gcc/configure.in.orig Mon Sep 21 17:49:58 1998
+++ gcc/configure.in Thu Nov 12 21:16:09 1998
@@ -1003,10 +1003,8 @@
--- gcc/configure.in.orig Sun Nov 1 19:59:34 1998
+++ gcc/configure.in Sun Nov 1 20:02:40 1998
@@ -1058,15 +1058,23 @@
fixincludes=fixinc.wrap
tmake_file=i386/t-freebsd
;;
@ -12,31 +12,33 @@
changequote([,])dnl
tm_file=i386/netbsd.h
# On NetBSD, the headers are already okay, except for math.h.
@@ -1014,6 +1012,14 @@
fixincludes=fixinc.wrap
tmake_file=t-netbsd
;;
changequote(,)dnl
+ ;;
+changequote(,)dnl
+ i[34567]86-*-openbsd*)
+changequote([,])dnl
+ tm_file=i386/openbsd.h
+ # On OpenBSD, the headers are already okay, except for math.h.
+ fixincludes=fixinc.wrap
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ tmake_file=t-openbsd
+ ;;
+changequote(,)dnl
+ # XXX may need adding until the bug is fixed...
+ use_collect2=yes
;;
changequote(,)dnl
i[34567]86-*-coff*)
changequote([,])dnl
tm_file=i386/i386-coff.h
@@ -2820,6 +2826,12 @@
@@ -2820,6 +2826,14 @@
# On NetBSD, the headers are already okay, except for math.h.
fixincludes=fixinc.wrap
tmake_file=t-netbsd
+ ;;
+ sparc-*-openbsd*)
+ tm_file=sparc/netbsd.h
+ # On OpenBSD, the headers are already okay, except for math.h.
+ fixincludes=fixinc.wrap
+ tm_file=sparc/openbsd.h
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ tmake_file=t-openbsd
+ # XXX may need adding until the bug is fixed...
+ use_collect2=yes
;;
sparc-*-bsd*)
tm_file=sparc/bsd.h

View File

@ -1,10 +1,19 @@
--- gcc/gcc.texi.orig Thu Oct 1 01:00:07 1998
+++ gcc/gcc.texi Thu Oct 1 01:00:19 1998
--- gcc/gcc.texi.orig Sun Nov 1 20:04:09 1998
+++ gcc/gcc.texi Sun Nov 1 20:04:35 1998
@@ -1,6 +1,6 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
-@setfilename gcc.info
+@setfilename egcs.info
+@setfilename egcc.info
@c @setfilename usegcc.info
@c @setfilename portgcc.info
@c To produce the full manual, use the "gcc.info" setfilename, and
@@ -82,7 +82,7 @@
@ifinfo
@dircategory Programming
@direntry
-* gcc: (gcc). The GNU C compiler.
+* egcc: (egcc). The experimental GNU C compiler.
@end direntry
@ifset INTERNALS
@ifset USING

View File

@ -1,10 +1,10 @@
--- libstdc++/configure.in.orig Thu Oct 1 00:58:32 1998
+++ libstdc++/configure.in Thu Oct 1 00:59:19 1998
--- libstdc++/configure.in.orig Sun Nov 1 20:05:25 1998
+++ libstdc++/configure.in Sun Nov 1 20:05:42 1998
@@ -49,6 +49,7 @@
*-*-irix[56]*) frags="${frags} irix5.ml" ;;
*-*-linux*aout*) ;;
*-*-linux*) frags="${frags} linux.ml" ;;
+ *-*-openbsd*) frags="${frags} openbsd.ml" ;;
+ *-*-openbsd*) frags="${frags} openbsd.ml" ;;
*-*-sysv4*) frags="${frags} elf.ml" ;;
*-*-solaris*) frags="${frags} sol2shm.ml" ;;
*-*-sunos4*) frags="${frags} sunos4.ml" ;;

View File

@ -0,0 +1,75 @@
--- gcc/Makefile.in.orig Sun Nov 1 20:06:26 1998
+++ gcc/Makefile.in Sun Nov 1 20:09:30 1998
@@ -459,6 +459,10 @@
PROTOIZE_INSTALL_NAME = `t='$(program_transform_name)'; echo protoize | sed -e $$t`
UNPROTOIZE_INSTALL_NAME = `t='$(program_transform_name)'; echo unprotoize | sed -e $$t`
+# documentation for cpp should not supersede default documentation
+CPP_INFO_NAME = `t='$(program_transform_name)'; echo cpp | sed -e $$t`
+CPP_MAN_NAME = `t='$(program_transform_name)'; echo cccp | sed -e $$t`
+
# Actual name to use when installing a cross-compiler.
GCC_CROSS_NAME = `t='$(program_transform_cross_name)'; echo gcc | sed -e $$t`
PROTOIZE_CROSS_NAME = `t='$(program_transform_cross_name)'; echo protoize | sed -e $$t`
@@ -2163,12 +2167,14 @@
info: cpp.info gcc.info lang.info
cpp.info: $(srcdir)/cpp.texi
- $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o cpp.info $(srcdir)/cpp.texi
+ $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o $(CPP_INFO_NAME).info \
+ $(srcdir)/cpp.texi && touch $@
gcc.info: $(srcdir)/gcc.texi $(srcdir)/extend.texi $(srcdir)/install.texi \
$(srcdir)/invoke.texi $(srcdir)/md.texi $(srcdir)/rtl.texi \
$(srcdir)/tm.texi $(srcdir)/gcov.texi
- $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o gcc.info $(srcdir)/gcc.texi
+ $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o $(GCC_INSTALL_NAME).info \
+ $(srcdir)/gcc.texi && touch $@
dvi: gcc.dvi cpp.dvi lang.dvi
@@ -2309,6 +2315,7 @@
-rm -f cexp.c cexp.output TAGS
-rm -f cpp.info* cpp.??s cpp.*aux
-rm -f gcc.info* gcc.??s gcc.*aux
+ -rm -f $(GCC_INSTALL_NAME).info* $(CPP_INFO_NAME).info*
#
# Entry points `install' and `uninstall'.
# Also use `install-collect2' to install collect2 when the config files don't.
@@ -2447,18 +2454,19 @@
# $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
# to do the install.
install-info: doc installdirs lang.install-info
- -rm -f $(infodir)/cpp.info* $(infodir)/gcc.info*
- for f in cpp.info* gcc.info*; do \
+ -rm -f $(infodir)/$(CPP_INFO_NAME).info* \
+ $(infodir)/$(GCC_INSTALL_NAME).info*
+ for f in $(GCC_INSTALL_NAME).info* $(CPP_INFO_NAME).info*; do \
$(INSTALL_DATA) $$f $(infodir)/$$f; \
done
-if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
if [ -f $(infodir)/dir ] ; then \
- for f in cpp.info gcc.info; do \
+ for f in $(GCC_INSTALL_NAME).info $(CPP_INFO_NAME).info; do \
install-info --dir-file=$(infodir)/dir $(infodir)/$$f; \
done; \
else true; fi; \
else true; fi;
- -chmod a-x $(infodir)/cpp.info* $(infodir)/gcc.info*
+ -chmod a-x $(infodir)/$(CPP_INFO_NAME).info* $(infodir)/$(GCC_INSTALL_NAME).info*
# Install the man pages.
install-man: installdirs $(srcdir)/gcc.1 $(srcdir)/cccp.1 lang.install-man
@@ -2471,9 +2479,9 @@
$(INSTALL_DATA) $(srcdir)/gcc.1 $(mandir)/$(GCC_INSTALL_NAME)$(manext); \
chmod a-x $(mandir)/$(GCC_INSTALL_NAME)$(manext); \
fi
- -rm -f $(mandir)/cccp$(manext)
- -$(INSTALL_DATA) $(srcdir)/cccp.1 $(mandir)/cccp$(manext)
- -chmod a-x $(mandir)/cccp$(manext)
+ -rm -f $(mandir)/$(CPP_MAN_NAME)$(manext)
+ -$(INSTALL_DATA) $(srcdir)/cccp.1 $(mandir)/$(CPP_MAN_NAME)$(manext)
+ -chmod a-x $(mandir)/$(CPP_MAN_NAME)$(manext)
# Install the library.
install-libgcc: libgcc.a installdirs

View File

@ -0,0 +1,16 @@
--- gcc/cpp.texi.orig Sun Nov 1 20:10:10 1998
+++ gcc/cpp.texi Sun Nov 1 20:10:34 1998
@@ -1,11 +1,11 @@
\input texinfo
-@setfilename cpp.info
+@setfilename ecpp.info
@settitle The C Preprocessor
@ifinfo
@dircategory Programming
@direntry
-* Cpp: (cpp). The GNU C preprocessor.
+* ECpp: (ecpp). The experimental GNU C preprocessor.
@end direntry
@end ifinfo

View File

@ -1,28 +1,114 @@
# OpenBSD makefile for: egcs
# Version required: snapshot 1998-09-21
# Version required: snapshot 1998-11-09
# Date created: 25 sep 98
# Whom: Marc Espie
#
# $OpenBSD: Makefile,v 1.2 1998/10/02 18:57:28 espie Exp $
# $OpenBSD: Makefile,v 1.3 1998/11/16 21:11:13 espie Exp $
#
# This is a configuration file for egcs, recent snapshot
# right now, we only configure i386, C and C++.
LATEST=19980921
DIRECTORY=egcs/snapshots/1998-09-21/
DISTNAME= egcs-${LATEST}
# user configuration
# see files/tests for precise testing procedure
MAKE_TESTS=yes
MAKE_GXX=yes
MAKE_FORTRAN=yes
MAKE_OBJC=yes
# these are broken, as of this snapshot...
#MAKE_CHILL=yes
#MAKE_JAVA=yes
#PATCH_DEBUG=yes
# this configuration allow for ONE level of diff-files
LATEST=19981109
DIRECTORY=egcs/snapshots/%SUBDIR%/
.if defined(NEXT)
DISTNAME= egcs-${NEXT}
.else
DISTNAME= egcs-${LATEST}
.endif
CATEGORIES= lang
MAINTAINER= Marc.Espie@openbsd.org
# getting the right archives where they should be
MASTER_SITE_SUBDIR=${LATEST}
PATCH_SITE_SUBDIR=${NEXT}
DIST_SUBDIR=egcs
PATCH_SITES = ${MASTER_SITES}
PATCH_DIST_STRIP=-p1
DISTFILES= egcs-core-${LATEST}${EXTRACT_SUFX}
DISTFILES+= egcs-g++-${LATEST}${EXTRACT_SUFX}
# see files/tests for testing procedure
.if defined(MAKE_TESTS)
DISTFILES+=egcs-tests-${LATEST}${EXTRACT_SUFX}
.endif
.if defined(MAKE_GXX)
DISTFILES+= egcs-g++-${LATEST}${EXTRACT_SUFX}
.if defined(MAKE_TESTS)
DISTFILES+=egcs-g++-tests-${LATEST}${EXTRACT_SUFX}
.endif
.endif
.if defined(MAKE_FORTRAN)
DISTFILES+= egcs-g77-${LATEST}${EXTRACT_SUFX}
.if defined(MAKE_TESTS)
DISTFILES+=egcs-g77-testsuite-${LATEST}${EXTRACT_SUFX}
.endif
.endif
.if defined(MAKE_JAVA)
DISTFILES+=egcs-java-${LATEST}${EXTRACT_SUFX}
.endif
.if defined(MAKE_OBJC)
DISTFILES+=egcs-objc-${LATEST}${EXTRACT_SUFX}
.endif
.if defined(MAKE_CHILL)
DISTFILES+=egcs-chill-${LATEST}${EXTRACT_SUFX}
.endif
CATEGORIES= lang
MASTER_SITES= ftp://egcs.cygnus.com/pub/${DIRECTORY} \
ftp://ftp.lip6.fr/pub/${DIRECTORY}
MAINTAINER= Marc.Espie@openbsd.org
.if defined(NEXT)
PATCHFILES=egcs-core-${LATEST}-${NEXT}.diff.gz
.if defined(MAKE_TESTS)
PATCHFILES+=egcs-tests-${LATEST}-${NEXT}.diff.gz
.endif
.if defined(MAKE_GXX)
PATCHFILES+=egcs-g++-${LATEST}-${NEXT}.diff.gz
.if defined(MAKE_TESTS)
PATCHFILES+=egcs-g++-tests-${LATEST}-${NEXT}.diff.gz
.endif
.endif
.if defined(MAKE_FORTRAN)
PATCHFILES+=egcs-g77-${LATEST}-${NEXT}.diff.gz
.if defined(MAKE_TESTS)
PATCHFILES+=egcs-g77-testsuite-${LATEST}-${NEXT}.diff.gz
.endif
.endif
.if defined(MAKE_JAVA)
PATCHFILES+=egcs-java-${LATEST}-${NEXT}.diff.gz
.endif
.if defined(MAKE_OBJC)
PATCHFILES+=egcs-objc-${LATEST}-${NEXT}.diff.gz
.endif
.if defined(MAKE_CHILL)
PATCHFILES+=egcs-chill-${LATEST}-${NEXT}.diff.gz
.endif
.endif
# to do: check egcs-stable mirror list for sites which carry snapshots
BUILD_DEPENDS= autoconf:${PORTSDIR}/devel/autoconf
@ -40,17 +126,23 @@ CONFIGURE_SCRIPT=../source/configure
CONFIGURE_ENV=CFLAGS=-O2
CONFIGURE_ARGS= --prefix=${PREFIX} \
--verbose \
--verbose --with-gnu-ld --with-gnu-as \
--program-transform-name=s,^,e,
.if (${MACHINE_ARCH} != "alpha")
CONFIGURE_ARGS+=--enable-shared
.endif
.if defined(NEXT)
post-extract:
mv ${WRKDIR}/egcs-${LATEST} ${WRKSRC}
.endif
# get openbsd configuration files where they should be
post-patch:
cp -R ${FILESDIR}/config/* ${WRKSRC}
rm -rf ${WRKSRC}/texinfo ${WRKSRC}/gcc/ch
rm -rf ${WRKSRC}/texinfo
# rebuild configure file after patching, then move file around !!!
# XXX: don't try to autoconf the main configure file, it's not autoconf.
@ -60,4 +152,29 @@ pre-configure:
mv ${WRKSRC} ${WRKDIR}/source
mkdir ${WRKSRC}
M4FLAGS=-Uinclude -DDISTNAME=${DISTNAME}
.if defined(MAKE_GXX)
M4FLAGS+= -DGXX
.endif
.if defined(MAKE_G77)
M4FLAGS+= -DG77
.endif
.if defined(MAKE_CHILL)
M4FLAGS+= -DCHILL
.endif
.if defined(OBJC)
M4FLAGS+= -DOBJC
.endif
.if (${MACHINE_ARCH}) != "alpha")
M4FLAGS+= -DDYNAMIC
.endif
pre-install:
m4 ${M4FLAGS} -DARCH=`${WRKDIR}/source/config.guess` \
-DVERSION=`sed -e 's/.*\(egcs-[0-9.]*\) .*/\1/' <${WRKDIR}/source/gcc/version.c` \
<${FILESDIR}/PLIST.template >${PKGDIR}/PLIST
pre-clean:
-rm ${PKGDIR}/PLIST
.include <bsd.port.mk>

View File

@ -0,0 +1,236 @@
@cwd /usr/local
@name DISTNAME
bin/egcc
bin/eprotoize
bin/eunprotoize
bin/gcov
bin/ARCH-gcc
ARCH/include/_G_config.h
lib/gcc-lib/ARCH/VERSION/SYSCALLS.c.X
lib/gcc-lib/ARCH/VERSION/cc1
lib/gcc-lib/ARCH/VERSION/cpp
lib/gcc-lib/ARCH/VERSION/libgcc.a
lib/gcc-lib/ARCH/VERSION/specs
lib/libiberty.a
info/ecpp.info
info/ecpp.info-1
info/ecpp.info-2
info/ecpp.info-3
info/egcc.info
info/egcc.info-1
info/egcc.info-10
info/egcc.info-11
info/egcc.info-12
info/egcc.info-13
info/egcc.info-14
info/egcc.info-15
info/egcc.info-16
info/egcc.info-17
info/egcc.info-18
info/egcc.info-19
info/egcc.info-2
info/egcc.info-20
info/egcc.info-21
info/egcc.info-22
info/egcc.info-23
info/egcc.info-24
info/egcc.info-25
info/egcc.info-26
info/egcc.info-27
info/egcc.info-28
info/egcc.info-29
info/egcc.info-3
info/egcc.info-30
info/egcc.info-4
info/egcc.info-5
info/egcc.info-6
info/egcc.info-7
info/egcc.info-8
info/egcc.info-9
man/ecccp.1
man/egcc.1
ifdef(`CHILL',
bin/chill
info/chill.info
lib/gcc-lib/ARCH/VERSION/cc1chill
)ifdef(`GXX',
bin/ec++
bin/ec++filt
bin/eg++
include/g++-2/PlotFile.h
include/g++-2/SFile.h
include/g++-2/algo.h
include/g++-2/algobase.h
include/g++-2/algorithm
include/g++-2/alloc.h
include/g++-2/builtinbuf.h
include/g++-2/bvector.h
include/g++-2/cassert
include/g++-2/cctype
include/g++-2/cerrno
include/g++-2/cfloat
include/g++-2/ciso646
include/g++-2/climits
include/g++-2/clocale
include/g++-2/cmath
include/g++-2/complex
include/g++-2/complex.h
include/g++-2/csetjmp
include/g++-2/csignal
include/g++-2/cstdarg
include/g++-2/cstddef
include/g++-2/cstdio
include/g++-2/cstdlib
include/g++-2/cstring
include/g++-2/ctime
include/g++-2/cwchar
include/g++-2/cwctype
include/g++-2/defalloc.h
include/g++-2/deque
include/g++-2/deque.h
include/g++-2/editbuf.h
include/g++-2/floatio.h
include/g++-2/fstream
include/g++-2/fstream.h
include/g++-2/function.h
include/g++-2/functional
include/g++-2/hash_map
include/g++-2/hash_map.h
include/g++-2/hash_set
include/g++-2/hash_set.h
include/g++-2/hashtable.h
include/g++-2/heap.h
include/g++-2/indstream.h
include/g++-2/iolibio.h
include/g++-2/iomanip
include/g++-2/iomanip.h
include/g++-2/iosfwd
include/g++-2/iostdio.h
include/g++-2/iostream
include/g++-2/iostream.h
include/g++-2/iostreamP.h
include/g++-2/istream.h
include/g++-2/iterator
include/g++-2/iterator.h
include/g++-2/libio.h
include/g++-2/libioP.h
include/g++-2/list
include/g++-2/list.h
include/g++-2/map
include/g++-2/map.h
include/g++-2/memory
include/g++-2/multimap.h
include/g++-2/multiset.h
include/g++-2/numeric
include/g++-2/ostream.h
include/g++-2/pair.h
include/g++-2/parsestream.h
include/g++-2/pfstream.h
include/g++-2/procbuf.h
include/g++-2/pthread_alloc
include/g++-2/pthread_alloc.h
include/g++-2/queue
include/g++-2/rope
include/g++-2/rope.h
include/g++-2/ropeimpl.h
include/g++-2/set
include/g++-2/set.h
include/g++-2/slist
include/g++-2/slist.h
include/g++-2/stack
include/g++-2/stack.h
include/g++-2/std/bastring.cc
include/g++-2/std/bastring.h
include/g++-2/std/complext.cc
include/g++-2/std/complext.h
include/g++-2/std/dcomplex.h
include/g++-2/std/fcomplex.h
include/g++-2/std/ldcomplex.h
include/g++-2/std/straits.h
include/g++-2/stdexcept
include/g++-2/stdiostream.h
include/g++-2/stl.h
include/g++-2/stl_algo.h
include/g++-2/stl_algobase.h
include/g++-2/stl_alloc.h
include/g++-2/stl_bvector.h
include/g++-2/stl_config.h
include/g++-2/stl_construct.h
include/g++-2/stl_deque.h
include/g++-2/stl_function.h
include/g++-2/stl_hash_fun.h
include/g++-2/stl_hash_map.h
include/g++-2/stl_hash_set.h
include/g++-2/stl_hashtable.h
include/g++-2/stl_heap.h
include/g++-2/stl_iterator.h
include/g++-2/stl_list.h
include/g++-2/stl_map.h
include/g++-2/stl_multimap.h
include/g++-2/stl_multiset.h
include/g++-2/stl_numeric.h
include/g++-2/stl_pair.h
include/g++-2/stl_queue.h
include/g++-2/stl_raw_storage_iter.h
include/g++-2/stl_relops.h
include/g++-2/stl_rope.h
include/g++-2/stl_set.h
include/g++-2/stl_slist.h
include/g++-2/stl_stack.h
include/g++-2/stl_tempbuf.h
include/g++-2/stl_tree.h
include/g++-2/stl_uninitialized.h
include/g++-2/stl_vector.h
include/g++-2/stream.h
include/g++-2/streambuf.h
include/g++-2/strfile.h
include/g++-2/string
include/g++-2/strstream
include/g++-2/strstream.h
include/g++-2/tempbuf.h
include/g++-2/tree.h
include/g++-2/type_traits.h
include/g++-2/utility
include/g++-2/vector
include/g++-2/vector.h
lib/libstdc++.a.2.9.0
ifdef(`DYNAMIC',
lib/libstdc++.so.2.9
lib/libstdc++.so.2.9.0
lib/gcc-lib/ARCH/VERSION/libstdc++.so
)lib/gcc-lib/ARCH/VERSION/cc1plus
lib/gcc-lib/ARCH/VERSION/collect2
man/eg++.1
)ifdef(`G77',
bin/eg77
info/g77.info
info/g77.info-1
info/g77.info-10
info/g77.info-11
info/g77.info-12
info/g77.info-13
info/g77.info-14
info/g77.info-15
info/g77.info-16
info/g77.info-17
info/g77.info-18
info/g77.info-19
info/g77.info-2
info/g77.info-20
info/g77.info-3
info/g77.info-4
info/g77.info-5
info/g77.info-6
info/g77.info-7
info/g77.info-8
info/g77.info-9
lib/gcc-lib/ARCH/VERSION/f771
lib/gcc-lib/ARCH/VERSION/include/g2c.h
lib/gcc-lib/ARCH/VERSION/libg2c.a
man/eg77.1
)ifdef(`OBJC',
lib/gcc-lib/ARCH/VERSION/cc1obj
)@dirrm include/g++-2/std
@dirrm include/g++-2
@dirrm lib/gcc-lib/ARCH/VERSION
@exec [ ! -x /sbin/ldconfig ] || /sbin/ldconfig -m /usr/local/lib

View File

@ -1,3 +1,9 @@
MD5 (egcs-core-19980921.tar.gz) = 13f5a29f18a96e4dd1e2a55441284037
MD5 (egcs-g++-19980921.tar.gz) = 371e5b3f05b685aa8585dfb911cca9bd
MD5 (egcs-tests-19980921.tar.gz) = ebbe2a432b20acf490f5861cad93b063
MD5 (egcs/egcs-core-19981109.tar.gz) = e3bff21c5985de6ee946cf64e4797d68
MD5 (egcs/egcs-tests-19981109.tar.gz) = 740efa5901e0a3071847f1ee7895b90d
MD5 (egcs/egcs-g++-19981109.tar.gz) = 4f242afc45c8258a068f2bd305c69c61
MD5 (egcs/egcs-g++-tests-19981109.tar.gz) = a12924830e33565b7ca9af7636701b79
MD5 (egcs/egcs-g77-19981109.tar.gz) = 5d672c4261cfaffbf9dd6ab70b51f726
MD5 (egcs/egcs-g77-testsuite-19981109.tar.gz) = 1485cfe769b27512b17fd48491349b18
MD5 (egcs/egcs-java-19981109.tar.gz) = d9162b7f8dbf069f40077c494492694e
MD5 (egcs/egcs-objc-19981109.tar.gz) = 5ec0dac2be3b9eaa0474894841bb5e9c
MD5 (egcs/egcs-chill-19981109.tar.gz) = e574daed5262dc7fba86a6c0754f6ef6

View File

@ -1,6 +1,6 @@
--- gcc/configure.in.orig Mon Sep 21 17:49:58 1998
+++ gcc/configure.in Thu Nov 12 21:16:09 1998
@@ -1003,10 +1003,8 @@
--- gcc/configure.in.orig Sun Nov 1 19:59:34 1998
+++ gcc/configure.in Sun Nov 1 20:02:40 1998
@@ -1058,15 +1058,23 @@
fixincludes=fixinc.wrap
tmake_file=i386/t-freebsd
;;
@ -12,31 +12,33 @@
changequote([,])dnl
tm_file=i386/netbsd.h
# On NetBSD, the headers are already okay, except for math.h.
@@ -1014,6 +1012,14 @@
fixincludes=fixinc.wrap
tmake_file=t-netbsd
;;
changequote(,)dnl
+ ;;
+changequote(,)dnl
+ i[34567]86-*-openbsd*)
+changequote([,])dnl
+ tm_file=i386/openbsd.h
+ # On OpenBSD, the headers are already okay, except for math.h.
+ fixincludes=fixinc.wrap
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ tmake_file=t-openbsd
+ ;;
+changequote(,)dnl
+ # XXX may need adding until the bug is fixed...
+ use_collect2=yes
;;
changequote(,)dnl
i[34567]86-*-coff*)
changequote([,])dnl
tm_file=i386/i386-coff.h
@@ -2820,6 +2826,12 @@
@@ -2820,6 +2826,14 @@
# On NetBSD, the headers are already okay, except for math.h.
fixincludes=fixinc.wrap
tmake_file=t-netbsd
+ ;;
+ sparc-*-openbsd*)
+ tm_file=sparc/netbsd.h
+ # On OpenBSD, the headers are already okay, except for math.h.
+ fixincludes=fixinc.wrap
+ tm_file=sparc/openbsd.h
+ # On OpenBSD, the headers are already okay.
+ fixincludes=Makefile.in
+ tmake_file=t-openbsd
+ # XXX may need adding until the bug is fixed...
+ use_collect2=yes
;;
sparc-*-bsd*)
tm_file=sparc/bsd.h

View File

@ -1,10 +1,19 @@
--- gcc/gcc.texi.orig Thu Oct 1 01:00:07 1998
+++ gcc/gcc.texi Thu Oct 1 01:00:19 1998
--- gcc/gcc.texi.orig Sun Nov 1 20:04:09 1998
+++ gcc/gcc.texi Sun Nov 1 20:04:35 1998
@@ -1,6 +1,6 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
-@setfilename gcc.info
+@setfilename egcs.info
+@setfilename egcc.info
@c @setfilename usegcc.info
@c @setfilename portgcc.info
@c To produce the full manual, use the "gcc.info" setfilename, and
@@ -82,7 +82,7 @@
@ifinfo
@dircategory Programming
@direntry
-* gcc: (gcc). The GNU C compiler.
+* egcc: (egcc). The experimental GNU C compiler.
@end direntry
@ifset INTERNALS
@ifset USING

View File

@ -1,10 +1,10 @@
--- libstdc++/configure.in.orig Thu Oct 1 00:58:32 1998
+++ libstdc++/configure.in Thu Oct 1 00:59:19 1998
--- libstdc++/configure.in.orig Sun Nov 1 20:05:25 1998
+++ libstdc++/configure.in Sun Nov 1 20:05:42 1998
@@ -49,6 +49,7 @@
*-*-irix[56]*) frags="${frags} irix5.ml" ;;
*-*-linux*aout*) ;;
*-*-linux*) frags="${frags} linux.ml" ;;
+ *-*-openbsd*) frags="${frags} openbsd.ml" ;;
+ *-*-openbsd*) frags="${frags} openbsd.ml" ;;
*-*-sysv4*) frags="${frags} elf.ml" ;;
*-*-solaris*) frags="${frags} sol2shm.ml" ;;
*-*-sunos4*) frags="${frags} sunos4.ml" ;;

View File

@ -0,0 +1,75 @@
--- gcc/Makefile.in.orig Sun Nov 1 20:06:26 1998
+++ gcc/Makefile.in Sun Nov 1 20:09:30 1998
@@ -459,6 +459,10 @@
PROTOIZE_INSTALL_NAME = `t='$(program_transform_name)'; echo protoize | sed -e $$t`
UNPROTOIZE_INSTALL_NAME = `t='$(program_transform_name)'; echo unprotoize | sed -e $$t`
+# documentation for cpp should not supersede default documentation
+CPP_INFO_NAME = `t='$(program_transform_name)'; echo cpp | sed -e $$t`
+CPP_MAN_NAME = `t='$(program_transform_name)'; echo cccp | sed -e $$t`
+
# Actual name to use when installing a cross-compiler.
GCC_CROSS_NAME = `t='$(program_transform_cross_name)'; echo gcc | sed -e $$t`
PROTOIZE_CROSS_NAME = `t='$(program_transform_cross_name)'; echo protoize | sed -e $$t`
@@ -2163,12 +2167,14 @@
info: cpp.info gcc.info lang.info
cpp.info: $(srcdir)/cpp.texi
- $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o cpp.info $(srcdir)/cpp.texi
+ $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o $(CPP_INFO_NAME).info \
+ $(srcdir)/cpp.texi && touch $@
gcc.info: $(srcdir)/gcc.texi $(srcdir)/extend.texi $(srcdir)/install.texi \
$(srcdir)/invoke.texi $(srcdir)/md.texi $(srcdir)/rtl.texi \
$(srcdir)/tm.texi $(srcdir)/gcov.texi
- $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o gcc.info $(srcdir)/gcc.texi
+ $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o $(GCC_INSTALL_NAME).info \
+ $(srcdir)/gcc.texi && touch $@
dvi: gcc.dvi cpp.dvi lang.dvi
@@ -2309,6 +2315,7 @@
-rm -f cexp.c cexp.output TAGS
-rm -f cpp.info* cpp.??s cpp.*aux
-rm -f gcc.info* gcc.??s gcc.*aux
+ -rm -f $(GCC_INSTALL_NAME).info* $(CPP_INFO_NAME).info*
#
# Entry points `install' and `uninstall'.
# Also use `install-collect2' to install collect2 when the config files don't.
@@ -2447,18 +2454,19 @@
# $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
# to do the install.
install-info: doc installdirs lang.install-info
- -rm -f $(infodir)/cpp.info* $(infodir)/gcc.info*
- for f in cpp.info* gcc.info*; do \
+ -rm -f $(infodir)/$(CPP_INFO_NAME).info* \
+ $(infodir)/$(GCC_INSTALL_NAME).info*
+ for f in $(GCC_INSTALL_NAME).info* $(CPP_INFO_NAME).info*; do \
$(INSTALL_DATA) $$f $(infodir)/$$f; \
done
-if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
if [ -f $(infodir)/dir ] ; then \
- for f in cpp.info gcc.info; do \
+ for f in $(GCC_INSTALL_NAME).info $(CPP_INFO_NAME).info; do \
install-info --dir-file=$(infodir)/dir $(infodir)/$$f; \
done; \
else true; fi; \
else true; fi;
- -chmod a-x $(infodir)/cpp.info* $(infodir)/gcc.info*
+ -chmod a-x $(infodir)/$(CPP_INFO_NAME).info* $(infodir)/$(GCC_INSTALL_NAME).info*
# Install the man pages.
install-man: installdirs $(srcdir)/gcc.1 $(srcdir)/cccp.1 lang.install-man
@@ -2471,9 +2479,9 @@
$(INSTALL_DATA) $(srcdir)/gcc.1 $(mandir)/$(GCC_INSTALL_NAME)$(manext); \
chmod a-x $(mandir)/$(GCC_INSTALL_NAME)$(manext); \
fi
- -rm -f $(mandir)/cccp$(manext)
- -$(INSTALL_DATA) $(srcdir)/cccp.1 $(mandir)/cccp$(manext)
- -chmod a-x $(mandir)/cccp$(manext)
+ -rm -f $(mandir)/$(CPP_MAN_NAME)$(manext)
+ -$(INSTALL_DATA) $(srcdir)/cccp.1 $(mandir)/$(CPP_MAN_NAME)$(manext)
+ -chmod a-x $(mandir)/$(CPP_MAN_NAME)$(manext)
# Install the library.
install-libgcc: libgcc.a installdirs

View File

@ -0,0 +1,16 @@
--- gcc/cpp.texi.orig Sun Nov 1 20:10:10 1998
+++ gcc/cpp.texi Sun Nov 1 20:10:34 1998
@@ -1,11 +1,11 @@
\input texinfo
-@setfilename cpp.info
+@setfilename ecpp.info
@settitle The C Preprocessor
@ifinfo
@dircategory Programming
@direntry
-* Cpp: (cpp). The GNU C preprocessor.
+* ECpp: (ecpp). The experimental GNU C preprocessor.
@end direntry
@end ifinfo