From b69dd5bcf96d135ec81a974c608976f64bee8a24 Mon Sep 17 00:00:00 2001 From: Landon Curt Noll Date: Tue, 20 Sep 2022 23:47:54 -0700 Subject: [PATCH] Update 1984 --- 1984/Makefile | 282 ++++++++++++++++++++++++++++++++++++++++++--- 1984/orig.Makefile | 72 ++++++++++++ 2 files changed, 336 insertions(+), 18 deletions(-) create mode 100644 1984/orig.Makefile diff --git a/1984/Makefile b/1984/Makefile index ce90d35a8..bef40c18b 100644 --- a/1984/Makefile +++ b/1984/Makefile @@ -1,9 +1,45 @@ #!/usr/bin/env make # -# Orwellian 1984 makefile +# Orwellian 1984 Makefile :-) + +################################################################################ # -# This work by Landon Curt Noll, Simon Cooper, and Leonid A. Broukhis -# is licensed under: +# 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. # @@ -15,38 +51,78 @@ ################ # SHELL= /bin/bash -CP= cp -CPP= cpp -GUNZIP= gunzip -LD= ld MAKE= make -RM= rm -SED= sed -TAR= tar -TRUE= true - -# ANSI compiler -# -# Set CC to the name of your ANSI compiler. -# -CC= cc ############### # IOCCC winners ############### # -WINNERS= anonymous laman decot mullender +WINNERS= anonymous decot laman mullender + +YEAR= 1984 ################### # build all entries ################### # all: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ echo "(cd $$i && $(MAKE) $@)"; \ (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +# alternative executable +# +alt: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + +# data files +# +data: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + +# both all and alt +# +everything: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' ############### @@ -54,19 +130,189 @@ all: ############### # clean: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ echo "(cd $$i && $(MAKE) $@)"; \ (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' clobber: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ echo "(cd $$i && $(MAKE) $@)"; \ (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' install: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ echo "(cd $$i && $(MAKE) $@)"; \ (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + +indent.c: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + + +################## +# 133t hacker rulz +################## +# +love: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + +haste: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + +waste: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + +maker: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + +easter_egg: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + +sandwich: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + + +# The IOCCC resident astronomer states +# +supernova: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + +deep_magic: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + +magic: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + +charon: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' + +pluto: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo + @for i in ${WINNERS} ; do \ + echo "=-= start ${YEAR}/$$i =-="; \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + echo "=-= end ${YEAR}/$$i =-="; \ + echo; \ + done + @echo '=-=-= ${YEAR} complete make $@ =-=-=' diff --git a/1984/orig.Makefile b/1984/orig.Makefile new file mode 100644 index 000000000..ce90d35a8 --- /dev/null +++ b/1984/orig.Makefile @@ -0,0 +1,72 @@ +#!/usr/bin/env make +# +# Orwellian 1984 makefile +# +# This work by Landon Curt Noll, Simon Cooper, and Leonid A. Broukhis +# is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +################ +# tool locations +################ +# +SHELL= /bin/bash +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +CC= cc + + +############### +# IOCCC winners +############### +# +WINNERS= anonymous laman decot mullender + +################### +# build all entries +################### +# +all: + @for i in ${WINNERS} ; do \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + done + + +############### +# utility rules +############### +# +clean: + @for i in ${WINNERS} ; do \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + done + +clobber: + @for i in ${WINNERS} ; do \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + done + +install: + @for i in ${WINNERS} ; do \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + done