Parallelize mmake.
authorKeri Harris <keri@gentoo.org>
Tue, 10 Oct 2006 07:48:20 +0000 (07:48 +0000)
committerKeri Harris <keri@gentoo.org>
Tue, 10 Oct 2006 07:48:20 +0000 (07:48 +0000)
Package-Manager: portage-2.1.2_pre2-r5

dev-lang/mercury-extras/ChangeLog
dev-lang/mercury-extras/Manifest
dev-lang/mercury-extras/files/mercury-extras-0.12.2-parallel-mmake.patch [new file with mode: 0644]
dev-lang/mercury-extras/mercury-extras-0.12.2-r2.ebuild

index 257ff33e3efb923dc080055e1a06ee3323c783a0..44967a2724bde85bd632da6e529654ce66699132 100644 (file)
@@ -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 <keri@gentoo.org>
+  +files/mercury-extras-0.12.2-parallel-mmake.patch,
+  mercury-extras-0.12.2-r2.ebuild:
+  Parallelize mmake
 
   06 Oct 2006; keri <keri@gentoo.org> mercury-extras-0.12.2-r2.ebuild:
   Do not pre-strip binaries.
index dffe728ab39f5bab5be72893dce612134b2bc6b5..f3d458aadf490f86e081b268d79a478d29ab8f45 100644 (file)
@@ -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 (file)
index 0000000..938af3b
--- /dev/null
@@ -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 <ncurses.h>
+-    #include <panel.h>
+-
+-    ").
+-
+-    % ------------------------------------------------------------------------ %
+-
+-    :- 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 <ncurses.h>
++#include <panel.h>
++
++").
++
++% ------------------------------------------------------------------------ %
++
++:- 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;
++
++").
++
++% ------------------------------------------------------------------------ %
index 53c7c4e524b6983a2476266c13998b448e909437..d78dd3e0a5f56c8371ca0c140caafb8181b3ea4e 100644 (file)
@@ -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