1 .PHONY: default all clean drivers
3 include $(XSEG_HOME)/base.mk
9 DRIVERS=xseg_posix xseg_segdev
10 DRVDIR=$(BASE)/drivers/user
11 DRVOBJS=$(addsuffix .o, $(addprefix $(DRVDIR)/, $(DRIVERS)))
16 all: libxseg.a libxseg.so
21 _initialize.c: drivers
22 $(BASE)/tools/create_initializer $(DRIVERS) > _initialize.c
24 xseg.o: $(BASE)/xseg/xseg.c $(BASE)/xseg/xseg.h $(BASE)/xtypes/xq.h
25 $(CC) $(CFLAGS) $(INC) -c -o $@ $<
27 xseg.pic.o: $(BASE)/xseg/xseg.c $(BASE)/xseg/xseg.h _initialize.c
28 $(CC) $(CFLAGS) $(INC) -fPIC -c -o $@ $<
30 libxseg.so: libxseg.so.$(MAJOR)
34 libxseg.so.$(MAJOR): libxseg.so.$(MAJOR).$(MINOR)
39 make -C $(DRVDIR) $(addsuffix .o, $(DRIVERS))
51 make -C xpool xpool.pic.o
57 make -C xhash xhash.pic.o
63 make -C xheap xheap.pic.o
69 make -C xobj xobj.pic.o
71 xseg_user.o: xseg_user.c
72 $(CC) $(CFLAGS) $(INC) -Wall -O2 -finline-functions -fPIC -c -o $@ $<
74 libxseg.map: $(BASE)/xtypes/xq_exports.h $(BASE)/xseg/xseg_exports.h
75 cat $(BASE)/xtypes/xq_exports.h $(BASE)/xseg/xseg_exports.h | ./make_symbol_map.sh > $@
77 libxseg.so.$(MAJOR).$(MINOR): xseg.pic.o xseg_user.o libxseg.map \
78 xq/xq.pic.o xpool/xpool.pic.o xhash/xhash.pic.o \
79 xheap/xheap.pic.o xobj/xobj.pic.o $(DRVOBJS)
80 $(CC) $(CFLAGS) -shared \
81 -Wl,-soname=libxseg.so.$(MAJOR) \
82 -o libxseg.so.$(MAJOR).$(MINOR) \
83 xseg.pic.o xseg_user.o xq/xq.pic.o \
84 xpool/xpool.pic.o xhash/xhash.pic.o\
85 xheap/xheap.pic.o xobj/xobj.pic.o \
86 _initialize.o $(DRVOBJS) \
87 -Wl,--version-script=libxseg.map \
91 libxseg.a: xseg.o xq/xq.o drivers _initialize.o
92 $(AR) r libxseg.a xseg.o xq/xq.o _initialize.o $(DRVOBJS)
100 rm -f _initialize.c _initialize.o
101 rm -f xseg.o xseg.pic.o xseg_user.o
102 rm -f libxseg.a libxseg.map
103 rm -f libxseg.so libxseg.so.$(MAJOR) libxseg.so.$(MAJOR).$(MINOR)