fix top level Makefile for 2018

This commit is contained in:
Landon Curt Noll committed 2023-03-25 01:27:48 -07:00
1 parent e229c77499
commit f6c91fe25e
1 file changed
+197 -78
+197 -78
View File
@@ -1,59 +1,52 @@
#!/usr/bin/env make #!/usr/bin/env make
# #
# 2018 makefile # 2018 Makefile
################################################################################
# #
# This work by Landon Curt Noll, Simon Cooper, and Leonid A. Broukhis # Regarding individual entries:
# is licensed under: #
# 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. # Creative Commons Attribution-ShareAlike 3.0 Unported License.
# #
# See: http://creativecommons.org/licenses/by-sa/3.0/ # See: http://creativecommons.org/licenses/by-sa/3.0/
################ #############################
# tool locations # shell used by this Makefile
################ #############################
# #
SHELL= /bin/bash SHELL= bash
CP= cp
CPP= cpp
GUNZIP= gunzip
BUNZIP2= bunzip2
GZIP_PROG= gzip
BZIP2= bzip2
CURL= curl
DD= dd
LD= ld
MAKE= make
RM= rm
SED= sed
TAR= tar
TRUE= true
MKDIR= mkdir
MV= mv
TR= tr
GREP= grep
SORT= sort
UNIQ= uniq
STRIP= strip
# Set X11_LIBDIR to the directory where the X11 library resides #######################
# common tool locations
#######################
# #
#X11_LIBDIR= /usr/X11R6/lib include ../var.mk
#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
############### ###############
@@ -63,57 +56,122 @@ CC= cc
WINNERS= anderson algmyr bellard burton1 burton2 ciura endoh1 endoh2 ferguson \ WINNERS= anderson algmyr bellard burton1 burton2 ciura endoh1 endoh2 ferguson \
giles hou mills poikola vokes yang giles hou mills poikola vokes yang
YEAR= 2018
################### ###################
# build all entries # build all entries
################### ###################
# #
all: all:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "(cd $$i && $(MAKE) X11_LIBDIR=${X11_LIBDIR} X11_INCDIR=${X11_INCDIR} $@)"; \ echo "=-= start ${YEAR}/$$i =-="; \
(cd $$i && $(MAKE) "X11_LIBDIR=${X11_LIBDIR}" "X11_INCDIR=${X11_INCDIR}" $@); \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done 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 # alternative executable
# #
alt: alt:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "(cd $$i && $(MAKE) X11_LIBDIR=${X11_LIBDIR} X11_INCDIR=${X11_INCDIR} $@)"; \ echo "=-= start ${YEAR}/$$i =-="; \
(cd $$i && $(MAKE) "X11_LIBDIR=${X11_LIBDIR}" "X11_INCDIR=${X11_INCDIR}" $@); \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done 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 # utility rules
############### ###############
# #
everything: all alt
clean: clean:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "=-= start ${YEAR}/$$i =-="; \
echo "(cd $$i && $(MAKE) $@)"; \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \ (cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done done
@echo '=-=-= ${YEAR} complete make $@ =-=-='
clobber: clobber:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "=-= start ${YEAR}/$$i =-="; \
echo "(cd $$i && $(MAKE) $@)"; \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \ (cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done done
${RM} -f iocccsize @echo '=-=-= ${YEAR} complete make $@ =-=-='
${RM} -rf iocccsize.dSYM
nuke: clobber
@for i in ${WINNERS} ; do \
echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \
done
install: install:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "=-= start ${YEAR}/$$i =-="; \
echo "(cd $$i && $(MAKE) $@)"; \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \ (cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done 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 $@ =-=-='
################## ##################
@@ -121,75 +179,136 @@ install:
################## ##################
# #
love: love:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "=-= start ${YEAR}/$$i =-="; \
echo "(cd $$i && $(MAKE) $@)"; \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \ (cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done done
@echo '=-=-= ${YEAR} complete make $@ =-=-='
haste: haste:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "=-= start ${YEAR}/$$i =-="; \
echo "(cd $$i && $(MAKE) $@)"; \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \ (cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done done
@echo '=-=-= ${YEAR} complete make $@ =-=-='
waste: waste:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "=-= start ${YEAR}/$$i =-="; \
echo "(cd $$i && $(MAKE) $@)"; \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \ (cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done done
@echo '=-=-= ${YEAR} complete make $@ =-=-='
make: maker:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "=-= start ${YEAR}/$$i =-="; \
echo "(cd $$i && $(MAKE) $@)"; \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \ (cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done done
@echo '=-=-= ${YEAR} complete make $@ =-=-='
easter_egg: easter_egg:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "=-= start ${YEAR}/$$i =-="; \
echo "(cd $$i && $(MAKE) $@)"; \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \ (cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done done
@echo '=-=-= ${YEAR} complete make $@ =-=-='
fabricate fashion form frame manufacture produce:
@for i in ${WINNERS} ; do \
echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \
done
sandwich: sandwich:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "=-= start ${YEAR}/$$i =-="; \
echo "(cd $$i && $(MAKE) $@)"; \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \ (cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done done
@echo '=-=-= ${YEAR} complete make $@ =-=-='
deep_magic:
@for i in ${WINNERS} ; do \
echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \
done
magic:
@for i in ${WINNERS} ; do \
echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \
done
# The IOCCC resident astronomer states # The IOCCC resident astronomer states
# #
supernova: supernova:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "=-= start ${YEAR}/$$i =-="; \
echo "(cd $$i && $(MAKE) $@)"; \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \ (cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done done
@echo '=-=-= ${YEAR} complete make $@ =-=-='
charon: supernova deep_magic:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "=-= start ${YEAR}/$$i =-="; \
echo "(cd $$i && $(MAKE) $@)"; \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \ (cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done done
@echo '=-=-= ${YEAR} complete make $@ =-=-='
pluto: supernova magic:
@echo '=-=-= ${YEAR} begin make $@ =-=-='
@echo
@for i in ${WINNERS} ; do \ @for i in ${WINNERS} ; do \
echo "=-= start ${YEAR}/$$i =-="; \
echo "(cd $$i && $(MAKE) $@)"; \ echo "(cd $$i && $(MAKE) $@)"; \
(cd $$i && $(MAKE) $@); \ (cd $$i && $(MAKE) $@); \
echo "=-= end ${YEAR}/$$i =-="; \
echo; \
done 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 $@ =-=-='