diff options
author | Peter Hutterer <peter.hutterer@redhat.com> | 2009-03-25 09:25:01 -0400 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-03-26 10:17:01 +1000 |
commit | 7e8642069899de4d150b0bda9a12da4d3961e997 (patch) | |
tree | 0f5e7212eb3a2fc51b0625cd42e603e0805a4b9b /src | |
parent | fa83ab8780d6ee359b839c0205b093e7e7e592b2 (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>
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 23 | ||||
-rw-r--r-- | src/fakedev.c | 27 |
2 files changed, 7 insertions, 43 deletions
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"); |