From 4377093db1632449e22287e1d5abb9277bcea975 Mon Sep 17 00:00:00 2001 From: Landon Curt Noll Date: Sat, 25 Mar 2023 04:29:22 -0700 Subject: [PATCH] fix top level Makefile for 2019 --- 2019/Makefile | 242 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 201 insertions(+), 41 deletions(-) diff --git a/2019/Makefile b/2019/Makefile index 9d1b53f37..0ecc76f26 100644 --- a/2019/Makefile +++ b/2019/Makefile @@ -1,37 +1,52 @@ #!/usr/bin/env make # -# 2019 makefile +# 2019 Makefile + +################################################################################ # -# This work by Landon Curt Noll, Simon Cooper, and Leonid A. Broukhis -# is licensed under: +# 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 judges 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 used by this Makefile ############################# # -SHELL= /bin/bash +SHELL= bash -# Set X11_LIBDIR to the directory where the X11 library resides +####################### +# common tool locations +####################### # -#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 - -# ANSI compiler -# -# Set CC to the name of your ANSI compiler. -# -CC= cc +include ../var.mk ############### @@ -40,55 +55,122 @@ CC= cc # WINNERS= giles diels-grabsch1 poikola lynn burton dogon karns mills ciura diels-grabsch2 endoh yang duble adamovsky +YEAR= 2019 ################### # build all entries ################### # all: + @echo '=-=-= ${YEAR} begin make $@ =-=-=' + @echo @for i in ${WINNERS} ; do \ - echo "(cd $$i && $(MAKE) X11_LIBDIR=${X11_LIBDIR} X11_INCDIR=${X11_INCDIR} $@)"; \ - (cd $$i && $(MAKE) "X11_LIBDIR=${X11_LIBDIR}" "X11_INCDIR=${X11_INCDIR}" $@); \ + 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 "(cd $$i && $(MAKE) X11_LIBDIR=${X11_LIBDIR} X11_INCDIR=${X11_INCDIR} $@)"; \ - (cd $$i && $(MAKE) "X11_LIBDIR=${X11_LIBDIR}" "X11_INCDIR=${X11_INCDIR}" $@); \ + 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 $@ =-=-=' ############### # utility rules ############### # -everything: all alt - 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 - -nuke: clobber - @for i in ${WINNERS} ; do \ - echo "(cd $$i && $(MAKE) $@)"; \ - (cd $$i && $(MAKE) $@); \ - 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 $@ =-=-=' ################## @@ -96,58 +178,136 @@ install: ################## # 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 $@ =-=-=' -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 - -fabricate fashion form frame manufacture produce: - @for i in ${WINNERS} ; do \ - echo "(cd $$i && $(MAKE) $@)"; \ - (cd $$i && $(MAKE) $@); \ - 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 # -charon: supernova +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 $@ =-=-=' -pluto: supernova +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 $@ =-=-='