summaryrefslogtreecommitdiffstats
path: root/package/gnuchess
diff options
context:
space:
mode:
Diffstat (limited to 'package/gnuchess')
-rw-r--r--package/gnuchess/Config.in10
-rw-r--r--package/gnuchess/gnuchess-5.07-getline-conflicts.patch48
-rw-r--r--package/gnuchess/gnuchess-5.07.patch11
-rw-r--r--package/gnuchess/gnuchess.mk13
4 files changed, 82 insertions, 0 deletions
diff --git a/package/gnuchess/Config.in b/package/gnuchess/Config.in
new file mode 100644
index 000000000..c79c52dd4
--- /dev/null
+++ b/package/gnuchess/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_GNUCHESS
+ bool "gnuchess"
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ help
+ GNU Chess lets most modern computers play a full game of chess.
+
+ http://ftp.gnu.org/pub/gnu/chess
+
+comment "gnuchess requires a toolchain with thread support"
+ depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/gnuchess/gnuchess-5.07-getline-conflicts.patch b/package/gnuchess/gnuchess-5.07-getline-conflicts.patch
new file mode 100644
index 000000000..94add7969
--- /dev/null
+++ b/package/gnuchess/gnuchess-5.07-getline-conflicts.patch
@@ -0,0 +1,48 @@
+This patch fixes a conflict between the C library getline() function
+and gnuchess getline() function.
+
+Patch borrowed from the gnuchess Debian package.
+
+Index: gnuchess-5.07/src/input.c
+===================================================================
+--- gnuchess-5.07.orig/src/input.c 2009-09-29 16:01:38.000000000 +0200
++++ gnuchess-5.07/src/input.c 2009-09-29 16:02:57.000000000 +0200
+@@ -127,7 +127,7 @@
+ (RealGameCnt+1)/2 + 1 );
+ }
+ pthread_mutex_lock(&input_mutex);
+- getline(prompt);
++ get_line(prompt);
+ input_status = INPUT_AVAILABLE;
+ pthread_cond_signal(&input_cond);
+ pthread_mutex_unlock(&input_mutex);
+@@ -173,13 +173,13 @@
+ {
+ #ifdef HAVE_LIBREADLINE
+ if (isatty(STDIN_FILENO)) {
+- getline = getline_readline;
++ get_line = getline_readline;
+ using_history();
+ } else {
+- getline = getline_standard;
++ get_line = getline_standard;
+ }
+ #else
+- getline = getline_standard;
++ get_line = getline_standard;
+ #endif
+ /* Start input thread */
+ pthread_create(&input_thread, NULL, input_func, NULL);
+Index: gnuchess-5.07/src/common.h
+===================================================================
+--- gnuchess-5.07.orig/src/common.h 2009-09-29 16:06:17.000000000 +0200
++++ gnuchess-5.07/src/common.h 2009-09-29 16:06:40.000000000 +0200
+@@ -745,7 +745,7 @@
+ * Input routine, initialized to one of the specific
+ * input routines. The given argument is the prompt.
+ */
+-void (*getline) (char *);
++void (*get_line) (char *);
+
+ #define MAXSTR 128
+ extern char inputstr[MAXSTR];
diff --git a/package/gnuchess/gnuchess-5.07.patch b/package/gnuchess/gnuchess-5.07.patch
new file mode 100644
index 000000000..18979b68c
--- /dev/null
+++ b/package/gnuchess/gnuchess-5.07.patch
@@ -0,0 +1,11 @@
+--- a/src/input.c 2003-07-01 13:06:43.000000000 -0400
++++ a/src/input.c 2008-02-13 12:24:43.000000000 -0500
+@@ -92,7 +92,7 @@ void getline_standard(char *p)
+ fgets(inputstr, MAXSTR, stdin);
+ }
+
+-static pthread_t input_thread;
++pthread_t input_thread;
+
+ /* Mutex and condition variable for thread communication */
+
diff --git a/package/gnuchess/gnuchess.mk b/package/gnuchess/gnuchess.mk
new file mode 100644
index 000000000..3e0b724fa
--- /dev/null
+++ b/package/gnuchess/gnuchess.mk
@@ -0,0 +1,13 @@
+#############################################################
+#
+# gnuchess
+#
+#############################################################
+GNUCHESS_VERSION = 5.07
+GNUCHESS_SOURCE = gnuchess-$(GNUCHESS_VERSION).tar.gz
+GNUCHESS_SITE = $(BR2_GNU_MIRROR)/chess
+
+GNUCHESS_DEPENDENCIES = $(if $(BR2_PACKAGE_READLINE),readline)
+
+$(eval $(autotools-package))
+