# Commands
LN_S = @lns@
PERL = @perl@
RM_F = @rm_f@
CP = @cp@
PARROT = ../../parrot@exe@
BUILD = $(PERL) @build_dir@/tools/build/dynpmc.pl
# Directories
PGE_DIR = ../../compilers/pge
TGE_DIR = ../../compilers/tge
PMC_DIR = src/pmc
GROUP_DIR = @build_dir@/runtime/parrot/dynext
# Files
APL_GROUP = $(GROUP_DIR)/apl_group$(LOAD_EXT)
PMC_NAMES = aplvector
PMC_FILES = $(PMC_DIR)/aplvector.pmc
# Extensions
O = @o@
LOAD_EXT = @load_ext@
all: APL.pbc
$(PARROT):
@echo "You must first configure and build parrot. See ../../README"
@$(PERL) -e "exit 1"
SOURCES = APL.pir \
src/APLGrammar.pir \
src/parse2past.pir \
src/APLFunctions.pir
APL.pbc: $(PARROT) $(APL_GROUP) $(SOURCES)
$(PARROT) --output=APL.pbc APL.pir
interactive: APL.pbc
$(PARROT) APL.pbc
.SUFFIXES : .pir .pbc .tg .pg
.pir.pbc :
$(PARROT) -o $@ $<
.tg.pir :
$(PARROT) $(TGE_DIR)/tgc.pir --output=$@ $<
.pg.pir :
$(PARROT) $(PGE_DIR)/pgc.pir --encoding=utf8 --output=$@ $<
src/APLFunctions.pir: tools/gen_operator_defs.pl
$(PERL) tools/gen_operator_defs.pl > src/APLFunctions.pir
# This is a listing of all targets, that are meant to be called by users
help:
@echo ""
@echo "Following targets are available for the user:"
@echo ""
@echo " all: APL.pbc"
@echo " This is the default."
@echo "Running:"
@echo " interactive: Run the interative APL shell"
@echo ""
@echo "Testing:"
@echo " test: Run the test suite."
@echo " devtest: Run the test suite, using TODO not SKIP"
@echo " testclean: Clean up test results."
@echo ""
@echo "Cleaning:"
@echo " clean: Basic cleaning up."
@echo " realclean: Removes also files generated by 'Configure.pl'"
@echo " distclean: Removes also anything built, in theory"
@echo ""
@echo "Misc:"
@echo " help: Print this help message."
@echo ""
test: all
$(PERL) -Ilib t/harness
devtest: all
APLDEV=1 $(PERL) -Ilib t/harness
testclean:
$(RM_F) "t/*.apl" "t/*.pir" "t/*.out"
clean: testclean
$(RM_F) \
APL.pbc \
src/parse2past.pir \
lib/pge2past.pir \
lib/past2pir.pir \
lib/pasteval.pir \
src/APLGrammar.pir \
src/APLFunctions.pir \
$(PMC_DIR)/*.h \
$(PMC_DIR)/*.c \
$(PMC_DIR)/*.dump \
$(PMC_DIR)/*$(LOAD_EXT) \
$(PMC_DIR)/*$(O) \
$(APL_GROUP)
realclean: clean
$(RM_F) Makefile "EVAL_*"
distclean: realclean
# XXX Really dislike this setup - the build script should be giving us the make
# targets so we can let make do its job, not forcing us to call it in
# this manner.
$(APL_GROUP): $(PMC_FILES)
cd $(PMC_DIR) && $(BUILD) generate $(PMC_NAMES)
cd $(PMC_DIR) && $(BUILD) compile $(PMC_NAMES)
cd $(PMC_DIR) && $(BUILD) linklibs $(PMC_NAMES)
cd $(PMC_DIR) && $(BUILD) copy "--destination=$(GROUP_DIR)" $(PMC_NAMES)
syntax highlighted by Code2HTML, v. 0.9.1