Files
ioccc/Makefile
T

256 lines
7.1 KiB
Makefile

#!/usr/bin/env make
#
# IOCCC Makefile
################################################################################
#
# IOCCC winning entry code may not work on your system. What was liked/allowed
# and worked in the past may no longer be the liked/allowed or compile/run today.
#
# Bug fixes, corrections and typo fixes are VERY WELCOME. If you see a problem,
# first check this URL for a list of known bugs and (mis)features of IOCCC winners:
#
# http://www.ioccc.org/bugs.md
#
# GitHub pull requests are welcome! Please see the above URL for details.
#
################################################################################
#
# This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
# You are free to share and adapt this file under the terms this license:
#
# Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
#
# For more information, see: https://creativecommons.org/licenses/by-sa/4.0/
#############################
# shell used by this Makefile
#############################
#
SHELL= bash
#######################
# common tool locations
#######################
#
include var.mk
###################
# build all entries
###################
#
all:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC 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 '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
# data files
#
data:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
# both all and alt
#
everything:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
###############
# utility rules
###############
#
clean:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
clobber:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
install:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
indent.c:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
##################
# 133t hacker rulz
##################
#
love:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
haste:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
waste:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
maker:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
easter_egg:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
sandwich:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
# The IOCCC resident astronomer states
#
supernova:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
deep_magic:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
magic:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
charon:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
pluto:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='