# 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 \