Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 4 additions & 101 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,105 +3,8 @@ chez := scheme
ci:
./bin/verify-exercises

problem-specifications-rev := c6cd8f27b20aa931457bce4377214cb62fbe4187
problem-specifications := git@github.com:exercism/problem-specifications.git
clean:
find exercises -name '*.so' -delete
find exercises -name '*~' -delete

doc-files := \
ABOUT \
INSTALLATION \
RESOURCES \
TESTS

implementations := \
collatz-conjecture \
forth \
affine-cipher \
queen-attack \
matching-brackets \
pangram \
binary-search \
hello-world \
leap \
hamming \
atbash-cipher \
grains \
anagram \
pascals-triangle \
rna-transcription \
difference-of-squares \
nucleotide-count \
scrabble-score \
two-fer \
word-count \
knapsack \
raindrops \
phone-number \
bob \
prime-factors \
transpose \
rotational-cipher \
perfect-numbers \
change \
sieve

track-documentation := $(foreach doc,$(doc-files),docs/$(doc).md)

exercisms := $(foreach exercism,$(implementations),exercises/$(exercism))

readme-splice := config/exercise-readme-insert.md

track-requirements := \
Makefile \
../problem-specifications \
bin/configlet \
input/skeleton-makefile \
input/specifications.ss \
$(readme-splice) \
$(exercisms) \
config.json

# run given expression upon loading the code
exercise = echo $(1) | $(chez) -q load.ss

default : track

# PROBLEM-SPECIFICATIONS
../problem-specifications :
cd .. && git clone $(problem-specifications)
cd $@ && git checkout $(problem-specifications-rev)

input/specifications.ss : ../problem-specifications
$(call exercise, "(persist-specifications)")

# CONFIG
config.json : config/track.ss
$(call exercise, "(make-config)")

# configlet binary
bin/configlet :
./bin/fetch-configlet

# documentation
docs/%.md : code/markdown.sls input/docs/%.ss
$(call exercise, "(put-doc '$(@F:.md=))")

$(readme-splice) : $(track-documentation)
cp docs/TESTS.md $@

# exercises
exercises/% : code/*.sls input/skeleton-* code/track.ss input/exercises/%/*
$(call exercise, "(make-exercism '$(@F))")

# build track
track : $(track-requirements)
./bin/configlet generate .
./bin/configlet fmt .
./bin/configlet lint .

clean :
find . -name "*.so" -exec rm {} \;
find . -name "*~" -exec rm {} \;
find . -name "*.html" -exec rm {} \;
rm -rf _build ci

.PHONY: ci clean track
.PHONY: ci clean
Loading