From 7b7deb844ceb7cc8ba151b4415a009bf2deecab7 Mon Sep 17 00:00:00 2001 From: Keri Harris Date: Tue, 10 Oct 2006 07:48:20 +0000 Subject: [PATCH] Parallelize mmake. Package-Manager: portage-2.1.2_pre2-r5 --- dev-lang/mercury-extras/ChangeLog | 7 +- dev-lang/mercury-extras/Manifest | 20 +- ...mercury-extras-0.12.2-parallel-mmake.patch | 637 ++++++++++++++++++ .../mercury-extras-0.12.2-r2.ebuild | 28 +- 4 files changed, 676 insertions(+), 16 deletions(-) create mode 100644 dev-lang/mercury-extras/files/mercury-extras-0.12.2-parallel-mmake.patch diff --git a/dev-lang/mercury-extras/ChangeLog b/dev-lang/mercury-extras/ChangeLog index 257ff33e3efb..44967a2724bd 100644 --- a/dev-lang/mercury-extras/ChangeLog +++ b/dev-lang/mercury-extras/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for dev-lang/mercury-extras # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/mercury-extras/ChangeLog,v 1.44 2006/10/06 23:33:57 keri Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/mercury-extras/ChangeLog,v 1.45 2006/10/10 07:48:20 keri Exp $ + + 10 Oct 2006; keri + +files/mercury-extras-0.12.2-parallel-mmake.patch, + mercury-extras-0.12.2-r2.ebuild: + Parallelize mmake 06 Oct 2006; keri mercury-extras-0.12.2-r2.ebuild: Do not pre-strip binaries. diff --git a/dev-lang/mercury-extras/Manifest b/dev-lang/mercury-extras/Manifest index dffe728ab39f..f3d458aadf49 100644 --- a/dev-lang/mercury-extras/Manifest +++ b/dev-lang/mercury-extras/Manifest @@ -30,6 +30,10 @@ AUX mercury-extras-0.12.2-odbc.patch 1220 RMD160 e697733a639f81bcdc9010da481226f MD5 89a0a45245bd72fe139becbd4398ac29 files/mercury-extras-0.12.2-odbc.patch 1220 RMD160 e697733a639f81bcdc9010da481226fbab50f375 files/mercury-extras-0.12.2-odbc.patch 1220 SHA256 7b20c88383ced7e9d7c5be480885cf220c8cac65ef4729c441b7aca741d8d792 files/mercury-extras-0.12.2-odbc.patch 1220 +AUX mercury-extras-0.12.2-parallel-mmake.patch 19102 RMD160 32946063e03c7b90886310252836ae94a39a0a30 SHA1 2b3ce5a6faa7924ac91dd1c5b9607136efc3e18f SHA256 e42af94332962d168e553e92230f72fcb12d40ed1a74f3f71673043f9d55c8ff +MD5 3de9ee820efe692372c5d6f1fea9fea7 files/mercury-extras-0.12.2-parallel-mmake.patch 19102 +RMD160 32946063e03c7b90886310252836ae94a39a0a30 files/mercury-extras-0.12.2-parallel-mmake.patch 19102 +SHA256 e42af94332962d168e553e92230f72fcb12d40ed1a74f3f71673043f9d55c8ff files/mercury-extras-0.12.2-parallel-mmake.patch 19102 AUX mercury-extras-0.12.2-posix.patch 373 RMD160 4a451c2cb37d05aefac0f127f9971fba5bbc7535 SHA1 3c30540ffe61ebde533652736c65e9f935979dde SHA256 bb7f179bf838f76738d0cac0d1b30e07aea6ae6cb0a7e05ab2cba69bb3a5d85d MD5 9b59270ad11a77897c8ccb3a58dcf09c files/mercury-extras-0.12.2-posix.patch 373 RMD160 4a451c2cb37d05aefac0f127f9971fba5bbc7535 files/mercury-extras-0.12.2-posix.patch 373 @@ -88,10 +92,10 @@ EBUILD mercury-extras-0.12.2-r1.ebuild 2954 RMD160 b38a16819d30a14bc9733adf5b45c MD5 ac3a157529b1ff7f445ce97b4bc55954 mercury-extras-0.12.2-r1.ebuild 2954 RMD160 b38a16819d30a14bc9733adf5b45c99ccb97844a mercury-extras-0.12.2-r1.ebuild 2954 SHA256 1e9c8b3b62453ce5a460bca0104cab068ef3b4f63184547f72c8bd199f59f06b mercury-extras-0.12.2-r1.ebuild 2954 -EBUILD mercury-extras-0.12.2-r2.ebuild 3224 RMD160 624572b76fa013017ca960bfdcdf3894df3c99c9 SHA1 a2abdb5ecd237fdd3479051a4dcab5d5f1c963dd SHA256 509bf254f7998e43166f09e2f01443544b711aabcf84573f94dc67e6135afc17 -MD5 1176d08dd25d426282610d2148d4043e mercury-extras-0.12.2-r2.ebuild 3224 -RMD160 624572b76fa013017ca960bfdcdf3894df3c99c9 mercury-extras-0.12.2-r2.ebuild 3224 -SHA256 509bf254f7998e43166f09e2f01443544b711aabcf84573f94dc67e6135afc17 mercury-extras-0.12.2-r2.ebuild 3224 +EBUILD mercury-extras-0.12.2-r2.ebuild 3431 RMD160 a6aeb88a9bbfe286d94d5f2678aa62dc69d1b5c3 SHA1 2ccb9b74a4141672d765f5e731c1618466c3cdac SHA256 4ff6cb66b355375844be5154c3a2e338d28a2cce6bc16fb109ccbcb326eb217a +MD5 382edc7ce34dd8a314ca40db4a4457da mercury-extras-0.12.2-r2.ebuild 3431 +RMD160 a6aeb88a9bbfe286d94d5f2678aa62dc69d1b5c3 mercury-extras-0.12.2-r2.ebuild 3431 +SHA256 4ff6cb66b355375844be5154c3a2e338d28a2cce6bc16fb109ccbcb326eb217a mercury-extras-0.12.2-r2.ebuild 3431 EBUILD mercury-extras-0.12.2.ebuild 2805 RMD160 dcaf180536a27b4feb26be903eb014665bd0157c SHA1 894b9df7a585ced7b820d410e4b49dce752fc0dc SHA256 1f0698cd40c256629c24220d2519e5df26da7eaa7fb0964bfd9c1da19d6cb32f MD5 98557ba05682185a9127512b0e0d053d mercury-extras-0.12.2.ebuild 2805 RMD160 dcaf180536a27b4feb26be903eb014665bd0157c mercury-extras-0.12.2.ebuild 2805 @@ -100,10 +104,10 @@ EBUILD mercury-extras-0.13.0.ebuild 3445 RMD160 20c946c554c01efa4549604cc42aed23 MD5 4c9c7def9fc5306aac63328f6906ee35 mercury-extras-0.13.0.ebuild 3445 RMD160 20c946c554c01efa4549604cc42aed23300d019a mercury-extras-0.13.0.ebuild 3445 SHA256 5d637d4dac411c9df5ca6d513dc4a6daa3815ff604731a2f9760e5ae1d5fc1c4 mercury-extras-0.13.0.ebuild 3445 -MISC ChangeLog 13002 RMD160 3572e6400fc9ca71583d5f82a2ee01fc1cec527a SHA1 5771188d0e0eba91928a736d477c49aeb945092f SHA256 f5662c6a8928f96927b7b051dfc2795058ff51c70532d458a323b5f5f1dc5890 -MD5 e7d4c391e06c00d4ffcc2ff6fafa0293 ChangeLog 13002 -RMD160 3572e6400fc9ca71583d5f82a2ee01fc1cec527a ChangeLog 13002 -SHA256 f5662c6a8928f96927b7b051dfc2795058ff51c70532d458a323b5f5f1dc5890 ChangeLog 13002 +MISC ChangeLog 13149 RMD160 85c6f6b5ba30cfb6489761a0f71d31cba1cbf3ee SHA1 7c51b21c43b0b86be3906123e46c303d5551c15e SHA256 da79559b822918fd55d64a7ee9e572045a850bf011c5e937cb074031a857787b +MD5 275290bfd63eba88a8924d9cb13afb85 ChangeLog 13149 +RMD160 85c6f6b5ba30cfb6489761a0f71d31cba1cbf3ee ChangeLog 13149 +SHA256 da79559b822918fd55d64a7ee9e572045a850bf011c5e937cb074031a857787b ChangeLog 13149 MISC metadata.xml 247 RMD160 1b3df3c501d9a3b2e2651668be405677e8416397 SHA1 7b705a8a3368abab6ad31ea2fcb5e5db865d92b1 SHA256 2768d0688d443184194068497dcafb2e5d67521980cb46b7e8efc07d3900bcaa MD5 6fca20d17d6d55a28537204aa9bb626f metadata.xml 247 RMD160 1b3df3c501d9a3b2e2651668be405677e8416397 metadata.xml 247 diff --git a/dev-lang/mercury-extras/files/mercury-extras-0.12.2-parallel-mmake.patch b/dev-lang/mercury-extras/files/mercury-extras-0.12.2-parallel-mmake.patch new file mode 100644 index 000000000000..938af3b43fc3 --- /dev/null +++ b/dev-lang/mercury-extras/files/mercury-extras-0.12.2-parallel-mmake.patch @@ -0,0 +1,637 @@ +diff -urN mercury-extras-0.12.2.orig/curs/curs.m mercury-extras-0.12.2/curs/curs.m +--- mercury-extras-0.12.2.orig/curs/curs.m 2006-10-10 19:42:19.000000000 +1300 ++++ mercury-extras-0.12.2/curs/curs.m 2006-10-10 20:06:42.000000000 +1300 +@@ -30,7 +30,7 @@ + + :- import_module bool, io, string, char, int. + +- ++:- include_module curs__panel. + + % Start a curses session (colour, unbuffered input, no echoing, + % invisible cursor if possible, scrolling on when output past +@@ -220,104 +220,6 @@ + :- func cyan = colour. + :- func white = colour. + +- % ------------------------------------------------------------------------ % +- % ------------------------------------------------------------------------ % +- +- % Panels are windows over the main display; they may be +- % stacked, moved, ordered and hidden. Contents of panels +- % closer to the top of the stack obscure the parts of panels +- % they overlap that are lower in the stack. +- % +- :- module panel. +- +- :- interface. +- +- +- +- :- type panel. +- +- % new(Rows, Cols, Row, Col, Attr, Panel) creates a new panel +- % Panel whose size is given by (Rows, Cols) and whose position +- % on the display is given by (Row, Col). The new panel starts +- % visible and at the top of the stack. The default attributes +- % for the panel are set to Attr. +- % +- :- pred new(int::in, int::in, int::in, int::in, attr::in, panel::out, +- io__state::di, io__state::uo) is det. +- +- % Destroy a panel. +- % +- :- pred delete(panel::in, io__state::di, io__state::uo) is det. +- +- % Raise/lower a panel to the top/bottom of the stack. +- % +- :- pred raise(panel::in, io__state::di, io__state::uo) is det. +- +- :- pred lower(panel::in, io__state::di, io__state::uo) is det. +- +- % Hide/reveal a panel (revealing places it at the top of the stack). +- % +- :- pred hide(panel::in, io__state::di, io__state::uo) is det. +- +- :- pred reveal(panel::in, io__state::di, io__state::uo) is det. +- +- % Move a panel to (Row, Col) on the display. +- % +- :- pred relocate(panel::in, int::in, int::in, +- io__state::di, io__state::uo) is det. +- +- % Clear a panel. +- % +- :- pred clear(panel::in, io__state::di, io__state::uo) is det. +- +- % Move the virtual cursor to given row and column; (0, 0) are the +- % coordinates for the upper left hand corner of the panel. +- % +- :- pred move(panel::in, int::in, int::in, +- io__state::di, io__state::uo) is det. +- +- % Add a char/string to a panel with the given attributes. +- % Note that char codes are passed rather than plain chars. +- % +- :- pred addch(panel::in, attr::in, int::in, +- io__state::di, io__state::uo) is det. +- +- :- pred addstr(panel::in, attr::in, string::in, +- io__state::di, io__state::uo) is det. +- +- % Turn on/off or set attributes that will be applied by default. +- % +- :- pred attr_on(panel::in, attr::in, io__state::di, io__state::uo) is det. +- :- pred attr_off(panel::in, attr::in, io__state::di, io__state::uo) is det. +- :- pred attr_set(panel::in, attr::in, io__state::di, io__state::uo) is det. +- +- % Update the display (also calls doupdate). +- % NOTE that doupdate does not call update_panels. +- % +- :- pred update_panels(io__state::di, io__state::uo) is det. +- +- +- +- % Draws a border around the inside edge of the display. +- % +- :- pred border(panel::in, io__state::di, io__state::uo) is det. +- +- % Draws an horizontal line of length N moving to the right. +- % +- :- pred hline(panel::in, int::in, int::in, +- io__state::di, io__state::uo) is det. +- +- % Draws a vertical line of length N moving down. +- % +- :- pred vline(panel::in, int::in, int::in, +- io__state::di, io__state::uo) is det. +- +- :- end_module panel. +- +- % ------------------------------------------------------------------------ % +- % ------------------------------------------------------------------------ % +- +-% ---------------------------------------------------------------------------- % + % ---------------------------------------------------------------------------- % + + :- implementation. +@@ -936,219 +838,4 @@ + + "). + +- % ------------------------------------------------------------------------ % +- % ------------------------------------------------------------------------ % +- +- :- module panel. +- +- :- implementation. +- +- :- type panel == c_pointer. +- +- % ------------------------------------------------------------------------ % +- +- :- pragma c_header_code(" +- +- #include +- #include +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- :- pragma foreign_proc("C", new(Rows::in, Cols::in, Row::in, Col::in, Attr::in, +- Panel::out, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- WINDOW *w = newwin(Rows, Cols, Row, Col); +- scrollok(w, TRUE); +- wattrset(w, Attr); +- wcolor_set(w, Attr, NULL); +- wclear(w); +- (*(PANEL**)&(Panel)) = new_panel(w); +- +- IO = IO0; +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- :- pragma foreign_proc("C", delete(Panel::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- delwin(panel_window((PANEL *)Panel)); +- del_panel((PANEL *)Panel); +- +- IO = IO0; +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- :- pragma foreign_proc("C", raise(Panel::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- top_panel((PANEL *)Panel); +- +- IO = IO0; +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- :- pragma foreign_proc("C", lower(Panel::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- bottom_panel((PANEL *)Panel); +- +- IO = IO0; +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- :- pragma foreign_proc("C", hide(Panel::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- hide_panel((PANEL *)Panel); +- +- IO = IO0; +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- :- pragma foreign_proc("C", reveal(Panel::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- show_panel((PANEL *)Panel); +- +- IO = IO0; +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- :- pragma foreign_proc("C", relocate(Panel::in, Row::in, Col::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- move_panel((PANEL *)Panel, Row, Col); +- +- IO = IO0; +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- :- pragma foreign_proc("C", clear(Panel::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- wclear(panel_window((PANEL *)Panel)); +- +- IO = IO0; +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- :- pragma foreign_proc("C", move(Panel::in, Row::in, Col::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- wmove(panel_window((PANEL *)Panel), Row, Col); +- +- IO = IO0; +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- :- pragma foreign_proc("C", addch(Panel::in, Attr::in, CharCode::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- waddch(panel_window((PANEL *)Panel), (chtype)Attr | (chtype)CharCode); +- +- IO = IO0; +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- addstr(Panel, Attr, Str) --> +- string__foldl( +- ( pred(Char::in, di, uo) is det --> +- addch(Panel, Attr, char__to_int(Char)) +- ), +- Str +- ). +- +- % ------------------------------------------------------------------------ % +- +- :- pragma foreign_proc("C", attr_on(Panel::in, Attr::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- wattron(panel_window((PANEL *)Panel), Attr); +- IO = IO0; +- +- "). +- :- pragma foreign_proc("C", attr_off(Panel::in, Attr::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- wattroff(panel_window((PANEL *)Panel), Attr); +- IO = IO0; +- +- "). +- :- pragma foreign_proc("C", attr_set(Panel::in, Attr::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- wattrset(panel_window((PANEL *)Panel), Attr); +- IO = IO0; +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- :- pragma foreign_proc("C", update_panels(IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- update_panels(); +- doupdate(); +- +- IO = IO0; +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- :- pragma foreign_proc("C", border(Panel::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- wborder(panel_window((PANEL *)Panel), 0, 0, 0, 0, 0, 0, 0, 0); +- IO = IO0; +- +- "). +- +- :- pragma foreign_proc("C", hline(Panel::in, C::in, N::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- whline(panel_window((PANEL *)Panel), C, N); +- IO = IO0; +- +- "). +- +- :- pragma foreign_proc("C", vline(Panel::in, C::in, N::in, IO0::di, IO::uo), +- [will_not_call_mercury, promise_pure], " +- +- wvline(panel_window((PANEL *)Panel), C, N); +- IO = IO0; +- +- "). +- +- % ------------------------------------------------------------------------ % +- +- :- end_module panel. +- +- % ------------------------------------------------------------------------ % +- % ------------------------------------------------------------------------ % +- +-% ---------------------------------------------------------------------------- % + % ---------------------------------------------------------------------------- % +diff -urN mercury-extras-0.12.2.orig/curs/curs.panel.m mercury-extras-0.12.2/curs/curs.panel.m +--- mercury-extras-0.12.2.orig/curs/curs.panel.m 1970-01-01 12:00:00.000000000 +1200 ++++ mercury-extras-0.12.2/curs/curs.panel.m 2006-10-10 20:07:35.000000000 +1300 +@@ -0,0 +1,296 @@ ++% ------------------------------------------------------------------------ % ++ ++ % Panels are windows over the main display; they may be ++ % stacked, moved, ordered and hidden. Contents of panels ++ % closer to the top of the stack obscure the parts of panels ++ % they overlap that are lower in the stack. ++ % ++:- module curs__panel. ++ ++:- interface. ++ ++ ++ ++:- type panel. ++ ++ % new(Rows, Cols, Row, Col, Attr, Panel) creates a new panel ++ % Panel whose size is given by (Rows, Cols) and whose position ++ % on the display is given by (Row, Col). The new panel starts ++ % visible and at the top of the stack. The default attributes ++ % for the panel are set to Attr. ++ % ++:- pred new(int::in, int::in, int::in, int::in, attr::in, panel::out, ++ io__state::di, io__state::uo) is det. ++ ++ % Destroy a panel. ++ % ++:- pred delete(panel::in, io__state::di, io__state::uo) is det. ++ ++ % Raise/lower a panel to the top/bottom of the stack. ++ % ++:- pred raise(panel::in, io__state::di, io__state::uo) is det. ++ ++:- pred lower(panel::in, io__state::di, io__state::uo) is det. ++ ++ % Hide/reveal a panel (revealing places it at the top of the stack). ++ % ++:- pred hide(panel::in, io__state::di, io__state::uo) is det. ++ ++:- pred reveal(panel::in, io__state::di, io__state::uo) is det. ++ ++ % Move a panel to (Row, Col) on the display. ++ % ++:- pred relocate(panel::in, int::in, int::in, ++ io__state::di, io__state::uo) is det. ++ ++ % Clear a panel. ++ % ++:- pred clear(panel::in, io__state::di, io__state::uo) is det. ++ ++ % Move the virtual cursor to given row and column; (0, 0) are the ++ % coordinates for the upper left hand corner of the panel. ++ % ++:- pred move(panel::in, int::in, int::in, ++ io__state::di, io__state::uo) is det. ++ ++ % Add a char/string to a panel with the given attributes. ++ % Note that char codes are passed rather than plain chars. ++ % ++:- pred addch(panel::in, attr::in, int::in, ++ io__state::di, io__state::uo) is det. ++ ++:- pred addstr(panel::in, attr::in, string::in, ++ io__state::di, io__state::uo) is det. ++ ++ % Turn on/off or set attributes that will be applied by default. ++ % ++:- pred attr_on(panel::in, attr::in, io__state::di, io__state::uo) is det. ++:- pred attr_off(panel::in, attr::in, io__state::di, io__state::uo) is det. ++:- pred attr_set(panel::in, attr::in, io__state::di, io__state::uo) is det. ++ ++ % Update the display (also calls doupdate). ++ % NOTE that doupdate does not call update_panels. ++ % ++:- pred update_panels(io__state::di, io__state::uo) is det. ++ ++ ++ ++ % Draws a border around the inside edge of the display. ++ % ++:- pred border(panel::in, io__state::di, io__state::uo) is det. ++ ++ % Draws an horizontal line of length N moving to the right. ++ % ++:- pred hline(panel::in, int::in, int::in, ++ io__state::di, io__state::uo) is det. ++ ++ % Draws a vertical line of length N moving down. ++ % ++:- pred vline(panel::in, int::in, int::in, ++ io__state::di, io__state::uo) is det. ++ ++% ------------------------------------------------------------------------ % ++ ++:- implementation. ++ ++:- type panel == c_pointer. ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma c_header_code(" ++ ++#include ++#include ++ ++"). ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma foreign_proc("C", new(Rows::in, Cols::in, Row::in, Col::in, Attr::in, ++ Panel::out, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ WINDOW *w = newwin(Rows, Cols, Row, Col); ++ scrollok(w, TRUE); ++ wattrset(w, Attr); ++ wcolor_set(w, Attr, NULL); ++ wclear(w); ++ (*(PANEL**)&(Panel)) = new_panel(w); ++ ++ IO = IO0; ++ ++"). ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma foreign_proc("C", delete(Panel::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ delwin(panel_window((PANEL *)Panel)); ++ del_panel((PANEL *)Panel); ++ ++ IO = IO0; ++ ++"). ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma foreign_proc("C", raise(Panel::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ top_panel((PANEL *)Panel); ++ ++ IO = IO0; ++ ++"). ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma foreign_proc("C", lower(Panel::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ bottom_panel((PANEL *)Panel); ++ ++ IO = IO0; ++ ++"). ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma foreign_proc("C", hide(Panel::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ hide_panel((PANEL *)Panel); ++ ++ IO = IO0; ++ ++"). ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma foreign_proc("C", reveal(Panel::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ show_panel((PANEL *)Panel); ++ ++ IO = IO0; ++ ++"). ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma foreign_proc("C", relocate(Panel::in, Row::in, Col::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ move_panel((PANEL *)Panel, Row, Col); ++ ++ IO = IO0; ++ ++"). ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma foreign_proc("C", clear(Panel::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ wclear(panel_window((PANEL *)Panel)); ++ ++ IO = IO0; ++ ++"). ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma foreign_proc("C", move(Panel::in, Row::in, Col::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ wmove(panel_window((PANEL *)Panel), Row, Col); ++ ++ IO = IO0; ++ ++"). ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma foreign_proc("C", addch(Panel::in, Attr::in, CharCode::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ waddch(panel_window((PANEL *)Panel), (chtype)Attr | (chtype)CharCode); ++ ++ IO = IO0; ++ ++"). ++ ++% ------------------------------------------------------------------------ % ++ ++addstr(Panel, Attr, Str) --> ++ string__foldl( ++ ( pred(Char::in, di, uo) is det --> ++ addch(Panel, Attr, char__to_int(Char)) ++ ), ++ Str ++ ). ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma foreign_proc("C", attr_on(Panel::in, Attr::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ wattron(panel_window((PANEL *)Panel), Attr); ++ IO = IO0; ++ ++"). ++:- pragma foreign_proc("C", attr_off(Panel::in, Attr::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ wattroff(panel_window((PANEL *)Panel), Attr); ++ IO = IO0; ++ ++"). ++:- pragma foreign_proc("C", attr_set(Panel::in, Attr::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ wattrset(panel_window((PANEL *)Panel), Attr); ++ IO = IO0; ++ ++"). ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma foreign_proc("C", update_panels(IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ update_panels(); ++ doupdate(); ++ ++ IO = IO0; ++ ++"). ++ ++% ------------------------------------------------------------------------ % ++ ++:- pragma foreign_proc("C", border(Panel::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ wborder(panel_window((PANEL *)Panel), 0, 0, 0, 0, 0, 0, 0, 0); ++ IO = IO0; ++ ++"). ++ ++:- pragma foreign_proc("C", hline(Panel::in, C::in, N::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ whline(panel_window((PANEL *)Panel), C, N); ++ IO = IO0; ++ ++"). ++ ++:- pragma foreign_proc("C", vline(Panel::in, C::in, N::in, IO0::di, IO::uo), ++ [will_not_call_mercury, promise_pure], " ++ ++ wvline(panel_window((PANEL *)Panel), C, N); ++ IO = IO0; ++ ++"). ++ ++% ------------------------------------------------------------------------ % diff --git a/dev-lang/mercury-extras/mercury-extras-0.12.2-r2.ebuild b/dev-lang/mercury-extras/mercury-extras-0.12.2-r2.ebuild index 53c7c4e524b6..d78dd3e0a5f5 100644 --- a/dev-lang/mercury-extras/mercury-extras-0.12.2-r2.ebuild +++ b/dev-lang/mercury-extras/mercury-extras-0.12.2-r2.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/mercury-extras/mercury-extras-0.12.2-r2.ebuild,v 1.7 2006/10/06 23:33:57 keri Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/mercury-extras/mercury-extras-0.12.2-r2.ebuild,v 1.8 2006/10/10 07:48:20 keri Exp $ inherit eutils @@ -29,6 +29,7 @@ src_unpack() { unpack ${A} cd "${S}" epatch "${FILESDIR}"/${P}-gcc4.patch + epatch "${FILESDIR}"/${P}-parallel-mmake.patch epatch "${FILESDIR}"/${P}-concurrency.patch epatch "${FILESDIR}"/${P}-dynamic_linking.patch epatch "${FILESDIR}"/${P}-lex.patch @@ -60,26 +61,39 @@ src_unpack() { src_compile() { mmake depend || die "mmake depend failed" - mmake EXTRA_MLFLAGS=--no-strip || die "mmake failed" + mmake \ + MMAKEFLAGS="${MAKEOPTS}" \ + EXTRA_MLFLAGS=--no-strip \ + || die "mmake failed" if use opengl && use tcl && use tk ; then cd "${S}"/graphics/mercury_opengl cp ../mercury_tcltk/mtcltk.m ./ - mmake -f Mmakefile.mtogl depend || die "mmake depend mtogl failed" - mmake -f Mmakefile.mtogl || die "mmake mtogl failed" + mmake \ + -f Mmakefile.mtogl depend \ + || die "mmake depend mtogl failed" + mmake \ + MMAKEFLAGS="${MAKEOPTS}" \ + -f Mmakefile.mtogl \ + || die "mmake mtogl failed" fi } src_install() { cd "${S}" - mmake INSTALL_PREFIX="${D}"/usr install || die "mmake install failed" + mmake \ + MMAKEFLAGS="${MAKEOPTS}" \ + INSTALL_PREFIX="${D}"/usr install \ + || die "mmake install failed" if use opengl && use tcl && use tk ; then cd "${S}"/graphics/mercury_opengl mv Mmakefile Mmakefile.opengl mv Mmakefile.mtogl Mmakefile - mmake INSTALL_PREFIX="${D}"/usr \ - install || die "mmake install mtogl failed" + mmake \ + MMAKEFLAGS="${MAKEOPTS}" \ + INSTALL_PREFIX="${D}"/usr install \ + || die "mmake install mtogl failed" fi find "${D}"/usr/lib/mercury-${PV} -type l | xargs rm -- 2.26.2