Skip to content

Instantly share code, notes, and snippets.

@moritz
Created June 7, 2012 16:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moritz/2890020 to your computer and use it in GitHub Desktop.
Save moritz/2890020 to your computer and use it in GitHub Desktop.
How I wish ufo would write my Makefile
.PHONY : all build test install clean distclean purge
PERL6 = perl6
PREFIX = $(HOME)/.perl6
BLIB = blib
P6LIB = $(PWD)/$(BLIB)/lib:$(PWD)/lib:$(PERL6LIB)
CP = cp -p
SOURCES = lib/JSON/Tiny/Actions.pm lib/JSON/Tiny/Grammar.pm \
lib/JSON/Tiny.pm
SCRIPTS =
BLIB_SOURCES = $(BLIB)/lib/JSON/Tiny/Actions.pm \
$(BLIB)/lib/JSON/Tiny/Grammar.pm \
$(BLIB)/lib/JSON/Tiny.pm
BLIB_PIRS = $(BLIB)/lib/JSON/Tiny/Actions.pir \
$(BLIB)/lib/JSON/Tiny/Grammar.pir \
$(BLIB)/lib/JSON/Tiny.pir
all build : $(BLIB_PIRS)
$(BLIB)/lib/JSON/Tiny/Actions.pir: lib/JSON/Tiny/Actions.pm
mkdir -p $(BLIB)/lib/JSON/Tiny
$(CP) lib/JSON/Tiny/Actions.pm $(BLIB)/lib/JSON/Tiny/Actions.pm
$(PERL6) --target=pir --output=$(BLIB)/lib/JSON/Tiny/Actions.pir lib/JSON/Tiny/Actions.pm
$(BLIB)/lib/JSON/Tiny/Grammar.pir: lib/JSON/Tiny/Grammar.pm
mkdir -p $(BLIB)/lib/JSON/Tiny
$(CP) lib/JSON/Tiny/Grammar.pm $(BLIB)/lib/JSON/Tiny/Grammar.pm
$(PERL6) --target=pir --output=$(BLIB)/lib/JSON/Tiny/Grammar.pir lib/JSON/Tiny/Grammar.pm
$(BLIB)/lib/JSON/Tiny.pir: lib/JSON/Tiny.pm $(BLIB)/lib/JSON/Tiny/Grammar.pir $(BLIB)/lib/JSON/Tiny/Actions.pir
mkdir -p $(BLIB)/lib/JSON
$(CP) lib/JSON/Tiny.pm $(BLIB)/lib/JSON/Tiny.pm
$(PERL6) --target=pir --output=$(BLIB)/lib/JSON/Tiny.pir lib/JSON/Tiny.pm
test : $(BLIB_PIRS)
env PERL6LIB=$(P6LIB) prove -e '$(PERL6)' -r t/
loudtest : $(BLIB_PIRS)
env PERL6LIB=$(P6LIB) prove -ve '$(PERL6)' -r t/
timetest : $(BLIB_PIRS)
env PERL6LIB=$(P6LIB) PERL6_TEST_TIMES=1 prove -ve '$(PERL6)' -r t/
install: all
mkdir -p $(PREFIX)/lib/JSON/Tiny
$(CP) $(BLIB)/lib/JSON/Tiny/Actions.pm $(PREFIX)/lib/JSON/Tiny/Actions.pm
$(CP) $(BLIB)/lib/JSON/Tiny/Actions.pir $(PREFIX)/lib/JSON/Tiny/Actions.pir
mkdir -p $(PREFIX)/lib/JSON/Tiny
$(CP) $(BLIB)/lib/JSON/Tiny/Grammar.pm $(PREFIX)/lib/JSON/Tiny/Grammar.pm
$(CP) $(BLIB)/lib/JSON/Tiny/Grammar.pir $(PREFIX)/lib/JSON/Tiny/Grammar.pir
mkdir -p $(PREFIX)/lib/JSON
$(CP) $(BLIB)/lib/JSON/Tiny.pm $(PREFIX)/lib/JSON/Tiny.pm
$(CP) $(BLIB)/lib/JSON/Tiny.pir $(PREFIX)/lib/JSON/Tiny.pir
clean :
rm -fr $(BLIB)
distclean purge : clean
rm -r Makefile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment