diff --git a/bin/Mamfile_rm_unused_vars b/bin/Mamfile_rm_unused_vars new file mode 100755 index 000000000..07b78e54e --- /dev/null +++ b/bin/Mamfile_rm_unused_vars @@ -0,0 +1,30 @@ +#!/usr/bin/env sh +IFS=''; set -fCu # safe mode: no split/glob = no quoting headaches +CCn=' +' # newline +let() { return $((!($1))); } + +# Remove unused variable definitions from a Mamfile. +# Usage: Mamfile_rm_unused_vars Mamfile.new +# +# Should work on all current POSIX compliant shells. +# By Martijn Dekker , 2021. Public domain. +# +# All variables are declared with 'setv' and they are used if an expansion +# of the form ${varname} exists (the braces are mandatory in Mamfiles). + +mamfile=$(let $# && cat "$1" || cat) +vars=$(printf '%s\n' $mamfile | awk '$1 == "setv" { print $2; }') +rm_unused_ere= +IFS=$CCn; for varname in $vars; do IFS= + case $mamfile in + *"\${$varname}"* ) + ;; + * ) # add with '|' separator for Extended Regular Expression + rm_unused_ere="${rm_unused_ere:+$rm_unused_ere|}setv[[:blank:]]+$varname([[:blank:]]|$)" ;; + esac +done +case $rm_unused_ere in +'') printf '%s\n' $mamfile ;; +*) printf '%s\n' $mamfile | grep -vE $rm_unused_ere ;; +esac diff --git a/src/cmd/INIT/Mamfile b/src/cmd/INIT/Mamfile index 8b5f58a79..cc37fd8be 100644 --- a/src/cmd/INIT/Mamfile +++ b/src/cmd/INIT/Mamfile @@ -10,38 +10,13 @@ note * http://web.archive.org/web/20041227143022/http://www2.research.att.com/~g note * setv INSTALLROOT ../../.. setv PACKAGEROOT ../../../../.. -setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS} -setv ARFLAGS rc -setv AS as -setv ASFLAGS setv CC cc setv mam_cc_FLAGS setv KSH_RELFLAGS setv CCFLAGS ${-debug-symbols?1?${mam_cc_DEBUG} -D_BLD_DEBUG?${mam_cc_OPTIMIZE}?} setv CCLDFLAGS ${-strip-symbols?1?${mam_cc_LD_STRIP}??} setv COTEMP $$ -setv CPIO cpio -setv CPIOFLAGS -setv CPP "${CC} -E" -setv F77 f77 -setv HOSTCC ${CC} -setv IGNORE -setv LD ld setv LDFLAGS -setv LEX lex -setv LEXFLAGS -setv LPR lpr -setv LPRFLAGS -setv M4FLAGS -setv NMAKE nmake -setv NMAKEFLAGS -setv PR pr -setv PRFLAGS -setv SHELL /bin/sh -setv SILENT -setv TAR tar -setv YACC yacc -setv YACCFLAGS -d make ${PACKAGEROOT}/lib/package/ast.lic done ${PACKAGEROOT}/lib/package/ast.lic make install @@ -50,7 +25,6 @@ make install done hurl.sh meta hurl %.sh>% hurl.sh hurl prev hurl.sh - setv LICENSE -DLICENSE="since=2003,author=gsf" exec - case static,port:$OPTIND:$RANDOM in exec - ?*:*:*|*::*|*:*:$RANDOM) exec - ;; @@ -88,7 +62,6 @@ make install done iffe.sh meta iffe %.sh>% iffe.sh iffe prev iffe.sh - setv LICENSE -DLICENSE="since=1994,author=gsf+kpv" exec - case static,port:$OPTIND:$RANDOM in exec - ?*:*:*|*::*|*:*:$RANDOM) exec - ;; @@ -126,7 +99,6 @@ make install done mktest.sh meta mktest %.sh>% mktest.sh mktest prev mktest.sh - setv LICENSE -DLICENSE="since=2005,author=gsf" exec - case static,port:$OPTIND:$RANDOM in exec - ?*:*:*|*::*|*:*:$RANDOM) exec - ;; @@ -201,7 +173,6 @@ make install done regress.sh meta regress %.sh>% regress.sh regress prev regress.sh - setv LICENSE -DLICENSE="since=1995,author=gsf" exec - case static,port:$OPTIND:$RANDOM in exec - ?*:*:*|*::*|*:*:$RANDOM) exec - ;; @@ -239,7 +210,6 @@ make install done rt.sh meta rt %.sh>% rt.sh rt prev rt.sh - setv LICENSE -DLICENSE="since=2005,author=gsf" exec - case static,port:$OPTIND:$RANDOM in exec - ?*:*:*|*::*|*:*:$RANDOM) exec - ;; @@ -314,7 +284,6 @@ make install done ditto.sh meta ditto %.sh>% ditto.sh ditto prev ditto.sh - setv LICENSE -DLICENSE="since=2001,author=gsf+ek" exec - case static,port:$OPTIND:$RANDOM in exec - ?*:*:*|*::*|*:*:$RANDOM) exec - ;; @@ -352,7 +321,6 @@ make install done execrate.sh meta execrate %.sh>% execrate.sh execrate prev execrate.sh - setv LICENSE -DLICENSE="since=2002,author=gsf" exec - case static,port:$OPTIND:$RANDOM in exec - ?*:*:*|*::*|*:*:$RANDOM) exec - ;; diff --git a/src/cmd/builtin/Mamfile b/src/cmd/builtin/Mamfile index 8666e018a..873ad99d0 100644 --- a/src/cmd/builtin/Mamfile +++ b/src/cmd/builtin/Mamfile @@ -10,44 +10,15 @@ note * http://web.archive.org/web/20041227143022/http://www2.research.att.com/~g note * setv INSTALLROOT ../../.. setv PACKAGE_ast_INCLUDE ${INSTALLROOT}/include/ast -setv PACKAGE_ast_LIB ${INSTALLROOT}/lib setv PACKAGE_cmd ${INSTALLROOT} -setv PACKAGE_cmd_INCLUDE ${PACKAGE_cmd}/include -setv PACKAGE_cmd_LIB ${PACKAGE_cmd}/lib setv PACKAGEROOT ../../../../.. -setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS} -setv ARFLAGS rc -setv AS as -setv ASFLAGS setv CC cc setv mam_cc_FLAGS setv KSH_RELFLAGS setv CCFLAGS ${-debug-symbols?1?${mam_cc_DEBUG} -D_BLD_DEBUG?${mam_cc_OPTIMIZE}?} setv CCLDFLAGS ${-strip-symbols?1?${mam_cc_LD_STRIP}??} -setv COTEMP $$ -setv CPIO cpio -setv CPIOFLAGS -setv CPP "${CC} -E" -setv F77 f77 -setv HOSTCC ${CC} setv IFFEFLAGS -setv IGNORE -setv LD ld setv LDFLAGS -setv LEX lex -setv LEXFLAGS -setv LPR lpr -setv LPRFLAGS -setv M4FLAGS -setv NMAKE nmake -setv NMAKEFLAGS -setv PR pr -setv PRFLAGS -setv SHELL /bin/sh -setv SILENT -setv TAR tar -setv YACC yacc -setv YACCFLAGS -d make ${PACKAGEROOT}/lib/package/ast.lic done ${PACKAGEROOT}/lib/package/ast.lic make .INIT @@ -81,12 +52,9 @@ make install done pty.c meta pty.o %.c>%.o pty.c pty prev pty.c - setv CMD_STANDALONE -DCMD_STANDALONE="b_pty" - setv LICENSE -DLICENSE="since=2001,author=gsf+dgk" exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} -I. -I${PACKAGE_ast_INCLUDE} -DERROR_CATALOG=\""builtin"\" -D_PACKAGE_ast -DCMD_STANDALONE=b_pty -c pty.c done pty.o generated bind -lutil dontcare - setv CMD_STANDALONE -DCMD_STANDALONE="b_pty" exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -lm ${mam_cc_L+-L.} ${mam_cc_L+-L${INSTALLROOT}/lib} -o pty pty.o ${mam_libutil} ${mam_libast} ${mam_libcmd} done pty generated make ${INSTALLROOT}/bin diff --git a/src/cmd/ksh93/Mamfile b/src/cmd/ksh93/Mamfile index 62da18b49..cb560713a 100644 --- a/src/cmd/ksh93/Mamfile +++ b/src/cmd/ksh93/Mamfile @@ -10,12 +10,8 @@ note * http://web.archive.org/web/20041227143022/http://www2.research.att.com/~g note * setv INSTALLROOT ../../.. setv PACKAGE_ast_INCLUDE ${INSTALLROOT}/include/ast -setv PACKAGE_ast_LIB ${INSTALLROOT}/lib setv PACKAGEROOT ../../../../.. setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS} -setv ARFLAGS rc -setv AS as -setv ASFLAGS setv CC cc setv mam_cc_FLAGS setv KSH_RELFLAGS @@ -23,30 +19,9 @@ setv KSH_SHOPTFLAGS setv CCFLAGS ${-debug-symbols?1?${mam_cc_DEBUG} -D_BLD_DEBUG?${mam_cc_OPTIMIZE}?} setv CCLDFLAGS ${-strip-symbols?1?${mam_cc_LD_STRIP}??} setv COTEMP $$ -setv CPIO cpio -setv CPIOFLAGS -setv CPP "${CC} -E" -setv F77 f77 -setv HOSTCC ${CC} setv IFFEFLAGS -setv IGNORE -setv LD ld setv LDFLAGS -setv LEX lex -setv LEXFLAGS -setv LPR lpr -setv LPRFLAGS -setv M4FLAGS -setv NMAKE nmake -setv NMAKEFLAGS -setv PR pr -setv PRFLAGS setv SH_DICT \"libshell\" -setv SHELL /bin/sh -setv SILENT -setv TAR tar -setv YACC yacc -setv YACCFLAGS -d make ${PACKAGEROOT}/lib/package/ast.lic done ${PACKAGEROOT}/lib/package/ast.lic make install @@ -1412,9 +1387,6 @@ make install meta shcomp.o %.c>%.o sh/shcomp.c shcomp prev sh/shcomp.c prev SHOPT.sh - setv CC.DLL -UCC.DLL - setv _BLD_shell -U_BLD_shell - setv _BLD_DLL -U_BLD_DLL exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${KSH_SHOPTFLAGS} ${CCFLAGS} -I. -Iinclude -I${PACKAGE_ast_INCLUDE} -DSH_DICT=${SH_DICT} -D_API_ast=20100309 -D_PACKAGE_ast -DERROR_CONTEXT_T=Error_context_t -c sh/shcomp.c done shcomp.o generated prev libshell.a archive @@ -1422,7 +1394,6 @@ make install prev +li prev ${mam_libsocket} prev ${mam_libsecdb} - setv CC.DLL -UCC.DLL exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${KSH_SHOPTFLAGS} ${CCFLAGS} ${LDFLAGS} ${mam_cc_L+-L.} ${mam_cc_L+-L${INSTALLROOT}/lib} -o shcomp shcomp.o ${mam_libshell} ${mam_libnsl} ${mam_libast} done shcomp generated make suid_exec @@ -1438,15 +1409,12 @@ make install meta suid_exec.o %.c>%.o sh/suid_exec.c suid_exec prev sh/suid_exec.c prev SHOPT.sh - setv CC.DLL -UCC.DLL - setv _BLD_shell -U_BLD_shell exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${KSH_SHOPTFLAGS} ${CCFLAGS} -I. -Iinclude -I${PACKAGE_ast_INCLUDE} -DERROR_CONTEXT_T=Error_context_t -D_API_ast=20100309 -D_PACKAGE_ast -c sh/suid_exec.c done suid_exec.o generated prev +ljobs prev +li prev ${mam_libsocket} prev ${mam_libsecdb} - setv CC.DLL -UCC.DLL exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${KSH_SHOPTFLAGS} ${CCFLAGS} ${LDFLAGS} -lm ${mam_cc_L+-L.} ${mam_cc_L+-L${INSTALLROOT}/lib} -o suid_exec suid_exec.o ${mam_libast} ${mam_libnsl} ${mam_libast} done suid_exec generated make shell @@ -1558,19 +1526,16 @@ make install prev ${INSTALLROOT}/fun make fun/dirs done fun/dirs - setv mode -Dmode="+x" exec - test '' = 'fun/dirs' || ${STDCMP} 2>/dev/null -s fun/dirs ${INSTALLROOT}/fun/dirs || { ${STDMV} ${INSTALLROOT}/fun/dirs ${INSTALLROOT}/fun/dirs.old 2>/dev/null || true; ${STDCP} fun/dirs ${INSTALLROOT}/fun/dirs && chmod ugo+x ${INSTALLROOT}/fun/dirs ;} done ${INSTALLROOT}/fun/dirs generated make ${INSTALLROOT}/fun/popd make fun/popd done fun/popd - setv mode -Dmode="+x" exec - test '' = 'fun/popd' || ${STDCMP} 2>/dev/null -s fun/popd ${INSTALLROOT}/fun/popd || { ${STDMV} ${INSTALLROOT}/fun/popd ${INSTALLROOT}/fun/popd.old 2>/dev/null || true; ${STDCP} fun/popd ${INSTALLROOT}/fun/popd && chmod ugo+x ${INSTALLROOT}/fun/popd ;} done ${INSTALLROOT}/fun/popd generated make ${INSTALLROOT}/fun/pushd make fun/pushd done fun/pushd - setv mode -Dmode="+x" exec - test '' = 'fun/pushd' || ${STDCMP} 2>/dev/null -s fun/pushd ${INSTALLROOT}/fun/pushd || { ${STDMV} ${INSTALLROOT}/fun/pushd ${INSTALLROOT}/fun/pushd.old 2>/dev/null || true; ${STDCP} fun/pushd ${INSTALLROOT}/fun/pushd && chmod ugo+x ${INSTALLROOT}/fun/pushd ;} done ${INSTALLROOT}/fun/pushd generated done install virtual diff --git a/src/lib/libast/Mamfile b/src/lib/libast/Mamfile index 2d2e90090..fa8dd8b37 100644 --- a/src/lib/libast/Mamfile +++ b/src/lib/libast/Mamfile @@ -11,38 +11,14 @@ note * setv INSTALLROOT ../../.. setv PACKAGEROOT ../../../../.. setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS} -setv ARFLAGS rc -setv AS as -setv ASFLAGS setv CC cc setv mam_cc_FLAGS ${mam_cc_DLL} -D_BLD_ast setv KSH_RELFLAGS setv CCFLAGS ${-debug-symbols?1?${mam_cc_DEBUG} -D_BLD_DEBUG?${mam_cc_OPTIMIZE}?} setv CCLDFLAGS ${-strip-symbols?1?${mam_cc_LD_STRIP}??} setv COTEMP $$ -setv CPIO cpio -setv CPIOFLAGS -setv CPP "${CC} -E" -setv F77 f77 -setv HOSTCC ${CC} setv IFFEFLAGS -setv IGNORE -setv LD ld setv LDFLAGS -setv LEX lex -setv LEXFLAGS -setv LPR lpr -setv LPRFLAGS -setv M4FLAGS -setv NMAKE nmake -setv NMAKEFLAGS -setv PR pr -setv PRFLAGS -setv SHELL /bin/sh -setv SILENT -setv TAR tar -setv YACC yacc -setv YACCFLAGS -d make ${PACKAGEROOT}/lib/package/ast.lic done ${PACKAGEROOT}/lib/package/ast.lic make install diff --git a/src/lib/libcmd/Mamfile b/src/lib/libcmd/Mamfile index 64aaef091..5eba66e44 100644 --- a/src/lib/libcmd/Mamfile +++ b/src/lib/libcmd/Mamfile @@ -10,41 +10,15 @@ note * http://web.archive.org/web/20041227143022/http://www2.research.att.com/~g note * setv INSTALLROOT ../../.. setv PACKAGE_ast_INCLUDE ${INSTALLROOT}/include/ast -setv PACKAGE_ast_LIB ${INSTALLROOT}/lib setv PACKAGEROOT ../../../../.. setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS} -setv ARFLAGS rc -setv AS as -setv ASFLAGS setv CC cc setv mam_cc_FLAGS ${mam_cc_DLL} setv KSH_RELFLAGS setv CCFLAGS ${-debug-symbols?1?${mam_cc_DEBUG} -D_BLD_DEBUG?${mam_cc_OPTIMIZE}?} -setv CCLDFLAGS ${-strip-symbols?1?${mam_cc_LD_STRIP}??} setv COTEMP $$ -setv CPIO cpio -setv CPIOFLAGS -setv CPP "${CC} -E" -setv F77 f77 -setv HOSTCC ${CC} setv IFFEFLAGS -setv IGNORE -setv LD ld setv LDFLAGS "" -setv LEX lex -setv LEXFLAGS -setv LPR lpr -setv LPRFLAGS -setv M4FLAGS -setv NMAKE nmake -setv NMAKEFLAGS -setv PR pr -setv PRFLAGS -setv SHELL /bin/sh -setv SILENT -setv TAR tar -setv YACC yacc -setv YACCFLAGS -d make ${PACKAGEROOT}/lib/package/ast.lic done ${PACKAGEROOT}/lib/package/ast.lic make install diff --git a/src/lib/libdll/Mamfile b/src/lib/libdll/Mamfile index d2248dcc4..0ef420e96 100644 --- a/src/lib/libdll/Mamfile +++ b/src/lib/libdll/Mamfile @@ -10,41 +10,15 @@ note * http://web.archive.org/web/20041227143022/http://www2.research.att.com/~g note * setv INSTALLROOT ../../.. setv PACKAGE_ast_INCLUDE ${INSTALLROOT}/include/ast -setv PACKAGE_ast_LIB ${INSTALLROOT}/lib setv PACKAGEROOT ../../../../.. setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS} -setv ARFLAGS rc -setv AS as -setv ASFLAGS setv CC cc setv mam_cc_FLAGS ${mam_cc_DLL} setv KSH_RELFLAGS setv CCFLAGS ${-debug-symbols?1?${mam_cc_DEBUG} -D_BLD_DEBUG?${mam_cc_OPTIMIZE}?} -setv CCLDFLAGS ${-strip-symbols?1?${mam_cc_LD_STRIP}??} setv COTEMP $$ -setv CPIO cpio -setv CPIOFLAGS -setv CPP "${CC} -E" -setv F77 f77 -setv HOSTCC ${CC} setv IFFEFLAGS -setv IGNORE -setv LD ld setv LDFLAGS -setv LEX lex -setv LEXFLAGS -setv LPR lpr -setv LPRFLAGS -setv M4FLAGS -setv NMAKE nmake -setv NMAKEFLAGS -setv PR pr -setv PRFLAGS -setv SHELL /bin/sh -setv SILENT -setv TAR tar -setv YACC yacc -setv YACCFLAGS -d make ${PACKAGEROOT}/lib/package/ast.lic done ${PACKAGEROOT}/lib/package/ast.lic make install diff --git a/src/lib/libsum/Mamfile b/src/lib/libsum/Mamfile index ec85551ae..6304ee499 100644 --- a/src/lib/libsum/Mamfile +++ b/src/lib/libsum/Mamfile @@ -10,41 +10,15 @@ note * http://web.archive.org/web/20041227143022/http://www2.research.att.com/~g note * setv INSTALLROOT ../../.. setv PACKAGE_ast_INCLUDE ${INSTALLROOT}/include/ast -setv PACKAGE_ast_LIB ${INSTALLROOT}/lib setv PACKAGEROOT ../../../../.. setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS} -setv ARFLAGS rc -setv AS as -setv ASFLAGS setv CC cc setv mam_cc_FLAGS ${mam_cc_PIC} setv KSH_RELFLAGS setv CCFLAGS ${-debug-symbols?1?${mam_cc_DEBUG} -D_BLD_DEBUG?${mam_cc_OPTIMIZE}?} -setv CCLDFLAGS ${-strip-symbols?1?${mam_cc_LD_STRIP}??} setv COTEMP $$ -setv CPIO cpio -setv CPIOFLAGS -setv CPP "${CC} -E" -setv F77 f77 -setv HOSTCC ${CC} setv IFFEFLAGS -setv IGNORE -setv LD ld setv LDFLAGS -setv LEX lex -setv LEXFLAGS -setv LPR lpr -setv LPRFLAGS -setv M4FLAGS -setv NMAKE nmake -setv NMAKEFLAGS -setv PR pr -setv PRFLAGS -setv SHELL /bin/sh -setv SILENT -setv TAR tar -setv YACC yacc -setv YACCFLAGS -d make ${PACKAGEROOT}/lib/package/ast.lic done ${PACKAGEROOT}/lib/package/ast.lic make install