Error in the formulation of the new warning, spotted by Dominic Dunlop
[p5sagit/p5-mst-13.2.git] / Makefile.SH
index f61d0db..ecd036b 100644 (file)
@@ -155,10 +155,20 @@ esac
 
 : Prepare dependency lists for Makefile.
 dynamic_list=' '
+extra_dep=''
 for f in $dynamic_ext; do
     : the dependency named here will never exist
       base=`echo "$f" | sed 's/.*\///'`
-    dynamic_list="$dynamic_list lib/auto/$f/$base.$dlext"
+    this_target="lib/auto/$f/$base.$dlext"  
+    dynamic_list="$dynamic_list $this_target"
+
+    : Parallel makes reveal that we have some interdependencies
+    case $f in
+       Math/BigInt/FastCalc) extra_dep="$extra_dep
+$this_target: lib/auto/List/Util/Util.$dlext" ;;
+       Unicode/Normalize) extra_dep="$extra_dep
+$this_target: uni.data" ;;
+    esac
 done
 
 static_list=' '
@@ -379,12 +389,13 @@ lintflags = \
     -erroff=E_BAD_SIGN_EXTEND \
     -erroff=E_BLOCK_DECL_UNUSED \
     -erroff=E_CASE_FALLTHRU \
+    -erroff=E_CONST_EXPR \
     -erroff=E_CONSTANT_CONDITION \
+    -erroff=E_END_OF_LOOP_CODE_NOT_REACHED \
     -erroff=E_EQUALITY_NOT_ASSIGNMENT \
     -erroff=E_EXPR_NULL_EFFECT \
     -erroff=E_FALSE_LOGICAL_EXPR \
     -erroff=E_INCL_NUSD \
-    -erroff=E_INDISTING_FROM_TRUNC \
     -erroff=E_LOOP_EMPTY \
     -erroff=E_MAIN_PARAM \
     -erroff=E_POINTER_TO_OBJECT \
@@ -393,6 +404,32 @@ lintflags = \
     -erroff=E_STATIC_UNUSED \
     -erroff=E_TRUE_LOGICAL_EXPR
 
+splintflags = \
+    -I/usr/lib/gcc/i486-linux-gnu/4.0.2/include/ \
+    -D__builtin_va_list=va_list \
+    -Dsigjmp_buf=jmp_buf \
+    -warnposix \
+    \
+    +boolint \
+    +charintliteral \
+    -fixedformalarray \
+    -mustfreefresh \
+    -nestedextern \
+    -predboolint \
+    -predboolothers \
+    -preproc \
+    -boolops \
+    -shadow \
+    -nullstate \
+    +longintegral \
+    +matchanyintegral \
+    -type \
+    \
+    +line-len 999 \
+    +weak
+
+splintfiles = $(c1)
+
 .c$(OBJ_EXT):
        $(CCCMD) $(PLDLFLAGS) $*.c
 
@@ -669,8 +706,8 @@ perl.valgrind.config: config.sh
 
 perl.config.dashg:
        @echo "Checking optimize='-g' in config.sh..."
-       @grep "^optimize="     config.sh
-       @egrep "^optimize='(-g|.*-g[1-3].*)'" config.sh >/dev/null || exit 1
+       @grep "^optimize=" config.sh
+       @egrep "^optimize='(.*-g.*)'" config.sh >/dev/null || exit 1
 
 perl.third.config: config.sh
        @echo "To build perl.third you must Configure -Doptimize=-g -Uusemymalloc, checking..."
@@ -985,6 +1022,13 @@ s_dummy $(static_ext):    miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE
 
 n_dummy $(nonxs_ext):  miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE
        @$(LDLIBPTH) sh ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+!NO!SUBS!
+
+$spitshell >>Makefile <<EOF
+$extra_dep
+EOF
+
+$spitshell >>Makefile <<'!NO!SUBS!'
 
 .PHONY: printconfig
 printconfig:
@@ -1063,7 +1107,7 @@ _cleaner2:
        rm -rf .config
        rm -f preload
        rm -f testcompile compilelog
-       rm -rf lib/Encode lib/Compress
+       rm -rf lib/Encode lib/Compress lib/Hash
        rm -rf lib/IO/Compress lib/IO/Uncompress
        rm -f lib/ExtUtils/ParseXS/t/XSTest.c
        rm -f lib/ExtUtils/ParseXS/t/XSTest$(OBJ_EXT)
@@ -1071,7 +1115,7 @@ _cleaner2:
        -rmdir lib/B lib/Data
        -rmdir lib/Filter/Util lib/IO/Socket
        -rmdir lib/List lib/MIME lib/Scalar lib/Sys
-       -rmdir lib/threads lib/XS lib/Hash
+       -rmdir lib/threads lib/XS
 
 _realcleaner:
        @$(LDLIBPTH) $(MAKE) _cleaner1 CLEAN=realclean
@@ -1087,6 +1131,10 @@ lint: $(c)
        rm -f *.ln
        lint $(lintflags) -DPERL_CORE -D_REENTRANT -DDEBUGGING -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(c)
 
+.PHONY: splint
+splint: $(c)
+       splint $(splintflags) -DPERL_CORE -D_REENTRANT -DDEBUGGING -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(splintfiles)
+
 # Need to unset during recursion to go out of loop.
 # The README below ensures that the dependency list is never empty and
 # that when MAKEDEPEND is empty $(FIRSTMAKEFILE) doesn't need rebuilding.
@@ -1327,7 +1375,7 @@ tags:     TAGS
        perl emacs/e2ctags.pl TAGS > tags
 
 ctags:
-       ctags -f Tags -N --totals --languages=c --langmap=c:+.h *.c *.h
+       ctags -f Tags -N --totals --languages=c --langmap=c:+.h --exclude=opmini.c *.c *.h
 
 # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
 # If this runs make out of memory, delete /usr/include lines.