diff --git a/1984/anonymous/Makefile b/1984/anonymous/Makefile
index 834267ef0..f9bab265b 100644
--- a/1984/anonymous/Makefile
+++ b/1984/anonymous/Makefile
@@ -1,26 +1,592 @@
-# %W% %G% %U%
+#!/usr/bin/env make
#
-# 1984 makefile
+# IOCCC 1984 winning entry - anonymous
+
+################################################################################
#
-# Copyright (c) 1984, Landon Curt Noll.
-# All Rights Reserved. Permission for personal, educational or non-profit
-# use is granted provided this this copyright and notice are included in its
-# entirety and remains unaltered. All other uses must receive prior permission
-# from Landon Curt Noll and Larry Bassel.
+# An Historical Makefile NOTE:
+#
+# The orig.Makefile, if it exits, is the original Makefile before this IOCCC
+# year directory was reworked so that entries are in separate directories.
+# This also applies to any orig.ansi.mk and orig.common.mk files.
+#
+# Several Makefiles were modified / formed in 2022, and as such it may have
+# elements that are not historically compatible with way entries were built.
+# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile.
+#
+# Regarding individual entries:
+#
+# IOCCC winning entry code may not work on your system. Even with standards,
+# conditions and build environments change, especially when it comes to more
+# extreme code such you might find in an IOCCC winner. Moreover, what was
+# allowed and liked in one IOCCC contest may no longer be liked/allowed in
+# later IOCCC years.
+#
+# Corrections on winning author and fixing typos in remarks are VERY WELCOME.
+#
+# GitHub pull requests are welcome:
+#
+# If you have a patch that might make running an entry work in modern Unix-like
+# environments, please create a GitHub pull request for the IOCCC judgess to
+# consider.
+#
+# Suggestions and corrections regarding Makefiles, winning author information,
+# fixing typos in remarks, and code patches are welcome via opening a GitHub
+# issue or better yet, by creating a GitHub pull request for the IOCCC judges
+# to consider. To form a GitHub issue or GitHub pull, please visit:
+#
+# https://github.com/ioccc-src/winner
+#
+################################################################################
+
+# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under:
+#
+# Creative Commons Attribution-ShareAlike 3.0 Unported License.
+#
+# See: http://creativecommons.org/licenses/by-sa/3.0/
-SHELL= /bin/sh
-WINNERS= anonymous
+#############################
+# shell used by this Makefile
+#############################
+#
+SHELL= /bin/bash
-all: ${WINNERS}
+#######################
+# common tool locations
+#######################
+#
+A2P= a2p
+AR= ar
+ASA= asa
+AT= at
+ATQ= atq
+ATRM= atrm
+AWK= awk
+BANNER= banner
+BASE64= base64
+BASENAME= basename
+BATCH= batch
+BC= bc
+BINHEX= binhex
+BISON= bison
+BUNZIP2= bunzip2
+BZCAT= bzcat
+BZCMP= bzcmp
+BZDIFF= bzdiff
+BZEGREP= bzegrep
+BZFGREP= bzfgrep
+BZGREP= bzgrep
+BZIP2= bzip2
+BZLESS= bzless
+BZMORE= bzmore
+C2PH= c2ph
+C89= c89
+C99= c99
+CAL= cal
+CALC= calc
+CAT= cat
+CD= cd
+CHFLAGS= chflags
+CHGRP= chgrp
+CHMOD= chmod
+CKSUM= cksum
+CLANG= clang
+CLANG_PLUSPLUS= clang++
+CLEAR= clear
+CMP= cmp
+COL= col
+COLLDEF= colldef
+COLRM= colrm
+COLUMN= column
+COMPRESS= compress
+CP= cp
+CPIO= cpio
+CPP= cpp
+CRC32= crc32
+CSH= csh
+CSPLIT= csplit
+CURL= curl
+CUT= cut
+C_PLUSPLUS= c++
+C_PLUSPLUS_FILT= c++filt
+DATE= date
+DC= dc
+DD= dd
+DF= df
+DIFF3= diff3
+DIFF= diff
+DIG= dig
+DIRNAME= dirname
+ED= ed
+EGREP= egrep
+ENV= env
+EQN= eqn
+ETAGS= etags
+EXPECT= expect
+EXPR= expr
+FALSE= false
+FGREP= fgrep
+FILE= file
+FIND2PERL= find2perl
+FIND= find
+FLEX= flex
+FLEX_PLUSPLUS= flex++
+FMT= fmt
+FOLD= fold
+FS_USAGE= fs_usage
+FUNZIP= funzip
+FUSER= fuser
+GCC= gcc
+GDIFFMK= gdiffmk
+GENCAT= gencat
+GENSTRINGS= genstrings
+GETOPT= getopt
+GETOPTS= getopts
+GNUMAKE= gnumake
+GREP= grep
+GROFF= groff
+GROFFER= groffer
+GROG= grog
+GROPS= grops
+GROTTY= grotty
+GUNZIP= gunzip
+GVIM= gvim
+GZCAT= gzcat
+GZEXE= gzexe
+GZIP_PROG= gzip
+G_PLUSPLUS= g++
+H2PH= h2ph
+H2XS= h2xs
+HASH= hash
+HEAD= head
+HOSTNAME_PROG= hostname
+ICONV= iconv
+ID= id
+INDENT= indent
+INFO= info
+JOT= jot
+KILL= kill
+KSH= ksh
+LAST= last
+LD= ld
+LESSECHO= lessecho
+LEX= len
+LINK= link
+LN= ln
+LS= ls
+M4= m4
+MAKE= make
+MAN= man
+MKDIR= mkdir
+MKFIFo= mkfifo
+MKTEMP= mktemp
+MV= mv
+NANO= nano
+NASM= nasm
+NEQN= neqn
+NICE= nice
+NL= nl
+NM= nm
+NOHUP= nohup
+NROFF= nroff
+NSLOOKUP= nslookup
+OD= od
+OPENSSL= openssl
+PASTE= paste
+PATCH= patch
+PATHCHK= pathchk
+PAX= pax
+PERL= perl
+PICO= pico
+PR= pr
+PRINTENV= printenv
+PS= ps
+PTAR= ptar
+PTARDIFF= ptardiff
+PTARGREP= ptargrep
+PWD= pwd
+PYDOC= pydoc
+PYTHON= python
+PYTHONW= pythonw
+READLINK= readlink
+RENICE= renice
+RESET= reset
+REV= rev
+RI= ri
+RM= rm
+RMDIR= rmdir
+RSYNC= rsync
+RUBY= ruby
+RVIM= rvim
+SAY= say
+SCP= scp
+SCREEN= screen
+SCRIPT= script
+SDIFF= sdiff
+SED= sed
+SEQ= seq
+SFTP= sftp
+SH= sh
+SHA1= sha1
+SHA= sha
+SHAR= shar
+SHASUM5_18= shasum5.18
+SHASUM= shasum
+SIZE= size
+SLEEP= sleep
+SORT= sort
+SSH= ssh
+STAT= stat
+STRIP= strip
+STTY= stty
+SUM= sum
+SYNC= sync
+TABS= tabs
+TAIL= tail
+TAR= tar
+TEE= tee
+TEST= test
+TFTP= tftp
+TIDY= tidy
+TIME= time
+TOP= top
+TOUCH= touch
+TPUT= tout
+TPUT= tput
+TR= tr
+TROFF= troff
+TRUE= true
+TSET= tset
+TSORT= tsort
+UL= ul
+UNAME= uname
+UNCOMPRESS= uncompress
+UNEXPAND= unexpand
+UNIFDEF= unifdef
+UNIFDEFALL= unifdefall
+UNIQ= uniq
+UNITS= units
+UNLINK= unlink
+UNZIP= unzip
+UNZIPSFX= unzipsfx
+UPTIME= uptime
+UUDECODE= uudecode
+UUENCODE= uuencode
+UUIDGEN= uuidgen
+VI= vi
+VIEW= view
+VIM= vim
+VIMDIFF= vimdiff
+W= w
+WAIT4PATH= wait4path
+WAIT= wait
+WC= wc
+WGET= wget
+WHAT= what
+WHATIS= whatis
+WHICH= which
+WHO= who
+WHOAMI= whoami
+WHOIS= whois
+WRTIE= write
+XAR= xar
+XARGS= xargs
+XATTR= xattr
+XXD= xxd
+YACC= yacc
+YES= yes
+ZCAT= zcat
+ZCMP= zcmp
+ZDIFF= zdiff
+ZEGREP= zegrep
+ZFGREP= zfgrep
+ZFORCE= zforce
+ZGREP= zgrep
+ZIP= zip
+ZIPCLOAK= zipcloak
+ZIPGREp= zipgrep
+ZIPINFo= zipinfo
+ZIPNOTE= zipnote
+ZIPSPLIT= zipsplit
+ZLESS= zless
+ZMORE= zmore
+ZNEW= znew
+ZPRINT= zprint
+ZSH= zsh
-anonymous: anonymous.c
- cc $? -o $@
+# Set X11_LIBDIR to the directory where the X11 library resides
+#
+#X11_LIBDIR= /usr/X11R6/lib
+#X11_LIBDIR= /usr/X11/lib
+X11_LIBDIR= /opt/X11/lib
+
+# Set X11_INCLUDEDIR to the directory where the X11 include files reside
+#
+#X11_INCDIR= /usr/X11R6/include
+#X11_INCDIR= /usr/X11/include
+X11_INCDIR= /opt/X11/include
+
+# Compiler warnings
+#
+#CWARN=
+#CWARN= -Wall
+#CWARN= -Wall -Wextra
+CWARN= -Wall -Wextra ${CSILENCE}
+#CWARN= -Wall -Wextra -pedantic ${CSILENCE}
+#CWARN= -Wall -Wextra -Weverything
+#CWARN= -Wall -Wextra -Weverything -pedantic
+#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE}
+
+# Silence warnings that ${CWARN} would normally complain about
+#
+CSILENCE= -Wno-error -Wno-implicit-function-declaration -Wno-implicit-int \
+ -Wno-return-type -Wno-string-plus-int -Wno-unsequenced
+#CSILENCE= -Wno-implicit-int
+
+# compiler standard
+#
+#CSTD=
+#CSTD= -ansi
+CSTD= -std=gnu89
+
+# compiler bit architecture
+#
+# Some entries require 32-bitness:
+# ARCH= -m32
+#
+# Some entries require 64-bitness:
+# ARCH= -m64
+#
+# By default we assume nothing:
+#
+ARCH=
+
+# defines that are needed to compile
+#
+CDEFINE=
+#CDEFINE= -DIOCCC=26
+
+# include files that are needed to compile
+#
+CINCLUDE=
+#CINCLUDE= -include stdlib.h
+#CINCLUDE= -include stdio.h
+#CINCLUDE= -include stdlib.h -include stdio.h
+#CINCLUDE= -I ${X11_INCDIR}
+#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2
+
+# optimization
+#
+# Most compiles will safely use -O2. Some can use only -O1 or -O.
+# A few compilers have broken optimizers or this entry make break
+# under those buggy optimizers and thus you may not want anything.
+# Reasonable compilers will allow for -O3.
+#
+#OPT=
+#OPT= -O
+#OPT= -O1
+#OPT= -O2
+OPT= -O3
+
+# default flags for ANSI C compilation
+#
+CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT}
+
+# Libraries needed to build
+#
+LIBS=
+#LIBS= -lm
+#LIBS= -L ${X11_LIBDIR} -lX11
+#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL
+
+# ANSI compiler
+#
+# Set CC to the name of your ANSI compiler.
+#
+# Some entries seem to need gcc. If you have gcc, set
+# both CC and MAY_NEED_GCC to gcc.
+#
+# If you do not have gcc, set CC to the name of your ANSI compiler, and
+# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just :
+# to disable such programs.
+#
+CC= cc
+#CC=clang
+MAY_NEED_GCC= gcc
+
+
+##############################
+# Special flags for this entry
+##############################
+#
+ENTRY= anonymous
+PROG= ${ENTRY}
+#
+OBJ= ${PROG}.o
+DATA=
+TARGET= ${PROG}
+#
+ALT_OBJ=
+ALT_TARGET=
+
+
+#################
+# build the entry
+#################
+#
+all: ${DATA} ${TARGET}
+ @${TRUE}
+
+.PHONY: alt data everything clean clobber nuke dist_clean \
+ install build love haste waste make easter_egg \
+ supernova deep_magic magic charon pluto
+
+${PROG}: ${PROG}.c
+ ${CC} ${CFLAGS} $< -o $@ ${LIBS}
+
+# alternative executable
+#
+alt: ${DATA} ${ALT_TARGET}
+ @${TRUE}
+
+# data files
+#
+data: ${DATA}
+ @${TRUE}
+
+
+###############
+# utility rules
+###############
+#
+everything: all alt
clean:
- rm -f core
-clobber: clean
- rm -f ${WINNERS}
+ ${RM} -f ${OBJ} ${ALT_OBJ}
+ @-if [ -f indent.c ]; then \
+ ${ECHO} ${RM} -f indent.c; \
+ ${RM} -f indent.c; \
+ fi
-install: all
- @echo are you kidding'??'
+clobber: clean
+ ${RM} -f ${TARGET} ${ALT_TARGET}
+ @-if [ -e sandwich ]; then \
+ ${RM} -f sandwich; \
+ echo 'ate sandwich'; \
+ fi
+
+nuke: clobber
+ @${TRUE}
+
+dist_clean: nuke
+ @${TRUE}
+
+install:
+ @echo "Dr. Spock says that is not logical!"
+ @${TRUE}
+
+# you may be able to misunderstand the source by reading indent.c
+#
+indent.c: ${PROG}.c
+ @if which "${GINDENT}" >/dev/null 2>&1; then \
+ ${ECHO} ${RM} -f $@; \
+ ${RM} -f $@; \
+ ${ECHO} "${GINDENT} < $< > $@"; \
+ ${GINDENT} < $< > $@; \
+ elif which "${INDENT}" >/dev/null 2>&1; then \
+ ${ECHO} ${RM} -f $@; \
+ ${RM} -f $@; \
+ ${ECHO} "${INDENT} < $< > $@"; \
+ ${INDENT} < $< > $@; \
+ else \
+ ${ECHO} "no intent tool found, ident $< yourself, sorry"; \
+ ${ECHO} "exit 1"; \
+ exit 1; \
+ fi
+
+
+##################
+# 133t hacker rulz
+##################
+#
+love:
+ @echo 'not war?'
+ @${TRUE}
+
+haste:
+ $(MAKE) waste
+ @${TRUE}
+
+waste:
+ @echo 'haste'
+ @${TRUE}
+
+make:
+ @echo 'Participate in a maker faire'
+ @${TRUE}
+
+easter_egg:
+ @echo you expected to often misunderstand this $${RANDOM} magic
+ @echo chongo ' Anonymous The author was too embarrassed that he/she could write such trash, so I
diff --git a/1984/anonymous/hint.text b/1984/anonymous/hint.text
index 512eff0c8..f43e7c77d 100644
--- a/1984/anonymous/hint.text
+++ b/1984/anonymous/hint.text
@@ -2,6 +2,10 @@
Anonymous
+## To build:
+
+ make all
+
## Judges' comments:
The author was too embarrassed that he/she could write such trash, so I
diff --git a/1984/anonymous/orig.Makefile b/1984/anonymous/orig.Makefile
new file mode 100644
index 000000000..834267ef0
--- /dev/null
+++ b/1984/anonymous/orig.Makefile
@@ -0,0 +1,26 @@
+# %W% %G% %U%
+#
+# 1984 makefile
+#
+# Copyright (c) 1984, Landon Curt Noll.
+# All Rights Reserved. Permission for personal, educational or non-profit
+# use is granted provided this this copyright and notice are included in its
+# entirety and remains unaltered. All other uses must receive prior permission
+# from Landon Curt Noll and Larry Bassel.
+
+
+SHELL= /bin/sh
+WINNERS= anonymous
+
+all: ${WINNERS}
+
+anonymous: anonymous.c
+ cc $? -o $@
+
+clean:
+ rm -f core
+clobber: clean
+ rm -f ${WINNERS}
+
+install: all
+ @echo are you kidding'??'
diff --git a/years-spoiler.html b/years-spoiler.html
index daba91b80..29c28dfa9 100644
--- a/years-spoiler.html
+++ b/years-spoiler.html
@@ -3688,6 +3688,7 @@ that works for both traditional K&R and ANSI C preprocessors.
To build:
+
+
+
make allJudges' comments: