Add make install support
authorFilippos Giannakos <philipgian@grnet.gr>
Wed, 9 Jan 2013 16:44:58 +0000 (18:44 +0200)
committerFilippos Giannakos <philipgian@grnet.gr>
Wed, 9 Jan 2013 17:00:54 +0000 (19:00 +0200)
xseg/Makefile
xseg/base.mk
xseg/drivers/kernel/Makefile
xseg/peers/kernel/Makefile
xseg/peers/user/Makefile
xseg/sys/kernel/Makefile
xseg/sys/user/Makefile
xseg/sys/user/python/Makefile

index ed092a3..477e386 100644 (file)
@@ -37,6 +37,7 @@ TARGET=default
 include ./base.mk
 
 XSEG_CLEAN_TARGETS=$(patsubst %,clean-%,$(XSEG_DOMAIN_TARGETS))
+XSEG_INSTALL_TARGETS=$(patsubst %,install-%,$(XSEG_DOMAIN_TARGETS))
 
 default: targets
 
@@ -47,6 +48,12 @@ targets: $(XSEG_DOMAIN_TARGETS)
 
 clean: $(XSEG_CLEAN_TARGETS)
 
+install: install-src $(XSEG_INSTALL_TARGETS)
+
+install-src:
+       mkdir -p $(DESTDIR)$(srcdir)
+       cp -r * $(DESTDIR)$(srcdir)
+
 .PHONY: $(XSEG_DOMAIN_TARGETS)
 $(XSEG_DOMAIN_TARGETS):
        @for f in $(XSEG_DOMAIN_DIRS); do \
@@ -58,6 +65,17 @@ $(XSEG_DOMAIN_TARGETS):
        done
        @echo " "
 
+.PHONY: $(XSEG_INSTALL_TARGETS)
+$(XSEG_INSTALL_TARGETS):
+       @for f in $(XSEG_DOMAIN_DIRS); do \
+               echo " "; \
+               echo "=== $@ in $$f ==="; \
+               echo " "; \
+               make -C $$f/$(@:install-%=%) TARGET=$@ install || true; \
+               echo " "; \
+       done
+       @echo " "
+
 .PHONY: $(XSEG_CLEAN_TARGETS)
 $(XSEG_CLEAN_TARGETS):
        @for f in $(XSEG_DOMAIN_DIRS); do \
index 19f22d4..c974c0f 100644 (file)
@@ -48,6 +48,12 @@ ifndef CSTD
 export CSTD=-std=gnu99 -pedantic
 endif
 
+bindir="/usr/bin/"
+libdir="/usr/lib/"
+pythondir="/usr/lib/python2.7/"
+moduledir="/lib/modules/`uname -r`/extra/"
+srcdir="/usr/src/archipelago-kernel-dkms-VERSION/"
+
 INC=-I$(BASE)
 INC+=-I$(BASE)/peers/$(TARGET)
 INC+=-I$(BASE)/sys/$(TARGET)
index a5a8fd9..066dd9f 100644 (file)
@@ -58,6 +58,12 @@ all: $(BASE)/sys/kernel/Module.symvers
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) V=$(V) modules
        cp -vaf xseg_pthread.ko xseg_segdev.ko xseg_posix.ko $(LIBDIR)
 
+install:
+       mkdir -p $(DESTDIR)$(moduledir)
+       cp xseg_segdev.ko $(DESTDIR)$(moduledir)
+       cp xseg_posix.ko $(DESTDIR)$(moduledir)
+       cp xseg_pthread.ko $(DESTDIR)$(moduledir)
+
 clean:
        rm -f Module.symvers
        make -C /lib/modules/$(KVER)/build M=$(PWD) V=$(V) clean
index 6ef354c..f44844a 100644 (file)
@@ -57,6 +57,10 @@ all: $(BASE)/drivers/kernel/Module.symvers
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) V=$(V) modules
        cp -vaf xsegbd.ko $(LIBDIR)
 
+install:
+       mkdir -p $(DESTDIR)$(moduledir)
+       cp xsegbd.ko $(DESTDIR)$(moduledir)
+
 clean:
        rm -f Module.symvers
        make -C /lib/modules/$(KVER)/build M=$(PWD) V=$(V) clean
index 014507a..91e03de 100644 (file)
 # or implied, of GRNET S.A.
 #
 
-.PHONY: default all clean
+.PHONY: default all clean install
 
 include $(XSEG_HOME)/base.mk
+PEERS := xseg mt-sosd dummy mt-mapperd pfiled vlmc-xseg st-vlmcd mt-pfiled
 
-default: all
+default: $(PEERS)
 
 #all: filed xseg sosd vlmcd mapperd
 #all: filed xseg vlmcd mapperd
@@ -84,6 +85,13 @@ pfiled: pfiled.c common.c $(BASE)/xseg/xseg.h $(BASE)/xseg/protocol.h common.h
 vlmc-xseg: vlmc-tool.c $(BASE)/xseg/xseg.h
        $(CC) $(CFLAGS) -o $@ $< $(INC) -L$(LIB) -lxseg
 
+install:
+       mkdir -p $(DESTDIR)$(bindir)
+       @for p in $(PEERS); do\
+               echo "cp $$p $(DESTDIR)$(bindir)" ; \
+               cp $$p $(DESTDIR)$(bindir) ; \
+       done
+
 clean:
        rm -f filed xseg sosd vlmcd mapperd mt-sosd dummy monitor mt-mapperd \
                pfiled vlmc-xseg st-vlmcd mt-vlmcd mt-pfiled
index 4739fd7..2806a36 100644 (file)
@@ -70,6 +70,11 @@ xobj.k.c: $(BASE)/xtypes/xobj.c $(BASE)/xtypes/xobj.h
 xseg.k.c: $(BASE)/xseg/xseg.c $(BASE)/xseg/xseg.h
        ln -sf $< $@
 
+install:
+       mkdir -p $(DESTDIR)$(moduledir)
+       cp xseg.ko $(DESTDIR)$(moduledir)
+       cp segdev.ko $(DESTDIR)$(moduledir)
+
 clean:
        rm -f xq.k.c xpool.k.c xhash.k.c xheap.k.c xobj.k.c xseg.k.c
        make -C /lib/modules/$(KVER)/build M=$(PWD) V=$(V) clean
index bef342a..4ad2170 100644 (file)
@@ -31,7 +31,7 @@
 # or implied, of GRNET S.A.
 #
 
-.PHONY: default all clean drivers
+.PHONY: default all clean drivers install
 
 include $(XSEG_HOME)/base.mk
 
@@ -132,6 +132,12 @@ 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:
+       mkdir -p $(DESTDIR)$(libdir)
+       cp -vaf libxseg.so $(DESTDIR)$(libdir)
+       cp -vaf libxseg.so.$(MAJOR) $(DESTDIR)$(libdir)
+       cp -vaf libxseg.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir)
+
 clean:
        make -C xq clean
        make -C xpool clean
index 32c8624..13de823 100644 (file)
@@ -31,7 +31,7 @@
 # or implied, of GRNET S.A.
 #
 
-.PHONY: default all clean
+.PHONY: default all clean install
 
 include $(XSEG_HOME)/base.mk
 
@@ -60,5 +60,9 @@ xseg/xseg_api.py: xseg.xml
 xseg/xprotocol.py: xprotocol.xml
        $(XML2PY) -d -k defst -c $< -o $@
 
+install:
+       mkdir p $(DESTDIR)$(pythondir)
+       cp -r xseg $(DESTDIR)$(pythondir)
+
 clean:
        rm -f xseg.xml xprotocol.xml xseg/xseg_api.py xseg/xseg_api.pyc xseg/xprotocol.py xseg/xprotocol.pyc xseg/__init__.pyc