Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Dec 1997 08:57:54 +0300 (MSK)
From:      Andrey Zakhvatov <andy@icc.surw.chel.su>
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   ports/5270: New port: ptoc-2.01
Message-ID:  <199712110557.IAA05695@icc.surw.chel.su>
Resent-Message-ID: <199712110740.XAA13453@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         5270
>Category:       ports
>Synopsis:       New port: ptoc-2.01
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports
>State:          open
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Dec 10 23:40:01 PST 1997
>Last-Modified:
>Originator:     Andrey Zakhvatov
>Organization:
South Ural Railway ICC
>Release:        FreeBSD 2.2.2-RELEASE i386
>Environment:

>Description:

   This is a port of the ANSI/Turbo Pascal to C/C++ converter.

   This is yet another  ANSI/Turbo Pascal to C/C++ converter together
with BGI graphics library emulation for X Window System.

   Converter  recognizes  Pascal  dialects  which are compatible with 
   Turbo Pascal 4.0/5.0  and  ISO Pascal  standard - IEC 7185:1990(E) 
   (including conformant arrays). Now it is tuned for Oregon Pascal-2


# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	ptoc-2.01
#	ptoc-2.01/Makefile
#	ptoc-2.01/files
#	ptoc-2.01/files/md5
#	ptoc-2.01/files/Makefile
#	ptoc-2.01/patches
#	ptoc-2.01/patches/patch-ab
#	ptoc-2.01/patches/patch-aa
#	ptoc-2.01/patches/patch-ac
#	ptoc-2.01/patches/patch-ad
#	ptoc-2.01/pkg
#	ptoc-2.01/pkg/PLIST
#	ptoc-2.01/pkg/COMMENT
#	ptoc-2.01/pkg/DESCR
#
echo c - ptoc-2.01
mkdir -p ptoc-2.01 > /dev/null 2>&1
echo x - ptoc-2.01/Makefile
sed 's/^X//' >ptoc-2.01/Makefile << 'END-of-ptoc-2.01/Makefile'
X# New ports collection makefile for:	ptoc
X# Version required:			2.01
X# Date created:				10 December 1997
X# Whom:					Andrey Zakhvatov
X#
X# $Id$
X#
X
XDISTNAME=		ptoc
XPKGNAME=		ptoc-2.01
XCATEGORIES=		devel converters x11
XMASTER_SITES=		${MASTER_SITE_SUNSITE}
XMASTER_SITE_SUBDIR=	devel/lang/pascal
XEXTRACT_SUFX=		.tgz
X
XMAINTAINER=		andy@icc.surw.chel.su
X
XWRKSRC=			${WRKDIR}/ptoc
XMAKEFILE=		makefile
X
Xpre-build:
X	@ ${RM} ${WRKSRC}/libXbgi.a
X	@ ${RM} ${WRKSRC}/libptoc.a
X
Xdo-install:
X	@ ${INSTALL_PROGRAM} ${WRKSRC}/cganal ${PREFIX}/bin
X	@ ${INSTALL_PROGRAM} ${WRKSRC}/ptoc ${PREFIX}/bin
X	@ ${INSTALL_DATA} ${WRKSRC}/ptoc.cfg ${PREFIX}/etc
X	@ ${INSTALL_DATA} ${WRKSRC}/libptoc.a ${PREFIX}/lib
X	@ ${INSTALL_DATA} ${WRKSRC}/libXbgi.a ${PREFIX}/lib
X	@ ${MKDIR} ${PREFIX}/include/ptoc
X.for file in array.h graph.h io.h paslib.h ptoc.h set.h
X	@ ${INSTALL_DATA} ${WRKSRC}/${file} ${PREFIX}/include/ptoc
X.endfor
X	@ ${MKDIR} ${PREFIX}/share/ptoc
X.for file in ptoc.pas tptoc.pas graph.pas
X	@ ${INSTALL_DATA} ${WRKSRC}/${file} ${PREFIX}/share/ptoc
X.endfor
X	@ ${MKDIR} ${PREFIX}/share/doc/ptoc
X	@ ${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/ptoc
X	@ ${INSTALL_DATA} ${WRKSRC}/paslib.doc ${PREFIX}/share/doc/ptoc
X	@ ${MKDIR} ${PREFIX}/share/examples/ptoc
X	@ ${INSTALL_DATA} ${FILESDIR}/Makefile ${PREFIX}/share/examples/ptoc
X.for file in bgidemo.pas coord.txt hello.pas impact.pas lister.pas polut2.pas printer.pas q2.txt random.txt rename.pas set.pas test.pas tpascal.pas trinor.pas vibrkinp.pas vibrkinp.txt vibrtabl.pas war2.pas xy2orig.txt
X	@ ${INSTALL_DATA} ${WRKSRC}/examples/${file} ${PREFIX}/share/examples/ptoc
X.endfor
X
X.include <bsd.port.mk>
END-of-ptoc-2.01/Makefile
echo c - ptoc-2.01/files
mkdir -p ptoc-2.01/files > /dev/null 2>&1
echo x - ptoc-2.01/files/md5
sed 's/^X//' >ptoc-2.01/files/md5 << 'END-of-ptoc-2.01/files/md5'
XMD5 (ptoc.tgz) = 41115dc1b6e74ce8cd9048644c2ef41f
END-of-ptoc-2.01/files/md5
echo x - ptoc-2.01/files/Makefile
sed 's/^X//' >ptoc-2.01/files/Makefile << 'END-of-ptoc-2.01/files/Makefile'
XCC=	gcc -O -I. -I/usr/local/include/ptoc -L/usr/local/lib -L/usr/X11R6/lib
XCGANAL=	cganal
XPTOC=	ptoc -I .:/usr/local/share/ptoc
XPTOC_LIB=	-lptoc
XBGI_LIB=	-lXbgi
XGRAPH_LIB=	-lX11
XMATH_LIB=	-lm
X
XEXE = hello_c hello_cxx impact war2 trinor tpascal set_c set_cxx lister polut2 vibrkinp vibrtabl bgidemo
X
Xall: convert executable
X
Xconvert: hello.c hello.cxx impact.cxx war2.cxx test.c test.cxx polut2.cxx \
Xrename.cxx tpascal.cxx trinor.cxx lister.cxx vibrkinp.cxx vibrtabl.cxx bgidemo.cxx
X
Xexecutable: $(EXE)
X
X# Hello world
X
Xhello.c: hello.pas
X	$(PTOC) -c -in hello.pas 
X
Xhello.cxx: hello.pas
X	$(PTOC) -in hello.pas
X
Xhello_c: hello.c
X	$(CC) -o hello_c hello.c $(PTOC_LIB)
X
Xhello_cxx: hello.cxx
X	$(CC) -o hello_cxx hello.cxx $(PTOC_LIB)
X
X#----------------------------------------------------------------
X# Graphic example: BGIDEMO
X#----------------------------------------------------------------
Xbgidemo.cxx: bgidemo.pas
X	$(PTOC) -turbo -analyze -in bgidemo.pas
X
Xbgidemo: bgidemo.cxx
X	$(CC) -DTURBO_PASCAL -funsigned-char -o bgidemo bgidemo.cxx $(PTOC_LIB) $(BGI_LIB) $(GRAPH_LIB) $(MATH_LIB)
X
X#----------------------------------------------------------------
X# Some numeric programs for Turbo Pascal
X#----------------------------------------------------------------
X
X# Examples with BGI
Xvibrtabl.cxx: vibrtabl.pas
X	$(PTOC) -turbo -in vibrtabl.pas
X
Xvibrtabl: vibrtabl.cxx
X	$(CC) -DTURBO_PASCAL -o vibrtabl vibrtabl.cxx $(PTOC_LIB) $(BGI_LIB) $(GRAPH_LIB) $(MATH_LIB)
X
X
Xvibrkinp.cxx: vibrkinp.pas
X	$(PTOC) -turbo -in vibrkinp.pas
X
Xvibrkinp: vibrkinp.cxx
X	$(CC) -DTURBO_PASCAL -o vibrkinp vibrkinp.cxx $(PTOC_LIB) $(BGI_LIB) $(GRAPH_LIB) $(MATH_LIB)
X
X
Xpolut2.cxx: polut2.pas
X	$(PTOC) -turbo -in polut2.pas
X
Xpolut2: polut2.cxx
X	$(CC) -DTURBO_PASCAL -o polut2 polut2.cxx $(PTOC_LIB) $(BGI_LIB) $(GRAPH_LIB) $(MATH_LIB)
X
Ximpact.cxx: impact.pas
X	$(PTOC) -turbo -in impact.pas
X
Ximpact: impact.cxx
X	$(CC) -DTURBO_PASCAL -o impact impact.cxx $(PTOC_LIB) $(MATH_LIB)
X
Xtrinor.cxx: trinor.pas
X	$(PTOC) -turbo -in trinor.pas
X
Xtrinor: trinor.cxx
X	$(CC) -DTURBO_PASCAL -o trinor trinor.cxx $(PTOC_LIB) $(MATH_LIB)
X
X
Xwar2.cxx: war2.pas
X	$(PTOC) -turbo -in war2.pas
X
Xwar2: war2.cxx
X	$(CC) -DTURBO_PASCAL -o war2 war2.cxx $(PTOC_LIB) $(MATH_LIB)
X# This program reads data from files war2.txt, random.txt, coord.txt
X# and produce file xy2.txt. Your can compare this file with xy2orig.txt
X# produced by original Pascal program. 
X
X#-------------------------------------------------------------------
X# File from examples to Borland Pascal.
X#-------------------------------------------------------------------
X
Xlister.cxx: lister.pas
X	$(PTOC) -turbo -init -in lister.pas
X
Xprinter.cxx: printer.pas
X	$(PTOC) -turbo -init -in printer.pas
X
Xlister: lister.cxx printer.cxx
X	$(CC) -DTURBO_PASCAL -o lister lister.cxx printer.cxx $(PTOC_LIB) 
X
X#-------------------------------------------------------------------
X# Some tests for converter. This programms produce dummy output.
X#-------------------------------------------------------------------
X
Xtest.c: test.pas
X	rm -f call.grp
X	$(PTOC) -c -analyze -smallenum -intset -in test.pas
X	$(CGANAL)	
X	$(PTOC) -c -analyze -smallenum -intset -in test.pas 
X# It is neccessary to run converter twice.
X# At first phase call graph of functions is constructed and
X# at second phase correct code is generated.
X
Xtest.cxx: test.pas
X	rm -f call.grp
X	$(PTOC) -analyze -in test.pas
X	$(CGANAL)
X	$(PTOC) -analyze -in test.pas
X
Xrename.cxx: rename.pas
X	$(PTOC) -in rename.pas
X
Xset.cxx: set.pas
X	$(PTOC) -in set.pas
X
Xset.c: set.pas
X	$(PTOC) -c -intset -in set.pas
X
Xset_cxx: set.cxx
X	$(CC) -o set_cxx set.cxx $(PTOC_LIB)
X
Xset_c: set.c
X	$(CC) -o set_c set.c $(PTOC_LIB)
X
X# Test for Turbo Pascal
X
Xtpascal.cxx: tpascal.pas
X	$(PTOC) -turbo -cstring -in tpascal.pas
X
Xtpascal: tpascal.cxx
X	$(CC) -o tpascal -DTURBO_PASCAL tpascal.cxx $(PTOC_LIB)
X
X
Xclean:
X	rm -f $(EXE) *~ *.o core call.grp recur.prc
END-of-ptoc-2.01/files/Makefile
echo c - ptoc-2.01/patches
mkdir -p ptoc-2.01/patches > /dev/null 2>&1
echo x - ptoc-2.01/patches/patch-ab
sed 's/^X//' >ptoc-2.01/patches/patch-ab << 'END-of-ptoc-2.01/patches/patch-ab'
X--- Xbgi/makefile	Thu Jun 26 14:43:30 1997
X+++ /home/andy/tmp/wrk/Xbgi/makefile	Mon Dec  8 17:01:03 1997
X@@ -44,12 +44,12 @@
X LIB = ../libXbgi.a
X 
X CC = gcc
X-CCFLAGS = -O2 -g
X+CFLAGS+= -I/usr/X11R6/include
X AR = ar
X ARFLAGS = rc
X 
X .c.o:
X-	$(CC) $(CCFLAGS) -c $<
X+	$(CC) $(CFLAGS) -c $<
X 
X ../libXbgi.a: $(OBJ)
X 	$(AR) $(ARFLAGS) $(LIB) $(OBJ)
END-of-ptoc-2.01/patches/patch-ab
echo x - ptoc-2.01/patches/patch-aa
sed 's/^X//' >ptoc-2.01/patches/patch-aa << 'END-of-ptoc-2.01/patches/patch-aa'
X--- makefile	Tue Sep  2 08:49:02 1997
X+++ /home/andy/tmp/wrk/makefile	Wed Dec 10 11:26:08 1997
X@@ -18,8 +18,8 @@
X # Chose compiler You prefere.
X #
X 
X-CC =		gcc -O5 -g -Wall -c
X-CFLAGS =
X+CC =		gcc
X+CFLAGS+=	-c
X 
X DEFINES = 
X INCLUDES =	-I.
X@@ -31,7 +31,7 @@
X # Chose linker You prefere.
X #
X 
X-LD =		gcc -static 
X+LD =		gcc
X #LD =		cxx -non_shared
X LDFLAGS =
X 
END-of-ptoc-2.01/patches/patch-aa
echo x - ptoc-2.01/patches/patch-ac
sed 's/^X//' >ptoc-2.01/patches/patch-ac << 'END-of-ptoc-2.01/patches/patch-ac'
X--- main.h	Tue Aug 26 21:16:28 1997
X+++ /home/andy/tmp/wrk/main.h	Mon Dec  8 17:58:12 1997
X@@ -31,7 +31,7 @@
X 
X #define CALL_GRAPH_FILE     "call.grp"
X #define RECURSIVE_PROC_FILE "recur.prc"
X-#define CONFIG_FILE         "ptoc.cfg"
X+#define CONFIG_FILE         "/usr/local/etc/ptoc.cfg"
X 
X extern bool  use_call_graph;
X extern bool  pio_init;
END-of-ptoc-2.01/patches/patch-ac
echo x - ptoc-2.01/patches/patch-ad
sed 's/^X//' >ptoc-2.01/patches/patch-ad << 'END-of-ptoc-2.01/patches/patch-ad'
X--- main.cxx	Tue Aug 26 21:17:50 1997
X+++ /home/andy/tmp/wrk/main.cxx	Tue Dec  9 06:54:16 1997
X@@ -268,7 +268,7 @@
X 
X     compile_system_library = TRUE;
X     token::input(dprintf("%s%s", prog_path, 
X-			 turbo_pascal ? "tptoc.pas" : "ptoc.pas")); 
X+			 turbo_pascal ? "/usr/local/share/ptoc/tptoc.pas" : "/usr/local/share/ptoc/ptoc.pas")); 
X     zzparse(); 
X 
X     compile_system_library = FALSE;
END-of-ptoc-2.01/patches/patch-ad
echo c - ptoc-2.01/pkg
mkdir -p ptoc-2.01/pkg > /dev/null 2>&1
echo x - ptoc-2.01/pkg/PLIST
sed 's/^X//' >ptoc-2.01/pkg/PLIST << 'END-of-ptoc-2.01/pkg/PLIST'
Xbin/cganal
Xbin/ptoc
Xetc/ptoc.cfg
Xinclude/ptoc/array.h
Xinclude/ptoc/graph.h
Xinclude/ptoc/io.h
Xinclude/ptoc/paslib.h
Xinclude/ptoc/ptoc.h
Xinclude/ptoc/set.h
Xlib/libptoc.a
Xlib/libXbgi.a
Xshare/doc/ptoc/README
Xshare/doc/ptoc/paslib.doc
Xshare/ptoc/ptoc.pas
Xshare/ptoc/tptoc.pas
Xshare/ptoc/graph.pas
Xshare/examples/ptoc/Makefile
Xshare/examples/ptoc/bgidemo.pas
Xshare/examples/ptoc/coord.txt
Xshare/examples/ptoc/hello.pas
Xshare/examples/ptoc/impact.pas
Xshare/examples/ptoc/lister.pas
Xshare/examples/ptoc/polut2.pas
Xshare/examples/ptoc/printer.pas
Xshare/examples/ptoc/q2.txt
Xshare/examples/ptoc/random.txt
Xshare/examples/ptoc/rename.pas
Xshare/examples/ptoc/set.pas
Xshare/examples/ptoc/test.pas
Xshare/examples/ptoc/tpascal.pas
Xshare/examples/ptoc/trinor.pas
Xshare/examples/ptoc/vibrkinp.pas
Xshare/examples/ptoc/vibrkinp.txt
Xshare/examples/ptoc/vibrtabl.pas
Xshare/examples/ptoc/war2.pas
Xshare/examples/ptoc/xy2orig.txt
X@dirrm include/ptoc
X@dirrm share/doc/ptoc
X@dirrm share/examples/ptoc
X@dirrm share/ptoc
END-of-ptoc-2.01/pkg/PLIST
echo x - ptoc-2.01/pkg/COMMENT
sed 's/^X//' >ptoc-2.01/pkg/COMMENT << 'END-of-ptoc-2.01/pkg/COMMENT'
XANSI/Turbo Pascal to C/C++ converter
END-of-ptoc-2.01/pkg/COMMENT
echo x - ptoc-2.01/pkg/DESCR
sed 's/^X//' >ptoc-2.01/pkg/DESCR << 'END-of-ptoc-2.01/pkg/DESCR'
XThis is yet another  ANSI/Turbo Pascal to C/C++ converter together
Xwith BGI graphics library emulation for X Window System.
X
XConverter  recognizes  Pascal  dialects  which are compatible with 
XTurbo Pascal 4.0/5.0  and  ISO Pascal  standard - IEC 7185:1990(E) 
X(including conformant arrays). Now it is tuned for Oregon Pascal-2
XV2.1 which has few extensions to standard Pascal.
X
XConverter can produce both C++ and C output.
X
XNow  PTOC  recognizes  Turbo  Pascal's  extensions, such as units, 
Xstrings,   some  special   types   and   operations. Turbo  Pascal
Xextensions are supported only for C++ language.
X
XAlso emulation libraries  of  Borland Graphics Interface (BGI) for
XX Window System  included in this  distribution (BGI emulators can
Xbe also used without converter for C programs using BGI).
END-of-ptoc-2.01/pkg/DESCR
exit


>How-To-Repeat:

>Fix:
	
   Please, check and commit this port.

>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712110557.IAA05695>