PORTNAME= spl
PORTVERSION= 1.2.1
PORTREVISION= 4
PORTREVISION= 5
CATEGORIES= lang
MASTER_SITES= http://shakespearelang.sourceforge.net/download/
MAINTAINER= ports@FreeBSD.org
MAINTAINER= fuz@fuz.su
COMMENT= Shakespeare programming language
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
BROKEN_FreeBSD_13= ld: error: duplicate symbol: cast
BROKEN_FreeBSD_14= ld: error: duplicate symbol: cast
USES= bison gmake
OPTIONS_DEFINE= EXAMPLES
ALL_EXAMPLES= Makefile fibonacci.spl fibonacci2.spl guess.spl hello.spl \
primes.spl reverse.spl shakesbeer.spl
post-patch:
.for f in . examples
${REINPLACE_CMD} -e 's,= gcc,?= gcc,' -e 's,^CCFLAGS.*,CFLAGS += -Wall,' \
--- libspl.c.orig 2021-07-20 09:38:16 UTC
+++ libspl.c
@@ -27,6 +27,7 @@ USA.
#include <stdio.h>
#include <stdlib.h>
+#define GLOBAL
#include "spl.h"
#include "strutils.h"
-
--- spl.h.orig 2021-07-20 09:35:24 UTC
+++ spl.h
@@ -43,13 +43,17 @@ typedef struct {
/* global variables */
-CHARACTER **cast;
-CHARACTER *first_person;
-CHARACTER *second_person;
+#ifndef GLOBAL
+# define GLOBAL extern
+#endif
-int truth_flag;
-int num_on_stage;
-int num_cast;
+GLOBAL CHARACTER **cast;
+GLOBAL CHARACTER *first_person;
+GLOBAL CHARACTER *second_person;
+
+GLOBAL int truth_flag;
+GLOBAL int num_on_stage;
+GLOBAL int num_cast;
/* function prototypes */
extern void activate_character(int line, CHARACTER *character);