# #############################################################################
# .NET CLI To PIR Translator
# Copyright (C) Jonathan Worthington 2005, 2007
# #############################################################################
# Makefile
# ########
# THIS IS A GENERATED FILE! If you want to edit it, be sure you are editing the
# template (config/Makefile.in).
# #############################################################################
# BUILD TOOLS AND UTILITIES
# #########################
PERL = ${perl}
RM_F = ${rm_f}
PARROT = ${trans_parrot_path}${slash}parrot${exe}
MONOLIB = ${trans_mono_lib_path}
PBCMERGE = ${trans_parrot_path}${slash}pbc_merge${exe}
PMCBUILD = $(PERL) ${build_dir}${slash}tools${slash}build${slash}dynpmc.pl
OPSBUILD = $(PERL) ${build_dir}${slash}tools${slash}build${slash}dynoplibs.pl
DESTDIR = ${build_dir}${slash}runtime${slash}parrot${slash}dynext
# FILE EXTENSIONS
# ###############
O = ${o}
LOAD_EXT = ${load_ext}
A = ${a}
# DIRECTORIES AND FILES
# #####################
PMCDIR = pmc
PMCS = dotnetassembly dotnetclassmetadata dotnetmethodmetadata \
dotnetfieldmetadata dotnetparammetadata dotnetsignature \
dotnetbytecode dotnettyperefmetadata dotnetmemberrefmetadata \
dotneteh managedpointer dotnetassemblyref int64 uint64
PMC_FILES = pmc/dotnetassembly.pmc pmc/dotnetclassmetadata.pmc \
pmc/dotnetmethodmetadata.pmc pmc/dotnetfieldmetadata.pmc \
pmc/dotnetparammetadata.pmc pmc/dotnetsignature.pmc \
pmc/dotnetbytecode.pmc pmc/dotnettyperefmetadata.pmc \
pmc/dotnetmemberrefmetadata.pmc pmc/dotneteh.pmc \
pmc/managedpointer.pmc pmc/dotnetassemblyref.pmc \
pmc/int64.pmc pmc/uint64.pmc
OPSDIR = ops
OPSLIB = dotnet
OPS_FILES = ops/dotnet.ops
TRAN_PIR = src/translator.pir src/method.pir src/signature.pir src/typeinfo.pir \
src/field.pir src/exception.pir
TRAN_PBC = src/translator.pbc src/method.pbc src/signature.pbc src/typeinfo.pbc \
src/field.pbc src/exception.pbc
# BUILD TARGETS
# #############
all : pmc/dotnet$(LOAD_EXT) ops/dotnet_ops$(LOAD_EXT) src/it.pbc \
src/builtins.pbc src/translib.pbc net2pbc.pbc
pmc/dotnet$(LOAD_EXT) : $(PMC_FILES) pmc/structures.h pmc/tableinfo.h
@cd $(PMCDIR) && $(PMCBUILD) generate $(PMCS)
@cd $(PMCDIR) && $(PMCBUILD) compile $(PMCS)
@cd $(PMCDIR) && $(PMCBUILD) linklibs $(PMCS)
@cd $(PMCDIR) && $(PMCBUILD) copy "--destination=$(DESTDIR)" $(PMCS)
ops/dotnet_ops$(LOAD_EXT) : $(OPS_FILES)
@cd $(OPSDIR) && $(OPSBUILD) generate $(OPSLIB)
@cd $(OPSDIR) && $(OPSBUILD) compile $(OPSLIB)
@cd $(OPSDIR) && $(OPSBUILD) linklibs $(OPSLIB)
@cd $(OPSDIR) && $(OPSBUILD) copy "--destination=$(DESTDIR)" $(OPSLIB)
src/it.pbc : src/translation.rules build/translator.pl build/SRM/Stack.pm \
build/SRM/Register.pm build/SRM/OptRegister.pm
$(PERL) build/translator.pl src/translation.rules --srm ${srm} \
--output src/it.pir
$(PARROT) -o src/it.pbc src/it.pir
src/builtins.pbc : src/builtins.pir
$(PARROT) -o src/builtins.pbc src/builtins.pir
src/builtins.pir : src/internal.methods build/builtins.pl
$(PERL) build/builtins.pl src/internal.methods --output src/builtins.pir
src/translib.pbc : src/it.pbc src/builtins.pbc $(TRAN_PBC)
$(PBCMERGE) -o src/translib.pbc $(TRAN_PBC) src/it.pbc src/builtins.pbc
net2pbc.pbc : pmc/dotnet$(LOAD_EXT) src/translib.pbc src/net2pbc.pbc
$(PBCMERGE) -o net2pbc.pbc src/net2pbc.pbc src/translib.pbc
class-library : net2pbc.pbc
${trans_class_library}
# PER FILE RULES AND DEPENDENCIES
# ###############################
src/net2pbc.pbc : src/net2pbc.pir
$(PARROT) -o src/net2pbc.pbc src/net2pbc.pir
src/translator.pbc : src/translator.pir
$(PARROT) -o src/translator.pbc src/translator.pir
src/method.pbc : src/method.pir
$(PARROT) -o src/method.pbc src/method.pir
src/signature.pbc : src/signature.pir
$(PARROT) -o src/signature.pbc src/signature.pir
src/typeinfo.pbc : src/typeinfo.pir
$(PARROT) -o src/typeinfo.pbc src/typeinfo.pir
src/field.pbc : src/field.pir
$(PARROT) -o src/field.pbc src/field.pir
src/exception.pbc : src/exception.pir
$(PARROT) -o src/exception.pbc src/exception.pir
$(TRAN_PIR) :
src/translation.rules :
build/translator.pl :
src/build/SRM/Stack.pm :
# TEST TARGETS
# ############
test : all
$(PERL) -It t/harness
# CLEANUP TARGETS
# ###############
CLEANERS = \
"$(PMCDIR)/dotnet*.h" \
"$(PMCDIR)/pmc_*.h" \
"$(PMCDIR)/*_group.h" \
"$(PMCDIR)/*$(LOAD_EXT)" \
"$(PMCDIR)/*.dump" \
"$(PMCDIR)/*.c" \
"$(PMCDIR)/*$(O)" \
"$(PMCDIR)/*.def" \
"$(PMCDIR)/*.exp" \
"$(PMCDIR)/*.pdb" \
"$(PMCDIR)/*.ilk" \
"$(PMCDIR)/*.lib" \
"$(OPSDIR)/*.c" \
"$(OPSDIR)/*.h" \
"$(OPSDIR)/*$(O)" \
"$(OPSDIR)/*$(LOAD_EXT)" \
"$(OPSDIR)/*.exp" \
"$(OPSDIR)/*.pdb" \
"$(OPSDIR)/*.ilk" \
"$(OPSDIR)/*.lib" \
"*.pbc" \
"*.dll" \
"src/*.pbc" \
src/it.pir \
src/builtins.pir
clean:
$(RM_F) $(CLEANERS)
realclean : clean
$(RM_F) Makefile config/N2PConfig.pm
syntax highlighted by Code2HTML, v. 0.9.1