graphics/ralcgm: Added (view/convert CGM vector image files).

Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
This commit is contained in:
B. Watson 2017-12-20 23:40:31 +00:00 committed by Willy Sudiarto Raharjo
parent 3f90f9b40d
commit f01ffa798d
7 changed files with 883 additions and 0 deletions

14
graphics/ralcgm/README Normal file
View file

@ -0,0 +1,14 @@
ralcgm (view/convert CGM vector image files)
RAL-CGM is a program to translate or interpret CGM (Computer Graphics
Metafile) files, either to a different encoding (Binary, Character or
Clear Text) or to view on a terminal or to send to a plotter (PostScript
or HPGL).
It can be used as an ImageMagick or GraphicsMagick delegate to convert
from CGM format.
If you want to compile the example code:
gcc -o testcgm -I/usr/include/ralcgm \
/usr/doc/ralcgm-3.50/examples/testcgm.c -lcgm -lm -lX11

View file

@ -0,0 +1,86 @@
diff -Naur a/include/cgmtek.h b/include/cgmtek.h
--- a/include/cgmtek.h 1993-08-10 04:10:54.000000000 -0400
+++ b/include/cgmtek.h 2017-12-20 00:25:38.734568061 -0500
@@ -187,7 +187,7 @@
};
/* Tektronix colour table variables*/
-static n_coltab = DEF_N_COLTAB;
+static int n_coltab = DEF_N_COLTAB;
static RGBcolour TEKcoltab[MAX_N_COLTAB]; /* The TEK colour table */
static Enum TEKcoluse[MAX_N_COLTAB]; /* The TEK colour flags */
static Int colset_n; /* Number of colour table entries set */
diff -Naur a/src/cgmlib.c b/src/cgmlib.c
--- a/src/cgmlib.c 1993-08-10 04:10:34.000000000 -0400
+++ b/src/cgmlib.c 2017-12-20 00:33:41.535568880 -0500
@@ -38,6 +38,12 @@
#define CGMLIB_C
#include "cgmlib.h"
+extern void CGMOhpgl(FILE *, Code, Long*, Float*, char* );
+
+#ifdef TEK4200
+ extern void CGMOtek( FILE*, Code, long *, float *, char * );
+#endif
+
/* Driver Routines */
#ifdef PROTO
diff -Naur a/src/cgmmain.c b/src/cgmmain.c
--- a/src/cgmmain.c 1995-06-13 11:32:22.000000000 -0400
+++ b/src/cgmmain.c 2017-12-20 00:23:32.606567847 -0500
@@ -280,6 +280,7 @@
#define OUTMESS (void) fprintf( (FILE *) cgmerr,
/******************************************************** main *********/
+int
#ifdef PROTO
main ( int argc, char **argv)
#else
diff -Naur a/src/cgmoxw.c b/src/cgmoxw.c
--- a/src/cgmoxw.c 1994-04-15 09:30:07.000000000 -0400
+++ b/src/cgmoxw.c 2017-12-20 00:24:37.448567957 -0500
@@ -111,6 +111,8 @@
*/
+#include <unistd.h>
+
#define CGMOXW_C
#include "cgmout.h"
diff -Naur a/src/cgmtrap.c b/src/cgmtrap.c
--- a/src/cgmtrap.c 1995-06-13 11:33:02.000000000 -0400
+++ b/src/cgmtrap.c 2017-12-20 00:27:03.439568205 -0500
@@ -45,6 +45,7 @@
#include "cgmelem.h"
#include "cgmpar.h"
#include "cgmpts.h"
+#include "cgmgraph.h"
/* Fixed Limit to the number trapezoids (protect CPU from bug) */
#define MAXTRAPS 100000
diff -Naur a/src/genbez.c b/src/genbez.c
--- a/src/genbez.c 1995-06-16 03:26:44.000000000 -0400
+++ b/src/genbez.c 2017-12-20 00:22:46.548567769 -0500
@@ -37,7 +37,7 @@
BezDir Dir;
BezFont Bfont;
-main()
+int main(int argc, char **argv)
{
FILE *generator, *directory;
char *dirname, *genname;
diff -Naur a/src/genher.c b/src/genher.c
--- a/src/genher.c 1995-06-16 03:26:48.000000000 -0400
+++ b/src/genher.c 2017-12-20 00:22:56.659567786 -0500
@@ -51,7 +51,7 @@
static char *func = "genher";
Logical cgmerrcount=FALSE, cgmquiet=FALSE;
-main()
+int main(int argc, char **argv)
{
int last, code, i;

View file

@ -0,0 +1,413 @@
diff -Naur a/data/m_ps.fnt b/data/m_ps.fnt
--- a/data/m_ps.fnt 1969-12-31 19:00:00.000000000 -0500
+++ b/data/m_ps.fnt 2017-12-19 22:33:27.691556645 -0500
@@ -0,0 +1,35 @@
+ 1 0013 1947 1 5 5 1 4.5.1 0 0 0 1 Times-Roman
+ 2 0013 1947 1 7 5 1 4.5.1 0 0 0 1 Times-Bold
+ 3 0013 1947 2 5 5 1 4.5.1 0 0 0 1 Times-Italic
+ 4 0013 1947 2 7 5 1 4.5.1 0 0 0 1 Times-BoldItalic
+ 5 0013 1921 1 5 5 1 5.1.2 0 0 0 1 Helvetica
+ 6 0013 1921 1 7 5 1 5.1.2 0 0 0 1 Helvetica-Bold
+ 7 0013 1921 2 5 5 1 5.1.2 0 0 0 1 Helvetica-Oblique
+ 8 0013 1921 2 7 5 1 5.1.2 0 0 0 1 Helvetica-BoldOblique
+ 9 0013 1970 1 5 5 1 4.6.5 0 0 0 1 Courier
+ 10 0013 1970 1 7 5 1 4.6.5 0 0 0 1 Courier-Bold
+ 11 0013 1970 2 5 5 1 4.6.5 0 0 0 1 Courier-Oblique
+ 12 0013 1970 2 7 5 1 4.6.5 0 0 0 1 Courier-BoldOblique
+ 13 0013 1650 1 5 5 1 8.2.0 0 0 0 91 Symbol
+ 14 0013 1087 1 5 5 1 4.4.2 0 0 0 1 AvantGarde-Book
+ 15 0013 1087 2 5 5 1 4.4.2 0 0 0 1 AvantGarde-BookOblique
+ 16 0013 1087 1 6 5 1 4.4.2 0 0 0 1 AvantGarde-Demi
+ 17 0013 1087 2 6 5 1 4.4.2 0 0 0 1 AvantGarde-DemiOblique
+ 18 0013 1097 1 6 5 1 4.5.2 0 0 0 1 Bookman-Demi
+ 19 0013 1097 2 6 5 1 4.5.2 0 0 0 1 Bookman-DemiItalic
+ 20 0013 1097 1 4 5 1 4.5.2 0 0 0 1 Bookman-Light
+ 21 0013 1097 2 4 5 1 4.5.2 0 0 0 1 Bookman-LightItalic
+ 22 0013 1921 1 5 3 1 5.1.2 0 0 0 1 Helvetica-Narrow
+ 23 0013 1921 2 7 3 1 5.1.2 0 0 0 1 Helvetica-Narrow-Bold
+ 24 0013 1921 1 7 3 1 5.1.2 0 0 0 1 Helvetica-Narrow-BoldOblique
+ 25 0013 1921 2 5 3 1 5.1.2 0 0 0 1 Helvetica-Narrow-Oblique
+ 26 0013 1106 1 5 5 1 4.1.3 0 0 0 1 NewCenturySchlbk-Roman
+ 27 0013 1106 2 5 5 1 4.1.3 0 0 0 1 NewCenturySchlbk-Italic
+ 28 0013 1106 1 7 5 1 4.1.3 0 0 0 1 NewCenturySchlbk-Bold
+ 29 0013 1106 2 7 5 1 4.1.3 0 0 0 1 NewCenturySchlbk-BoldItalic
+ 30 0013 1276 1 5 5 1 4.4.2 0 0 0 1 Palatino-Roman
+ 31 0013 1276 2 5 5 1 4.4.2 0 0 0 1 Palatino-Italic
+ 32 0013 1276 1 7 5 1 4.4.2 0 0 0 1 Palatino-Bold
+ 33 0013 1276 2 7 5 1 4.4.2 0 0 0 1 Palatino-BoldItalic
+ 34 0013 1810 1 5 5 1 8.0.0 0 0 0 92 ZapfDingbats
+ 35 0013 1193 2 5 5 1 6.1.1 0 0 0 1 ZapfChancery-MediumItalic
diff -Naur a/include/mach.h b/include/mach.h
--- a/include/mach.h 1969-12-31 19:00:00.000000000 -0500
+++ b/include/mach.h 2017-12-19 22:34:41.145556770 -0500
@@ -0,0 +1,33 @@
+/* RAL-CGM Interpreter header file
+ *
+ * Linux specific setting for CGM interpreter
+ */
+
+/* Define Machine */
+
+#define LINUX
+
+/* Define Graphics system(s) */
+
+#define POSTSCRIPT
+#define BEZIER
+#define HERSHEY
+#define XW
+
+#define DATADIR "../data/"
+
+#define NAMELGTH 32
+#define EXTLGTH 8
+
+#define Posint64 unsigned long long
+#define MALLOCH
+#include <stdlib.h>
+
+#ifdef CGMOXW_C /* X-Window specific settings */
+
+#include <X11/cursorfont.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xatom.h>
+
+#endif
diff -Naur a/src/Makefile b/src/Makefile
--- a/src/Makefile 1969-12-31 19:00:00.000000000 -0500
+++ b/src/Makefile 2017-12-19 22:35:58.377556901 -0500
@@ -0,0 +1,333 @@
+# RAL-CGM Interpreter source Makefile: @(#) Makebase version 3.4
+#
+# Name of executable module (usually ../bin/ralcgm)
+#
+MODULE = ../bin/ralcgm
+#
+# Name of callable library (Optional) (usually ../bin/libcgm.a)
+#
+LIB = ../bin/libcgm.a
+#
+# Include file directory (usually ../include)
+#
+INCLUDE = ../include
+#
+# Data files directory (usually ../data)
+#
+DATADIR = ../data
+#
+# Main Interpreter object file (usually cgmmain.o)
+#
+MAIN = cgmmain.o
+#
+#
+#
+MAKEFILE = Makefile
+#
+# CGM input encoding - Object files
+# Include here files for each encoding that
+# may need to be processed; usually
+# cgmichar.o cgmitext.o cgmibin.o
+#
+INPUT = cgmichar.o cgmitext.o cgmibin.o
+#
+# CGM output encoding - Object files
+# Include here files for each encoding that
+# may be generated; usually
+# cgmochar.o cgmotext.o cgmobin.o
+#
+OUTPUT = cgmochar.o cgmotext.o cgmobin.o
+#
+# User callable Library (comment out if not required)
+#
+CGMLIB = cgmlib.o
+#
+# Optional Drivers
+#
+# IGL - Iris Graphics Library
+# PS - PostScript
+# XW - X-Windows
+# VID - Topaz Library
+#
+IGL = cgmoigl.o
+PS = cgmops.o
+XW = cgmoxw.o
+VID = cgmotpz.o
+TEK = cgmotek.o
+HPGL = cgmohpgl.o
+#
+# List of driver files to be used in generating the $(MODULE).
+#
+# The possible candidates are:
+#
+# $(OUTPUT) list of CGM output encodings defined above
+# $(IGL) Iris graphics library
+# $(XW) X-Windows
+# $(PS) PostScript
+# $(HPGL) HPGL
+# $(TEK) Tektronix 4200
+# $(VID) Video system
+#
+DRIVERS = $(PS) $(XW) $(HPGL) $(TEK)
+#
+# Input utilities Object files
+# These provides random access input and convenient
+# handling of input attributes
+#
+ERRUTILS = cgmerr.o
+ERRINCLUDES = $(INCLUDE)/cgmerr.h
+
+FILEUTILS = cgmfile.o
+FILEINCLUDES = $(INCLUDE)/cgmfile.h
+
+GENUTILS = $(FILEUTILS) $(ERRUTILS)
+GENINCS = $(FILEINCLUDES) \
+ $(ERRINCLUDES)
+
+RANUTILS = cgmrand.o cgmprof.o
+INPUTILS = cgminput.o
+#
+# Output utility Object files (only needed with output drivers)
+# These provide emulation of GDPs, filled areas
+# and other graphical operations. Not needed by all drivers
+# currently cgmgdp.o is used by XW, IGL & VID
+# cgmfill.o & cgmgraph.o are used by IGL only
+#
+ATTUTILS = cgmatt.o
+GDPUTILS = cgmgdp.o
+FILUTILS = cgmpoly.o cgmtrap.o cgmfill.o cgmgraph.o
+COLRUTILS = cgmcolr.o
+CELLUTILS = cgmcell.o
+PTSUTILS = cgmpts.o
+#
+OUTUTILS = $(ATTUTILS) $(GDPUTILS) $(FILUTILS) $(COLRUTILS) $(CELLUTILS) $(PTSUTILS)
+#
+# Text utility Object files
+# These provide software emulation of text and
+# generally useful text facilities.
+#
+# cgmtext.o - general text utility - PS & XW
+# cgmfont.o - general font utility - PS & XW
+# cgmbez.o - Bezier text - if wanted
+# cgmher.o - Hershey text - if wanted
+#
+FNTUTILS = cgmfont.o
+FNTINCLUDES = $(INCLUDE)/cgmfont.h
+TEXTUTILS = cgmtext.o
+TEXTINCLUDES = $(INCLUDE)/cgmtext.h
+#
+BEZIER = genbez
+BEZUTILS = cgmbez.o
+BEZLINK = $(BEZIER).o
+BEZDATA = $(DATADIR)/*.bfs
+BEZINCLUDES = $(INCLUDE)/cgmbez.h
+#
+HERSHEY = genher
+HERUTILS = cgmher.o
+HERLINK = $(HERSHEY).o
+HERDATA = $(DATADIR)/*.hfs
+HERINCLUDES = $(INCLUDE)/cgmher.h
+#
+# TXTSYS settings, supported text systems are:
+#
+# $(HERSHEY)
+# $(BEZIER)
+#
+TXTSYS = $(BEZIER) $(HERSHEY)
+#
+# TXTUTILS settings, supported text utilities are:
+#
+# $(HERUTILS)
+# $(BEZUTILS)
+# List of utility modules required;
+#
+TXTUTILS = $(BEZUTILS) $(HERUTILS)
+#
+#
+CGMUTILS = $(RANUTILS)\
+ $(INPUTILS)\
+ $(GENUTILS)\
+ $(OUTUTILS)\
+ $(TXTUTILS)\
+ $(TEXTUTILS)\
+ $(FNTUTILS)
+#
+# Set up names for the modules that make up `ralcgm' and `cgmlib'.
+#
+RALCGM = $(INPUT)\
+ $(OUTPUT)\
+ $(DRIVERS)\
+ $(CGMUTILS)
+
+LIBCGM = $(CGMLIB)\
+ $(OUTPUT)\
+ $(DRIVERS)\
+ $(INPUTILS)\
+ $(GENUTILS)\
+ $(OUTUTILS)\
+ $(TXTUTILS)\
+ $(TEXTUTILS)\
+ $(FNTUTILS)
+#
+# Local flags for Compiler (system dependent)
+#
+# Examples: (Iris 3130) -Zf -g -p
+# (Iris 4D) -O
+# (GNU C on Topaz) -O -m68881 -g
+# (Sun 3) -O -fswitch
+# (Sun 4) -O
+# (Unicos) -O -g
+#
+CFLAGS = -c -DPOSTSCRIPT="" -DXW="" -DHPGL="" -DTEK4200="" -DBEZIER="" -DHERSHEY=""
+#
+# Local flags for Linker (system dependent)
+# For X-windows, add some extra libraries (comment out otherwise)
+#
+# Examples: (Iris 3130) -Zg -lm
+# (Iris 4D) -lm -lgl_s -lX11_s -lc_s
+# (Topaz) -lE -lmalloc -lm
+# (Sun 3 or 4) -lm -lX11 -lc
+# (Unicos) -lm -lX11 -lnet -lc
+# (Unicos - scc) -lm -lX11 -lnet -lsc
+#
+LFLAGS = -lm -lX11
+#
+# Common include files
+#
+GENINCLUDES = $(INCLUDE)/cgmmach.h $(INCLUDE)/mach.h \
+ $(INCLUDE)/cgmtypes.h \
+ $(INCLUDE)/cgmstruc.h \
+ $(INCLUDE)/cgmelem.h \
+ $(INCLUDE)/cgmpar.h \
+ $(INCLUDE)/cgmtran.h \
+ $(INCLUDE)/cgmatt.h
+#
+# List of includes for the text system; must match the text utility
+# .o files given above.
+#
+INCLUDES = $(GENINCLUDES) $(TXTINCLUDES) $(FNTINCLUDES) \
+ $(BEZINCLUDES) $(HERINCLUDES) $(GENINCS)
+#
+# Define various commands in just one place.
+#
+# for Unicos LINK = segldr
+# AR = bld rv
+# all others LINK = cc $(LFLAGS)
+# AR = ar rv
+#
+COMPILE = cc
+LINK = cc
+AR = ar crs
+#
+# Main dependencies (should not need altering)
+
+ralcgm: $(MODULE) $(TXTSYS)
+ @echo "$(MODULE) is now made"
+
+cgmlib: $(LIB) $(TXTSYS)
+ @echo "$(LIB) is now made"
+
+iutils: $(INPUTILS) $(GENUTILS)
+
+outils: $(OUTUTILS)
+
+tutils: $(TXTUTILS)
+
+clean:
+ rm -f *.o core a.out $(TXTSYS)
+
+$(MODULE): $(MAIN) $(RALCGM)
+ $(LINK) $(MAIN) $(RALCGM) $(LFLAGS) -o $(MODULE)
+ chmod 755 $(MODULE)
+
+$(LIB): $(LIBCGM)
+ $(AR) $(LIB) $(LIBCGM)
+ chmod 644 $(LIB)
+
+# include file dependencies
+
+$(MAIN): $(INCLUDE)/cgminit.h $(GENINCLUDES) $(MAKEFILE)
+
+$(CGMLIB): $(INCLUDE)/cgmlib.h $(INCLUDE)/cgminit.h $(INCLUDE)/cgmin.h \
+ $(GENINCLUDES) $(MAKEFILE)
+
+$(INPUT) $(INPUTILS) $(RANUTILS): $(INCLUDE)/cgmin.h $(GENINCLUDES) $(MAKEFILE)
+
+$(GENUTILS): $(GENINCLUDES)
+
+$(OUTPUT) $(OUTUTILS): $(GENINCLUDES) $(MAKEFILE)
+
+$(DRIVERS): $(INCLUDE)/cgmout.h \
+ $(INCLUDES) \
+ $(MAKEFILE)
+
+$(FNTUTILS): $(FNTINCLUDES) \
+ $(INCLUDE)/cgmufont.h \
+ $(TXTINCLUDES) \
+ $(MAKEFILE)
+
+$(TEXTUTILS): $(TEXTINCLUDES) \
+ $(FNTINCLUDES) \
+ $(MAKEFILE)
+
+$(ERRUTILS): $(ERRINCLUDES) \
+ $(GENINCLUDES) \
+ $(MAKEFILE)
+
+$(BEZUTILS): $(BEZINCLUDES) \
+ $(INCLUDE)/cgmubez.h \
+ $(GENINCLUDES) \
+ $(MAKEFILE)
+
+$(BEZIER): $(BEZLINK) \
+ $(GENINCS) \
+ $(INCLUDE)/cgmubez.h \
+ $(BEZDATA) \
+ $(MAKEFILE)
+ $(LINK) $(BEZLINK) $(GENUTILS) $(LFLAGS) -o $(BEZIER)
+ ./$(BEZIER)
+ chmod 644 $(DATADIR)/*.bfb $(DATADIR)/fontdir.bez
+
+$(HERUTILS): $(HERINCLUDES) \
+ $(INCLUDE)/cgmuher.h \
+ $(GENINCLUDES) \
+ $(MAKEFILE)
+
+$(HERSHEY): $(HERLINK) \
+ $(GENINCS) \
+ $(INCLUDE)/cgmuher.h \
+ $(HERDATA) \
+ $(MAKEFILE)
+ $(LINK) $(HERLINK) $(GENUTILS) $(LFLAGS) -o $(HERSHEY)
+ ./$(HERSHEY)
+ chmod 644 $(DATADIR)/*.hfb $(DATADIR)/fontdir.her
+
+$(IGL): $(INCLUDE)/cgmigl.h \
+ $(INCLUDE)/cgmgdp.h \
+ $(INCLUDE)/cgmfill.h \
+ $(INCLUDE)/cgmgraph.h \
+ $(INCLUDE)/cgmpoly.h \
+ $(INCLUDE)/cgmtrap.h
+
+$(PS): $(INCLUDE)/cgmps.h \
+ $(INCLUDE)/cgmgdp.h \
+ $(INCLUDE)/cgmpoly.h \
+ $(INCLUDE)/cgmtrap.h
+
+$(XW): $(INCLUDE)/cgmxw.h \
+ $(INCLUDE)/cgmgdp.h
+
+$(HPGL): $(INCLUDE)/cgmhpgl.h \
+ $(INCLUDE)/cgmgdp.h \
+ $(INCLUDE)/cgmcolr.h
+
+$(TEK): $(INCLUDE)/cgmtek.h \
+ $(INCLUDE)/cgmgdp.h \
+ $(INCLUDE)/cgmcolr.h \
+ $(INCLUDE)/cgmcell.h \
+ $(INCLUDE)/cgmpts.h
+
+.c.o:
+ $(COMPILE) $(CFLAGS) -I$(INCLUDE) $<
+
+.SUFFIXES: .c .o

View file

@ -0,0 +1,240 @@
diff -Nur ralcgm-3.50.orig/CGMconfig ralcgm-3.50/CGMconfig
--- ralcgm-3.50.orig/CGMconfig Tue Apr 19 11:42:17 1994
+++ ralcgm-3.50/CGMconfig Mon Mar 19 23:10:54 2001
@@ -111,13 +111,13 @@
echo; exit
fi
-systems='sun3|sun4|cray|craypcc|iris|iris4d|indigo|rs6000|hpux|ultrix|decosf|topaz'
+systems='sun3|sun4|cray|craypcc|iris|iris4d|indigo|rs6000|hpux|ultrix|decosf|topaz|linux'
#
# Set the echo options - check the system.
#
case $1 in
-sun3|sun4|iris|ultrix|dec|rs6000)
+sun3|sun4|iris|ultrix|dec|rs6000|linux)
# Berkely echo format
el="-n"
er=""
@@ -269,6 +269,14 @@
cflags="-c -O -m68881"
lflags="-lE -lmalloc -lm"
;;
+linux)
+ system=linux
+ cflags="-c ${OPT}"
+ lflags="-lm"
+ xw="yes"
+ xlib="-lX11"
+ ar="ar crs"
+ ;;
esac
#
@@ -672,31 +680,31 @@
echo Your desired system will now be configured.
echo
-oututils="$(ATTUTILS)"
+oututils='$(ATTUTILS)'
if test "$gdpflag" = "yes"
then
- oututils=$oututils" $(GDPUTILS)"
+ oututils=$oututils' $(GDPUTILS)'
fi
if test "$filflag" = "yes"
then
- oututils=$oututils" $(FILUTILS)"
+ oututils=$oututils' $(FILUTILS)'
fi
if test "$colrflag" = "yes"
then
- oututils=$oututils" $(COLRUTILS)"
+ oututils=$oututils' $(COLRUTILS)'
fi
if test "$cellflag" = "yes"
then
- oututils=$oututils" $(CELLUTILS)"
+ oututils=$oututils' $(CELLUTILS)'
fi
if test "$ptsflag" = "yes"
then
- oututils=$oututils" $(PTSUTILS)"
+ oututils=$oututils' $(PTSUTILS)'
fi
sed "/^MODULE =/s!=.*\$!= $module!
diff -Nur ralcgm-3.50.orig/CGMinstall ralcgm-3.50/CGMinstall
--- ralcgm-3.50.orig/CGMinstall Tue Apr 19 11:42:17 1994
+++ ralcgm-3.50/CGMinstall Mon Mar 19 23:10:54 2001
@@ -111,13 +111,13 @@
echo; exit
fi
-systems='sun3|sun4|cray|craypcc|iris|iris4d|indigo|rs6000|hpux|ultrix|decosf|topaz'
+systems='sun3|sun4|cray|craypcc|iris|iris4d|indigo|rs6000|hpux|ultrix|decosf|topaz|linux'
#
# Set the echo options - check the system.
#
case $1 in
-sun3|sun4|iris|ultrix|dec|rs6000)
+sun3|sun4|iris|ultrix|dec|rs6000|linux)
# Berkely echo format
el="-n"
er=""
@@ -269,6 +269,14 @@
cflags="-c -O -m68881"
lflags="-lE -lmalloc -lm"
;;
+linux)
+ system=linux
+ cflags="-c ${OPT}"
+ lflags="-lm"
+ xw="yes"
+ xlib="-lX11"
+ ar="ar crs"
+ ;;
esac
#
@@ -672,31 +680,31 @@
echo Your desired system will now be configured.
echo
-oututils="$(ATTUTILS)"
+oututils='$(ATTUTILS)'
if test "$gdpflag" = "yes"
then
- oututils=$oututils" $(GDPUTILS)"
+ oututils=$oututils' $(GDPUTILS)'
fi
if test "$filflag" = "yes"
then
- oututils=$oututils" $(FILUTILS)"
+ oututils=$oututils' $(FILUTILS)'
fi
if test "$colrflag" = "yes"
then
- oututils=$oututils" $(COLRUTILS)"
+ oututils=$oututils' $(COLRUTILS)'
fi
if test "$cellflag" = "yes"
then
- oututils=$oututils" $(CELLUTILS)"
+ oututils=$oututils' $(CELLUTILS)'
fi
if test "$ptsflag" = "yes"
then
- oututils=$oututils" $(PTSUTILS)"
+ oututils=$oututils' $(PTSUTILS)'
fi
sed "/^MODULE =/s!=.*\$!= $module!
diff -Nur ralcgm-3.50.orig/include/cgmmach.h ralcgm-3.50/include/cgmmach.h
--- ralcgm-3.50.orig/include/cgmmach.h Mon Jun 12 15:18:12 1995
+++ ralcgm-3.50/include/cgmmach.h Mon Mar 19 23:10:54 2001
@@ -87,6 +87,9 @@
#ifndef Double
#define Double double
#endif
+#ifndef Posint64
+#define Posint64 unsigned long
+#endif
/* Define macros for some maths routines which may cause problems */
diff -Nur ralcgm-3.50.orig/include/mc_linux.h ralcgm-3.50/include/mc_linux.h
--- ralcgm-3.50.orig/include/mc_linux.h Thu Jan 1 01:00:00 1970
+++ ralcgm-3.50/include/mc_linux.h Mon Mar 19 23:10:54 2001
@@ -0,0 +1,33 @@
+/* RAL-CGM Interpreter header file
+ *
+ * Linux specific setting for CGM interpreter
+ */
+
+/* Define Machine */
+
+#define LINUX
+
+/* Define Graphics system(s) */
+
+#define POSTSCRIPT
+#define BEZIER
+#define HERSHEY
+#define XW
+
+#define DATADIR ""
+
+#define NAMELGTH 32
+#define EXTLGTH 8
+
+#define Posint64 unsigned long long
+#define MALLOCH
+#include <stdlib.h>
+
+#ifdef CGMOXW_C /* X-Window specific settings */
+
+#include <X11/cursorfont.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xatom.h>
+
+#endif
diff -Nur ralcgm-3.50.orig/src/cgmobin.c ralcgm-3.50/src/cgmobin.c
--- ralcgm-3.50.orig/src/cgmobin.c Fri Jun 16 15:10:19 1995
+++ ralcgm-3.50/src/cgmobin.c Mon Mar 19 23:11:52 2001
@@ -1593,7 +1593,8 @@
Enum real_type, real_or_vdc;
#endif
{
- Posint whole, exponent, fract, neg;
+ Posint whole, exponent, neg;
+ Posint64 fract;
Prec prec;
Double f;
@@ -1610,7 +1611,7 @@
prec = (real_or_vdc == VDC ? curbin.vdc_whole
: curbin.real_whole);
whole = (Posint)( neg ? -((floor(x))) : x );
- fract = (Posint)( ( neg ? x + (Double)whole : x - (Double)whole )
+ fract = (Posint64)( ( neg ? x + (Double)whole : x - (Double)whole )
* ( 1L<<prec-2 ) * 4.0 );
#ifdef DEBUG
@@ -1669,7 +1670,7 @@
exponent--;
}
}
- fract = (Long) ( (f - 1.0) * (Double)(1L<<(prec == 12 ? 52 : 23)) );
+ fract = (Posint64) ( (f - 1.0) * (Double)(1L<<(prec == 12 ? 52 : 23)) );
}
#ifdef DEBUG
diff -Nur ralcgm-3.50.orig/src/cgmrand.c ralcgm-3.50/src/cgmrand.c
--- ralcgm-3.50.orig/src/cgmrand.c Tue Jun 13 17:32:50 1995
+++ ralcgm-3.50/src/cgmrand.c Mon Mar 19 23:10:54 2001
@@ -349,7 +349,11 @@
/* Correct any overrun */
if(cgmoverrun)
{
+#ifdef LINUX
+ disk_addr.__pos -= cgmoverrun;
+#else
disk_addr -= cgmoverrun;
+#endif
cgmoverrun = 0;
}

View file

@ -0,0 +1,101 @@
#!/bin/sh
# Slackware build script for ralcgm
# Written by B. Watson (yalhcru@gmail.com)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
PRGNAM=ralcgm
VERSION=${VERSION:-3.50}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
mkdir -p $PRGNAM-$VERSION
cd $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.Z
chown -R root:root .
# Departure from template here due to annoying perms in the tarball.
find . -type d -exec chmod 755 {} \+
find . -type f -exec chmod 644 {} \+
# This SlackBuild owes a great debt to PLD Linux:
# git://git.pld-linux.org/packages/ralcgm.git
# Add "linux" as a supported OS.
patch -p1 < $CWD/ralcgm-linux.patch
# Patch was created by running the interactive config, then diffing against
# the un-configured source. Also file locations were edited in mach.h.
patch -p1 < $CWD/no_interactive_config.diff
# Compiler warnings scare me.
patch -p1 < $CWD/fix_warnings.diff
# These 3 stanzas come from PLD's ralcgm.spec:
# The genbez and genher tools need to be built with DATADIR set to ../data/
make -j1 -C src COMPILE="gcc $SLKCFLAGS" cgmfile.o cgmerr.o genbez genher
# ..everything else needs it as /usr/share/ralcgm/.
sed -i '/^#define *DATADIR/s,"\..*,"/usr/share/ralcgm/",' include/mach.h
# Clean up, then build for real.
rm -f src/cgmfile.o src/cgmerr.o
make -C src $PRGNAM cgmlib COMPILE="gcc $SLKCFLAGS"
# Manual install, since the "install" script doesn't actually install.
# Not sure that all the includes are necessary, but they shouldn't do
# any harm.
mkdir -p $PKG/usr/bin $PKG/usr/lib$LIBDIRSUFFIX $PKG/usr/man/man1 \
$PKG/usr/share/$PRGNAM $PKG/usr/include/$PRGNAM
install -s -oroot -groot -m0755 bin/$PRGNAM $PKG/usr/bin
install -oroot -groot -m0644 bin/libcgm.a $PKG/usr/lib$LIBDIRSUFFIX
install -oroot -groot -m0644 data/* $PKG/usr/share/$PRGNAM
install -oroot -groot -m0644 include/* $PKG/usr/include/$PRGNAM
gzip -9c < docs/$PRGNAM.man > $PKG/usr/man/man1/$PRGNAM.1.gz
# The INSTALL actually has somewhat useful info.
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README docs/INSTALL examples $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,10 @@
PRGNAM="ralcgm"
VERSION="3.50"
HOMEPAGE="http://www.agocg.ac.uk/train/cgm/ralcgm.htm"
DOWNLOAD="http://web.warwick.ac.uk/ftp/x11/ralcgm-3.50.tar.Z"
MD5SUM="c132d8533527c35eb99581ed7cc738db"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="B. Watson"
EMAIL="yalhcru@gmail.com"

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
ralcgm: ralcgm (view/convert CGM vector image files)
ralcgm:
ralcgm: RAL-CGM is a program to translate or interpret CGM (Computer Graphics
ralcgm: Metafile) files, either to a different encoding (Binary, Character
ralcgm: or Clear Text) or to view on a terminal or to send to a plotter
ralcgm: (PostScript or HPGL).
ralcgm:
ralcgm: It can be used as an ImageMagick or GraphicsMagick delegate to
ralcgm: convert from CGM format.
ralcgm:
ralcgm: