]> git.cameronkatri.com Git - bsdgames-darwin.git/commitdiff
Integrate Warp Kit into the NetBSD build
authorkamil <kamil@NetBSD.org>
Tue, 10 Nov 2020 08:49:08 +0000 (08:49 +0000)
committerkamil <kamil@NetBSD.org>
Tue, 10 Nov 2020 08:49:08 +0000 (08:49 +0000)
Fix the build and make it install and run with minimal required changes.

16 files changed:
Makefile
warp/Makefile
warp/config.h
warp/intrp.c
warp/score.c
warp/sig.c
warp/sig.h
warp/sm.c
warp/term.c
warp/term.h
warp/util.c
warp/util.h
warp/version.c
warp/warp.c
warp/warp.h
warp/warp.news

index 338af66d385d103437a070408565c652b22da818..4cef47099e253f63765499eac6eb0db47328fa8e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
-#      $NetBSD: Makefile,v 1.29 2013/11/12 17:46:20 mbalmer Exp $
+#      $NetBSD: Makefile,v 1.30 2020/11/10 08:49:08 kamil Exp $
 #      @(#)Makefile    8.3 (Berkeley) 7/24/94
 
-# Missing: dungeon warp
+# Missing: dungeon
 # Moved: chess
 # Don't belong: xneko xroach
 
@@ -14,7 +14,7 @@ SUBDIR=       adventure arithmetic atc \
        hack hals_end hangman hunt larn mille monop morse number \
        phantasia pig pom ppt primes quiz \
        rain random robots rogue sail snake tetris trek \
-       wargames worm worms wtf wump
+       wargames warp worm worms wtf wump
 
 .if ${MKCXX} != "no"
 SUBDIR+=       dab 
index 0ae4411d33ea7f57dff18354d585e431825b3b09..e48fbf3ebeaabef47cd8306054990053d3f86282 100644 (file)
@@ -1,61 +1,79 @@
-CFLAGS+=-O
+#      $NetBSD: Makefile,v 1.2 2020/11/10 08:49:08 kamil Exp $
+
+.include <bsd.own.mk>
+
+PROG=  warp
+
 SRCS=  bang.c init.c intrp.c move.c object.c play.c score.c sig.c term.c \
        them.c us.c util.c version.c warp.c weapon.c
-OBJS=  bang.o init.o intrp.o move.o object.o play.o score.o sig.o term.o \
-       them.o us.o util.o version.o warp.o weapon.o
-
-warp: ${OBJS}
-       ${CC} ${OBJS} -o $@ -ltermlib -lm
-
-install: warp
-       export PATH || exit 1
-       - mv $(bin)/warp $(bin)/warp.old
-       - if test `pwd` != $(bin); then cp $(public) $(bin); fi
-       - cd $(bin); chmod 755 $(public); chown '$(CHOWNER)' $(public)
-       - chmod 4711 $(bin)/warp
-       - chmod 755 makedir
-       - ./makedir `./filexp $(privlib)`
-       - \
-if test `pwd` != `./filexp $(privlib)`; then \
-cp $(private) `./filexp $(privlib)`; \
-fi
-       - \
-cd `./filexp $(privlib)`; \
-chmod 755 $(private); \
-chown '$(CHOWNER)' . $(private); \
-cp /dev/null save.blurfl
-       - \
-if test ! -f `./filexp $(privlib)/warp.news`; then \
-cp warp.news `./filexp $(privlib)`; \
-fi
-       - \
-if test `pwd` != $(mansrc); then \
-for page in $(manpages); do \
-cp $$page $(mansrc)/`basename $$page .man`.$(manext); \
-done; \
-fi
-
-clean:
-       rm -f warp core ${OBJS}
+
+DPADD= ${LIBTERMLIB} ${LIBM} ${LIBCOMPAT}
+LDADD= -ltermlib -lm -lcompat
+
+CPPFLAGS+=-DHAVETERMLIB
+
+CLEANFILES+=sm sm.lo smap.0 smap.1 smap.2 smap.3 smap.4 smap.5 smap.6 smap.7
+CLEANFILES+=warp.6
+HIDEGAME=hidegame
+SETGIDGAME=yes
+MAN=   warp.6
+
+warp.6:
+       ${_MKTARGET_CREATE}
+       cat ${.CURDIR}/warp.man > ${.TARGET}
+
+DPSRCS+=smap.0 smap.1 smap.2 smap.3 smap.4 smap.5 smap.6 smap.7
 
 smap.0: smp.0 sm
-       sm <smp.0 >smap.0
+       ${_MKTARGET_CREATE}
+       ./sm < ${.CURDIR}/smp.0 > ${.TARGET}
+
 smap.1: smp.1 sm
-       sm <smp.1 >smap.1
+       ${_MKTARGET_CREATE}
+       ./sm < ${.CURDIR}/smp.1 > ${.TARGET}
+
 smap.2: smp.2 sm
-       sm <smp.2 >smap.2
+       ${_MKTARGET_CREATE}
+       ./sm < ${.CURDIR}/smp.2 > ${.TARGET}
+
 smap.3: smp.3 sm
-       sm <smp.3 >smap.3
+       ${_MKTARGET_CREATE}
+       ./sm < ${.CURDIR}/smp.3 > ${.TARGET}
+
 smap.4: smp.4 sm
-       sm <smp.4 >smap.4
+       ${_MKTARGET_CREATE}
+       ./sm < ${.CURDIR}/smp.4 > ${.TARGET}
+
 smap.5: smp.5 sm
-       sm <smp.5 >smap.5
+       ${_MKTARGET_CREATE}
+       ./sm < ${.CURDIR}/smp.5 > ${.TARGET}
+
 smap.6: smp.6 sm
-       sm <smp.6 >smap.6
+       ${_MKTARGET_CREATE}
+       ./sm < ${.CURDIR}/smp.6 > ${.TARGET}
+
 smap.7: smp.7 sm
-       sm <smp.7 >smap.7
-sm: sm.c
-       ${CC} sm.c -o $@
+       ${_MKTARGET_CREATE}
+       ./sm < ${.CURDIR}/smp.7 > ${.TARGET}
+
+sm: sm.lo
+       ${_MKTARGET_LINK}
+       ${HOST_LINK.c} -o ${.TARGET} ${.ALLSRC}
+
+.if ${MKSHARE} != "no"
+FILES=smap.0 smap.1 smap.2 smap.3 smap.4 smap.5 smap.6 smap.7
+FILES+=warp.doc warp.news README
+FILESDIR=/usr/share/games/warp
+.endif
+
+CFLAGS+= -Wno-error=old-style-definition -Wno-error=strict-prototypes
+CFLAGS+= -Wno-error=comment -Wno-error=maybe-uninitialized
+CFLAGS+= -Wno-error=discarded-qualifiers -Wno-error=dangling-else
+CFLAGS+= -Wno-error=char-subscripts -Wno-error=parentheses
+CFLAGS+= -Wno-error=unused-value -Wno-error=format-extra-args
+CFLAGS+= -Wno-error=format-overflow= -Wno-error=builtin-declaration-mismatch
+CFLAGS+= -Wno-error=format= -Wno-error=sign-compare -Wno-error=return-type
+CFLAGS+= -Wno-error=unused-label -Wno-error=unused-variable
+CFLAGS+= -Wno-error=format-nonliteral -Wno-error=implicit-fallthrough=
 
-depend: ${SRCS}
-       mkdep ${SRCS}
+.include <bsd.prog.mk>
index 3d3aad41d48db4380f216cf99b4ca683efb0c857..b2c1b68a34fc6a4d1eb3572386dc5e47f8429d65 100644 (file)
 #endif
 
 /* warp private library, may use ~ expansion, %x and %l */
-#define PRIVLIB "/usr/games/lib/warp"          /**/
-
+#define PRIVLIB "/usr/share/games/warp"                /**/
index d2aa729c524dd0cca1ecf6325e8c21267f262cac..0379d1becf0246989c4396cc8cf62dc0cd76e333 100644 (file)
@@ -257,6 +257,21 @@ getout:
 }
 #endif
 
+static char *mygets(char *str, size_t n)
+{
+    char *ret;
+    size_t last;
+
+    if ((ret = fgets(str, n, stdin)) != NULL) {
+        last = strlen(str) - 1;
+
+        if (str[last] == '\n')
+            str[last] = '\0';
+    }
+
+    return ret;
+}
+
 /* interpret interpolations */
 
 char *
@@ -367,7 +382,7 @@ char *stoppers;
                    pattern = dointerp(scrbuf,(sizeof scrbuf),pattern+1,"\"");
                    fputs(scrbuf,stdout);
                    resetty();
-                   gets(scrbuf);
+                   mygets(scrbuf, sizeof(scrbuf));
                    crmode();
                    raw();
                    noecho();
index 8695f4f9695eeb709c2252d19a8d54844f18bdac..f36e6595b14883706c89dad6d231540184d56ff5 100644 (file)
@@ -35,6 +35,7 @@ score_init()
     Reg2 int i;
     FILE *savfil;
 
+#if 0
     if (stat(SAVEDIR,&filestat)) {
        printf("Cannot access %s\r\n",SAVEDIR);
        finalize(1);
@@ -47,6 +48,7 @@ score_init()
        printf("%s is not protected correctly (must be u+rw o+rx).\r\n",SAVEDIR);
        finalize(1);
     }
+#endif
     
 #ifdef SCOREFULL
     interp(longlognam, sizeof longlognam, "%N");
@@ -535,12 +537,12 @@ score()
     Reg1 FILE *logfd;
     Reg2 FILE *outfd;
     Reg3 int i;
-    long nowtime, time();
+    time_t nowtime;
     char *scoreboard;
 
     for (i=0; link(LOGFILE, LOCKFILE) == -1 && i<10; i++)
        sleep(1);
-    nowtime = time((long *)0);
+    nowtime = time(NULL);
     strcpy(cdate,ctime(&nowtime));
     if ((logfd = fopen(LOGFILE,"a")) != NULL) {
        fprintf(logfd,
index 3be78777591d04aeefde3620b239fdff9c83e594..18e645644b454a27220f3be0e6419db2bd1e3387 100644 (file)
@@ -58,7 +58,7 @@ sig_init()
 
 #ifdef SIGTSTP
 void
-cont_catcher()
+cont_catcher(int x)
 {
 #ifndef lint
     sigset(SIGCONT,cont_catcher);
@@ -110,7 +110,7 @@ int status;
 /* come here on signal other than interrupt, stop, or cont */
 
 void
-sig_catcher(signo)
+sig_catcher(int signo)
 {
 #ifdef VERBOSE
     static char *signame[] = {
@@ -204,7 +204,7 @@ sig_catcher(signo)
 /* come here on stop signal */
 
 void
-stop_catcher()
+stop_catcher(int sig)
 {
     if (!waiting) {
        resetty();                      /* this is the point of all this */
index 46fe7d80d77e42ff45d7e6086463103632287156..d853705928d574f76837f3682f21beb012a31954 100644 (file)
@@ -6,10 +6,10 @@
  * 
  */
 
-void sig_catcher();
+void sig_catcher(int);
 #ifdef SIGTSTP
-void cont_catcher();
-void stop_catcher();
+void cont_catcher(int);
+void stop_catcher(int);
 #endif
 void mytstp();
 void sig_init();
index 8fb657c3810f12a057931c5a42208a9d42320de4..4bbe328f9549955c28dd3014457ad14de16ca3e1 100644 (file)
--- a/warp/sm.c
+++ b/warp/sm.c
@@ -8,8 +8,10 @@
 
 #include <stdio.h>
 #include <ctype.h>
+#include <stdlib.h>
 #include "config.h"
 
+int
 main()
 {
     char screen[23][90], buf[10];
index 27c36b0179cdfc7bcd1ddd740749317457a4495a..76723df44db76d718e68b0044086a2d734ac2278 100644 (file)
@@ -556,9 +556,9 @@ rewrite()
     display_status();
 }
 
-char
+int
 cmstore(ch)
-Reg1 char ch;
+Reg1 int ch;
 {
     *maxcmstring++ = ch;
 }
index 0c13d324fa9548a14f53eaaec28260aa8e8437b8..1ae6f164b5742722f765a527e5b14528250afedc 100644 (file)
  * 
  */
 
+#ifndef TERM_H
+#define TERM_H
+
+#include "util.h"
+
+/* Compat with old termios. */
+#ifndef ECHO
+#define ECHO 8
+#endif
+
 /* warp will still work without the following, but may get ahead at low speed */
 #ifdef TIOCOUTQ                /* chars left in output queue */
 #define output_pending() (ioctl(1, TIOCOUTQ, &iocount),iocount)
@@ -110,7 +120,7 @@ EXT char INTRCH INIT('\03');
 #              endif /* lint */
 #          else /* RDCHK */
 #              ifndef O_NDELAY /* assert O_NDELAY */
-                   ??? PENDING isn't defined correctly in warp.h
+                   ??? PENDING is not defined correctly in warp.h
 #              endif
                EXT int devtty INIT(0);
 #              ifndef lint
@@ -121,7 +131,7 @@ EXT char INTRCH INIT('\03');
 #          endif /* RDCHK */
 #      endif /* FIONREAD */
 #   else /* PENDING */
-       ??? warp won't work without PENDING
+       ??? warp will not work without PENDING
 #      ifndef lint
 #          define input_pending() (nextin!=nextout)
 #      else
@@ -149,7 +159,7 @@ EXT char INTRCH INIT('\03');
 #              endif /* lint */
 #          else /* RDCHK */
 #              ifndef O_NDELAY /* assert O_NDELAY */
-                   ??? PENDING isn't defined correctly in warp.h
+                   ??? PENDING is not defined correctly in warp.h
 #              endif
                EXT int devtty INIT(0);
                EXT bool is_input INIT(FALSE);
@@ -163,7 +173,7 @@ EXT char INTRCH INIT('\03');
 #          endif /* RDCHK */
 #      endif /* FIONREAD */
 #   else /* PENDING */
-       ??? warp won't work without PENDING
+       ??? warp will not work without PENDING
 #      define read_tty(addr,size) read(0,addr,size)
 #      define input_pending() (FALSE)
 #   endif /* PENDING */
@@ -278,7 +288,6 @@ EXT char KILLCH;            /* line delete character */
 #define standout() do_tc(SO,1)
 #define un_standout() do_tc(SE,1)
 #define up_line() do_tc(UP,1)
-#define carriage_return() do_tc(CR,1)
 #define dingaling() do_tc(VB,1)
 #else
   ????????             /* up to you */
@@ -305,4 +314,6 @@ void do_tc();
 int comp_tc();
 void helper();
 void rewrite();
-char cmstore();
+int cmstore(int);
+
+#endif
index 246f0de9874acb7d5d388b76adcb1a05e6afc432..4f5d2960f612befee4e363cd1b145736e1490b54 100644 (file)
@@ -97,7 +97,6 @@ safemalloc(size)
 MEM_SIZE size;
 {
     char *ptr;
-    char *malloc();
 
     ptr = malloc(size?size:1); /* malloc(0) is NASTY on our system */
     if (ptr != Nullch)
index 9ae4332c9c1e9dd6a3e763062a20230048b95939..653818695bf25b7af111c100113077646df2f043 100644 (file)
@@ -54,7 +54,7 @@ void movc3();
 void no_can_do();
 int exdis();
 
-EXT bool waiting INIT(FALSE);          /* are we waiting for subprocess (in doshell)? */
+#define waiting 0
 
 #ifdef NOTDEF
 EXT int len_last_line_got INIT(0);
index 03dcd4499a81d2d3026a8abb9842c246f5a4f566..50c29cb6415b40debe7f768ce4249eed3e920bd7 100644 (file)
@@ -10,6 +10,8 @@
 #include "INTERN.h"
 #include "version.h"
 
+#include <stdio.h>
+
 /* Print out the version number. */
 
 void
index 2c1c09480f29f130186116b8abacfda0f1917acc..e2571775ccb4227856292f27850f5ebb9c421cec 100644 (file)
@@ -132,6 +132,7 @@ char rcsid[] = "@(#)Header: warp.c,v 7.0.1.3 86/12/12 17:07:44 lwall Exp";
 #include "version.h"
 #include "weapon.h"
 
+int
 main(argc,argv)
 int argc;
 char *argv[];
index 984c407fbcad6affb214b9cab48cc3fcef5e32f1..77035fdd9afa900b8b48909d940bdf7545c648e9 100644 (file)
  * 
  */
 
+#ifndef WARP_H
+#define WARP_H
+
 extern int errno;
 
 #include "config.h"    /* generated by Configure script */
 
+#include <term.h>
 #include <stdio.h>
 #include <signal.h>
 #include <ctype.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <errno.h> 
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
 
 /* WARPLIB must be readable and writeable by warp, but not by anyone who you
  * don't trust.  In other words, to set up warp so everyone can play and
@@ -32,7 +39,7 @@ extern int errno;
  * access.)
  */
 
-#define SAVEDIR "./"
+#define SAVEDIR "/var/games"
 #define NEWSFILE "warp.news"
 #define HELPFILE "warp.doc"
 #define LOCKFILE ".warp.lock"
@@ -100,6 +107,8 @@ EXT char amb[YSIZE][XSIZE];
 
 #ifdef TERMIO
 #   include <termio.h>
+#elif defined TERMIOS
+#   include <termios.h>
 #else
 #   include <sgtty.h>
 #endif
@@ -429,10 +438,6 @@ EXT int ambsize;
 
 EXT char spbuf[512];
 
-char *index(), *ttyname(), *malloc(), *ctime(), *strcpy();
-char *getenv(), cmstore(), *tgoto();
-long atol();
-
 #define Fclose (void)fclose
 #define Fflush (void)fflush
 #define Fgets (void)fgets
@@ -443,3 +448,5 @@ long atol();
 #define Tract (void)tract
 #define Make_object (void)make_object
 #define Read_tty (void)read_tty
+
+#endif
index eef59cdf6a619d4e9618df8ad4e3e6d51f172a7f..2fedc67c6f6a921fc661b85ad1f01f3c3f8a8d1b 100644 (file)
@@ -1,4 +1,3 @@
                          ***  WARP NEWS  ***
 
-Welcome to warp!  Please send any gripes, comments, fantastic ideas, etc.
-to lwall@sdcrdcf.uucp (Larry Wall).
+Welcome to warp!