blob: 3ca20a8cab4d5e2eee780008fa21cca2edd28ab6 [file] [log] [blame]
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001Do not use the JD_TERMCAP macro since we cannot get the terminfo from
2ncurses pkg-config, but fix the macro to not reference host directories.
3Also add src/test/Makefile.in so that we can use -ltermcap if we want to.
4
Andrew Geissler595f6302022-01-24 19:11:47 +00005Upstream isn't going to take this, as it forces blank values and
6removes functionality without replacing it.
7Upstream-Status: Inappropriate [see above]
Brad Bishopd7bf8c12018-02-25 22:55:05 -05008
9Signed-off-by: Joe Slater <joe.slater@windriver.com>
10
11
12--- a/autoconf/aclocal.m4
13+++ b/autoconf/aclocal.m4
14@@ -506,14 +506,10 @@ then
15 else
16 MISC_TERMINFO_DIRS=""
17 fi
18-JD_Terminfo_Dirs="$MISC_TERMINFO_DIRS \
19- /usr/lib/terminfo \
20- /usr/share/terminfo \
21- /usr/share/lib/terminfo \
22- /usr/local/lib/terminfo"
23+
24 TERMCAP=-ltermcap
25
26-for terminfo_dir in $JD_Terminfo_Dirs
27+for terminfo_dir in $MISC_TERMINFO_DIRS
28 do
29 if test -d $terminfo_dir
30 then
31--- a/autoconf/configure.ac
32+++ b/autoconf/configure.ac
33@@ -249,7 +249,14 @@ AC_CHECK_SIZEOF(size_t)
34 JD_CHECK_LONG_LONG
35 JD_LARGE_FILE_SUPPORT
36
37-JD_TERMCAP
38+dnl Do not use JD_TERMCAP, since we cannot get terminfo from ncurses*-config anymore.
39+dnl Set TERMCAP=-ltermcap and AC_DEFINE(USE_TERMCAP,1,[Define to use termcap])
40+dnl to use libtermcap.
41+TERMCAP=""
42+MISC_TERMINFO_DIRS=""
43+AC_SUBST(TERMCAP)dnl
44+AC_SUBST(MISC_TERMINFO_DIRS)dnl
45+
46 JD_GCC_WARNINGS
47
48 JD_SET_OBJ_SRC_DIR(src)
49@@ -364,7 +371,7 @@ AC_CONFIG_HEADER(src/sysconf.h:src/confi
50 dnl AC_CONFIG_SUBDIRS(demo)
51
52 AC_OUTPUT(Makefile:autoconf/Makefile.in \
53- src/Makefile slsh/Makefile modules/Makefile demo/Makefile \
54+ src/Makefile src/test/Makefile slsh/Makefile modules/Makefile demo/Makefile \
55 slang.pc:autoconf/slangpc.in \
56 )
57
58--- /dev/null
59+++ b/src/test/Makefile.in
60@@ -0,0 +1,90 @@
61+# -*- make -*-
62+TEST_SCRIPTS_SLC = argv syntax scircuit eqs sscanf loops arith array strops \
63+ bstring pack stdio assoc selfload struct nspace path ifeval anytype arrmult \
64+ time utf8 except bugs list regexp method deref naninf overflow sort \
65+ longlong signal dollar req docfun debug qualif compare break multline \
66+ stack misc posixio posdir proc math
67+
68+TEST_SCRIPTS_NO_SLC = autoload nspace2 prep
69+
70+TEST_SCRIPTS = $(TEST_SCRIPTS_SLC) $(TEST_SCRIPTS_NO_SLC)
71+
72+TEST_PGM = sltest
73+MEMCHECK = valgrind --tool=memcheck --leak-check=yes --leak-resolution=med --num-callers=20
74+RUN_TEST_PGM = ./$(TEST_PGM)
75+SLANGINC = ..
76+SLANGLIB = ../$(ARCH)objs
77+OTHER_LIBS = -lm @TERMCAP@
78+OTHER_CFLAGS =
79+
80+runtests: $(TEST_PGM) cleantmp
81+ @tests=""; \
82+ for test in $(TEST_SCRIPTS); \
83+ do \
84+ tests="$$tests $$test.sl"; \
85+ done; \
86+ for test in $(TEST_SCRIPTS_SLC); \
87+ do \
88+ tests="$$tests $$test.slc"; \
89+ done; \
90+ MAKERUNNING=1 ./runtests.sh $$tests
91+# @touch $(TEST_PGM).c
92+
93+update: $(TEST_PGM) cleantmp
94+ @tests=""; \
95+ for X in $(TEST_SCRIPTS); \
96+ do \
97+ if [ ! -e lastrun/$$X.sl ] || [ $$X.sl -nt lastrun/$$X.sl ] ; \
98+ then \
99+ tests="$$tests $$X.sl"; \
100+ fi \
101+ done; \
102+ for X in $(TEST_SCRIPTS_SLC); \
103+ do \
104+ if [ ! -e lastrun/$$X.slc ] || [ $$X.sl -nt lastrun/$$X.slc ] ; \
105+ then \
106+ tests="$$tests $$X.slc"; \
107+ fi \
108+ done; \
109+ if test -n "$$tests"; \
110+ then \
111+ MAKERUNNING=1 ./runtests.sh $$tests; \
112+ fi
113+# @touch $(TEST_PGM).c
114+
115+memcheck_runtests: $(TEST_PGM) cleantmp
116+ @echo ""
117+ @echo "Running tests:"
118+ @echo ""
119+ -@for X in $(TEST_SCRIPTS); \
120+ do \
121+ $(MEMCHECK) --log-file=log.$${X} $(RUN_TEST_PGM) $$X.sl; \
122+ grep ERROR log.$${X}; grep 'lost: [^0]' log.$${X}; \
123+ $(MEMCHECK) --log-file=log.$${X}_u $(RUN_TEST_PGM) -utf8 $$X.sl; \
124+ grep ERROR log.$${X}_u; grep 'lost: [^0]' log.$${X}_u; \
125+ done
126+# touch $(TEST_PGM).c
127+
128+memcheck_runtests_slc: $(TEST_PGM) cleantmp
129+ @echo ""
130+ @echo "Running tests:"
131+ @echo ""
132+ -@for X in $(TEST_SCRIPTS_SLC); \
133+ do \
134+ $(MEMCHECK) --log-file=log.$${X}_c $(RUN_TEST_PGM) $$X.slc; \
135+ $(MEMCHECK) --log-file=log.$${X}_uc $(RUN_TEST_PGM) -utf8 $$X.slc; \
136+ done
137+# touch $(TEST_PGM).c
138+
139+memcheck: memcheck_runtests memcheck_runtests_slc
140+
141+$(TEST_PGM): $(TEST_PGM).c assoc.c list.c $(SLANGLIB)/libslang.a
142+ $(CC) $(CFLAGS) $(OTHER_CFLAGS) $(LDFLAGS) $(TEST_PGM).c -o $(TEST_PGM) -I$(SLANGINC) -L$(SLANGLIB) -lslang $(OTHER_LIBS)
143+cleantmp:
144+ -/bin/rm -rf tmpfile*.* tmpdir*.*
145+clean: cleantmp
146+ -/bin/rm -f *~ *.o *.log log.pid* *.slc log.* *.log-*
147+distclean: clean
148+ /bin/rm -f $(TEST_PGM) $(TEST_PGM).gcda $(TEST_PGM).gcno
149+.PHONY: clean memcheck runtests memcheck_runtests_slc memcheck_runtests cleantmp
150+