summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@redhat.com>2009-03-25 09:25:01 -0400
committerPeter Hutterer <peter.hutterer@who-t.net>2009-03-26 10:17:01 +1000
commit7e8642069899de4d150b0bda9a12da4d3961e997 (patch)
tree0f5e7212eb3a2fc51b0625cd42e603e0805a4b9b
parentfa83ab8780d6ee359b839c0205b093e7e7e592b2 (diff)
Revamp the build system.
Instead of having one binary "fakedev" that loads the devices, make fakedev a static library and make each device the executable program. Basic principle stays the same, note that the main() for each test device is provided by libfakedev.a. Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
-rw-r--r--configure.ac1
-rw-r--r--src/Makefile.am23
-rw-r--r--src/fakedev.c27
3 files changed, 8 insertions, 43 deletions
diff --git a/configure.ac b/configure.ac
index f4e6784..75c3f3e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -36,6 +36,7 @@ AM_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CC
+AC_PROG_RANLIB
# Checks for libraries.
AC_CHECK_FUNC([dlopen], [],
diff --git a/src/Makefile.am b/src/Makefile.am
index e66d51f..a59c33c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -18,30 +18,19 @@
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-noinst_PROGRAMS=fakedev btn0 absrel abs dummy synaptics allbtn wacom
+LIBNAME=libfakedev.a
-fakedev_SOURCES=fakedev.c fakedev.h
-fakedev_LDFLAGS=$(DLOPEN_LIBS) -rdynamic
+AM_LDFLAGS = $(LIBNAME)
-LFLAGS=-shared -fPIC
+noinst_PROGRAMS=btn0 absrel abs dummy synaptics allbtn wacom
+noinst_LIBRARIES=$(LIBNAME)
-btn0_SOURCES=btn0.c
-btn0_LDFLAGS=$(LFLAGS)
+libfakedev_a_SOURCES=fakedev.c fakedev.h
+btn0_SOURCES=btn0.c
absrel_SOURCES=absrel.c
-absrel_LDFLAGS=$(LFLAGS)
-
abs_SOURCES=abs.c
-abs_LDFLAGS=$(LFLAGS)
-
dummy_SOURCES=dummy.c
-dummy_LDFLAGS=$(LFLAGS)
-
synaptics_SOURCES=synaptics.c
-synaptics_LDFLAGS=$(LFLAGS)
-
allbtn_SOURCES=allbtn.c
-allbtn_LDFLAGS=$(LFLAGS)
-
wacom_SOURCES=wacom.c
-wacom_LDFLAGS=$(LFLAGS)
diff --git a/src/fakedev.c b/src/fakedev.c
index a3a1b81..9df98d9 100644
--- a/src/fakedev.c
+++ b/src/fakedev.c
@@ -152,32 +152,7 @@ static void cleanup_uinput(void)
int main (int argc, char **argv)
{
struct test_device *dev;
- void *dlhandle = NULL;
- struct test_device* (*get_device)(void);
-
- if (argc <= 1)
- {
- fprintf(stderr, "Usage: %s test_dev\n", argv[0]);
- return -1;
- }
-
- printf("Loading %s.\n", argv[1]);
-
- dlhandle = dlopen(argv[1], RTLD_NOW | RTLD_GLOBAL);
- if (!dlhandle)
- {
- fprintf(stderr, "Error: %s\n", dlerror());
- return -1;
- }
-
- *(void**)(&get_device) = dlsym(dlhandle, "get_device");
- if (!get_device)
- {
- fprintf(stderr, "Error getting the symbol: %s.\n", dlerror());
- return -1;
- }
-
- dev = (*get_device)();
+ dev = get_device();
if (init_uinput(dev) < 0) {
fprintf(stderr, "Failed to initialize /dev/uinput. Exiting.\n");