Author SHA1 Message Date
Giacomo Catenazzi 981e33d1a8 Import Debian changes 1.2.6-1
libg15 (1.2.6-1) unstable; urgency=low

  * New upstream release
2008-01-28 07:58:11 +01:00
Giacomo Catenazzi fd6a5d112b Import Upstream version 1.2.6 2019-04-29 15:39:29 +02:00
Giacomo Catenazzi 7347e0eb26 Import Upstream version 1.2.5 2019-04-29 15:39:28 +02:00
Giacomo Catenazzi 3f84e6db54 Import Upstream version 1.2.4 2019-04-29 15:39:28 +02:00
Giacomo Catenazzi 09feb56516 Import Debian changes 1.2.5-1
libg15 (1.2.5-1) unstable; urgency=low

  * New upstream release
2008-01-09 08:06:33 +01:00
Giacomo Catenazzi f47538d475 Import Debian changes 1.2.4-1
libg15 (1.2.4-1) unstable; urgency=low

  * New upstream release
2007-12-18 08:08:43 +01:00
15 changed files with 725 additions and 186 deletions

No files matched your search

+11
View File
@@ -34,3 +34,14 @@
1.2.3 1.2.3
* Add support for the newer G15 keyboards which have amber backlights and * Add support for the newer G15 keyboards which have amber backlights and
six 'G' keys. six 'G' keys.
1.2.4
* Turns out that the newer G15's have a different (5 byte) keyboard protocol.
* Optimise dumpPixmapIntoLCDFormat routine - Thanks to Adam Nielsen
1.2.5
* Remove 5BYTE_RETURN flag and process key packets based on length. Please
report any regressions.
* Add Solaris detection and remove locks if detected. Solaris' libUSB
blocks on read, forcing mutexes causes writes to block too.
1.2.6
* Re-Add 5BYTE_RETURN flag. Auto-detect does not work with Solaris' libusb.
* Add laptop GamePanel support.
+5
View File
@@ -33,6 +33,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
build_triplet = @build@ build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
target_triplet = @target@
subdir = . subdir = .
DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \ DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
@@ -196,7 +197,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@ srcdir = @srcdir@
sysconfdir = @sysconfdir@ sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@ target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
top_builddir = @top_builddir@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@ top_srcdir = @top_srcdir@
LLIBDIR = @LIBDIR@ LLIBDIR = @LIBDIR@
+9 -1
View File
@@ -1 +1,9 @@
This is a library to handle the LCD and extra keys on the Logitech G15 Gaming Keyboard. This library requires libusb. This is a library to handle the LCD and extra keys on the Logitech G15 Gaming
Keyboard and similar devices.
This library requires libusb.
LibG15 currently supports LCD & keys on the following devices:
- Original G15 keyboard
- G11 keyboard
- Z10 speakers
- 2nd revision of the G15 (amber backlight, 6 'G' keys, LCD)
- Gamepanel available on some laptops
+15
View File
@@ -39,6 +39,18 @@
/* Define to 1 if you have the <usb.h> header file. */ /* Define to 1 if you have the <usb.h> header file. */
#undef HAVE_USB_H #undef HAVE_USB_H
/* Define if libusb implementation blocks on read or write */
#undef LIBUSB_BLOCKS
/* Target OS is Darwin */
#undef OSTYPE_DARWIN
/* Target OS is Linux */
#undef OSTYPE_LINUX
/* Target OS is Solaris */
#undef OSTYPE_SOLARIS
/* Name of package */ /* Name of package */
#undef PACKAGE #undef PACKAGE
@@ -60,6 +72,9 @@
/* Define to 1 if you have the ANSI C header files. */ /* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS #undef STDC_HEADERS
/* Define to 1 for Sun version of libusb. */
#undef SUN_LIBUSB
/* Version number of package */ /* Version number of package */
#undef VERSION #undef VERSION
Vendored
+315 -141
View File
@@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for libg15 1.2.3. # Generated by GNU Autoconf 2.61 for libg15 1.2.6.
# #
# Report bugs to <mlampard@users.sourceforge.net>. # Report bugs to <mlampard@users.sourceforge.net>.
# #
@@ -728,8 +728,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package. # Identity of this package.
PACKAGE_NAME='libg15' PACKAGE_NAME='libg15'
PACKAGE_TARNAME='libg15' PACKAGE_TARNAME='libg15'
PACKAGE_VERSION='1.2.3' PACKAGE_VERSION='1.2.6'
PACKAGE_STRING='libg15 1.2.3' PACKAGE_STRING='libg15 1.2.6'
PACKAGE_BUGREPORT='mlampard@users.sourceforge.net' PACKAGE_BUGREPORT='mlampard@users.sourceforge.net'
ac_default_prefix=/usr ac_default_prefix=/usr
@@ -807,6 +807,18 @@ LIBS
build_alias build_alias
host_alias host_alias
target_alias target_alias
build
build_cpu
build_vendor
build_os
host
host_cpu
host_vendor
host_os
target
target_cpu
target_vendor
target_os
INSTALL_PROGRAM INSTALL_PROGRAM
INSTALL_SCRIPT INSTALL_SCRIPT
INSTALL_DATA INSTALL_DATA
@@ -845,14 +857,6 @@ AMDEPBACKSLASH
CCDEPMODE CCDEPMODE
am__fastdepCC_TRUE am__fastdepCC_TRUE
am__fastdepCC_FALSE am__fastdepCC_FALSE
build
build_cpu
build_vendor
build_os
host
host_cpu
host_vendor
host_os
SED SED
GREP GREP
EGREP EGREP
@@ -1392,7 +1396,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures libg15 1.2.3 to adapt to many kinds of systems. \`configure' configures libg15 1.2.6 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1457,12 +1461,13 @@ Program names:
System types: System types:
--build=BUILD configure for building on BUILD [guessed] --build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD] --host=HOST cross-compile to build programs to run on HOST [BUILD]
--target=TARGET configure for building compilers for TARGET [HOST]
_ACEOF _ACEOF
fi fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of libg15 1.2.3:";; short | recursive ) echo "Configuration of libg15 1.2.6:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@@ -1564,7 +1569,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
libg15 configure 1.2.3 libg15 configure 1.2.6
generated by GNU Autoconf 2.61 generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1578,7 +1583,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by libg15 $as_me 1.2.3, which was It was created by libg15 $as_me 1.2.6, which was
generated by GNU Autoconf 2.61. Invocation command line was generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@ $ $0 $@
@@ -1963,6 +1968,133 @@ ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
{ { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
{ (exit 1); exit 1; }; }
{ echo "$as_me:$LINENO: checking build system type" >&5
echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
if test "${ac_cv_build+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
{ { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
{ (exit 1); exit 1; }; }
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
{ { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
echo "${ECHO_T}$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
echo "$as_me: error: invalid value of canonical build" >&2;}
{ (exit 1); exit 1; }; };;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_build
shift
build_cpu=$1
build_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
build_os=$*
IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
{ echo "$as_me:$LINENO: checking host system type" >&5
echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
if test "${ac_cv_host+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
{ { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
echo "${ECHO_T}$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
echo "$as_me: error: invalid value of canonical host" >&2;}
{ (exit 1); exit 1; }; };;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_host
shift
host_cpu=$1
host_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
host_os=$*
IFS=$ac_save_IFS
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
{ echo "$as_me:$LINENO: checking target system type" >&5
echo $ECHO_N "checking target system type... $ECHO_C" >&6; }
if test "${ac_cv_target+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "x$target_alias" = x; then
ac_cv_target=$ac_cv_host
else
ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
{ { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5
echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5
echo "${ECHO_T}$ac_cv_target" >&6; }
case $ac_cv_target in
*-*-*) ;;
*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5
echo "$as_me: error: invalid value of canonical target" >&2;}
{ (exit 1); exit 1; }; };;
esac
target=$ac_cv_target
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_target
shift
target_cpu=$1
target_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
target_os=$*
IFS=$ac_save_IFS
case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
# The aliases save the names the user supplied, while $host etc.
# will get canonicalized.
test -n "$target_alias" &&
test "$program_prefix$program_suffix$program_transform_name" = \
NONENONEs,x,x, &&
program_prefix=${target_alias}-
am__api_version='1.10' am__api_version='1.10'
# Find a good install program. We prefer a C program (faster), # Find a good install program. We prefer a C program (faster),
@@ -2269,7 +2401,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='libg15' PACKAGE='libg15'
VERSION='1.2.3' VERSION='1.2.6'
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
@@ -3581,89 +3713,6 @@ else
fi fi
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
{ { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
{ (exit 1); exit 1; }; }
{ echo "$as_me:$LINENO: checking build system type" >&5
echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
if test "${ac_cv_build+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
{ { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
{ (exit 1); exit 1; }; }
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
{ { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
echo "${ECHO_T}$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
echo "$as_me: error: invalid value of canonical build" >&2;}
{ (exit 1); exit 1; }; };;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_build
shift
build_cpu=$1
build_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
build_os=$*
IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
{ echo "$as_me:$LINENO: checking host system type" >&5
echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
if test "${ac_cv_host+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
{ { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
echo "${ECHO_T}$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
echo "$as_me: error: invalid value of canonical host" >&2;}
{ (exit 1); exit 1; }; };;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_host
shift
host_cpu=$1
host_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
host_os=$*
IFS=$ac_save_IFS
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 { echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; }
if test "${lt_cv_path_SED+set}" = set; then if test "${lt_cv_path_SED+set}" = set; then
@@ -4317,7 +4366,7 @@ ia64-*-hpux*)
;; ;;
*-*-irix6*) *-*-irix6*)
# Find out which ABI we are using. # Find out which ABI we are using.
echo '#line 4320 "configure"' > conftest.$ac_ext echo '#line 4369 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
@@ -7059,11 +7108,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:7062: $lt_compile\"" >&5) (eval echo "\"\$as_me:7111: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:7066: \$? = $ac_status" >&5 echo "$as_me:7115: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@@ -7349,11 +7398,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:7352: $lt_compile\"" >&5) (eval echo "\"\$as_me:7401: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:7356: \$? = $ac_status" >&5 echo "$as_me:7405: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@@ -7453,11 +7502,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:7456: $lt_compile\"" >&5) (eval echo "\"\$as_me:7505: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:7460: \$? = $ac_status" >&5 echo "$as_me:7509: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@@ -8966,7 +9015,7 @@ linux* | k*bsd*-gnu)
libsuff= libsuff=
case "$host_cpu" in case "$host_cpu" in
x86_64*|s390x*|powerpc64*) x86_64*|s390x*|powerpc64*)
echo '#line 8969 "configure"' > conftest.$ac_ext echo '#line 9018 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
@@ -9823,7 +9872,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 9826 "configure" #line 9875 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@@ -9923,7 +9972,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 9926 "configure" #line 9975 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@@ -12346,11 +12395,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:12349: $lt_compile\"" >&5) (eval echo "\"\$as_me:12398: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:12353: \$? = $ac_status" >&5 echo "$as_me:12402: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@@ -12450,11 +12499,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:12453: $lt_compile\"" >&5) (eval echo "\"\$as_me:12502: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:12457: \$? = $ac_status" >&5 echo "$as_me:12506: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@@ -12956,7 +13005,7 @@ linux* | k*bsd*-gnu)
libsuff= libsuff=
case "$host_cpu" in case "$host_cpu" in
x86_64*|s390x*|powerpc64*) x86_64*|s390x*|powerpc64*)
echo '#line 12959 "configure"' > conftest.$ac_ext echo '#line 13008 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
@@ -14036,11 +14085,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:14039: $lt_compile\"" >&5) (eval echo "\"\$as_me:14088: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:14043: \$? = $ac_status" >&5 echo "$as_me:14092: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@@ -14140,11 +14189,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:14143: $lt_compile\"" >&5) (eval echo "\"\$as_me:14192: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:14147: \$? = $ac_status" >&5 echo "$as_me:14196: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@@ -15581,7 +15630,7 @@ linux* | k*bsd*-gnu)
libsuff= libsuff=
case "$host_cpu" in case "$host_cpu" in
x86_64*|s390x*|powerpc64*) x86_64*|s390x*|powerpc64*)
echo '#line 15584 "configure"' > conftest.$ac_ext echo '#line 15633 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
@@ -16352,11 +16401,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:16355: $lt_compile\"" >&5) (eval echo "\"\$as_me:16404: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:16359: \$? = $ac_status" >&5 echo "$as_me:16408: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@@ -16642,11 +16691,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:16645: $lt_compile\"" >&5) (eval echo "\"\$as_me:16694: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:16649: \$? = $ac_status" >&5 echo "$as_me:16698: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@@ -16746,11 +16795,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:16749: $lt_compile\"" >&5) (eval echo "\"\$as_me:16798: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:16753: \$? = $ac_status" >&5 echo "$as_me:16802: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@@ -18207,7 +18256,7 @@ linux* | k*bsd*-gnu)
libsuff= libsuff=
case "$host_cpu" in case "$host_cpu" in
x86_64*|s390x*|powerpc64*) x86_64*|s390x*|powerpc64*)
echo '#line 18210 "configure"' > conftest.$ac_ext echo '#line 18259 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
@@ -19425,6 +19474,119 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
case $host_os in
*linux*)
cat >>confdefs.h <<\_ACEOF
#define OSTYPE_LINUX 1
_ACEOF
;;
*darwin*)
cat >>confdefs.h <<\_ACEOF
#define OSTYPE_DARWIN 1
_ACEOF
;;
*solaris*)
cat >>confdefs.h <<\_ACEOF
#define OSTYPE_SOLARIS 1
_ACEOF
{ echo "$as_me:$LINENO: checking for library containing nanosleep" >&5
echo $ECHO_N "checking for library containing nanosleep... $ECHO_C" >&6; }
if test "${ac_cv_search_nanosleep+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_func_search_save_LIBS=$LIBS
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char nanosleep ();
int
main ()
{
return nanosleep ();
;
return 0;
}
_ACEOF
for ac_lib in '' rt; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
rm -f conftest.$ac_objext conftest$ac_exeext
if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext &&
$as_test_x conftest$ac_exeext; then
ac_cv_search_nanosleep=$ac_res
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
conftest$ac_exeext
if test "${ac_cv_search_nanosleep+set}" = set; then
break
fi
done
if test "${ac_cv_search_nanosleep+set}" = set; then
:
else
ac_cv_search_nanosleep=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ echo "$as_me:$LINENO: result: $ac_cv_search_nanosleep" >&5
echo "${ECHO_T}$ac_cv_search_nanosleep" >&6; }
ac_res=$ac_cv_search_nanosleep
if test "$ac_res" != no; then
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
cat >>confdefs.h <<\_ACEOF
#define SUN_LIBUSB 1
_ACEOF
libusb_blocks=true
;;
esac
# Checks for libraries. # Checks for libraries.
@@ -19497,6 +19659,14 @@ echo "$as_me: error: \"libusb not found. please install it\"" >&2;}
fi fi
if test "x$libusb_blocks" == "xtrue"; then
cat >>confdefs.h <<\_ACEOF
#define LIBUSB_BLOCKS 1
_ACEOF
fi
# Checks for header files. # Checks for header files.
{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 { echo "$as_me:$LINENO: checking for ANSI C header files" >&5
echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
@@ -20586,7 +20756,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by libg15 $as_me 1.2.3, which was This file was extended by libg15 $as_me 1.2.6, which was
generated by GNU Autoconf 2.61. Invocation command line was generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@@ -20639,7 +20809,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\ ac_cs_version="\\
libg15 config.status 1.2.3 libg15 config.status 1.2.6
configured by $0, generated by GNU Autoconf 2.61, configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
@@ -20855,6 +21025,18 @@ LIBS!$LIBS$ac_delim
build_alias!$build_alias$ac_delim build_alias!$build_alias$ac_delim
host_alias!$host_alias$ac_delim host_alias!$host_alias$ac_delim
target_alias!$target_alias$ac_delim target_alias!$target_alias$ac_delim
build!$build$ac_delim
build_cpu!$build_cpu$ac_delim
build_vendor!$build_vendor$ac_delim
build_os!$build_os$ac_delim
host!$host$ac_delim
host_cpu!$host_cpu$ac_delim
host_vendor!$host_vendor$ac_delim
host_os!$host_os$ac_delim
target!$target$ac_delim
target_cpu!$target_cpu$ac_delim
target_vendor!$target_vendor$ac_delim
target_os!$target_os$ac_delim
INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
INSTALL_DATA!$INSTALL_DATA$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim
@@ -20893,14 +21075,6 @@ AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim
CCDEPMODE!$CCDEPMODE$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim
am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
build!$build$ac_delim
build_cpu!$build_cpu$ac_delim
build_vendor!$build_vendor$ac_delim
build_os!$build_os$ac_delim
host!$host$ac_delim
host_cpu!$host_cpu$ac_delim
host_vendor!$host_vendor$ac_delim
host_os!$host_os$ac_delim
SED!$SED$ac_delim SED!$SED$ac_delim
GREP!$GREP$ac_delim GREP!$GREP$ac_delim
EGREP!$EGREP$ac_delim EGREP!$EGREP$ac_delim
@@ -20911,10 +21085,6 @@ RANLIB!$RANLIB$ac_delim
CPP!$CPP$ac_delim CPP!$CPP$ac_delim
CXX!$CXX$ac_delim CXX!$CXX$ac_delim
CXXFLAGS!$CXXFLAGS$ac_delim CXXFLAGS!$CXXFLAGS$ac_delim
ac_ct_CXX!$ac_ct_CXX$ac_delim
CXXDEPMODE!$CXXDEPMODE$ac_delim
am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim
am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim
_ACEOF _ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -20956,6 +21126,10 @@ _ACEOF
ac_delim='%!_!# ' ac_delim='%!_!# '
for ac_last_try in false false false false false :; do for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF cat >conf$$subs.sed <<_ACEOF
ac_ct_CXX!$ac_ct_CXX$ac_delim
CXXDEPMODE!$CXXDEPMODE$ac_delim
am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim
am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim
CXXCPP!$CXXCPP$ac_delim CXXCPP!$CXXCPP$ac_delim
F77!$F77$ac_delim F77!$F77$ac_delim
FFLAGS!$FFLAGS$ac_delim FFLAGS!$FFLAGS$ac_delim
@@ -20965,7 +21139,7 @@ LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF _ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 7; then if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 11; then
break break
elif $ac_last_try; then elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+23 -1
View File
@@ -2,9 +2,11 @@
# Process this file with autoconf to produce a configure script. # Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59) AC_PREREQ(2.59)
AC_INIT(libg15, 1.2.3, mlampard@users.sourceforge.net) AC_INIT(libg15, 1.2.6, mlampard@users.sourceforge.net)
AC_PREFIX_DEFAULT(/usr) AC_PREFIX_DEFAULT(/usr)
AC_CONFIG_AUX_DIR(config) AC_CONFIG_AUX_DIR(config)
AC_CANONICAL_TARGET()
AM_INIT_AUTOMAKE() AM_INIT_AUTOMAKE()
AC_CONFIG_SRCDIR([libg15.c]) AC_CONFIG_SRCDIR([libg15.c])
AC_CONFIG_HEADER([config.h]) AC_CONFIG_HEADER([config.h])
@@ -13,9 +15,29 @@ AC_CONFIG_HEADER([config.h])
AC_PROG_CC AC_PROG_CC
AC_PROG_LIBTOOL AC_PROG_LIBTOOL
case $host_os in
*linux*)
AC_DEFINE([OSTYPE_LINUX], [1],[Target OS is Linux])
;;
*darwin*)
AC_DEFINE([OSTYPE_DARWIN], [1],[Target OS is Darwin])
;;
*solaris*)
AC_DEFINE([OSTYPE_SOLARIS], [1],[Target OS is Solaris])
AC_SEARCH_LIBS([nanosleep],rt,[],[],[])
AC_DEFINE(SUN_LIBUSB, 1, [Define to 1 for Sun version of libusb.])
libusb_blocks=true
;;
esac
# Checks for libraries. # Checks for libraries.
AC_CHECK_LIB([usb], [main], ,AC_MSG_ERROR(["libusb not found. please install it"])) AC_CHECK_LIB([usb], [main], ,AC_MSG_ERROR(["libusb not found. please install it"]))
dnl Some versions of libusb do not honour timeout and block. Suns' version is one of them.
if test "x$libusb_blocks" == "xtrue"; then
AC_DEFINE([LIBUSB_BLOCKS], [1],[Define if libusb implementation blocks on read or write])
fi
# Checks for header files. # Checks for header files.
AC_HEADER_STDC AC_HEADER_STDC
AC_CHECK_HEADERS([string.h]) AC_CHECK_HEADERS([string.h])
+18
View File
@@ -1,3 +1,21 @@
libg15 (1.2.6-1) unstable; urgency=low
* New upstream release
-- Giacomo Catenazzi <cate@debian.org> Mon, 28 Jan 2008 07:58:11 +0100
libg15 (1.2.5-1) unstable; urgency=low
* New upstream release
-- Giacomo Catenazzi <cate@debian.org> Wed, 09 Jan 2008 08:06:33 +0100
libg15 (1.2.4-1) unstable; urgency=low
* New upstream release
-- Giacomo Catenazzi <cate@debian.org> Tue, 18 Dec 2007 08:08:43 +0100
libg15 (1.2.3-1) unstable; urgency=low libg15 (1.2.3-1) unstable; urgency=low
* New upstrem version: add support of new g15 keyboards * New upstrem version: add support of new g15 keyboards
+56
View File
@@ -0,0 +1,56 @@
libg15 1.2.6 edgy; urgency=low
* Re-Add 5BYTE_RETURN flag. Auto-detect does not work with Solaris' libusb.
* Add laptop GamePanel support.
libg15 1.2.5 edgy; urgency=low
* Remove 5BYTE_RETURN flag and process key packets based on length. Please
report any regressions.
* Add Solaris detection and remove locks if detected. Solaris' libUSB
blocks on read, forcing mutexes causes writes to block too.
libg15 1.2.4 edgy; urgency=low
* Turns out that the newer G15's have a different (5 byte) keyboard protocol.
* Optimise dumpPixmapIntoLCDFormat routine - Thanks to Adam Nielsen
libg15 1.2.3 edgy; urgency=low
* Add support for the newer G15 keyboards which have amber backlights and
six 'G' keys.
libg15 1.2.2 edgy; urgency=low
* Add support for the logitech Z-10 speakers - many thanks to Dwayne Fontenot for
detailed information and debugging.
libg15 (1.2.1) edgy; urgency=low
* Add debugging function to enable/disable extra output
* All debugging output is now prefixed with libg15 to aid localising
problems.
* debugging function now also controls libusb debugging output.
* Try to claim usb interface up to 10 times before failing
* Slow down initialisation, to allow keyboard to come out of usb
auto-suspend on newer kernels.
* Attempt to combat ENOSPC by slowing down writes to the lcd if ENOSPC is
received. Unless that error occurs at least once, transfers are sent as normal.
* Add function to change keyboard backlight (independant of lcd backlight).
* Add re-initialising function, which will attempt to reconnect a keyboard
that was previously removed and replugged.
* libg15 now uses pthread mutexes to force sequential access to the bus via
libusb. Control message URBs are no longer being lost if sent by a different
thread in the middle of a screen transfer etc.
* Reset the keyboard before init to ensure correct initialisation on
kernels > 2.6.19
libg15 (1.1.1-1) edgy; urgency=low
* Add basic support for the G11 keyboard
* revert all bulk transfers - bulk transfers are illegal for low-speed
devices, and cause -22 (EINVAL) warnings on new kernels.
* pass most errors to the client app.
-- Anthony J. Mirabella <mirabeaj@gmail.com> Fri, 15 Dec 2006 05:17:49 -0500
libg15 (1.0-1) breezy; urgency=low
* Initial release
-- Anthony J. Mirabella <mirabeaj@gmail.com> Sun, 24 Sep 2006 22:57:06 -0400
+3 -2
View File
@@ -3,12 +3,13 @@ Section: libs
Priority: optional Priority: optional
Maintainer: Giacomo Catenazzi <cate@debian.org> Maintainer: Giacomo Catenazzi <cate@debian.org>
Build-Depends: cdbs, debhelper (>= 5), autotools-dev, libusb-dev Build-Depends: cdbs, debhelper (>= 5), autotools-dev, libusb-dev
Standards-Version: 3.7.2 Standards-Version: 3.7.3
Homepage: http://www.g15tools.com/
Package: libg15-1 Package: libg15-1
Section: libs Section: libs
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends} Depends: ${shlibs:Depends}
Description: Library for interfacing with the Logitech G15 keyboards Description: Library for interfacing with the Logitech G15 keyboards
libg15 provides an API for low level control of the LCD display and libg15 provides an API for low level control of the LCD display and
the extra keys on some Logitech keyboards (G11, G15) the extra keys on some Logitech keyboards (G11, G15)
+21
View File
@@ -0,0 +1,21 @@
Source: libg15
Priority: optional
Maintainer: Anthony J. Mirabella <mirabeaj@gmail.com>
Build-Depends: debhelper (>= 4.0.0), autotools-dev, libusb-dev
Standards-Version: 3.6.2
Section: libs
Package: libg15-dev
Section: libdevel
Architecture: any
Depends: libg15 (= ${Source-Version})
Description: Development packages for libg15
Includes the files needed for developing software that uses libg15.
Package: libg15
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Library for interfacing with the Logitech G15 Keyboard
Provides for low-level control of the lcd and extra keys on the
Logitech G15 keyboard.
+1 -1
View File
@@ -5,4 +5,4 @@ DEB_DH_MAKESHLIBS_ARGS_libg15 := --version-info
include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/autotools.mk include /usr/share/cdbs/1/class/autotools.mk
DEB_CONFIGURE_EXTRA_FLAGS = --quiet
+179 -37
View File
@@ -12,12 +12,12 @@
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with g15lcd; if not, write to the Free Software along with libg15; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
(c) 2006 - 2007 The G15tools Project - g15tools.sf.net (c) 2006-2007 The G15tools Project - g15tools.sf.net
$Revision: 260 $ - $Date: 2007-10-18 12:17:48 +0930 (Thu, 18 Oct 2007) $ $Author: mlampard $ $Revision: 282 $ - $Date: 2008-01-20 06:32:00 +1030 (Sun, 20 Jan 2008) $ $Author: mlampard $
*/ */
#include <pthread.h> #include <pthread.h>
@@ -27,6 +27,7 @@
#include <usb.h> #include <usb.h>
#include <string.h> #include <string.h>
#include <errno.h> #include <errno.h>
#include "config.h"
static usb_dev_handle *keyboard_device = 0; static usb_dev_handle *keyboard_device = 0;
static int libg15_debugging_enabled = 0; static int libg15_debugging_enabled = 0;
@@ -38,14 +39,14 @@ static int g15_keys_endpoint = 0;
static int g15_lcd_endpoint = 0; static int g15_lcd_endpoint = 0;
static pthread_mutex_t libusb_mutex; static pthread_mutex_t libusb_mutex;
/* to add a new device, simply create a new DEVICE() in this list */ /* to add a new device, simply create a new DEVICE() in this list */
/* Fields are: "Name",VendorID,ProductID,Capabilities */ /* Fields are: "Name",VendorID,ProductID,Capabilities */
const libg15_devices_t g15_devices[] = { const libg15_devices_t g15_devices[] = {
DEVICE("Logitech G15",0x46d,0xc222,G15_LCD|G15_KEYS), DEVICE("Logitech G15",0x46d,0xc222,G15_LCD|G15_KEYS),
DEVICE("Logitech G11",0x46d,0xc225,G15_KEYS), DEVICE("Logitech G11",0x46d,0xc225,G15_KEYS),
DEVICE("Logitech Z-10",0x46d,0x0a07,G15_LCD|G15_KEYS|G15_DEVICE_IS_SHARED), DEVICE("Logitech Z-10",0x46d,0x0a07,G15_LCD|G15_KEYS|G15_DEVICE_IS_SHARED),
DEVICE("Logitech G15 v2",0x46d,0xc227,G15_LCD|G15_KEYS), DEVICE("Logitech G15 v2",0x46d,0xc227,G15_LCD|G15_KEYS|G15_DEVICE_5BYTE_RETURN),
DEVICE("Logitech Gamepanel",0x46d,0xc251,G15_LCD|G15_KEYS|G15_DEVICE_IS_SHARED),
DEVICE(NULL,0,0,0) DEVICE(NULL,0,0,0)
}; };
@@ -196,7 +197,7 @@ static usb_dev_handle * findAndOpenDevice(libg15_devices_t handled_device, int d
} }
else else
{ {
g15_log(stderr,G15_LOG_INFO,"Sorry, I could not detached the driver, giving up\n"); g15_log(stderr,G15_LOG_INFO,"Sorry, I could not detach the driver, giving up\n");
return 0; return 0;
} }
@@ -302,6 +303,12 @@ int initLibG15()
if (retval) if (retval)
return retval; return retval;
g15_log(stderr,G15_LOG_INFO,"%s\n",PACKAGE_STRING);
#ifdef SUN_LIBUSB
g15_log(stderr,G15_LOG_INFO,"Using Sun libusb.\n");
#endif
g15NumberOfConnectedDevices(); g15NumberOfConnectedDevices();
keyboard_device = findAndOpenG15(); keyboard_device = findAndOpenG15();
@@ -317,8 +324,10 @@ int exitLibG15()
{ {
int retval = G15_NO_ERROR; int retval = G15_NO_ERROR;
if (keyboard_device){ if (keyboard_device){
#ifndef SUN_LIBUSB
retval = usb_release_interface (keyboard_device, 0); retval = usb_release_interface (keyboard_device, 0);
usleep(50*1000); usleep(50*1000);
#endif
#if 0 #if 0
retval = usb_reset(keyboard_device); retval = usb_reset(keyboard_device);
usleep(50*1000); usleep(50*1000);
@@ -334,36 +343,84 @@ int exitLibG15()
static void dumpPixmapIntoLCDFormat(unsigned char *lcd_buffer, unsigned char const *data) static void dumpPixmapIntoLCDFormat(unsigned char *lcd_buffer, unsigned char const *data)
{ {
unsigned int offset_from_start = G15_LCD_OFFSET; /*
For a set of bytes (A, B, C, etc.) the bits representing pixels will appear on the LCD like this:
A0 B0 C0
A1 B1 C1
A2 B2 C2
A3 B3 C3 ... and across for G15_LCD_WIDTH bytes
A4 B4 C4
A5 B5 C5
A6 B6 C6
A7 B7 C7
A0
A1 <- second 8-pixel-high row starts straight after the last byte on
A2 the previous row
A3
A4
A5
A6
A7
A8
A0
...
A0
...
A0
...
A0
A1 <- only the first three bits are shown on the bottom row (the last three
A2 pixels of the 43-pixel high display.)
*/
unsigned int output_offset = G15_LCD_OFFSET;
unsigned int base_offset = 0;
unsigned int curr_row = 0; unsigned int curr_row = 0;
unsigned int curr_col = 0; unsigned int curr_col = 0;
for (curr_row=0;curr_row<G15_LCD_HEIGHT;++curr_row) /* Five 8-pixel rows + a little 3-pixel row. This formula will calculate
{ the minimum number of bytes required to hold a complete column. (It
for (curr_col=0;curr_col<G15_LCD_WIDTH;++curr_col) basically divides by eight and rounds up the result to the nearest byte,
{ but at compile time.
unsigned int pixel_offset = curr_row*G15_LCD_WIDTH + curr_col;
unsigned int byte_offset = pixel_offset / 8;
unsigned int bit_offset = pixel_offset % 8;
unsigned int val = data[byte_offset] & 1<<(7-bit_offset);
unsigned int row = curr_row / 8;
unsigned int offset = G15_LCD_WIDTH*row + curr_col;
unsigned int bit = curr_row % 8;
/*
if (val)
printf("Setting pixel at row %d col %d to %d offset %d bit %d\n",curr_row,curr_col, val, offset, bit);
*/ */
if (val)
lcd_buffer[offset_from_start + offset] = lcd_buffer[offset_from_start + offset] | 1 << bit; #define G15_LCD_HEIGHT_IN_BYTES ((G15_LCD_HEIGHT + ((8 - (G15_LCD_HEIGHT % 8)) % 8)) / 8)
else
lcd_buffer[offset_from_start + offset] = lcd_buffer[offset_from_start + offset] & ~(1 << bit); for (curr_row = 0; curr_row < G15_LCD_HEIGHT_IN_BYTES; ++curr_row)
{
for (curr_col = 0; curr_col < G15_LCD_WIDTH; ++curr_col)
{
unsigned int bit = curr_col % 8;
/* Copy a 1x8 column of pixels across from the source image to the LCD buffer. */
lcd_buffer[output_offset] =
(((data[base_offset ] << bit) & 0x80) >> 7) |
(((data[base_offset + G15_LCD_WIDTH/8 ] << bit) & 0x80) >> 6) |
(((data[base_offset + (G15_LCD_WIDTH/8 * 2)] << bit) & 0x80) >> 5) |
(((data[base_offset + (G15_LCD_WIDTH/8 * 3)] << bit) & 0x80) >> 4) |
(((data[base_offset + (G15_LCD_WIDTH/8 * 4)] << bit) & 0x80) >> 3) |
(((data[base_offset + (G15_LCD_WIDTH/8 * 5)] << bit) & 0x80) >> 2) |
(((data[base_offset + (G15_LCD_WIDTH/8 * 6)] << bit) & 0x80) >> 1) |
(((data[base_offset + (G15_LCD_WIDTH/8 * 7)] << bit) & 0x80) >> 0);
++output_offset;
if (bit == 7)
base_offset++;
} }
/* Jump down seven pixel-rows in the source image, since we've just
done a row of eight pixels in one pass (and we counted one pixel-row
while we were going, so now we skip the next seven pixel-rows.) */
base_offset += G15_LCD_WIDTH - (G15_LCD_WIDTH / 8);
} }
} }
int handle_usb_errors(const char *prefix, int ret) { int handle_usb_errors(const char *prefix, int ret) {
switch (ret){ switch (ret){
case -ETIMEDOUT: case -ETIMEDOUT:
return G15_ERROR_READING_USB_DEVICE; /* backward-compatibility */ return G15_ERROR_READING_USB_DEVICE; /* backward-compatibility */
@@ -378,7 +435,7 @@ int handle_usb_errors(const char *prefix, int ret) {
case -EAGAIN: /* try again */ case -EAGAIN: /* try again */
case -EFBIG: /* too many frames to handle */ case -EFBIG: /* too many frames to handle */
case -EMSGSIZE: /* msgsize is invalid */ case -EMSGSIZE: /* msgsize is invalid */
g15_log(stderr,G15_LOG_INFO,"usb error: %s (%i)\n",prefix,ret); g15_log(stderr,G15_LOG_INFO,"usb error: %s %s (%i)\n",prefix,usb_strerror(),ret);
break; break;
case -EPIPE: /* endpoint is stalled */ case -EPIPE: /* endpoint is stalled */
g15_log(stderr,G15_LOG_INFO,"usb error: %s EPIPE! clearing...\n",prefix); g15_log(stderr,G15_LOG_INFO,"usb error: %s EPIPE! clearing...\n",prefix);
@@ -387,7 +444,7 @@ int handle_usb_errors(const char *prefix, int ret) {
pthread_mutex_unlock(&libusb_mutex); pthread_mutex_unlock(&libusb_mutex);
break; break;
default: /* timed out */ default: /* timed out */
g15_log(stderr,G15_LOG_INFO,"Unknown usb error: %s !! (err is %i)\n",prefix,ret); g15_log(stderr,G15_LOG_INFO,"Unknown usb error: %s !! (err is %i (%s))\n",prefix,ret,usb_strerror());
} }
return ret; return ret;
} }
@@ -397,7 +454,10 @@ int writePixmapToLCD(unsigned char const *data)
int ret = 0; int ret = 0;
int transfercount=0; int transfercount=0;
unsigned char lcd_buffer[G15_BUFFER_LEN]; unsigned char lcd_buffer[G15_BUFFER_LEN];
memset(lcd_buffer,0,G15_BUFFER_LEN); /* The pixmap conversion function will overwrite everything after G15_LCD_OFFSET, so we only need to blank
the buffer up to this point. (Even though the keyboard only cares about bytes 0-23.) */
memset(lcd_buffer, 0, G15_LCD_OFFSET); /* G15_BUFFER_LEN); */
dumpPixmapIntoLCDFormat(lcd_buffer, data); dumpPixmapIntoLCDFormat(lcd_buffer, data);
if(!(g15_devices[found_devicetype].caps & G15_LCD)) if(!(g15_devices[found_devicetype].caps & G15_LCD))
@@ -411,7 +471,9 @@ int writePixmapToLCD(unsigned char const *data)
I'm not sure how successful this will be in combatting ENOSPC, but we'll give it try in the real-world. */ I'm not sure how successful this will be in combatting ENOSPC, but we'll give it try in the real-world. */
if(enospc_slowdown != 0){ if(enospc_slowdown != 0){
#ifndef LIBUSB_BLOCKS
pthread_mutex_lock(&libusb_mutex); pthread_mutex_lock(&libusb_mutex);
#endif
for(transfercount = 0;transfercount<=31;transfercount++){ for(transfercount = 0;transfercount<=31;transfercount++){
ret = usb_interrupt_write(keyboard_device, g15_lcd_endpoint, (char*)lcd_buffer+(32*transfercount), 32, 1000); ret = usb_interrupt_write(keyboard_device, g15_lcd_endpoint, (char*)lcd_buffer+(32*transfercount), 32, 1000);
if (ret != 32) if (ret != 32)
@@ -421,12 +483,18 @@ int writePixmapToLCD(unsigned char const *data)
} }
usleep(100); usleep(100);
} }
#ifndef LIBUSB_BLOCKS
pthread_mutex_unlock(&libusb_mutex); pthread_mutex_unlock(&libusb_mutex);
#endif
}else{ }else{
/* transfer entire buffer in one hit */ /* transfer entire buffer in one hit */
#ifdef LIBUSB_BLOCKS
ret = usb_interrupt_write(keyboard_device, g15_lcd_endpoint, (char*)lcd_buffer, G15_BUFFER_LEN, 1000);
#else
pthread_mutex_lock(&libusb_mutex); pthread_mutex_lock(&libusb_mutex);
ret = usb_interrupt_write(keyboard_device, g15_lcd_endpoint, (char*)lcd_buffer, G15_BUFFER_LEN, 1000); ret = usb_interrupt_write(keyboard_device, g15_lcd_endpoint, (char*)lcd_buffer, G15_BUFFER_LEN, 1000);
pthread_mutex_unlock(&libusb_mutex); pthread_mutex_unlock(&libusb_mutex);
#endif
if (ret != G15_BUFFER_LEN) if (ret != G15_BUFFER_LEN)
{ {
handle_usb_errors ("LCDPixmap Write",ret); handle_usb_errors ("LCDPixmap Write",ret);
@@ -543,7 +611,7 @@ static unsigned char g15KeyToLogitechKeyCode(int key)
} }
} }
static void processKeyEvent(unsigned int *pressed_keys, unsigned char *buffer) static void processKeyEvent9Byte(unsigned int *pressed_keys, unsigned char *buffer)
{ {
int i; int i;
@@ -634,22 +702,96 @@ static void processKeyEvent(unsigned int *pressed_keys, unsigned char *buffer)
} }
} }
static void processKeyEvent5Byte(unsigned int *pressed_keys, unsigned char *buffer)
{
int i;
*pressed_keys = 0;
g15_log(stderr,G15_LOG_WARN,"Keyboard: %x, %x, %x, %x, %x\n",buffer[0],buffer[1],buffer[2],buffer[3],buffer[4]);
if (buffer[0] == 0x02)
{
if (buffer[1]&0x01)
*pressed_keys |= G15_KEY_G1;
if (buffer[1]&0x02)
*pressed_keys |= G15_KEY_G2;
if (buffer[1]&0x04)
*pressed_keys |= G15_KEY_G3;
if (buffer[1]&0x08)
*pressed_keys |= G15_KEY_G4;
if (buffer[1]&0x10)
*pressed_keys |= G15_KEY_G5;
if (buffer[1]&0x20)
*pressed_keys |= G15_KEY_G6;
if (buffer[1]&0x40)
*pressed_keys |= G15_KEY_M1;
if (buffer[1]&0x80)
*pressed_keys |= G15_KEY_M2;
if (buffer[2]&0x20)
*pressed_keys |= G15_KEY_M3;
if (buffer[2]&0x40)
*pressed_keys |= G15_KEY_MR;
if (buffer[2]&0x80)
*pressed_keys |= G15_KEY_L1;
if (buffer[2]&0x2)
*pressed_keys |= G15_KEY_L2;
if (buffer[2]&0x4)
*pressed_keys |= G15_KEY_L3;
if (buffer[2]&0x8)
*pressed_keys |= G15_KEY_L4;
if (buffer[2]&0x10)
*pressed_keys |= G15_KEY_L5;
if (buffer[2]&0x1)
*pressed_keys |= G15_KEY_LIGHT;
}
}
int getPressedKeys(unsigned int *pressed_keys, unsigned int timeout) int getPressedKeys(unsigned int *pressed_keys, unsigned int timeout)
{ {
unsigned char buffer[9]; unsigned char buffer[9];
int ret = 0; int ret = 0;
#ifdef LIBUSB_BLOCKS
ret = usb_interrupt_read(keyboard_device, g15_keys_endpoint, (char*)buffer, 9, timeout);
#else
pthread_mutex_lock(&libusb_mutex); pthread_mutex_lock(&libusb_mutex);
ret = usb_interrupt_read(keyboard_device, g15_keys_endpoint, (char*)buffer, 9, timeout); ret = usb_interrupt_read(keyboard_device, g15_keys_endpoint, (char*)buffer, 9, timeout);
pthread_mutex_unlock(&libusb_mutex); pthread_mutex_unlock(&libusb_mutex);
#endif
if (ret == 9) if(ret>0) {
{ if(buffer[0] == 1)
if (buffer[0] == 1)
return G15_ERROR_TRY_AGAIN; return G15_ERROR_TRY_AGAIN;
}
processKeyEvent(pressed_keys, buffer); if(g15DeviceCapabilities() & G15_DEVICE_5BYTE_RETURN) {
processKeyEvent5Byte(pressed_keys, buffer);
return G15_NO_ERROR; return G15_NO_ERROR;
} }
switch(ret) {
case 5:
processKeyEvent5Byte(pressed_keys, buffer);
return G15_NO_ERROR;
case 9:
processKeyEvent9Byte(pressed_keys, buffer);
return G15_NO_ERROR;
default:
return handle_usb_errors("Keyboard Read", ret); /* allow the app to deal with errors */ return handle_usb_errors("Keyboard Read", ret); /* allow the app to deal with errors */
}
} }
+2 -1
View File
@@ -17,7 +17,7 @@
(c) 2006 - 2007 The G15tools Project - g15tools.sf.net (c) 2006 - 2007 The G15tools Project - g15tools.sf.net
$Revision: 263 $ - $Date: 2007-10-18 12:23:30 +0930 (Thu, 18 Oct 2007) $ $Author: mlampard $ $Revision: 280 $ - $Date: 2008-01-19 22:11:05 +1030 (Sat, 19 Jan 2008) $ $Author: mlampard $
*/ */
#ifndef _LIBG15_H_ #ifndef _LIBG15_H_
@@ -31,6 +31,7 @@ extern "C"
#define G15_LCD 1 #define G15_LCD 1
#define G15_KEYS 2 #define G15_KEYS 2
#define G15_DEVICE_IS_SHARED 4 #define G15_DEVICE_IS_SHARED 4
#define G15_DEVICE_5BYTE_RETURN 8
typedef struct libg15_devices_t libg15_devices_t; typedef struct libg15_devices_t libg15_devices_t;
+2 -2
View File
@@ -3,11 +3,11 @@
%define prefix /usr %define prefix /usr
Summary: library to control logitech G15 keyboards Summary: library to control logitech G15 keyboards
Name: libg15 Name: libg15
Version: 1.2.3 Version: 1.2.6
Release: 1 Release: 1
Copyright: GPL Copyright: GPL
Group: Applications/System Group: Applications/System
Source: http://prdownloads.sourceforge.net/g15tools/libg15-1.2.3.tar.bz2 Source: http://prdownloads.sourceforge.net/g15tools/libg15-1.2.6.tar.bz2
URL: http://sourceforge.net/projects/g15tools URL: http://sourceforge.net/projects/g15tools
Distribution: Linux Distribution: Linux
Vendor: NONE Vendor: NONE
+65
View File
@@ -0,0 +1,65 @@
# libg15 rpm spec file
#
%define prefix /usr
Summary: library to control logitech G15 keyboards
Name: libg15
Version: 1.2.5
Release: 1
Copyright: GPL
Group: Applications/System
Source: http://prdownloads.sourceforge.net/g15tools/libg15-1.2.5.tar.bz2
URL: http://sourceforge.net/projects/g15tools
Distribution: Linux
Vendor: NONE
Packager: Mike Lampard <mlampard@users.sourceforge.net>
Buildroot: /var/tmp/libg15-%{PACKAGE_VERSION}-root
Requires: libusb
BuildRequires: libusb-devel
Provides: libg15
%description
libg15 controls the G15 keyboard, providing applications access
to the keyboard's LCD display, and the additional keys available
on this keyboard.
%package devel
Summary: libg15 controls the G15 keyboard and LCD.
Group: System Environment/Libraries
Requires: libusb
Requires: libg15
Provides: libg15-devel
%description devel
libg15 controls the G15 keyboard, providing applications access
to the keyboard's LCD display, and the additional keys available
on this keyboard.
%prep
%setup
%build
CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix}
make
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-, root, root)
%doc AUTHORS COPYING NEWS README
%{prefix}/lib/lib*.la
%{prefix}/lib/libg15.so*
%files devel
%defattr(-, root, root)
%doc AUTHORS COPYING NEWS README
%{prefix}/lib/lib*.a
%{prefix}/include/*