# New Ticket Created by Reini Urban # Please include the string: [perl #57296] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=57296 >
--- osname= cygwin osvers= 1.5.25(0.15642) arch= cygwin-thread-multi-64int cc= gcc --- Flags: category=install severity=medium ack=no --- make install -C languages DESTDIR=inst Help generating parrot packages with parrot-languages and self-hosting languages. pbc_to_exe $LANG --install creates now [EMAIL PROTECTED]@ self-hosting binaries with dependencies to /usr/lib/parrot, not to build_dir make installable is needed to create those pbc's. make test-installable is needed to test those pbc's against installed libraries. make install is needed to copy the installables, pmcs and docs to the destination A future plan is to simplify the languages/$LANG/config/root.in framework by auto-generating the automatic targets from some basic make definitions and parts. Really needed is just the definitions for PBCS, PMCS, DOCS, the test and test-installable target and some intermediate targets. Halfway patch attached. --- Summary of my parrot 0.6.4 (r0) configuration: configdate='Sat Jul 19 10:18:22 2008 GMT' Platform: osname=cygwin, archname=cygwin-thread-multi-64int jitcapable=1, jitarchname=i386-cygwin, jitosname=CYGWIN, jitcpuarch=i386 execcapable=1 perl=/usr/bin/perl.exe Compiler: cc='gcc', ccflags='-U__STRICT_ANSI__ -pipe -I/usr/local/include -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -DHASATTRIBUTE_WARN_UNUSED_RESULT -falign-functions=16 -maccumulate-outgoing-args -W -Wall -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Wmissing-braces -Wno-missing-format-attribute -Wpacked -Wparentheses -Wpointer-arith -Wreturn-type -Wsequence-point -Wno-shadow -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused -Wwrite-strings -Wbad-function-cast -Wdeclaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -DDISABLE_GC_DEBUG=1 -DNDEBUG -O3 -DHAS_GETTEXT', Linker and Libraries: ld='gcc', ldflags=' -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--stack,8388608 -Wl,--enable-auto-image-base -L/usr/local/lib', cc_ldflags='', libs='-lcrypt -lgmp -lreadline -lpcre /usr/bin/glut32.dll -lglu32 -lopengl32 -lcrypto -lintl' Dynamic Linking: share_ext='.dll', ld_share_flags='-shared', load_ext='.dll', ld_load_flags='-shared' Types: iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4, ptrsize=4, ptr_alignment=1 byteorder=1234, nv=double, numvalsize=8, doublesize=8 Locally applied patches: [perl #51944] [DOCS] Cygwin Readme [perl #56562] [PATCH] root.in: add cygwin importlib [perl #56544] [PATCH] install_files.pl [perl #56558] [PATCH] pdb rename to parrot_pdb [perl #56998] [TODO] rename cygwin dll to cygparrot.dll [perl #57006] [PATCH] add cygwin opengl config quirks [perl #57110] [PATCH] ncurses for cygwin [perl #57112] [PATCH] postgres for cygwin [perl #57114] [PATCH] urm RealBin issue --- Environment: CYGWIN =server HOME =/home/rurban LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH =~/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/usr/bin:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Programme/ATI Technologies/ATI.ACE/Core-Static:/usr/local/bin:/usr/lib/gstreamer-0.8:/usr/lib/lapack SHELL (unset)
diff -urN config/gen/languages.pm config/gen/languages.pm --- config/gen/languages.pm 2008-07-02 13:38:41.000000000 +0000 +++ config/gen/languages.pm 2008-07-26 08:48:41.437500000 +0000 @@ -75,7 +75,7 @@ } elsif ( $language eq 'c99' ) { $conf->genfile("$langdir/config/makefiles/root.in" => "$langdir/Makefile"); - $conf->genfile("$langdir/config/makefiles/cpp.in" => "$langdir/src/cpp//Makefile"); + $conf->genfile("$langdir/config/makefiles/cpp.in" => "$langdir/src/cpp/Makefile"); } elsif ( $language eq 'tcl' ) { # tcl has more than one Makefile diff -urN config/gen/makefiles/languages.in config/gen/makefiles/languages.in --- config/gen/makefiles/languages.in 2008-07-02 13:38:41.000000000 +0000 +++ config/gen/makefiles/languages.in 2008-07-26 10:51:25.828125000 +0000 @@ -1,4 +1,4 @@ -# $Id: languages.in 28952 2008-07-02 13:38:36Z bernhard $ +# $Id: languages.in 28952 2008-07-02 13:38:36Z bernhard $ -*- Makefile -*- # setup of commands @make_set_make@ @@ -47,6 +47,12 @@ @echo "" @echo " test-separate: Run 'make test' in the individual lang dirs." @echo "" + @echo " installable: Create self-hosting bins and libs." + @echo "" + @echo " test-installable: Test self-hosting bins and libs." + @echo "" + @echo " install: Copy installable and more to DESTDIR." + @echo "" @echo " clean: Clean up a lot of languages." @echo "" @echo " help: Print this help message." @@ -60,13 +66,16 @@ @echo "Following languages are available:" @echo " $(LANGUAGES)" @echo "" - @echo "A particular language <lang> can be built, tested and cleand up" + @echo "A particular language <lang> can be built, tested and cleaned up" @echo " make <lang>" @echo " make <lang>.test" + @echo " make <lang>.installable" + @echo " make <lang>.test-installable" + @echo " make <lang>.install" @echo " make <lang>.clean" @echo " make <lang>.realclean" @echo "" - @echo "For the status of individual languages see LANGUAGES.STATUS.pod" + @echo "For the status of individual languages see LANGUAGES_STATUS.pod" @echo "" # regenerate the Makefile @@ -98,6 +107,65 @@ WMLScript.test \ Zcode.test +installable : all \ + abc.installable APL.installable \ + befunge.installable bf.installable \ + c99.installable cardinal.installable chitchat.installable cola.installable \ + dotnet.installable \ + eclectus.installable ecmascript.installable \ + forth.installable \ + hq9plus.installable \ + jako.installable json.installable \ + lazy-k.installable lisp.installable lolcode.installable lua.installable \ + m4.installable \ + ook.installable \ + parrot_compiler.installable perl6.installable pheme.installable PIR.installable pipp.installable pugs.installable punie.installable pynie.installable \ + regex.installable \ + scheme.installable squaak.installable \ + tcl.installable \ + urm.installable unlambda.installable \ + WMLScript.installable \ + Zcode.installable + +test-installable : all \ + abc.test-installable APL.test-installable \ + befunge.test-installable bf.test-installable \ + c99.test-installable cardinal.test-installable chitchat.test-installable cola.test-installable \ + dotnet.test-installable \ + eclectus.test-installable ecmascript.test-installable \ + forth.test-installable \ + hq9plus.test-installable \ + jako.test-installable json.test-installable \ + lazy-k.test-installable lisp.test-installable lolcode.test-installable lua.test-installable \ + m4.test-installable \ + ook.test-installable \ + parrot_compiler.test-installable perl6.test-installable pheme.test-installable PIR.test-installable pipp.test-installable pugs.test-installable punie.test-installable pynie.test-installable \ + regex.test-installable \ + scheme.test-installable squaak.test-installable \ + tcl.test-installable \ + urm.test-installable unlambda.test-installable \ + WMLScript.test-installable \ + Zcode.test-installable + +install : all \ + abc.install APL.install \ + befunge.install bf.install \ + c99.install cardinal.install chitchat.install cola.install \ + dotnet.install \ + eclectus.install ecmascript.install \ + forth.install \ + hq9plus.install \ + jako.install json.install \ + lazy-k.install lisp.install lolcode.install lua.install \ + m4.install \ + ook.install \ + parrot_compiler.install perl6.install pheme.install PIR.install pipp.install pugs.install punie.install pynie.install \ + regex.install \ + scheme.install squaak.install \ + tcl.install \ + urm.install unlambda.install \ + WMLScript.install \ + Zcode.install smoke: all $(PERL) t/harness --html @@ -160,6 +228,12 @@ - $(MAKE) abc abc.test: - $(MAKE) abc test +abc.installable: + - $(MAKE) abc installable +abc.test-installable: + - $(MAKE) abc test-installable +abc.install: + - $(MAKE) abc install abc.clean: - $(MAKE) abc clean abc.realclean: @@ -170,6 +244,12 @@ - $(MAKE) APL APL.test: - $(MAKE) APL test +APL.installable: + - $(MAKE) APL installable +APL.test-installable: + - $(MAKE) APL test-installable +APL.install: + - $(MAKE) APL install APL.clean: - $(MAKE) APL clean APL.realclean: @@ -180,6 +260,12 @@ # don't know how to build BASIC BASIC.test: # Don't know how to test BASIC +BASIC.installable: +# Missing for BASIC +BASIC.test-installable: +# Missing for BASIC +BASIC.install: +# Missing for BASIC BASIC.clean: # Don't know how to clean BASIC @@ -188,6 +274,12 @@ - $(MAKE) befunge befunge.test: - $(MAKE) befunge test +befunge.installable: + - $(MAKE) befunge installable +befunge.test-installable: + - $(MAKE) befunge test-installable +befunge.install: + - $(MAKE) befunge install befunge.clean: - $(MAKE) befunge clean befunge.realclean: @@ -198,6 +290,12 @@ - $(MAKE) bf bf.test: - $(MAKE) bf test +bf.installable: + - $(MAKE) bf installable +bf.test-installable: + - $(MAKE) bf test-installable +bf.install: + - $(MAKE) bf install bf.clean: - $(MAKE) bf clean bf.realclean: @@ -208,6 +306,12 @@ - $(MAKE) c99 c99.test: - $(MAKE) c99 test +c99.installable: + - $(MAKE) c99 installable +c99.test-installable: + - $(MAKE) c99 test-installable +c99.install: + - $(MAKE) c99 install c99.clean: - $(MAKE) c99 clean c99.realclean: @@ -228,6 +332,12 @@ - $(MAKE) chitchat chitchat.test: - $(MAKE) chitchat test +chitchat.installable: + - $(MAKE) chitchat installable +chitchat.test-installable: + - $(MAKE) chitchat test-installable +chitchat.install: + - $(MAKE) chitchat install chitchat.clean: - $(MAKE) chitchat clean chitchat.realclean: @@ -238,6 +348,12 @@ - $(MAKE) cola cola.test: - $(MAKE) cola test +cola.installable: + - $(MAKE) cola installable +cola.test-installable: + - $(MAKE) cola test-installable +cola.install: + - $(MAKE) cola install cola.clean: - $(MAKE) cola clean cola.realclean: @@ -259,6 +375,12 @@ - $(MAKE) eclectus eclectus.test : - $(MAKE) eclectus test +eclectus.installable: + - $(MAKE) eclectus installable +eclectus.test-installable: + - $(MAKE) eclectus test-installable +eclectus.install: + - $(MAKE) eclectus install eclectus.clean : - $(MAKE) eclectus clean eclectus.realclean : @@ -269,6 +391,12 @@ - $(MAKE) ecmascript ecmascript.test: - $(MAKE) ecmascript test +ecmascript.installable: + - $(MAKE) ecmascript installable +ecmascript.test-installable: + - $(MAKE) ecmascript test-installable +ecmascript.install: + - $(MAKE) ecmascript install ecmascript.clean: - $(MAKE) ecmascript clean ecmascript.realclean: @@ -289,6 +417,12 @@ - $(MAKE) hq9plus hq9plus.test: - $(MAKE) hq9plus test +hq9plus.installable: + - $(MAKE) hq9plus installable +hq9plus.test-installable: + - $(MAKE) hq9plus test-installable +hq9plus.install: + - $(MAKE) hq9plus install hq9plus.clean: - $(MAKE) hq9plus clean hq9plus.realclean: @@ -299,6 +433,12 @@ - $(MAKE) jako jako.test: - $(MAKE) jako test +abc.installable: + - $(MAKE) jako installable +jako.test-installable: + - $(MAKE) jako test-installable +jako.install: + - $(MAKE) jako install jako.clean: - $(MAKE) jako clean jako.realclean: @@ -309,6 +449,12 @@ - $(MAKE) json json.test: - $(MAKE) json test +json.installable: + - $(MAKE) json installable +json.test-installable: + - $(MAKE) json test-installable +json.install: + - $(MAKE) json install json.clean: - $(MAKE) json clean json.realclean: @@ -319,6 +465,12 @@ - $(MAKE) lazy-k lazy-k.test: - $(MAKE) lazy-k test +lazy-k.installable: + - $(MAKE) lazy-k installable +lazy-k.test-installable: + - $(MAKE) lazy-k test-installable +lazy-k.install: + - $(MAKE) lazy-k install lazy-k.clean: - $(MAKE) lazy-k clean lazy-k.realclean: @@ -329,6 +481,12 @@ - $(MAKE) lisp lisp.test: - $(MAKE) lisp test +lisp.installable: + - $(MAKE) lisp installable +lisp.test-installable: + - $(MAKE) lisp test-installable +lisp.install: + - $(MAKE) lisp install lisp.clean: - $(MAKE) lisp clean lisp.realclean: @@ -339,6 +497,12 @@ - $(MAKE) lolcode lolcode.test: - $(MAKE) lolcode test +lolcode.installable: + - $(MAKE) lolcode installable +lolcode.test-installable: + - $(MAKE) lolcode test-installable +lolcode.install: + - $(MAKE) lolcode install lolcode.clean: - $(MAKE) lolcode clean lolcode.realclean: @@ -349,6 +513,12 @@ - $(MAKE) lua lua.test: - $(MAKE) lua test +lua.installable: + - $(MAKE) lua installable +lua.test-installable: + - $(MAKE) lua test-installable +lua.install: + - $(MAKE) lua install lua.clean: - $(MAKE) lua clean lua.realclean: @@ -369,6 +539,12 @@ - $(MAKE) ook ook.test: - $(MAKE) ook test +ook.installable: + - $(MAKE) ook installable +ook.test-installable: + - $(MAKE) ook test-installable +ook.install: + - $(MAKE) ook install ook.clean: - $(MAKE) ook clean ook.realclean: @@ -389,6 +565,12 @@ - $(MAKE) perl6 perl6.test: - $(MAKE) perl6 test +perl6.installable: + - $(MAKE) perl6 installable +perl6.test-installable: + - $(MAKE) perl6 test-installable +perl6.install: + - $(MAKE) perl6 install perl6.clean: - $(MAKE) perl6 clean perl6.realclean: @@ -409,6 +591,12 @@ - $(MAKE) pipp pipp.test: - $(MAKE) pipp test +pipp.installable: + - $(MAKE) pipp installable +pipp.test-installable: + - $(MAKE) pipp test-installable +pipp.install: + - $(MAKE) pipp install pipp.clean: - $(MAKE) pipp clean pipp.realclean: @@ -429,6 +617,12 @@ - $(MAKE) pugs pugs.test: - $(MAKE) pugs test +pugs.installable: + - $(MAKE) pugs installable +pugs.test-installable: + - $(MAKE) pugs test-installable +pugs.install: + - $(MAKE) pugs install pugs.clean: - $(MAKE) pugs clean pugs.realclean: @@ -449,6 +643,12 @@ - $(MAKE) pynie pynie.test: - $(MAKE) pynie test +pynie.installable: + - $(MAKE) pynie installable +pynie.test-installable: + - $(MAKE) pynie test-installable +pynie.install: + - $(MAKE) pynie install pynie.clean: - $(MAKE) pynie clean pynie.realclean: @@ -469,6 +669,12 @@ @echo "SKIPPED: scheme: (nothing to make, but should not default to make test)" scheme.test : - $(MAKE) scheme test +scheme.installable: + - $(MAKE) scheme installable +scheme.test-installable: + - $(MAKE) scheme test-installable +scheme.install: + - $(MAKE) scheme install scheme.clean : - $(MAKE) scheme clean scheme.realclean : @@ -489,6 +695,12 @@ - $(MAKE) tcl tcl.test: - $(MAKE) tcl test +tcl.installable: + - $(MAKE) tcl installable +tcl.test-installable: + - $(MAKE) tcl test-installable +tcl.install: + - $(MAKE) tcl install tcl.clean: - $(MAKE) tcl clean tcl.realclean: @@ -509,6 +721,12 @@ - $(MAKE) urm urm.test: - $(MAKE) urm test +urm.installable: + - $(MAKE) urm installable +urm.test-installable: + - $(MAKE) urm test-installable +urm.install: + - $(MAKE) urm install urm.clean: - $(MAKE) urm clean urm.realclean: @@ -519,6 +737,12 @@ - $(MAKE) WMLScript WMLScript.test: - $(MAKE) WMLScript test +WMLScript.installable: + - $(MAKE) WMLScript installable +WMLScript.test-installable: + - $(MAKE) WMLScript test-installable +WMLScript.install: + - $(MAKE) WMLScript install WMLScript.clean: - $(MAKE) WMLScript clean WMLScript.realclean: @@ -529,6 +753,12 @@ # Do nothing. make Zcode requires an Inform compiler Zcode.test: - $(MAKE) Zcode test +Zcode.installable: + - $(MAKE) Zcode installable +Zcode.test-installable: + - $(MAKE) Zcode test-installable +Zcode.install: + - $(MAKE) Zcode install Zcode.clean: - $(MAKE) Zcode clean Zcode.realclean: diff -urN languages/APL/config/makefiles/root.in languages/APL/config/makefiles/root.in --- languages/APL/config/makefiles/root.in 2008-06-24 17:19:59.000000000 +0000 +++ languages/APL/config/makefiles/root.in 2008-07-26 09:32:19.546875000 +0000 @@ -1,12 +1,17 @@ -## $Id: root.in 28657 2008-06-23 00:33:41Z coke $ +## $Id: root.in 28657 2008-06-23 00:33:41Z coke $ -*- Makefile -*- ## arguments we want to run parrot with PARROT_ARGS = ## configuration settings +LANG = APL BUILD_DIR = @build_dir@ LOAD_EXT = @load_ext@ O = @o@ +BIN_DIR = @bin_dir@ +LIB_DIR = @lib_dir@ +DOC_DIR = @doc_dir@ +MANDIR = @mandir@ ## Setup some commands LN_S = @lns@ @@ -15,8 +20,10 @@ CP = @cp@ PARROT = ../../[EMAIL PROTECTED]@ CAT = $(PERL) -MExtUtils::Command -e cat +PBC_TO_EXE = ../../[EMAIL PROTECTED]@ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl +POD2MAN = pod2man #CONDITIONED_LINE(darwin): #CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking #CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@ @@ -42,11 +49,18 @@ PMCS = aplvector PMC_SOURCES = $(PMC_DIR)/aplvector.pmc +DOCS = MAINTAINER README STATUS # the default target APL.pbc: $(PARROT) $(SOURCES) $(APL_GROUP) $(PARROT) $(PARROT_ARGS) -o APL.pbc APL.pir +$(LANG)@exe@: $(LANG).pbc + $(PBC_TO_EXE) $(LANG).pbc + +installable_$(LANG)@exe@: $(LANG).pbc + $(PBC_TO_EXE) $(LANG).pbc --install + src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \ --encoding=utf8 \ @@ -66,9 +80,13 @@ cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS) cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS) +installable : installable_$(LANG)@exe@ $(ABC_GROUP) + cp installable_$(LANG)@exe@ $(BUILD_DIR)/ + cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS) + # regenerate the Makefile Makefile: config/makefiles/root.in - cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=APL + cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(LANG) # This is a listing of all targets, that are meant to be called by users help: @@ -77,8 +95,11 @@ @echo "" @echo " all: APL.pbc" @echo " This is the default." + @echo " install: install the installable targets and docs." + @echo "" @echo "Testing:" @echo " test: Run the test suite." + @echo " test-installable: Test self-hosting targets." @echo " testclean: Clean up test results." @echo "" @echo "Cleaning:" @@ -93,6 +114,16 @@ test: all $(PERL) t/harness +# TODO: test for installed libs, rename build_dir. basic run for missing libs +test-installable : installable + ./installable_$(LANG)@exe@ demo.apl + +install : installable + cp installable_$(LANG)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(LANG)@exe@ + pod2man $(LANG).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(LANG).1 + mkdir $(DESTDIR)$(DOC_DIR)/languages/$(LANG) + cp $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(LANG) + testclean: $(RM_F) t/*.pir @@ -111,6 +142,8 @@ $(PMC_DIR)/*.manifest \ $(PMC_DIR)/*.pdb \ $(PMC_DIR)/*.lib \ + $(LANG)@exe@ \ + installable_$(LANG)@exe@ \ clean: testclean diff -urN languages/abc/config/makefiles/root.in languages/abc/config/makefiles/root.in --- languages/abc/config/makefiles/root.in 2008-06-24 17:20:00.000000000 +0000 +++ languages/abc/config/makefiles/root.in 2008-07-26 09:32:39.296875000 +0000 @@ -1,12 +1,17 @@ -# $Id: root.in 28657 2008-06-23 00:33:41Z coke $ +# $Id: root.in 28657 2008-06-23 00:33:41Z coke $ -*- Makefile -*- ## arguments we want to run parrot with PARROT_ARGS = ## configuration settings +LANG = abc BUILD_DIR = @build_dir@ LOAD_EXT = @load_ext@ O = @o@ +BIN_DIR = @bin_dir@ +LIB_DIR = @lib_dir@ +DOC_DIR = @doc_dir@ +MANDIR = @mandir@ ## Setup some commands LN_S = @lns@ @@ -15,8 +20,10 @@ CP = @cp@ PARROT = ../../[EMAIL PROTECTED]@ CAT = $(PERL) -MExtUtils::Command -e cat +PBC_TO_EXE = ../../[EMAIL PROTECTED]@ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl +POD2MAN = pod2man #CONDITIONED_LINE(darwin): #CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking #CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@ @@ -45,11 +52,15 @@ # PMCS = abc # PMC_SOURCES = $(PMC_DIR)/abc.pmc +DOCS = MAINTAINER README TODO # the default target abc.pbc: $(PARROT) $(SOURCES) $(PARROT) $(PARROT_ARGS) -o abc.pbc abc.pir +$(LANG)@exe@: $(LANG).pbc + $(PBC_TO_EXE) $(LANG).pbc + src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg src/parser/grammar-oper.pg $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \ --output=src/gen_grammar.pir \ @@ -69,9 +80,16 @@ cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS) cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS) +installable : installable_$(LANG)@exe@ $(ABC_GROUP) + cp installable_$(LANG)@exe@ $(BUILD_DIR)/ + cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS) + +installable_$(LANG)@exe@ : $(LANG).pbc + $(PBC_TO_EXE) $(LANG).pbc --install + # regenerate the Makefile Makefile: config/makefiles/root.in - cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=abc + cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(LANG) # This is a listing of all targets, that are meant to be called by users help: @@ -80,8 +98,11 @@ @echo "" @echo " all: abc.pbc" @echo " This is the default." + @echo " install: install the installable targets and docs." + @echo "" @echo "Testing:" @echo " test: Run the test suite." + @echo " test-installable: Test self-hosting targets." @echo " testclean: Clean up test results." @echo "" @echo "Cleaning:" @@ -96,6 +117,16 @@ test: all prove -r t +# TODO: rename build_dir. basic run for missing libs +test-installable : installable + echo "2-1" | ./installable_$(LANG)@exe@ + +install : installable + cp installable_$(LANG)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(LANG)@exe@ + pod2man $(LANG).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(LANG).1 + mkdir $(DESTDIR)$(DOC_DIR)/languages/$(LANG) + cp $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(LANG) + testclean: $(RM_RF) "t/*.pir" "t/*.out" @@ -114,7 +145,8 @@ $(PMC_DIR)/*.manifest \ $(PMC_DIR)/*.pdb \ $(PMC_DIR)/*.lib \ - + $(LANG)@exe@ \ + installable_$(LANG)@exe@ \ clean: testclean $(RM_RF) $(CLEANUPS) diff -urN languages/befunge/config/makefiles/root.in languages/befunge/config/makefiles/root.in --- languages/befunge/config/makefiles/root.in 2008-06-24 17:20:00.000000000 +0000 +++ languages/befunge/config/makefiles/root.in 2008-07-26 09:29:51.390625000 +0000 @@ -1,31 +1,44 @@ -# $Id: root.in 28657 2008-06-23 00:33:41Z coke $ +# $Id: root.in 28657 2008-06-23 00:33:41Z coke $ -*- Makefile -*- # Makefile for languages/befunge +LANG = befunge + +## configuration settings +BIN_DIR = @bin_dir@ +LIB_DIR = @lib_dir@ +DOC_DIR = @doc_dir@ +MANDIR = @mandir@ # Setup of some commands PARROT = ../../parrot PERL = @perl@ RM_F = @rm_f@ +POD2MAN = pod2man #CONDITIONED_LINE(darwin): #CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking #CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@ +DOCS = MAINTAINER README Changes + default: all help : @echo "" @echo "Following targets are available for the user:" @echo "" - @echo " build: Create befunge.pbc" + @echo " all: befunge.pbc" @echo " This is the default." @echo "" - @echo " test: run the test suite," + @echo " install: Install the installable targets and docs." + @echo "" + @echo " test: Run the test suite," + @echo " test-installable: Test self-hosting targets." @echo "" - @echo " clean: clean up temporary files" + @echo " clean: Clean up temporary files" @echo "" - @echo " realclean: clean up generated files" + @echo " realclean: Clean up generated files" @echo "" - @echo " help: print this help message" + @echo " help: Print this help message" all: build @@ -35,6 +48,16 @@ befunge.pbc: befunge.pasm debug.pasm flow.pasm io.pasm load.pasm maths.pasm stack.pasm $(PARROT) -o befunge.pbc befunge.pasm +installable_$(LANG)@exe@: $(LANG).pbc + $(PBC_TO_EXE) $(LANG).pbc --install + +installable : installable_$(LANG)@exe@ + cp installable_$(LANG)@exe@ $(BUILD_DIR)/ + +# regenerate the Makefile +Makefile: config/makefiles/root.in + cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(LANG) + test: befunge.pbc cd .. && $(PERL) t/harness --languages=befunge diff -urN languages/bf/config/makefiles/root.in languages/bf/config/makefiles/root.in --- languages/bf/config/makefiles/root.in 2008-06-24 17:19:59.000000000 +0000 +++ languages/bf/config/makefiles/root.in 2008-07-26 10:59:54.312500000 +0000 @@ -1,11 +1,21 @@ +# -*- Makefile -*- +LANG = bf +BIN_DIR = @bin_dir@ +LIB_DIR = @lib_dir@ +DOC_DIR = @doc_dir@ +MANDIR = @mandir@ + RM_F = @rm_f@ PERL = @perl@ -PARROT=../../parrot +PARROT = ../../[EMAIL PROTECTED]@ +PBC_TO_EXE = ../../[EMAIL PROTECTED]@ #CONDITIONED_LINE(darwin): #CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking #CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@ -default: build +DOCS = MAINTAINER README + +all : build help : @echo "" @@ -22,11 +32,31 @@ @echo "" @echo " help: print this help message" -test: build +test : build $(PERL) -Ilib -I../../lib t/harness build: bf.pbc bfc.pbc bfco.pbc +installable: [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ + [EMAIL PROTECTED]@: bf.pbc + $(PBC_TO_EXE) bf.pbc + [EMAIL PROTECTED]@: bfc.pbc + $(PBC_TO_EXE) bfc.pbc + [EMAIL PROTECTED]@: bfco.pbc + $(PBC_TO_EXE) bfco.pbc + [EMAIL PROTECTED]@: bf.pbc + $(PBC_TO_EXE) bf.pbc --install + [EMAIL PROTECTED]@: bfc.pbc + $(PBC_TO_EXE) bfc.pbc --install + [EMAIL PROTECTED]@: bfco.pbc + $(PBC_TO_EXE) bfco.pbc --install + bf.pbc: bf.pasm $(PARROT) -o bf.pbc bf.pasm @@ -36,6 +66,20 @@ bfco.pbc: bfco.pir $(PARROT) -o bfco.pbc bfco.pir +# TODO: rename build_dir. basic run for missing libs +test-installable : installable + ./[EMAIL PROTECTED]@ test.bf + ./[EMAIL PROTECTED]@ test.bf + ./[EMAIL PROTECTED]@ test.bf + +install : installable + cp installable_$(LANG)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(LANG)@exe@ + cp [EMAIL PROTECTED]@ $(DESTDIR)$(BIN_DIR)/[EMAIL PROTECTED]@ + cp [EMAIL PROTECTED]@ $(DESTDIR)$(BIN_DIR)/[EMAIL PROTECTED]@ + pod2man $(LANG).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(LANG).1 + mkdir $(DESTDIR)$(DOC_DIR)/languages/$(LANG) + cp $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(LANG) + clean: $(RM_F) core "*.pbc" "*~" diff -urN languages/c99/config/makefiles/root.in languages/c99/config/makefiles/root.in --- languages/c99/config/makefiles/root.in 2008-06-24 17:20:00.000000000 +0000 +++ languages/c99/config/makefiles/root.in 2008-07-26 10:59:41.921875000 +0000 @@ -1,4 +1,4 @@ -## $Id: root.in 28657 2008-06-23 00:33:41Z coke $ +## $Id: root.in 28657 2008-06-23 00:33:41Z coke $ -*- Makefile -*- ## arguments we want to run parrot with PARROT_ARGS = @@ -15,6 +15,7 @@ CP = @cp@ PARROT = ../../[EMAIL PROTECTED]@ CAT = $(PERL) -MExtUtils::Command -e cat +PBC_TO_EXE = ../../[EMAIL PROTECTED]@ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl #CONDITIONED_LINE(darwin): @@ -51,6 +52,12 @@ $(PARROT) $(PARROT_ARGS) -o c99.pbc c99.pir cd src/cpp; $(MAKE) [EMAIL PROTECTED]@: c99.pbc + $(PBC_TO_EXE) c99.pbc + [EMAIL PROTECTED]@: c99.pbc + $(PBC_TO_EXE) c99.pbc --install + src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \ --output=src/gen_grammar.pir \ @@ -71,7 +78,7 @@ # regenerate the Makefile Makefile: config/makefiles/root.in - cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=c + cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=c99 # This is a listing of all targets, that are meant to be called by users help: diff -urN languages/cardinal/config/makefiles/root.in languages/cardinal/config/makefiles/root.in --- languages/cardinal/config/makefiles/root.in 2008-06-24 17:19:59.000000000 +0000 +++ languages/cardinal/config/makefiles/root.in 2008-07-26 10:59:49.187500000 +0000 @@ -1,4 +1,4 @@ -## $Id: root.in 28657 2008-06-23 00:33:41Z coke $ +## $Id: root.in 28657 2008-06-23 00:33:41Z coke $ -*- Makefile -*- ## arguments we want to run parrot with PARROT_ARGS = @@ -15,6 +15,7 @@ CP = @cp@ PARROT = ../../[EMAIL PROTECTED]@ CAT = $(PERL) -MExtUtils::Command -e cat +PBC_TO_EXE = ../../[EMAIL PROTECTED]@ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl #CONDITIONED_LINE(darwin): @@ -57,6 +58,12 @@ cardinal.pbc: $(PARROT) $(SOURCES) $(PARROT) $(PARROT_ARGS) -o cardinal.pbc cardinal.pir [EMAIL PROTECTED]@: cardinal.pbc + $(PBC_TO_EXE) cardinal.pbc + [EMAIL PROTECTED]@: cardinal.pbc + $(PBC_TO_EXE) cardinal.pbc --install + src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \ --output=src/gen_grammar.pir \ @@ -107,6 +114,8 @@ CLEANUPS = \ cardinal.pbc \ + [EMAIL PROTECTED]@ \ + [EMAIL PROTECTED]@ \ src/gen_grammar.pir \ src/gen_actions.pir \ src/gen_builtins.pir \ diff -urN languages/dotnet/config/Makefile.in languages/dotnet/config/Makefile.in --- languages/dotnet/config/Makefile.in 2008-06-24 17:20:00.000000000 +0000 +++ languages/dotnet/config/Makefile.in 2008-07-25 16:59:47.796875000 +0000 @@ -16,6 +16,7 @@ PARROT = ${trans_parrot_path}${slash}parrot${exe} MONOLIB = ${trans_mono_lib_path} PBCMERGE = ${trans_parrot_path}${slash}pbc_merge${exe} +PBC_TO_EXE = ${trans_parrot_path}${slash}pbc_to_exe.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 @@ -60,6 +61,8 @@ all : pmc/dotnet$(LOAD_EXT) ops/dotnet_ops$(LOAD_EXT) src/it.pbc \ src/builtins.pbc src/translib.pbc net2pbc.pbc +installable : net2pbc.pbc installable_net2pbc$exe + pmc/dotnet$(LOAD_EXT) : $(PMC_FILES) pmc/structures.h pmc/tableinfo.h @cd $(PMCDIR) && $(PMCBUILD) generate $(PMCS) @cd $(PMCDIR) && $(PMCBUILD) compile $(PMCS) @@ -91,7 +94,17 @@ $(PBCMERGE) -o net2pbc.pbc src/net2pbc.pbc src/translib.pbc class-library : net2pbc.pbc -${trans_class_library} + ${trans_class_library} + +# regenerate the Makefile +Makefile: config/Makefile.in + $(PERL) Configure.pl + +net2pbc$exe : net2pbc.pbc + $(PBC_TO_EXE) net2pbc.pbc + +installable_net2pbc$exe : net2pbc.pbc + $(PBC_TO_EXE) net2pbc.pbc --install # PER FILE RULES AND DEPENDENCIES @@ -133,6 +146,15 @@ test : all $(PERL) -It t/harness +# TODO: rename build_dir. basic run for missing libs +installable_test : installable + installable_net2pbc$exe + +install : all installable + mkdir ${build_dir}${slash}runtime${slash}bin + cp installable_net2pbc$exe ${build_dir}${slash}runtime${slash}bin${slash}parrot-net2pbc$exe + @cd $(PMCDIR) && $(PMCBUILD) copy "--destination=$(DESTDIR)" $(PMCS) + @cd $(PMCDIR) && $(PMCBUILD) copy "--destination=$(DESTDIR)" $(OPLIBS) # CLEANUP TARGETS # ############### diff -urN languages/lua/config/makefiles/root.in languages/lua/config/makefiles/root.in --- languages/lua/config/makefiles/root.in 2008-06-24 17:19:59.000000000 +0000 +++ languages/lua/config/makefiles/root.in 2008-07-26 11:06:50.312500000 +0000 @@ -1,9 +1,14 @@ +# $Id: root.in 28657 2008-06-23 00:33:41Z coke $ -*- Makefile -*- # Copyright (C) 2005-2008, The Perl Foundation. -# $Id: root.in 28657 2008-06-23 00:33:41Z coke $ ## configuration settings +LANG = lua O = @o@ LOAD_EXT = @load_ext@ +BIN_DIR = @bin_dir@ +LIB_DIR = @lib_dir@ +DOC_DIR = @doc_dir@ +MANDIR = @mandir@ ## Setup some commands MAKE = @make_c@ @@ -94,6 +99,8 @@ GEN_PBC = \ lua.pbc +DOCS = MAINTAINER doc/running.pod doc/status.pod + all: \ $(PMCDIR)/lua_group$(LOAD_EXT) \ $(LIB_PBCS) \ @@ -128,11 +135,15 @@ $(TGE) --output=src/POSTGrammar_gen.pir src/POSTGrammar.tg lua.pbc: lua.pir src/lua51.pir src/grammar51.pir src/lua51_gen.pir src/PASTGrammar_gen.pir src/POSTGrammar_gen.pir $(LIB_SRCS) - $(PARROT) -o lua.pbc --output-pbc lua.pir + $(PARROT) -o lua_i.pbc --output-pbc lua.pir + $(PBC_MERGE) -o lua.pbc lua_i.pbc ../../compilers/tge/TGE/Rule.pbc [EMAIL PROTECTED]@: lua.pbc $(PBC_TO_EXE) lua.pbc [EMAIL PROTECTED]@: lua.pbc + $(PBC_TO_EXE) lua.pbc --install + $(LIBPATH)/lualibs.pbc: $(LIB_PBCS) $(PBC_MERGE) -o $(LIBPATH)/lualibs.pbc $(LIB_PBCS) @@ -244,6 +255,15 @@ test: all cd .. && $(PERL) t/harness --languages=lua +# TODO: rename build_dir. basic run for missing libs +test-installable : installable + echo "a=1" | ./installable_$(LANG)@exe@ + +install : installable + cp installable_$(LANG)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(LANG)@exe@ + pod2man doc/running.pod > $(DESTDIR)$(MANDIR)/man1/parrot-$(LANG).1 + mkdir $(DESTDIR)$(DOC_DIR)/languages/$(LANG) + cp $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(LANG) TEST_CLEANERS = \ "t/pmc/*.pir" \ @@ -258,6 +278,7 @@ BUILD_CLEANERS = \ [EMAIL PROTECTED]@ \ + [EMAIL PROTECTED]@ \ lua$(O) \ lua.c \ "*.pbc" \ diff -urN languages/perl6/config/makefiles/root.in languages/perl6/config/makefiles/root.in --- languages/perl6/config/makefiles/root.in 2008-07-11 06:47:06.000000000 +0000 +++ languages/perl6/config/makefiles/root.in 2008-07-21 20:14:57.250000000 +0000 @@ -113,6 +113,9 @@ perl6.pbc: $(PARROT) $(SOURCES) $(PARROT) $(PARROT_ARGS) -o perl6.pbc perl6.pir +installable_perl6$(EXE): perl6.pbc + $(PBC_TO_EXE) perl6.pbc --install + src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg src/parser/grammar-oper.pg $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \ --output=src/gen_grammar.pir \