1 | XEN_ROOT = ../../.. |
---|
2 | include $(XEN_ROOT)/tools/Rules.mk |
---|
3 | |
---|
4 | prefix=/usr |
---|
5 | includedir=$(prefix)/include |
---|
6 | libdir=$(prefix)/lib |
---|
7 | |
---|
8 | ARCH := $(shell uname -m | sed -e s/i.86/i386/) |
---|
9 | CFLAGS := -nostdlib -nostartfiles -Wall -I. -g -fomit-frame-pointer -O2 -fPIC |
---|
10 | SO_CFLAGS=-shared $(CFLAGS) |
---|
11 | L_CFLAGS=$(CFLAGS) |
---|
12 | LINK_FLAGS= |
---|
13 | |
---|
14 | soname=libaio.so.1 |
---|
15 | minor=0 |
---|
16 | micro=1 |
---|
17 | libname=$(soname).$(minor).$(micro) |
---|
18 | all_targets += libaio.a $(libname) |
---|
19 | |
---|
20 | all: $(all_targets) |
---|
21 | |
---|
22 | # libaio provided functions |
---|
23 | libaio_srcs := io_queue_init.c io_queue_release.c |
---|
24 | libaio_srcs += io_queue_wait.c io_queue_run.c |
---|
25 | |
---|
26 | # real syscalls |
---|
27 | libaio_srcs += io_getevents.c io_submit.c io_cancel.c |
---|
28 | libaio_srcs += io_setup.c io_destroy.c |
---|
29 | |
---|
30 | # internal functions |
---|
31 | libaio_srcs += raw_syscall.c |
---|
32 | |
---|
33 | # old symbols |
---|
34 | libaio_srcs += compat-0_1.c |
---|
35 | |
---|
36 | libaio_objs := $(patsubst %.c,%.ol,$(libaio_srcs)) |
---|
37 | libaio_sobjs := $(patsubst %.c,%.os,$(libaio_srcs)) |
---|
38 | |
---|
39 | $(libaio_objs) $(libaio_sobjs): libaio.h vsys_def.h |
---|
40 | |
---|
41 | %.os: %.c |
---|
42 | $(CC) $(SO_CFLAGS) -c -o $@ $< |
---|
43 | |
---|
44 | %.ol: %.c |
---|
45 | $(CC) $(L_CFLAGS) -c -o $@ $< |
---|
46 | |
---|
47 | |
---|
48 | libaio.a: $(libaio_objs) |
---|
49 | rm -f libaio.a |
---|
50 | $(AR) r libaio.a $^ |
---|
51 | $(RANLIB) libaio.a |
---|
52 | |
---|
53 | $(libname): $(libaio_sobjs) libaio.map |
---|
54 | $(CC) $(SO_CFLAGS) -Wl,--version-script=libaio.map -Wl,-soname=$(soname) -o $@ $(libaio_sobjs) $(LINK_FLAGS) |
---|
55 | |
---|
56 | install: $(all_targets) |
---|
57 | install -D -m 644 libaio.h $(includedir)/libaio.h |
---|
58 | install -D -m 644 libaio.a $(libdir)/libaio.a |
---|
59 | install -D -m 755 $(libname) $(libdir)/$(libname) |
---|
60 | ln -sf $(libname) $(libdir)/$(soname) |
---|
61 | ln -sf $(libname) $(libdir)/libaio.so |
---|
62 | |
---|
63 | $(libaio_objs): libaio.h |
---|
64 | |
---|
65 | clean: |
---|
66 | rm -f $(all_targets) $(libaio_objs) $(libaio_sobjs) $(soname).new |
---|
67 | rm -f *.so* *.a *.o |
---|