Change libxseg minor from 0.1 to 1
[archipelago] / xseg / sys / user / Makefile
index 8ea6a95..bc2118d 100644 (file)
@@ -1,9 +1,50 @@
-.PHONY: default all clean drivers
+# Copyright 2012 GRNET S.A. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or
+# without modification, are permitted provided that the following
+# conditions are met:
+#
+#   1. Redistributions of source code must retain the above
+#      copyright notice, this list of conditions and the following
+#      disclaimer.
+#   2. Redistributions in binary form must reproduce the above
+#      copyright notice, this list of conditions and the following
+#      disclaimer in the documentation and/or other materials
+#      provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and
+# documentation are those of the authors and should not be
+# interpreted as representing official policies, either expressed
+# or implied, of GRNET S.A.
+#
+
+.PHONY: default all clean drivers install install-src
 
 include $(XSEG_HOME)/base.mk
 
+FILES="Makefile"
+FILES+=$(shell ls *.h)
+FILES+=$(shell ls *.c)
+
+EFILES+="make_symbol_map.sh"
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
 MAJOR=0
-MINOR=0.1
+MINOR=1
 AR=ar
 
 DRIVERS=xseg_posix xseg_segdev xseg_pthread
@@ -14,6 +55,7 @@ SHELL=/bin/bash
 default: all
 
 all: libxseg.a libxseg.so
+       make -C python all MAJOR=$(MAJOR) MINOR=$(MINOR)
        make -C xq all
        make -C xpool all
        make -C xhash all
@@ -75,9 +117,11 @@ xseg_user.o: xseg_user.c
        $(CC) $(CFLAGS) $(INC) -Wall -O2 -finline-functions -fPIC -c -o $@ $<
 
 libxseg.map: $(BASE)/xtypes/xq_exports.h $(BASE)/xseg/xseg_exports.h \
-               $(BASE)/xtypes/xpool_exports.h $(BASE)/xtypes/xhash_exports.h
+               $(BASE)/xtypes/xpool_exports.h $(BASE)/xtypes/xhash_exports.h\
+               $(BASE)/xtypes/xobj_exports.h
        cat $(BASE)/xtypes/xq_exports.h $(BASE)/xseg/xseg_exports.h \
-               $(BASE)/xtypes/xpool_exports.h $(BASE)/xtypes/xhash_exports.h | ./make_symbol_map.sh > $@
+               $(BASE)/xtypes/xpool_exports.h $(BASE)/xtypes/xhash_exports.h \
+               $(BASE)/xtypes/xobj_exports.h | ./make_symbol_map.sh > $@
 
 libxseg.so.$(MAJOR).$(MINOR): xseg.pic.o xseg_user.o libxseg.map \
                                 xq/xq.pic.o xpool/xpool.pic.o xhash/xhash.pic.o \
@@ -90,13 +134,38 @@ libxseg.so.$(MAJOR).$(MINOR): xseg.pic.o xseg_user.o libxseg.map \
                        xheap/xheap.pic.o xobj/xobj.pic.o \
                         _initialize.o $(DRVOBJS) \
                         -Wl,--version-script=libxseg.map \
-                        -ldl -lrt
+                        -ldl -lrt -pthread
        cp -vaf $@ $(LIB)
 
 libxseg.a: xseg.o xq/xq.o drivers _initialize.o
        $(AR) r libxseg.a xseg.o xq/xq.o _initialize.o $(DRVOBJS)
        cp -vaf $@ $(LIB)
 
+install:
+       make -C python install
+       install -d $(DESTDIR)$(libdir)
+       #install -t $(DESTDIR)$(libdir) libxseg.so
+       #install -t $(DESTDIR)$(libdir) libxseg.so.$(MAJOR)
+       install -o 0 -g 0 -m 644 -t $(DESTDIR)$(libdir) libxseg.so.$(MAJOR).$(MINOR)
+       cp -vaf libxseg.so.$(MAJOR) $(DESTDIR)$(libdir)
+       cp -vaf libxseg.so $(DESTDIR)$(libdir)
+
+install-src:
+       make -C xq install-src
+       make -C xpool install-src
+       make -C xhash install-src
+       make -C xheap install-src
+       make -C xobj install-src
+       make -C python install-src
+       install -d $(DESTDIR)$(srcdir)$(SUBDIR) ;
+       @for f in $(FILES) ; do \
+               install -o 0 -g 0 -m 644 -t $(DESTDIR)$(srcdir)$(SUBDIR) $$f ; \
+       done
+       @for f in $(EFILES) ; do \
+               install -o 0 -g 0 -m 755 -t $(DESTDIR)$(srcdir)$(SUBDIR) $$f ; \
+       done
+
+
 clean:
        make -C xq clean
        make -C xpool clean