1 .PHONY: default all clean drivers
3 include $(XSEG_HOME)/base.mk
9 DRIVERS=xseg_posix xseg_segdev xseg_pthread
10 DRVDIR=$(BASE)/drivers/user
11 DRVOBJS=$(addsuffix .o, $(addprefix $(DRVDIR)/, $(DRIVERS)))
16 all: libxseg.a libxseg.so
24 _initialize.c: drivers
25 $(BASE)/tools/create_initializer $(DRIVERS) > _initialize.c
27 xseg.o: $(BASE)/xseg/xseg.c $(BASE)/xseg/xseg.h $(BASE)/xtypes/xq.h
28 $(CC) $(CFLAGS) $(INC) -c -o $@ $<
30 xseg.pic.o: $(BASE)/xseg/xseg.c $(BASE)/xseg/xseg.h _initialize.c
31 $(CC) $(CFLAGS) $(INC) -fPIC -c -o $@ $<
33 libxseg.so: libxseg.so.$(MAJOR)
37 libxseg.so.$(MAJOR): libxseg.so.$(MAJOR).$(MINOR)
42 make -C $(DRVDIR) $(addsuffix .o, $(DRIVERS))
54 make -C xpool xpool.pic.o
60 make -C xhash xhash.pic.o
66 make -C xheap xheap.pic.o
72 make -C xobj xobj.pic.o
74 xseg_user.o: xseg_user.c
75 $(CC) $(CFLAGS) $(INC) -Wall -O2 -finline-functions -fPIC -c -o $@ $<
77 libxseg.map: $(BASE)/xtypes/xq_exports.h $(BASE)/xseg/xseg_exports.h
78 cat $(BASE)/xtypes/xq_exports.h $(BASE)/xseg/xseg_exports.h | ./make_symbol_map.sh > $@
80 libxseg.so.$(MAJOR).$(MINOR): xseg.pic.o xseg_user.o libxseg.map \
81 xq/xq.pic.o xpool/xpool.pic.o xhash/xhash.pic.o \
82 xheap/xheap.pic.o xobj/xobj.pic.o $(DRVOBJS)
83 $(CC) $(CFLAGS) -shared \
84 -Wl,-soname=libxseg.so.$(MAJOR) \
85 -o libxseg.so.$(MAJOR).$(MINOR) \
86 xseg.pic.o xseg_user.o xq/xq.pic.o \
87 xpool/xpool.pic.o xhash/xhash.pic.o\
88 xheap/xheap.pic.o xobj/xobj.pic.o \
89 _initialize.o $(DRVOBJS) \
90 -Wl,--version-script=libxseg.map \
94 libxseg.a: xseg.o xq/xq.o drivers _initialize.o
95 $(AR) r libxseg.a xseg.o xq/xq.o _initialize.o $(DRVOBJS)
105 rm -f _initialize.c _initialize.o
106 rm -f xseg.o xseg.pic.o xseg_user.o
107 rm -f libxseg.a libxseg.map
108 rm -f libxseg.so libxseg.so.$(MAJOR) libxseg.so.$(MAJOR).$(MINOR)