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
25 _initialize.c: drivers
26 $(BASE)/tools/create_initializer $(DRIVERS) > _initialize.c
28 xseg.o: $(BASE)/xseg/xseg.c $(BASE)/xseg/xseg.h $(BASE)/xtypes/xq.h
29 $(CC) $(CFLAGS) $(INC) -c -o $@ $<
31 xseg.pic.o: $(BASE)/xseg/xseg.c $(BASE)/xseg/xseg.h _initialize.c
32 $(CC) $(CFLAGS) $(INC) -fPIC -c -o $@ $<
34 libxseg.so: libxseg.so.$(MAJOR)
38 libxseg.so.$(MAJOR): libxseg.so.$(MAJOR).$(MINOR)
43 make -C $(DRVDIR) $(addsuffix .o, $(DRIVERS))
55 make -C xpool xpool.pic.o
61 make -C xhash xhash.pic.o
67 make -C xheap xheap.pic.o
73 make -C xobj xobj.pic.o
75 xseg_user.o: xseg_user.c
76 $(CC) $(CFLAGS) $(INC) -Wall -O2 -finline-functions -fPIC -c -o $@ $<
78 libxseg.map: $(BASE)/xtypes/xq_exports.h $(BASE)/xseg/xseg_exports.h
79 cat $(BASE)/xtypes/xq_exports.h $(BASE)/xseg/xseg_exports.h | ./make_symbol_map.sh > $@
81 libxseg.so.$(MAJOR).$(MINOR): xseg.pic.o xseg_user.o libxseg.map \
82 xq/xq.pic.o xpool/xpool.pic.o xhash/xhash.pic.o \
83 xheap/xheap.pic.o xobj/xobj.pic.o $(DRVOBJS)
84 $(CC) $(CFLAGS) -shared \
85 -Wl,-soname=libxseg.so.$(MAJOR) \
86 -o libxseg.so.$(MAJOR).$(MINOR) \
87 xseg.pic.o xseg_user.o xq/xq.pic.o \
88 xpool/xpool.pic.o xhash/xhash.pic.o\
89 xheap/xheap.pic.o xobj/xobj.pic.o \
90 _initialize.o $(DRVOBJS) \
91 -Wl,--version-script=libxseg.map \
95 libxseg.a: xseg.o xq/xq.o drivers _initialize.o
96 $(AR) r libxseg.a xseg.o xq/xq.o _initialize.o $(DRVOBJS)
104 rm -f _initialize.c _initialize.o
105 rm -f xseg.o xseg.pic.o xseg_user.o
106 rm -f libxseg.a libxseg.map
107 rm -f libxseg.so libxseg.so.$(MAJOR) libxseg.so.$(MAJOR).$(MINOR)