summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeri Harris <keri@gentoo.org>2010-09-06 08:07:08 +0000
committerKeri Harris <keri@gentoo.org>2010-09-06 08:07:08 +0000
commit6a4fdeb3b6f0f8f34ad4a74be5bf923cc235f957 (patch)
tree9d088742f6e904470a75bee1ce77f78546e21d85 /dev-lang/mercury-extras
parentBug #336075: Add warning about mysql_upgrade for some users. (diff)
downloadhistorical-6a4fdeb3b6f0f8f34ad4a74be5bf923cc235f957.tar.gz
historical-6a4fdeb3b6f0f8f34ad4a74be5bf923cc235f957.tar.bz2
historical-6a4fdeb3b6f0f8f34ad4a74be5bf923cc235f957.zip
Version bump
Package-Manager: portage-2.1.8.3/cvs/Linux x86_64
Diffstat (limited to 'dev-lang/mercury-extras')
-rw-r--r--dev-lang/mercury-extras/ChangeLog17
-rw-r--r--dev-lang/mercury-extras/Manifest14
-rw-r--r--dev-lang/mercury-extras/files/mercury-extras-10.04.1-curs.patch314
-rw-r--r--dev-lang/mercury-extras/files/mercury-extras-10.04.1-dynamic-linking.patch12
-rw-r--r--dev-lang/mercury-extras/files/mercury-extras-10.04.1-iodbc.patch69
-rw-r--r--dev-lang/mercury-extras/files/mercury-extras-10.04.1-lex.patch33
-rw-r--r--dev-lang/mercury-extras/files/mercury-extras-10.04.1-mercury-glut.patch25
-rw-r--r--dev-lang/mercury-extras/files/mercury-extras-10.04.1-mercury-opengl.patch22
-rw-r--r--dev-lang/mercury-extras/files/mercury-extras-10.04.1-mercury-tcltk.patch27
-rw-r--r--dev-lang/mercury-extras/files/mercury-extras-10.04.1-no-java-grade-no-erlang-grade.patch180
-rw-r--r--dev-lang/mercury-extras/files/mercury-extras-10.04.1-odbc.patch60
-rw-r--r--dev-lang/mercury-extras/files/mercury-extras-10.04.1-posix.patch12
-rw-r--r--dev-lang/mercury-extras/mercury-extras-10.04.1.ebuild133
13 files changed, 916 insertions, 2 deletions
diff --git a/dev-lang/mercury-extras/ChangeLog b/dev-lang/mercury-extras/ChangeLog
index 35b23143a5aa..e44b5fa6e56c 100644
--- a/dev-lang/mercury-extras/ChangeLog
+++ b/dev-lang/mercury-extras/ChangeLog
@@ -1,6 +1,21 @@
# ChangeLog for dev-lang/mercury-extras
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/mercury-extras/ChangeLog,v 1.74 2010/08/22 06:25:20 keri Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/mercury-extras/ChangeLog,v 1.75 2010/09/06 08:07:07 keri Exp $
+
+*mercury-extras-10.04.1 (06 Sep 2010)
+
+ 06 Sep 2010; <keri@gentoo.org> +mercury-extras-10.04.1.ebuild,
+ +files/mercury-extras-10.04.1-curs.patch,
+ +files/mercury-extras-10.04.1-dynamic-linking.patch,
+ +files/mercury-extras-10.04.1-iodbc.patch,
+ +files/mercury-extras-10.04.1-lex.patch,
+ +files/mercury-extras-10.04.1-mercury-glut.patch,
+ +files/mercury-extras-10.04.1-mercury-opengl.patch,
+ +files/mercury-extras-10.04.1-mercury-tcltk.patch,
+ +files/mercury-extras-10.04.1-no-java-grade-no-erlang-grade.patch,
+ +files/mercury-extras-10.04.1-odbc.patch,
+ +files/mercury-extras-10.04.1-posix.patch:
+ Version bump
*mercury-extras-10.04-r1 (22 Aug 2010)
diff --git a/dev-lang/mercury-extras/Manifest b/dev-lang/mercury-extras/Manifest
index d62fe806ac73..d20ae40fded2 100644
--- a/dev-lang/mercury-extras/Manifest
+++ b/dev-lang/mercury-extras/Manifest
@@ -17,6 +17,16 @@ AUX mercury-extras-10.04-mercury_tcltk.patch 1380 RMD160 59b610536c0c1335f932c33
AUX mercury-extras-10.04-no-java-grade-no-erlang-grade.patch 7550 RMD160 7c98e6a1a94640e5c0dffc05d80e9ea814ba7117 SHA1 ca3b532563502614323189e1443c8118d883bb4b SHA256 e716d89e494670fc06ca3d1795e6461abf103b2260d500035cf33f9310f40817
AUX mercury-extras-10.04-odbc.patch 2931 RMD160 a3cca01ac5185bd80d5274ce2ab1e09e4dbbad2f SHA1 bd2082d6f28d7a64c66f681f6506e1b765de5732 SHA256 2e519291fea7ec0714d1148ac00b4058a6e77059928865457f166df977b10504
AUX mercury-extras-10.04-posix.patch 1366 RMD160 201e96d8eef523850a5feb7e30e1130722f28a07 SHA1 964f5ed5604e82373bf55791da9e7fac4de8fd7d SHA256 7a9b672f770fe7ae83821b8cb99a8a4e80c82ea44d6a6731b06ddfe2bb77b023
+AUX mercury-extras-10.04.1-curs.patch 10233 RMD160 fbae7729cb585a81208284a16e4fa5f38b9771b1 SHA1 2eb7cf4285745f52bec99e66830c03bb13aaa43a SHA256 98ac0a60ce43292177de012f457097b1b850f8ac8f6b425a164e2ca13e51012f
+AUX mercury-extras-10.04.1-dynamic-linking.patch 496 RMD160 68c6710317c41b290291ac3df83110bdf7f049a6 SHA1 fed9e446bfa78b750cdb44e82f328907f63a0d22 SHA256 d7680e67f5fad2c8f1d16e380cd867ab1d1466f8e0fbe7adc4035d41c0930d1d
+AUX mercury-extras-10.04.1-iodbc.patch 2397 RMD160 7489a5d66b8efc3b46aed34e78f90f6dc71beea0 SHA1 773df5a1deef1b591a023455be8857a95adc4e84 SHA256 7d65efbc9716c02d1cb8b15311fddbf3d8f9e5b0de8d525517da58dbb9b475b6
+AUX mercury-extras-10.04.1-lex.patch 748 RMD160 fae35bf63330d5c80b23beb0ee92c27b9fff3581 SHA1 250e06f0626075ad77f7f144e9f8b5fb7ab1947b SHA256 6a41903adb0e37b45b7d68960e09f8cef89037f3c6b84e762c67d11ae61136d3
+AUX mercury-extras-10.04.1-mercury-glut.patch 885 RMD160 569baa46477e537ac1a9abebeac451b61752d77f SHA1 780609a4308d1bdefd6fe26754841a03fed294b5 SHA256 99ab05158450f18691ba948b9bdc7fdbc3677113bba53d50bc80578ee4bdb311
+AUX mercury-extras-10.04.1-mercury-opengl.patch 1071 RMD160 cc75370c9f093b02fec608e0c3cfba1508a198c1 SHA1 9638c49534087d2a94c2b0ef89968b6ac9daea40 SHA256 0a02b6d92acb86bc1b12bc8ddea3ea7799c902fc9e05feab8e2e9a5df5ba2fb2
+AUX mercury-extras-10.04.1-mercury-tcltk.patch 1262 RMD160 a910b56dee92bda2816c29ba099c0b616fec22ef SHA1 2d82d341887b2e247332892f491ed0e697dc0d89 SHA256 81bb4d4574cb8c21e7e6693ffebe082e42809db4fcf87350690fb2537904bc74
+AUX mercury-extras-10.04.1-no-java-grade-no-erlang-grade.patch 7676 RMD160 1659868f9474da9f3e0c49f56c85de578bbcd5f5 SHA1 d262029894b1992e7942464c88ac6203fde0d650 SHA256 c1bc59b853bb19884af2e2c2677c81c6ac9fc9021999a3aac1ac2e4da23df975
+AUX mercury-extras-10.04.1-odbc.patch 2087 RMD160 2e3da2737cfb122e2bf8d8e632a8328913f78b03 SHA1 2af8c8fa269f59341211763de4c500bce014f289 SHA256 92e1ba3d1d26f73fccbf72617ece2599a8b5dbb71d2ac297d9353573af0790c2
+AUX mercury-extras-10.04.1-posix.patch 466 RMD160 5777ebb73dd9acc09bddcd79d2851596b3160939 SHA1 fbf12e32bd42559fc284ae05dac2c2785fae2a9c SHA256 7aa1ea0add4f60a438460dc474457c2dd08402143af5d991bc85c31e838c779b
AUX mercury-extras-10.04_beta1-curs.patch 10243 RMD160 0b1ece400baa1b754b0ad5b2669170b89f7da975 SHA1 9a90d957f27bbc0b0329859663ffdb919db9d2db SHA256 3aa05184dd72ae534bfb6fca6cbf60ff18f8da253dcb280c59ebc9b9ff844645
AUX mercury-extras-10.04_beta1-dynamic-linking.patch 389 RMD160 a46c4805390c5d9914a952d96a0cb4867ba51378 SHA1 54a2c32f01372db644d756ddd47b1ff4c790c4ea SHA256 b4b170c62547ad91420f850c6307a3f594231be8893112915b17f016c636087c
AUX mercury-extras-10.04_beta1-iodbc.patch 2417 RMD160 f33db752ff83805fc0f178f0b408d15b9c2aac0d SHA1 2b0cc49d3abc83e4e2c849d25f5cdbb2770b67a7 SHA256 6f0123261d319b651fef1d579c8795c585bebdf343a37f302052e84239b0f51d
@@ -29,10 +39,12 @@ AUX mercury-extras-10.04_beta1-odbc.patch 2107 RMD160 856ce0c442a77dcdbcca7f5cb8
AUX mercury-extras-10.04_beta1-posix.patch 477 RMD160 dbe0a1f1d117a2a90a4aa588f9dea92e7a915fd1 SHA1 8fea62228a711694e869924fb20eae69b5177f70 SHA256 4ea5d325f6d36fee58ec87f1b2ea6d57959eb8dcc5693ab935a0486e12d47173
DIST mercury-extras-0.13.1.tar.gz 688974 RMD160 d14aeeefe29a2bc6ae59d174043a18808e2a6875 SHA1 3871d523400e0c0ac0396918b6ba74a378269b15 SHA256 33580108aed30359facde24645b23d5ca559fe0c9c50f448199d3d7b751b7c4c
DIST mercury-extras-10.04-beta.tar.gz 713626 RMD160 d4a4e04e6fef80af430006ad3d20e94d3fc82e61 SHA1 a9efcc59ffc0104d6ceb821daa1dfca08fb83e1a SHA256 34040ca9eb85acee4409a15d3e11d5a6b2ad12f9ef8cb41776754aaf49a8abcd
+DIST mercury-extras-10.04.1.tar.gz 706531 RMD160 c249b239eafb19d27180e2fcbd6c763967eb4dda SHA1 5dec96a55fef96d5269f8be50f970f4d53522947 SHA256 7d7825224b0e0ae5079cdad4a323493d65a24f0a7f00eff6a100a6569329af3c
DIST mercury-extras-10.04.tar.gz 706376 RMD160 988e17736ace555916b452a5f22b3d8f67ad6b4e SHA1 22cb6eb10bd6a4d17605217fe97f8718b8dfbbb4 SHA256 408d0a428b8d15934d5b7f5bd3e2139807fb2eb0a7f58d125c8490456445814b
EBUILD mercury-extras-0.13.1-r1.ebuild 3342 RMD160 9d7e9b6d40140fc59f5c7dfa25ebc091f7193ca8 SHA1 81ece0b057f2b72ae90c4f158d7ee19c3d6141c4 SHA256 d7088f207671007417e25319d31860883331b0243041d159a5da44fbc62c028b
EBUILD mercury-extras-10.04-r1.ebuild 3628 RMD160 cab5a1787338fff841baebd2e1d8668e17dd2cd8 SHA1 c380bb462e676fefe310b5b01713229c653e4fd6 SHA256 4bb39801d28fabfe6ebb162c40c58df2947354278d0d21dd7386ca69da223d63
+EBUILD mercury-extras-10.04.1.ebuild 3627 RMD160 ffbb88000102e83b1b741db1791b901345771aab SHA1 de7d698f4281a02ed63dc1c31b4e28c7ecb390ab SHA256 ed7aac81db5efc72fa98336fdc319e0774c341371e1f97a1e21f3cacdbfc6fd2
EBUILD mercury-extras-10.04.ebuild 3463 RMD160 e7f6e03a106959b04ea17766465aec23b00395c0 SHA1 a960b50c459e1599f484d8fac781c592d6d95705 SHA256 7442af287ee93583c469ef766f63a5c4c0ad82104995915a656ad3235c53849b
EBUILD mercury-extras-10.04_beta1.ebuild 3564 RMD160 52cad5cc67e98fbbd7f4fba943f70598d816467a SHA1 019089411cbc73fa5ebc14fbb2975e18752806c9 SHA256 dda1b4340cf873f160c50b9b979bf9f5ba4dee138e23eb921d6445b9bfa1e861
-MISC ChangeLog 20249 RMD160 1efd721a02a9038c6dd59ba052f436d467cc1c7d SHA1 164965fdde457c132e8d1a36c73ea84eda07fd56 SHA256 dfca1ae75a41b2179950a6dd16d07fbb04bdaa10097e05b85ad66fdd179877d5
+MISC ChangeLog 20873 RMD160 8aafae6254f49d2971e439e279a2074a8758b122 SHA1 2fd43501c6c3dc907e54fa9e793808186ca37d4a SHA256 21542ab171c07bbcf1fdb8e7e4f3d4a90db7dbb87a29ce22816404c59985ef38
MISC metadata.xml 247 RMD160 1b3df3c501d9a3b2e2651668be405677e8416397 SHA1 7b705a8a3368abab6ad31ea2fcb5e5db865d92b1 SHA256 2768d0688d443184194068497dcafb2e5d67521980cb46b7e8efc07d3900bcaa
diff --git a/dev-lang/mercury-extras/files/mercury-extras-10.04.1-curs.patch b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-curs.patch
new file mode 100644
index 000000000000..34d91bee3d50
--- /dev/null
+++ b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-curs.patch
@@ -0,0 +1,314 @@
+diff -urN mercury-extras-10.04.1.orig/curs/curs.m mercury-extras-10.04.1/curs/curs.m
+--- mercury-extras-10.04.1.orig/curs/curs.m 2006-04-21 15:37:10.000000000 +1200
++++ mercury-extras-10.04.1/curs/curs.m 2010-09-06 19:34:04.000000000 +1200
+@@ -31,6 +31,8 @@
+ :- import_module io.
+ :- import_module string.
+
++:- include_module curs__panel.
++
+ %-----------------------------------------------------------------------------%
+
+ % Start a curses session (colour, unbuffered input, no echoing,
+@@ -210,90 +212,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::di, io::uo) is det.
+-
+- % Destroy a panel.
+- %
+- :- pred delete(panel::in, io::di, io::uo) is det.
+-
+- % Raise/lower a panel to the top/bottom of the stack.
+- %
+- :- pred raise(panel::in, io::di, io::uo) is det.
+- :- pred lower(panel::in, io::di, io::uo) is det.
+-
+- % Hide/reveal a panel (revealing places it at the top of the stack).
+- %
+- :- pred hide(panel::in, io::di, io::uo) is det.
+- :- pred reveal(panel::in, io::di, io::uo) is det.
+-
+- % Move a panel to (Row, Col) on the display.
+- %
+- :- pred relocate(panel::in, int::in, int::in, io::di, io::uo) is det.
+-
+- % Clear a panel.
+- %
+- :- pred clear(panel::in, io::di, io::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::di, io::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::di, io::uo) is det.
+- :- pred addstr(panel::in, attr::in, string::in, io::di, io::uo) is det.
+-
+- % Turn on/off or set attributes that will be applied by default.
+- %
+- :- pred attr_on(panel::in, attr::in, io::di, io::uo) is det.
+- :- pred attr_off(panel::in, attr::in, io::di, io::uo) is det.
+- :- pred attr_set(panel::in, attr::in, io::di, io::uo) is det.
+-
+- % Update the display (also calls doupdate).
+- % NOTE: doupdate does not call update_panels.
+- %
+- :- pred update_panels(io::di, io::uo) is det.
+-
+- % Draws a border around the inside edge of the display.
+- %
+- :- pred border(panel::in, io::di, io::uo) is det.
+-
+- % Draws an horizontal line of length N moving to the right.
+- %
+- :- pred hline(panel::in, int::in, int::in, io::di, io::uo) is det.
+-
+- % Draws a vertical line of length N moving down.
+- %
+- :- pred vline(panel::in, int::in, int::in, io::di, io::uo) is det.
+-
+- :- end_module panel.
+-
+- %-------------------------------------------------------------------------%
+- %-------------------------------------------------------------------------%
+-
+-%-----------------------------------------------------------------------------%
+ %-----------------------------------------------------------------------------%
+
+ :- implementation.
+@@ -1044,210 +962,4 @@
+ IO = IO0;
+ ").
+
+- %-------------------------------------------------------------------------%
+- %-------------------------------------------------------------------------%
+-
+- :- module panel.
+-
+- :- implementation.
+-
+- %-------------------------------------------------------------------------%
+-
+- :- pragma foreign_decl("C", "
+-
+- #include <ncurses.h>
+- #include <panel.h>
+-
+- ").
+-
+- :- pragma foreign_type("C", panel, "PANEL *").
+-
+- %-------------------------------------------------------------------------%
+-
+- :- 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 = 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));
+- del_panel(Panel);
+-
+- IO = IO0;
+- ").
+-
+- %-------------------------------------------------------------------------%
+-
+- :- pragma foreign_proc("C",
+- raise(Panel::in, IO0::di, IO::uo),
+- [will_not_call_mercury, promise_pure],
+- "
+- top_panel(Panel);
+- IO = IO0;
+- ").
+-
+- %-------------------------------------------------------------------------%
+-
+- :- pragma foreign_proc("C",
+- lower(Panel::in, IO0::di, IO::uo),
+- [will_not_call_mercury, promise_pure],
+- "
+- bottom_panel(Panel);
+- IO = IO0;
+- ").
+-
+- %-------------------------------------------------------------------------%
+-
+- :- pragma foreign_proc("C",
+- hide(Panel::in, IO0::di, IO::uo),
+- [will_not_call_mercury, promise_pure],
+- "
+- hide_panel(Panel);
+- IO = IO0;
+- ").
+-
+- %-------------------------------------------------------------------------%
+-
+- :- pragma foreign_proc("C",
+- reveal(Panel::in, IO0::di, IO::uo),
+- [will_not_call_mercury, promise_pure],
+- "
+- show_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, 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));
+- 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), 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), (chtype)Attr | (chtype)CharCode);
+- IO = IO0;
+- ").
+-
+- %-------------------------------------------------------------------------%
+-
+- addstr(Panel, Attr, Str, !IO) :-
+- string.foldl(
+- ( pred(Char::in, !.IO::di, !:IO::uo) is det :-
+- addch(Panel, Attr, char.to_int(Char), !IO)
+- ),
+- Str, !IO
+- ).
+-
+- %-------------------------------------------------------------------------%
+-
+- :- pragma foreign_proc("C",
+- attr_on(Panel::in, Attr::in, IO0::di, IO::uo),
+- [will_not_call_mercury, promise_pure],
+- "
+- wattron(panel_window(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), 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), 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), 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), 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), C, N);
+- IO = IO0;
+- ").
+-
+- %-------------------------------------------------------------------------%
+- :- end_module panel.
+- %-------------------------------------------------------------------------%
+- %-------------------------------------------------------------------------%
+-
+-%-----------------------------------------------------------------------------%
+ %-----------------------------------------------------------------------------%
diff --git a/dev-lang/mercury-extras/files/mercury-extras-10.04.1-dynamic-linking.patch b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-dynamic-linking.patch
new file mode 100644
index 000000000000..e6f8dc65e566
--- /dev/null
+++ b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-dynamic-linking.patch
@@ -0,0 +1,12 @@
+diff -urN mercury-extras-10.04.1.orig/dynamic_linking/Mmakefile mercury-extras-10.04.1/dynamic_linking/Mmakefile
+--- mercury-extras-10.04.1.orig/dynamic_linking/Mmakefile 2005-01-25 20:49:05.000000000 +1300
++++ mercury-extras-10.04.1/dynamic_linking/Mmakefile 2010-09-06 19:35:05.000000000 +1200
+@@ -11,7 +11,7 @@
+ MLFLAGS = --shared
+
+ # Link in the `-ldl' library (this may not be needed on some systems)
+-MLLIBS = -ldl
++MLLIBS = -L/usr/@libdir@ -ldl
+
+ # enable C-level debugging
+ CFLAGS = -g
diff --git a/dev-lang/mercury-extras/files/mercury-extras-10.04.1-iodbc.patch b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-iodbc.patch
new file mode 100644
index 000000000000..df25b5bc9528
--- /dev/null
+++ b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-iodbc.patch
@@ -0,0 +1,69 @@
+diff -urN mercury-extras-10.04.1.orig/odbc/Mmakefile mercury-extras-10.04.1/odbc/Mmakefile
+--- mercury-extras-10.04.1.orig/odbc/Mmakefile 2006-04-03 18:19:54.000000000 +1200
++++ mercury-extras-10.04.1/odbc/Mmakefile 2010-09-06 19:44:01.000000000 +1200
+@@ -12,7 +12,7 @@
+ # The driver manager.
+ # Legal values for MODBC_DRIVER are MODBC_IODBC, MODBC_UNIX, and MODBC_MS.
+ # Feel free to add more (and handle them in odbc.m).
+-MODBC_DRIVER=MODBC_UNIX
++MODBC_DRIVER=MODBC_IODBC
+
+ # The database.
+ # Legal values for MODBC_DB are MODBC_MYSQL and MODBC_SQL_SERVER.
+@@ -41,17 +41,20 @@
+ # The following are for Debian.
+
+ # for unixODBC
+- MLLIBS=-lodbc -lpthread -lltdl -ldl
+-
++ MLLIBS=`iodbc-config --libs`
++ ODBC_CFLAGS=`iodbc-config --cflags`
+ # for iODBC
+ # MLLIBS=-liodbc l-pthread -ldl
+ # note: on a DEC Alpha using OSF1 remove the -ldl.
+ endif
+
+-MAIN_TARGET=odbc_test
++MAIN_TARGET=libodbc
+
+ .PHONY: depend
+-depend: odbc_test.depend
++depend: odbc.depend
++
++.PHONY: install
++install: libodbc.install
+
+ .PHONY: check
+ check:
+@@ -62,7 +65,7 @@
+ # `--no-ansi' is needed because the ODBC header files include C++-style
+ # "//" comments. `--no-ansi' allows recognition of C++-style "//" comments,
+ # presuming you have gcc version 2.7.1 or greater.
+-MGNUCFLAGS=--no-ansi -D$(MODBC_DRIVER) -D$(MODBC_DB) -I$(ODBC_INCL_DIR)
++MGNUCFLAGS=--no-ansi -D$(MODBC_DRIVER) -D$(MODBC_DB) $(ODBC_CFLAGS)
+
+ #-----------------------------------------------------------------------------#
+ #-----------------------------------------------------------------------------#
+diff -urN mercury-extras-10.04.1.orig/odbc/odbc.m mercury-extras-10.04.1/odbc/odbc.m
+--- mercury-extras-10.04.1.orig/odbc/odbc.m 2006-08-31 23:09:50.000000000 +1200
++++ mercury-extras-10.04.1/odbc/odbc.m 2010-09-06 19:44:01.000000000 +1200
+@@ -2000,8 +2000,8 @@
+ ** Arbitrary size, only needs to hold a
+ ** descriptive string like ""SQL Server"".
+ */
+- String new_dsn;
+- String new_desc;
++ LPSTR new_dsn;
++ LPSTR new_desc;
+ SWORD dsn_len;
+ SWORD desc_len;
+ SQLRETURN rc;
+@@ -2335,7 +2335,7 @@
+ SQLSMALLINT msg_len;
+ UCHAR message[SQL_MAX_MESSAGE_LENGTH];
+ UCHAR sql_state[SQL_SQLSTATE_SIZE + 1];
+- String mercury_message;
++ LPSTR mercury_message;
+ MR_Word new_message;
+
+ MR_ASSERT_IMPLY(connection_handle == SQL_NULL_HDBC,
diff --git a/dev-lang/mercury-extras/files/mercury-extras-10.04.1-lex.patch b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-lex.patch
new file mode 100644
index 000000000000..b0d7dabf1d73
--- /dev/null
+++ b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-lex.patch
@@ -0,0 +1,33 @@
+diff -urN lex/Mmakefile lex/Mmakefile
+--- lex/Mmakefile 1970-01-01 12:00:00.000000000 +1200
++++ lex/Mmakefile 2010-09-06 19:36:37.000000000 +1200
+@@ -0,0 +1,29 @@
++# Copyright (C) 2001 Ralph Becket <rbeck@microsoft.com>
++# Copyright (C) 2002 The University of Melbourne
++
++# To build, do the following:
++#
++# $ mmake depend
++# $ mmake all
++# $ mmake install
++#
++# If you have problems, try the following instead:
++#
++# $ mmake depend
++# $ mmake all
++# $ mmake liblex.install
++# $ mmake libregex.install
++
++MAIN_TARGET = all
++
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
++
++.PHONEY: all depend install
++
++all: liblex libregex
++
++depend: lex.depend regex.depend
++
++install:
++ $(MMAKE) liblex.install
diff --git a/dev-lang/mercury-extras/files/mercury-extras-10.04.1-mercury-glut.patch b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-mercury-glut.patch
new file mode 100644
index 000000000000..cf27cb576aa0
--- /dev/null
+++ b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-mercury-glut.patch
@@ -0,0 +1,25 @@
+diff -urN mercury-extras-10.04.1.orig/graphics/mercury_glut/Mmakefile mercury-extras-10.04.1/graphics/mercury_glut/Mmakefile
+--- mercury-extras-10.04.1.orig/graphics/mercury_glut/Mmakefile 2006-03-30 14:52:44.000000000 +1200
++++ mercury-extras-10.04.1/graphics/mercury_glut/Mmakefile 2010-09-06 19:38:06.000000000 +1200
+@@ -13,10 +13,10 @@
+ # The following libraries are for X on Linux (Debian) using Mesa.
+
+ # Libaries required by X windows.
+-X_LIBS = -lX11 -lXext -lXt -lXi -lSM -lICE -L/usr/X11R6/lib
++#X_LIBS = -lX11 -lXext -lXt -lXi -lSM -lICE -L/usr/X11R6/lib
+
+ # Libraries required by OpenGL.
+-GL_LIBS = -lGL -LGL
++#GL_LIBS = -lGL -LGL
+
+ MCFLAGS-mercury_glut+=--no-warn-nothing-exported --no-warn-interface-imports
+
+@@ -26,7 +26,7 @@
+ MGNUCFLAGS = --pic-reg
+ EXTRA_MLFLAGS = -shared
+
+-MLLIBS = -lglut $(X_LIBS) $(GL_LIBS)
++MLLIBS = -lglut
+
+ depend: mercury_glut.depend
+
diff --git a/dev-lang/mercury-extras/files/mercury-extras-10.04.1-mercury-opengl.patch b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-mercury-opengl.patch
new file mode 100644
index 000000000000..222d13cc5417
--- /dev/null
+++ b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-mercury-opengl.patch
@@ -0,0 +1,22 @@
+diff -urN mercury-extras-10.04.1.orig/graphics/mercury_opengl/Mmakefile mercury-extras-10.04.1/graphics/mercury_opengl/Mmakefile
+--- mercury-extras-10.04.1.orig/graphics/mercury_opengl/Mmakefile 2007-10-11 19:21:31.000000000 +1300
++++ mercury-extras-10.04.1/graphics/mercury_opengl/Mmakefile 2010-09-06 19:40:05.000000000 +1200
+@@ -17,7 +17,8 @@
+
+ # Specify what libraries we need to link against for OpenGL on this system.
+ # (The following works on Debian with mesa as the OpenGL implementation).
+-GL_LIBS = -lGL -lGLU -L/usr/X11R6/lib -lX11 -lXt -lICE -lXext -lSM
++GL_LIBS = `pkg-config --libs gl` `pkg-config --libs glu`
++GL_CFLAGS = `pkg-config --cflags gl` `pkg-config --cflags glu`
+
+ # Don't issue a warning because mercury_opengl doesn't export anything.
+ MCFLAGS-mercury_opengl = --no-warn-nothing-exported
+@@ -26,7 +27,7 @@
+ # implemented completely.
+ MCFLAGS-mogl = --no-warn-inferred-erroneous
+
+-MCFLAGS = --halt-at-warn --intermodule-optimization
++MCFLAGS = --halt-at-warn --intermodule-optimization $(GL_CFLAGS)
+
+ MLLIBS = $(GL_LIBS) $(EXTRA_MLLIBS)
+
diff --git a/dev-lang/mercury-extras/files/mercury-extras-10.04.1-mercury-tcltk.patch b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-mercury-tcltk.patch
new file mode 100644
index 000000000000..32102bedf2c5
--- /dev/null
+++ b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-mercury-tcltk.patch
@@ -0,0 +1,27 @@
+diff -urN mercury-extras-10.04.1.orig/graphics/mercury_tcltk/Mmakefile mercury-extras-10.04.1/graphics/mercury_tcltk/Mmakefile
+--- mercury-extras-10.04.1.orig/graphics/mercury_tcltk/Mmakefile 2005-08-15 16:11:42.000000000 +1200
++++ mercury-extras-10.04.1/graphics/mercury_tcltk/Mmakefile 2010-09-06 19:39:01.000000000 +1200
+@@ -8,10 +8,7 @@
+
+ # You may need to modify the line below
+
+-MLLIBS = -ltk8.4 -ltcl8.4 -L/usr/X11R6/lib -lX11 -lXmu -lXext -lm -ldl \
+- -lXt -lICE -lSM
+-
+-MLFLAGS = -R/usr/X11R6/lib
++MLLIBS = -ltk -ltcl
+
+ # On some Linux machines you may need to let mgnuc know where the
+ # tcl/tk header files are.
+diff -urN mercury-extras-10.04.1.orig/graphics/mercury_tcltk/mtcltk.m mercury-extras-10.04.1/graphics/mercury_tcltk/mtcltk.m
+--- mercury-extras-10.04.1.orig/graphics/mercury_tcltk/mtcltk.m 2007-08-21 14:47:37.000000000 +1200
++++ mercury-extras-10.04.1/graphics/mercury_tcltk/mtcltk.m 2010-09-06 19:39:01.000000000 +1200
+@@ -154,7 +154,7 @@
+ MR_incr_hp(argv_word, argc + 1);
+ argv = (char **) argv_word;
+
+- for (i = 0, l = Args; l != list_empty(); l = list_tail(l), i++) {
++ for (i = 0, l = Args; l != MR_list_empty(); l = MR_list_tail(l), i++) {
+ argv[i] = (char *) MR_list_head(l);
+ }
+
diff --git a/dev-lang/mercury-extras/files/mercury-extras-10.04.1-no-java-grade-no-erlang-grade.patch b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-no-java-grade-no-erlang-grade.patch
new file mode 100644
index 000000000000..93f3a7a08e75
--- /dev/null
+++ b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-no-java-grade-no-erlang-grade.patch
@@ -0,0 +1,180 @@
+diff -urN mercury-extras-10.04.1.orig/cgi/Mmakefile mercury-extras-10.04.1/cgi/Mmakefile
+--- mercury-extras-10.04.1.orig/cgi/Mmakefile 2004-07-30 19:01:07.000000000 +1200
++++ mercury-extras-10.04.1/cgi/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -12,6 +12,9 @@
+
+ MAIN_TARGET = $(LIBRARY)
+
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
++
+ MCFLAGS-mercury_www = --no-warn-nothing-exported
+
+ depend: mercury_www.depend
+diff -urN mercury-extras-10.04.1.orig/complex_numbers/Mmakefile mercury-extras-10.04.1/complex_numbers/Mmakefile
+--- mercury-extras-10.04.1.orig/complex_numbers/Mmakefile 2003-01-16 23:44:11.000000000 +1300
++++ mercury-extras-10.04.1/complex_numbers/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -10,6 +10,9 @@
+
+ MAIN_TARGET = all
+
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
++
+ all: libcomplex_numbers
+
+ depend: complex_numbers.depend
+diff -urN mercury-extras-10.04.1.orig/curs/Mmakefile mercury-extras-10.04.1/curs/Mmakefile
+--- mercury-extras-10.04.1.orig/curs/Mmakefile 2003-01-16 23:44:14.000000000 +1300
++++ mercury-extras-10.04.1/curs/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -26,7 +26,8 @@
+ # Omit this line if you want to install the default grades.
+ # Edit this line if you want to install with different grades.
+ #
+-#LIBGRADES = asm_fast.gc hlc.gc
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
+
+ # The following standard libraries must be linked against in any
+ # application using the curs library (i.e. MLLIBS must include
+diff -urN mercury-extras-10.04.1.orig/curses/Mmakefile mercury-extras-10.04.1/curses/Mmakefile
+--- mercury-extras-10.04.1.orig/curses/Mmakefile 2003-01-16 23:44:15.000000000 +1300
++++ mercury-extras-10.04.1/curses/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -13,6 +13,9 @@
+ # this line to include the appropriate curses library for your OS.
+ MLLIBS = -lncurses
+
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
++
+ -include ../Mmake.params
+
+ default_target: libmcurses
+diff -urN mercury-extras-10.04.1.orig/dynamic_linking/Mmakefile mercury-extras-10.04.1/dynamic_linking/Mmakefile
+--- mercury-extras-10.04.1.orig/dynamic_linking/Mmakefile 2005-01-25 20:49:05.000000000 +1300
++++ mercury-extras-10.04.1/dynamic_linking/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -17,6 +17,9 @@
+ CFLAGS = -g
+ MLFLAGS += --no-strip
+
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
++
+ -include ../Mmake.params
+
+ main_target: libdl
+diff -urN mercury-extras-10.04.1.orig/graphics/mercury_glut/Mmakefile mercury-extras-10.04.1/graphics/mercury_glut/Mmakefile
+--- mercury-extras-10.04.1.orig/graphics/mercury_glut/Mmakefile 2006-03-30 14:52:44.000000000 +1200
++++ mercury-extras-10.04.1/graphics/mercury_glut/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -10,6 +10,9 @@
+
+ MAIN_TARGET = libmercury_glut
+
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
++
+ # The following libraries are for X on Linux (Debian) using Mesa.
+
+ # Libaries required by X windows.
+diff -urN mercury-extras-10.04.1.orig/graphics/mercury_opengl/Mmakefile mercury-extras-10.04.1/graphics/mercury_opengl/Mmakefile
+--- mercury-extras-10.04.1.orig/graphics/mercury_opengl/Mmakefile 2007-10-11 19:21:31.000000000 +1300
++++ mercury-extras-10.04.1/graphics/mercury_opengl/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -15,6 +15,9 @@
+
+ MAIN_TARGET = libmercury_opengl
+
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
++
+ # Specify what libraries we need to link against for OpenGL on this system.
+ # (The following works on Debian with mesa as the OpenGL implementation).
+ GL_LIBS = -lGL -lGLU -L/usr/X11R6/lib -lX11 -lXt -lICE -lXext -lSM
+diff -urN mercury-extras-10.04.1.orig/graphics/mercury_tcltk/Mmakefile mercury-extras-10.04.1/graphics/mercury_tcltk/Mmakefile
+--- mercury-extras-10.04.1.orig/graphics/mercury_tcltk/Mmakefile 2005-08-15 16:11:42.000000000 +1200
++++ mercury-extras-10.04.1/graphics/mercury_tcltk/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -21,6 +21,9 @@
+
+ MAIN_TARGET = $(LIBRARY)
+
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
++
+ depend: mercury_tcltk.depend
+
+ install: libmercury_tcltk.install
+diff -urN mercury-extras-10.04.1.orig/lazy_evaluation/Mmakefile mercury-extras-10.04.1/lazy_evaluation/Mmakefile
+--- mercury-extras-10.04.1.orig/lazy_evaluation/Mmakefile 2003-01-16 23:44:17.000000000 +1300
++++ mercury-extras-10.04.1/lazy_evaluation/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -4,6 +4,9 @@
+ # Public License - see the file COPYING.LIB in the Mercury distribution.
+ #-----------------------------------------------------------------------------#
+ INSTALL_PREFIX := $(INSTALL_PREFIX)/extras
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
++
+ -include ../Mmake.params
+ default_target: all
+ depend: lazy_list.depend lazy_list_test.depend
+diff -urN mercury-extras-10.04.1.orig/moose/Mmakefile mercury-extras-10.04.1/moose/Mmakefile
+--- mercury-extras-10.04.1.orig/moose/Mmakefile 2003-01-16 23:44:20.000000000 +1300
++++ mercury-extras-10.04.1/moose/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -6,6 +6,8 @@
+
+ # GRADE = asm_fast.gc.debug
+ # GRADE = asm_fast.gc.prof
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
+
+ # MCFLAGS = -O6
+ # MCFLAGS = --intermodule-optimization -O6
+diff -urN mercury-extras-10.04.1.orig/odbc/Mmakefile mercury-extras-10.04.1/odbc/Mmakefile
+--- mercury-extras-10.04.1.orig/odbc/Mmakefile 2006-04-03 18:19:54.000000000 +1200
++++ mercury-extras-10.04.1/odbc/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -8,6 +8,8 @@
+
+ #-----------------------------------------------------------------------------#
+ # Configuration
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
+
+ # The driver manager.
+ # Legal values for MODBC_DRIVER are MODBC_IODBC, MODBC_UNIX, and MODBC_MS.
+diff -urN mercury-extras-10.04.1.orig/posix/Mmakefile mercury-extras-10.04.1/posix/Mmakefile
+--- mercury-extras-10.04.1.orig/posix/Mmakefile 2008-09-02 21:45:54.000000000 +1200
++++ mercury-extras-10.04.1/posix/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -8,6 +8,9 @@
+
+ -include ../Mmake.params
+
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
++
+ # The following is needed (on some systems) to enable declarations of
+ # Posix functions in standard C header files.
+ MGNUCFLAGS = --no-ansi
+diff -urN mercury-extras-10.04.1.orig/quickcheck/Mmakefile mercury-extras-10.04.1/quickcheck/Mmakefile
+--- mercury-extras-10.04.1.orig/quickcheck/Mmakefile 2003-01-16 23:44:24.000000000 +1300
++++ mercury-extras-10.04.1/quickcheck/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -10,6 +10,9 @@
+
+ MAIN_TARGET = all
+
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
++
+ .PHONY: depend
+ depend: qcheck.depend test_qcheck.depend
+
+diff -urN mercury-extras-10.04.1.orig/xml/Mmakefile mercury-extras-10.04.1/xml/Mmakefile
+--- mercury-extras-10.04.1.orig/xml/Mmakefile 2002-03-06 23:10:31.000000000 +1300
++++ mercury-extras-10.04.1/xml/Mmakefile 2010-09-06 19:41:29.000000000 +1200
+@@ -8,6 +8,9 @@
+
+ INSTALL_PREFIX := $(INSTALL_PREFIX)/extras
+
++LIBGRADES := $(filter-out java,$(LIBGRADES))
++LIBGRADES := $(filter-out erlang,$(LIBGRADES))
++
+ .PHONY: default_target
+ default_target: tryit libxml
+
diff --git a/dev-lang/mercury-extras/files/mercury-extras-10.04.1-odbc.patch b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-odbc.patch
new file mode 100644
index 000000000000..3216b037220e
--- /dev/null
+++ b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-odbc.patch
@@ -0,0 +1,60 @@
+diff -urN mercury-extras-10.04.1.orig/odbc/Mmakefile mercury-extras-10.04.1/odbc/Mmakefile
+--- mercury-extras-10.04.1.orig/odbc/Mmakefile 2006-04-03 18:19:54.000000000 +1200
++++ mercury-extras-10.04.1/odbc/Mmakefile 2010-09-06 19:42:52.000000000 +1200
+@@ -41,17 +41,20 @@
+ # The following are for Debian.
+
+ # for unixODBC
+- MLLIBS=-lodbc -lpthread -lltdl -ldl
+-
++ MLLIBS=`odbc_config --libs`
++ ODBC_CFLAGS=`odbc_config --cflags`
+ # for iODBC
+ # MLLIBS=-liodbc l-pthread -ldl
+ # note: on a DEC Alpha using OSF1 remove the -ldl.
+ endif
+
+-MAIN_TARGET=odbc_test
++MAIN_TARGET=libodbc
+
+ .PHONY: depend
+-depend: odbc_test.depend
++depend: odbc.depend
++
++.PHONY: install
++install: libodbc.install
+
+ .PHONY: check
+ check:
+@@ -62,7 +65,7 @@
+ # `--no-ansi' is needed because the ODBC header files include C++-style
+ # "//" comments. `--no-ansi' allows recognition of C++-style "//" comments,
+ # presuming you have gcc version 2.7.1 or greater.
+-MGNUCFLAGS=--no-ansi -D$(MODBC_DRIVER) -D$(MODBC_DB) -I$(ODBC_INCL_DIR)
++MGNUCFLAGS=--no-ansi -D$(MODBC_DRIVER) -D$(MODBC_DB) $(ODBC_CFLAGS)
+
+ #-----------------------------------------------------------------------------#
+ #-----------------------------------------------------------------------------#
+diff -urN mercury-extras-10.04.1.orig/odbc/odbc.m mercury-extras-10.04.1/odbc/odbc.m
+--- mercury-extras-10.04.1.orig/odbc/odbc.m 2006-08-31 23:09:50.000000000 +1200
++++ mercury-extras-10.04.1/odbc/odbc.m 2010-09-06 19:42:52.000000000 +1200
+@@ -2000,8 +2000,8 @@
+ ** Arbitrary size, only needs to hold a
+ ** descriptive string like ""SQL Server"".
+ */
+- String new_dsn;
+- String new_desc;
++ LPSTR new_dsn;
++ LPSTR new_desc;
+ SWORD dsn_len;
+ SWORD desc_len;
+ SQLRETURN rc;
+@@ -2335,7 +2335,7 @@
+ SQLSMALLINT msg_len;
+ UCHAR message[SQL_MAX_MESSAGE_LENGTH];
+ UCHAR sql_state[SQL_SQLSTATE_SIZE + 1];
+- String mercury_message;
++ LPSTR mercury_message;
+ MR_Word new_message;
+
+ MR_ASSERT_IMPLY(connection_handle == SQL_NULL_HDBC,
diff --git a/dev-lang/mercury-extras/files/mercury-extras-10.04.1-posix.patch b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-posix.patch
new file mode 100644
index 000000000000..abfecf913d2f
--- /dev/null
+++ b/dev-lang/mercury-extras/files/mercury-extras-10.04.1-posix.patch
@@ -0,0 +1,12 @@
+diff -urN mercury-extras-10.04.1.orig/posix/Mmakefile mercury-extras-10.04.1/posix/Mmakefile
+--- mercury-extras-10.04.1.orig/posix/Mmakefile 2008-09-02 21:45:54.000000000 +1200
++++ mercury-extras-10.04.1/posix/Mmakefile 2010-09-06 19:40:40.000000000 +1200
+@@ -34,7 +34,7 @@
+
+ .PHONY: install
+ install: libposix.install
+- cp $(ADDITIONAL_HDRS) $(INSTALL_PREFIX)/lib/mercury/inc
++ cp $(ADDITIONAL_HDRS) $(INSTALL_PREFIX)/@libdir@/mercury/inc
+
+ .PHONY: clean
+ clean:
diff --git a/dev-lang/mercury-extras/mercury-extras-10.04.1.ebuild b/dev-lang/mercury-extras/mercury-extras-10.04.1.ebuild
new file mode 100644
index 000000000000..d7bdee537789
--- /dev/null
+++ b/dev-lang/mercury-extras/mercury-extras-10.04.1.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/mercury-extras/mercury-extras-10.04.1.ebuild,v 1.1 2010/09/06 08:07:07 keri Exp $
+
+inherit eutils
+
+DESCRIPTION="Additional libraries and tools that are not part of the Mercury standard library"
+HOMEPAGE="http://www.cs.mu.oz.au/research/mercury/index.html"
+SRC_URI="http://www.mercury.cs.mu.oz.au/download/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+
+IUSE="X examples glut iodbc ncurses odbc opengl tcl tk xml"
+
+DEPEND="~dev-lang/mercury-${PV}
+ glut? ( virtual/glut )
+ odbc? ( dev-db/unixODBC )
+ iodbc? ( !odbc? ( dev-db/libiodbc ) )
+ ncurses? ( sys-libs/ncurses )
+ opengl? ( virtual/opengl )
+ tcl? ( tk? (
+ dev-lang/tcl
+ dev-lang/tk
+ x11-libs/libX11
+ x11-libs/libXmu ) )"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}"/${P}-curs.patch
+ epatch "${FILESDIR}"/${P}-dynamic-linking.patch
+ epatch "${FILESDIR}"/${P}-lex.patch
+ epatch "${FILESDIR}"/${P}-mercury-glut.patch
+ epatch "${FILESDIR}"/${P}-mercury-tcltk.patch
+ epatch "${FILESDIR}"/${P}-mercury-opengl.patch
+ epatch "${FILESDIR}"/${P}-posix.patch
+ epatch "${FILESDIR}"/${P}-no-java-grade-no-erlang-grade.patch
+
+ if use odbc; then
+ epatch "${FILESDIR}"/${P}-odbc.patch
+ elif use iodbc; then
+ epatch "${FILESDIR}"/${P}-iodbc.patch
+ fi
+
+ sed -i -e "s:posix:posix quickcheck:" \
+ -e "s:references::" \
+ -e "s:windows_installer_generator ::" Mmakefile
+
+ use glut && sed -i -e "s: lex : graphics/mercury_glut lex :" Mmakefile
+ use tcl && use tk && sed -i -e "s: lex : graphics/mercury_tcltk lex :" Mmakefile
+ use opengl && sed -i -e "s: lex : graphics/mercury_opengl lex :" Mmakefile
+
+ if use odbc || use iodbc; then
+ sed -i -e "s:moose:moose odbc:" Mmakefile
+ fi
+
+ ! use ncurses && sed -i -e "s:curs curses::" Mmakefile
+ ! use xml && sed -i -e "s:xml::" Mmakefile
+
+ sed -i -e "s:@libdir@:$(get_libdir):" \
+ dynamic_linking/Mmakefile posix/Mmakefile
+
+ # disable broken packages
+ sed -i -e "s:lazy_evaluation ::" \
+ -e "s:quickcheck::" Mmakefile
+}
+
+src_compile() {
+ # Mercury dependency generation must be run single-threaded
+ mmake \
+ -j1 depend || die "mmake depend failed"
+
+ mmake \
+ MMAKEFLAGS="${MAKEOPTS}" \
+ EXTRA_MLFLAGS=--no-strip \
+ EXTRA_LDFLAGS="${LDFLAGS}" \
+ EXTRA_LD_LIBFLAGS="${LDFLAGS}" \
+ || die "mmake failed"
+}
+
+src_install() {
+ mmake \
+ MMAKEFLAGS="${MAKEOPTS}" \
+ EXTRA_LD_LIBFLAGS="${LDFLAGS}" \
+ INSTALL_PREFIX="${D}"/usr \
+ install || die "mmake install failed"
+
+ find "${D}"/usr/$(get_libdir)/mercury -type l | xargs rm
+
+ cd "${S}"
+ if use examples; then
+ insinto /usr/share/doc/${PF}/samples/complex_numbers
+ doins complex_numbers/samples/*.m
+
+ if use ncurses; then
+ insinto /usr/share/doc/${PF}/samples/curs
+ doins curs/samples/*.m
+
+ insinto /usr/share/doc/${PF}/samples/curses
+ doins curses/sample/*.m
+ fi
+
+ if use X; then
+ insinto /usr/share/doc/${PF}/samples/graphics
+ doins graphics/easyx/samples/*.m
+ fi
+
+ if use glut && use opengl; then
+ insinto /usr/share/doc/${PF}/samples/graphics
+ doins graphics/samples/calc/*.m
+ doins graphics/samples/gears/*.m
+ doins graphics/samples/maze/*.m
+ fi
+
+ if use opengl && use tck && use tk; then
+ insinto /usr/share/doc/${PF}/samples/graphics
+ doins graphics/samples/pent/*.m
+ fi
+
+ insinto /usr/share/doc/${PF}/samples/dynamic_linking
+ doins dynamic_linking/hello.m
+
+ insinto /usr/share/doc/${PF}/samples/lex
+ doins lex/samples/*.m
+
+ insinto /usr/share/doc/${PF}/samples/moose
+ doins moose/samples/*.m moose/samples/*.moo
+ fi
+
+ dodoc README
+}