Refactor the build system
authorFilippos Giannakos <philipgian@grnet.gr>
Thu, 10 Jan 2013 14:54:47 +0000 (16:54 +0200)
committerFilippos Giannakos <philipgian@grnet.gr>
Fri, 11 Jan 2013 14:42:28 +0000 (16:42 +0200)
24 files changed:
xseg/Makefile
xseg/base.mk
xseg/config.env
xseg/drivers/Makefile [new file with mode: 0644]
xseg/drivers/kernel/Makefile
xseg/drivers/user/Makefile
xseg/peers/Makefile [new file with mode: 0644]
xseg/peers/kernel/Makefile
xseg/peers/user/Makefile
xseg/sys/Makefile [new file with mode: 0644]
xseg/sys/kernel/Makefile
xseg/sys/user/Makefile
xseg/sys/user/python/Makefile
xseg/sys/user/xhash/Makefile
xseg/sys/user/xheap/Makefile
xseg/sys/user/xobj/Makefile
xseg/sys/user/xpool/Makefile
xseg/sys/user/xq/Makefile
xseg/tools/Makefile [new file with mode: 0644]
xseg/tools/ext_scripts/Makefile [new file with mode: 0644]
xseg/util_libs/Makefile [new file with mode: 0644]
xseg/util_libs/kernel/Makefile
xseg/xseg/Makefile [new file with mode: 0644]
xseg/xtypes/Makefile [new file with mode: 0644]

index 477e386..f72728c 100644 (file)
 TARGET=default
 include ./base.mk
 
-XSEG_CLEAN_TARGETS=$(patsubst %,clean-%,$(XSEG_DOMAIN_TARGETS))
-XSEG_INSTALL_TARGETS=$(patsubst %,install-%,$(XSEG_DOMAIN_TARGETS))
+FILES="base.mk"
+FILES+="config.env"
+FILES+="envsetup"
+FILES+="Makefile"
+FILES+="launch"
+
+
+XSEG_BUILD_TARGETS=$(patsubst %,build-%,$(XSEG_DIRS))
+XSEG_CLEAN_TARGETS=$(patsubst %,clean-%,$(XSEG_DIRS))
+XSEG_INSTALL_TARGETS=$(patsubst %,install-%,$(XSEG_DIRS))
+XSEG_INSTALLSRC_TARGETS=$(patsubst %,install-src-%,$(XSEG_DIRS))
 
 default: targets
 
 target-list:
        @echo $(XSEG_DOMAIN_TARGETS)
 
-targets: $(XSEG_DOMAIN_TARGETS)
+targets: $(XSEG_BUILD_TARGETS)
 
 clean: $(XSEG_CLEAN_TARGETS)
+       rm $(CONFIG)
+
+install: $(XSEG_INSTALL_TARGETS)
 
-install: install-src $(XSEG_INSTALL_TARGETS)
+install-src: $(XSEG_INSTALLSRC_TARGETS) $(XSEG_INSTALLSRC_DIRS)
+       install -d $(DESTDIR)$(srcdir)/lib
+       install -d $(DESTDIR)$(srcdir)/lib/user
+       install -d $(DESTDIR)$(srcdir)/lib/kernel
+       install -d $(DESTDIR)$(srcdir)/
+       install -o 0 -g 0 -m 755 -t $(DESTDIR)$(srcdir) envsetup
+       install -o 0 -g 0 -m 755 -t $(DESTDIR)$(srcdir) launch
+       install -o 0 -g 0 -m 644 -t $(DESTDIR)$(srcdir) config.env
+       install -o 0 -g 0 -m 644 -t $(DESTDIR)$(srcdir) Makefile
+       install -o 0 -g 0 -m 644 -t $(DESTDIR)$(srcdir) base.mk
 
-install-src:
-       mkdir -p $(DESTDIR)$(srcdir)
-       cp -r * $(DESTDIR)$(srcdir)
+#      @for f in $(FILES); do \
+#              install -o 0 -g 0 -m 644 -t $(DESTDIR)$(srcdir) $$f ; \
+#      done
 
-.PHONY: $(XSEG_DOMAIN_TARGETS)
-$(XSEG_DOMAIN_TARGETS):
-       @for f in $(XSEG_DOMAIN_DIRS); do \
-               echo " "; \
-               echo "=== $@ in $$f ==="; \
-               echo " "; \
-               make -C $$f/$@ TARGET=$@ default || exit 1; \
-               echo " "; \
-       done
-       @echo " "
+
+.PHONY: $(XSEG_BUILD_TARGETS)
+$(XSEG_BUILD_TARGETS):
+       @echo "" ;
+       @echo "=== $@ ===";
+       @make -C $(@:build-%=%) default || exit 1;
+       @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 " "
+       @echo "" ;
+       @echo "=== $@ ===";
+       @make -C $(@:install-%=%) install || true;
+       @echo "" ;
+
+.PHONY: $(XSEG_INSTALLSRC_TARGETS)
+$(XSEG_INSTALLSRC_TARGETS):
+       @echo "" ;
+       @echo "=== $@ ===";
+       @make -C $(@:install-src-%=%) install-src || true;
+       @echo "" ;
 
 .PHONY: $(XSEG_CLEAN_TARGETS)
 $(XSEG_CLEAN_TARGETS):
-       @for f in $(XSEG_DOMAIN_DIRS); do \
-               echo " "; \
-               echo "=== $@ in $$f ==="; \
-               echo " "; \
-               make -C $$f/$(@:clean-%=%) TARGET=$@ clean || true; \
-               echo " "; \
-       done
-       @echo " "
+       @echo "" ;
+       @echo "=== $@ ===";
+       @make -C $(@:clean-%=%) clean || true;
+       @echo "" ;
 
 distclean: $(XSEG_CLEAN_TARGETS)
        rm -f lib/user/*.so* lib/user/*.a
index c974c0f..b79947d 100644 (file)
@@ -48,11 +48,13 @@ 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/"
+
+bindir=/usr/bin/
+libdir=/usr/lib/
+pythondir=/usr/lib/python2.7/
+moduledir=/lib/modules/`uname -r`/extra/
+srcdir=/usr/src/archipelago-kernel-dkms-VERSION/
+ganetidir=/usr/share/ganeti/extstorage/vlmc/
 
 INC=-I$(BASE)
 INC+=-I$(BASE)/peers/$(TARGET)
@@ -73,14 +75,14 @@ endif
 
 CONFIG=./config.mk
 
-default:
+#default:
 
-.PHONY: clean-config
+#.PHONY: clean-config
 
-clean: clean-config
+#clean: clean-config
 
-clean-config:
-       rm -f $(CONFIG)
+#clean-config:
+#      rm -f $(CONFIG)
 
 ifndef BASE
 exists=$(shell [ -f "$(CONFIG)" ] && echo exists)
index 7b6e590..250bc52 100644 (file)
@@ -3,5 +3,5 @@ XSEG_MOPTS="-march=core2"
 
 # Order is significant due to dependencies
 # (e.g. 'peers' should be last).
-XSEG_DIRS="xq xseg"
-XSEG_DOMAIN_DIRS="util_libs sys drivers peers"
+XSEG_DIRS="tools xtypes xseg sys drivers peers"
+#XSEG_DOMAIN_DIRS="util_libs sys drivers peers"
diff --git a/xseg/drivers/Makefile b/xseg/drivers/Makefile
new file mode 100644 (file)
index 0000000..c297790
--- /dev/null
@@ -0,0 +1,60 @@
+.PHONY: install-src
+
+include $(XSEG_HOME)/base.mk
+
+FILES="Makefile"
+FILES+=$(shell ls *.h)
+
+SUBDIR:=$(subst $(XSEG_HOME)/,,$(CURDIR))
+XSEG_CLEAN_TARGETS=$(patsubst %,clean-%,$(XSEG_DOMAIN_TARGETS))
+XSEG_INSTALL_TARGETS=$(patsubst %,install-%,$(XSEG_DOMAIN_TARGETS))
+XSEG_INSTALLSRC_TARGETS=$(patsubst %,install-src-%,$(XSEG_DOMAIN_TARGETS))
+
+
+default: $(XSEG_DOMAIN_TARGETS)
+
+install: $(XSEG_INSTALL_TARGETS)
+
+clean: $(XSEG_CLEAN_TARGETS)
+
+.PHONY: $(XSEG_DOMAIN_TARGETS)
+$(XSEG_DOMAIN_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR) ===";
+       @echo " ";
+       @make -C $@ TARGET=$@ default || exit 1;
+       @echo " ";
+
+.PHONY: $(XSEG_INSTALL_TARGETS)
+$(XSEG_INSTALL_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR)===";
+       @echo " ";
+       @make -C $(@:install-%=%) TARGET=$@ install || true;
+       @echo " ";
+
+
+.PHONY: $(XSEG_INSTALLSRC_TARGETS)
+$(XSEG_INSTALLSRC_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR)===";
+       @echo " ";
+       @make -C $(@:install-src-%=%) TARGET=$@ install-src || true;
+       @echo " ";
+
+.PHONY: $(XSEG_CLEAN_TARGETS)
+$(XSEG_CLEAN_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR)===";
+       @echo " ";
+       @make -C $(@:clean-%=%) TARGET=$@ clean || true;
+       @echo " ";
+
+
+
+install-src: $(XSEG_INSTALLSRC_TARGETS)
+       @install -d $(DESTDIR)$(srcdir)$(SUBDIR) ;
+       @for f in $(FILES) ; do \
+               install -o 0 -g 0 -m 644 -t $(DESTDIR)$(srcdir)$(SUBDIR) $$f ; \
+       done
+
index 066dd9f..120b92c 100644 (file)
@@ -31,7 +31,7 @@
 # or implied, of GRNET S.A.
 #
 
-.PHONY: default all clean
+.PHONY: default all clean install install-src
 
 include $(XSEG_HOME)/base.mk
 
@@ -48,6 +48,12 @@ obj-m += xseg_segdev.o
 obj-m += xseg_posix.o
 obj-m += xseg_pthread.o
 
+FILES="Makefile"
+#FILES+=$(shell ls *.h)
+FILES+=$(shell ls *.c)
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
 default: all
 
 $(BASE)/sys/kernel/Module.symvers:
@@ -59,10 +65,17 @@ all: $(BASE)/sys/kernel/Module.symvers
        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)
+       install -d $(DESTDIR)$(moduledir)
+       install -o 0 -g 0 -m 644 -t $(DESTDIR)$(moduledir) xseg_segdev.ko
+       install -o 0 -g 0 -m 644 -t $(DESTDIR)$(moduledir) xseg_posix.ko
+       install -o 0 -g 0 -m 644 -t $(DESTDIR)$(moduledir) xseg_pthread.ko
+
+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
+
 
 clean:
        rm -f Module.symvers
index 883b3d9..818aa2e 100644 (file)
 
 include $(XSEG_HOME)/base.mk
 
+FILES="Makefile"
+#FILES+=$(shell ls *.h)
+FILES+=$(shell ls *.c)
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
+
 DRIVERS=xseg_posix xseg_segdev xseg_pthread
 DRVOBJS=$(DRIVERS:=.o)
 DRVSOS=$(DRIVERS:=.so)
@@ -67,5 +74,18 @@ xseg_pthread.so: xseg_pthread.o $(BASE)/sys/user/xseg_user.o
 .PHONY: lib
 lib:
        cp -vaf $(DRVSOS) $(LIB)
+
+.PHONY: install-src
+
+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
+
+.PHONY: install
+install:
+
+
 clean:
        rm -f $(DRVOBJS) $(DRVSOS)
diff --git a/xseg/peers/Makefile b/xseg/peers/Makefile
new file mode 100644 (file)
index 0000000..68201d4
--- /dev/null
@@ -0,0 +1,60 @@
+.PHONY: install-src
+
+include $(XSEG_HOME)/base.mk
+
+FILES="Makefile"
+#FILES+=$(shell ls *.h)
+
+SUBDIR:=$(subst $(XSEG_HOME)/,,$(CURDIR))
+XSEG_CLEAN_TARGETS=$(patsubst %,clean-%,$(XSEG_DOMAIN_TARGETS))
+XSEG_INSTALL_TARGETS=$(patsubst %,install-%,$(XSEG_DOMAIN_TARGETS))
+XSEG_INSTALLSRC_TARGETS=$(patsubst %,install-src-%,$(XSEG_DOMAIN_TARGETS))
+
+
+default: $(XSEG_DOMAIN_TARGETS)
+
+install: $(XSEG_INSTALL_TARGETS)
+
+clean: $(XSEG_CLEAN_TARGETS)
+
+.PHONY: $(XSEG_DOMAIN_TARGETS)
+$(XSEG_DOMAIN_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR) ===";
+       @echo " ";
+       @make -C $@ TARGET=$@ default || exit 1;
+       @echo " ";
+
+.PHONY: $(XSEG_INSTALL_TARGETS)
+$(XSEG_INSTALL_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR)===";
+       @echo " ";
+       @make -C $(@:install-%=%) TARGET=$@ install || true;
+       @echo " ";
+
+
+.PHONY: $(XSEG_INSTALLSRC_TARGETS)
+$(XSEG_INSTALLSRC_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR)===";
+       @echo " ";
+       @make -C $(@:install-src-%=%) TARGET=$@ install-src || true;
+       @echo " ";
+
+.PHONY: $(XSEG_CLEAN_TARGETS)
+$(XSEG_CLEAN_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR)===";
+       @echo " ";
+       @make -C $(@:clean-%=%) TARGET=$@ clean || true;
+       @echo " ";
+
+
+
+install-src: $(XSEG_INSTALLSRC_TARGETS)
+       install -d $(DESTDIR)$(srcdir)$(SUBDIR) ;
+       @for f in $(FILES) ; do \
+               install -o 0 -g 0 -m 644 -t $(DESTDIR)$(srcdir)$(SUBDIR) $$f ; \
+       done
+
index f44844a..833b719 100644 (file)
 
 include $(XSEG_HOME)/base.mk
 
+FILES="Makefile"
+FILES+=$(shell ls *.h)
+FILES+=$(shell ls *.c)
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
+
 ifeq (,$(KVER))
 KVER := $(shell uname -r)
 endif
@@ -59,7 +66,13 @@ all: $(BASE)/drivers/kernel/Module.symvers
 
 install:
        mkdir -p $(DESTDIR)$(moduledir)
-       cp xsegbd.ko $(DESTDIR)$(moduledir)
+       install -o 0 -g 0 -m 644 $(DESTDIR)$(moduledir) xsegbd.ko
+
+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
 
 clean:
        rm -f Module.symvers
index 91e03de..99492bc 100644 (file)
 # or implied, of GRNET S.A.
 #
 
-.PHONY: default all clean install
+.PHONY: default all clean install install-src
 
 include $(XSEG_HOME)/base.mk
 PEERS := xseg mt-sosd dummy mt-mapperd pfiled vlmc-xseg st-vlmcd mt-pfiled
 
+FILES="Makefile"
+FILES+=$(shell ls *.h)
+FILES+=$(shell ls *.c)
+FILES+=""
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
+
 default: $(PEERS)
 
 #all: filed xseg sosd vlmcd mapperd
@@ -86,10 +94,15 @@ vlmc-xseg: vlmc-tool.c $(BASE)/xseg/xseg.h
        $(CC) $(CFLAGS) -o $@ $< $(INC) -L$(LIB) -lxseg
 
 install:
-       mkdir -p $(DESTDIR)$(bindir)
+       install -d $(DESTDIR)$(bindir)
        @for p in $(PEERS); do\
-               echo "cp $$p $(DESTDIR)$(bindir)" ; \
-               cp $$p $(DESTDIR)$(bindir) ; \
+               install -o 0 -g 0 -m 755 -t $(DESTDIR)$(bindir) $$p ; \
+       done
+
+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
 
 clean:
diff --git a/xseg/sys/Makefile b/xseg/sys/Makefile
new file mode 100644 (file)
index 0000000..c297790
--- /dev/null
@@ -0,0 +1,60 @@
+.PHONY: install-src
+
+include $(XSEG_HOME)/base.mk
+
+FILES="Makefile"
+FILES+=$(shell ls *.h)
+
+SUBDIR:=$(subst $(XSEG_HOME)/,,$(CURDIR))
+XSEG_CLEAN_TARGETS=$(patsubst %,clean-%,$(XSEG_DOMAIN_TARGETS))
+XSEG_INSTALL_TARGETS=$(patsubst %,install-%,$(XSEG_DOMAIN_TARGETS))
+XSEG_INSTALLSRC_TARGETS=$(patsubst %,install-src-%,$(XSEG_DOMAIN_TARGETS))
+
+
+default: $(XSEG_DOMAIN_TARGETS)
+
+install: $(XSEG_INSTALL_TARGETS)
+
+clean: $(XSEG_CLEAN_TARGETS)
+
+.PHONY: $(XSEG_DOMAIN_TARGETS)
+$(XSEG_DOMAIN_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR) ===";
+       @echo " ";
+       @make -C $@ TARGET=$@ default || exit 1;
+       @echo " ";
+
+.PHONY: $(XSEG_INSTALL_TARGETS)
+$(XSEG_INSTALL_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR)===";
+       @echo " ";
+       @make -C $(@:install-%=%) TARGET=$@ install || true;
+       @echo " ";
+
+
+.PHONY: $(XSEG_INSTALLSRC_TARGETS)
+$(XSEG_INSTALLSRC_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR)===";
+       @echo " ";
+       @make -C $(@:install-src-%=%) TARGET=$@ install-src || true;
+       @echo " ";
+
+.PHONY: $(XSEG_CLEAN_TARGETS)
+$(XSEG_CLEAN_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR)===";
+       @echo " ";
+       @make -C $(@:clean-%=%) TARGET=$@ clean || true;
+       @echo " ";
+
+
+
+install-src: $(XSEG_INSTALLSRC_TARGETS)
+       @install -d $(DESTDIR)$(srcdir)$(SUBDIR) ;
+       @for f in $(FILES) ; do \
+               install -o 0 -g 0 -m 644 -t $(DESTDIR)$(srcdir)$(SUBDIR) $$f ; \
+       done
+
index 2806a36..51abc6d 100644 (file)
@@ -31,7 +31,7 @@
 # or implied, of GRNET S.A.
 #
 
-.PHONY: clean
+.PHONY: clean default install install-src
 
 include $(XSEG_HOME)/base.mk
 
@@ -39,6 +39,11 @@ ifeq (,$(KVER))
 KVER := $(shell uname -r)
 endif
 
+FILES="Makefile"
+FILES+=$(shell ls *.h)
+FILES+=$(shell ls *.c)
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
 
 KDIR := /lib/modules/$(KVER)/build
 PWD := $(shell pwd)
@@ -71,9 +76,15 @@ 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)
+       install -d $(DESTDIR)$(moduledir)
+       install -o 0 -g 0 -m 644 -t $(DESTDIR)$(moduledir) xseg.ko
+       install -o 0 -g 0 -m 644 -t $(DESTDIR)$(moduledir) segdev.ko
+
+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
 
 clean:
        rm -f xq.k.c xpool.k.c xhash.k.c xheap.k.c xobj.k.c xseg.k.c
index cf12a22..7d2428d 100644 (file)
 # or implied, of GRNET S.A.
 #
 
-.PHONY: default all clean drivers install
+.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
 AR=ar
@@ -135,10 +143,28 @@ libxseg.a: xseg.o xq/xq.o drivers _initialize.o
 
 install:
        make -C python install
-       mkdir -p $(DESTDIR)$(libdir)
-       cp -vaf libxseg.so $(DESTDIR)$(libdir)
+       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.$(MAJOR).$(MINOR) $(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
index 48e5405..07755cd 100644 (file)
 # or implied, of GRNET S.A.
 #
 
-.PHONY: default all clean install
+.PHONY: default all clean install install-src
 
 include $(XSEG_HOME)/base.mk
 
+FILES="Makefile"
+FILES+=$(shell ls *.py)
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
+
 H2XML = h2xml
 XML2PY = xml2py
 
@@ -65,5 +71,15 @@ install:
 #      cp -r xseg $(DESTDIR)$(pythondir)
        python setup.py install --install-layout=deb --root=$(DESTDIR)
 
+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
+       install -d $(DESTDIR)$(srcdir)$(SUBDIR)/xseg ;
+       install -o 0 -g 0 -m 644 -t $(DESTDIR)$(srcdir)$(SUBDIR)/xseg xseg/__init__.py ; \
+
+
+
 clean:
        rm -f xseg.xml xprotocol.xml xseg/xseg_api.py xseg/xseg_api.pyc xseg/xprotocol.py xseg/xprotocol.pyc xseg/__init__.pyc
index 00491bf..a39c2ec 100644 (file)
 # or implied, of GRNET S.A.
 #
 
-.PHONY: default all clean
+.PHONY: default all clean install install-src
 
 include $(XSEG_HOME)/base.mk
 
 DEBUG=-g
 
+FILES="Makefile"
+#FILES+=$(shell ls *.h)
+#FILES+=$(shell ls *.c)
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
 default: all
 
 all: xhash.o xhash.pic.o xhash_test 
@@ -54,5 +60,13 @@ xhash.o: $(BASE)/xtypes/xhash.c $(BASE)/xtypes/xhash.h $(BASE)/xtypes/xlock.h
 xhash.pic.o: $(BASE)/xtypes/xhash.c $(BASE)/xtypes/xhash.h $(BASE)/xtypes/xlock.h
        $(CC) $(CFLAGS) $(INC) -DVAL_OVERLOAD -fPIC -c -o $@ $<
 
+install:
+
+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
+
 clean:
        rm -f xhash.o xhash.pic.o xhash_test
index fe8e22c..d0dbef5 100644 (file)
 # or implied, of GRNET S.A.
 #
 
-.PHONY: default all clean
+.PHONY: default all clean install install-src
 
 include $(XSEG_HOME)/base.mk
 
 DEBUG=-g
 
+FILES="Makefile"
+#FILES+=$(shell ls *.h)
+#FILES+=$(shell ls *.c)
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
 default: all
 
-all: xheap.o xheap.pic.o xheap_test 
+all: xheap.o xheap.pic.o xheap_test
 
 $(BASE)/sys/user/xseg_user.o:
        make -C $(BASE)/sys/user xseg_user.o
@@ -54,5 +60,13 @@ xheap.o: $(BASE)/xtypes/xheap.c $(BASE)/xtypes/xheap.h $(BASE)/xtypes/xlock.h
 xheap.pic.o: $(BASE)/xtypes/xheap.c $(BASE)/xtypes/xheap.h $(BASE)/xtypes/xlock.h
        $(CC) $(CFLAGS) $(INC) -fPIC -c -o $@ $<
 
+install:
+
+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
+
 clean:
        rm -f xheap.o xheap.pic.o xheap_test
index 6aa2e70..7c1f5a8 100644 (file)
 # or implied, of GRNET S.A.
 #
 
-.PHONY: default all clean
+.PHONY: default all clean install install-src
 
 include $(XSEG_HOME)/base.mk
 
 DEBUG=-g
 
+FILES="Makefile"
+#FILES+=$(shell ls *.h)
+#FILES+=$(shell ls *.c)
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
 default: all
 
 all: xobj.o xobj.pic.o xobj_test
@@ -57,3 +63,11 @@ xobj.pic.o: $(BASE)/xtypes/xobj.c $(BASE)/xtypes/xobj.h $(BASE)/xtypes/xlock.h
 
 clean:
        rm -f xobj.o xobj.pic.o xobj_test
+
+install:
+
+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
index 7895d85..ef182aa 100644 (file)
 # or implied, of GRNET S.A.
 #
 
-.PHONY: default all clean
+.PHONY: default all clean install install-src
 
 include $(XSEG_HOME)/base.mk
 
 DEBUG=-g
 
+FILES="Makefile"
+#FILES+=$(shell ls *.h)
+#FILES+=$(shell ls *.c)
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
 default: all
 
 all: xpool.o xpool.pic.o 
@@ -50,5 +56,13 @@ xpool.o: $(BASE)/xtypes/xpool.c $(BASE)/xtypes/xpool.h $(BASE)/xtypes/xlock.h
 xpool.pic.o: $(BASE)/xtypes/xpool.c $(BASE)/xtypes/xpool.h $(BASE)/xtypes/xlock.h
        $(CC) $(CFLAGS) $(INC) -fPIC -c -o $@ $<
 
+install:
+
+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
+
 clean:
        rm -f xpool.o xpool.pic.o
index 0f61adb..49d4b5f 100644 (file)
 # or implied, of GRNET S.A.
 #
 
-.PHONY: default all clean
+.PHONY: default all clean install install-src
 
 include $(XSEG_HOME)/base.mk
 
+FILES="Makefile"
+#FILES+=$(shell ls *.h)
+#FILES+=$(shell ls *.c)
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
 DEBUG=-g
 
 default: all
@@ -60,3 +66,12 @@ xq.pic.o: $(BASE)/xtypes/xq.c $(BASE)/xtypes/xq.h $(BASE)/xtypes/xlock.h
 
 clean:
        rm -f xq_lock_test xq_test xq.o xq.pic.o
+
+install:
+
+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
+
diff --git a/xseg/tools/Makefile b/xseg/tools/Makefile
new file mode 100644 (file)
index 0000000..4bb5714
--- /dev/null
@@ -0,0 +1,34 @@
+.PHONY: default clean install install-src
+
+include $(XSEG_HOME)/base.mk
+
+FILES="Makefile"
+FILES+="xseg_devshell.sh"
+
+EFILES="archipelago"
+EFILES+="vlmc"
+EFILES+="create_initializer"
+EFILES+="xseg-domain-targets"
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
+default:
+
+clean:
+
+install:
+       make -C ext_scripts install
+       install -d $(DESTDIR)$(bindir)
+       install -o 0 -g 0 -m 755 -t $(DESTDIR)$(bindir) archipelago
+       install -o 0 -g 0 -m 755 -t $(DESTDIR)$(bindir) vlmc
+
+install-src:
+       make -C ext_scripts 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
+
diff --git a/xseg/tools/ext_scripts/Makefile b/xseg/tools/ext_scripts/Makefile
new file mode 100644 (file)
index 0000000..bd29645
--- /dev/null
@@ -0,0 +1,36 @@
+.PHONY: default clean install install-src
+
+include $(XSEG_HOME)/base.mk
+
+FILES="Makefile"
+FILES+="parameters.list"
+
+EFILES="vlmc_wrapper.py"
+EFILES+="attach"
+EFILES+="detach"
+EFILES+="create"
+EFILES+="grow"
+EFILES+="remove"
+EFILES+="verify"
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
+default:
+
+clean:
+
+install:
+       install -d $(DESTDIR)$(ganetidir)
+       @for f in $(EFILES) ; do \
+               install -o 0 -g 0 -m 755 -t $(DESTDIR)$(ganetidir) $$f ; \
+       done
+
+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
+
diff --git a/xseg/util_libs/Makefile b/xseg/util_libs/Makefile
new file mode 100644 (file)
index 0000000..22266cb
--- /dev/null
@@ -0,0 +1,60 @@
+.PHONY: install-src
+
+include $(XSEG_HOME)/base.mk
+
+FILES="Makefile"
+#FILES+=$(shell ls *.h)
+
+SUBDIR:=$(subst $(XSEG_HOME)/,,$(CURDIR))
+XSEG_CLEAN_TARGETS=$(patsubst %,clean-%,$(XSEG_DOMAIN_TARGETS))
+XSEG_INSTALL_TARGETS=$(patsubst %,install-%,$(XSEG_DOMAIN_TARGETS))
+XSEG_INSTALLSRC_TARGETS=$(patsubst %,install-src-%,$(XSEG_DOMAIN_TARGETS))
+
+
+default: $(XSEG_DOMAIN_TARGETS)
+
+install: $(XSEG_INSTALL_TARGETS)
+
+clean: $(XSEG_CLEAN_TARGETS)
+
+.PHONY: $(XSEG_DOMAIN_TARGETS)
+$(XSEG_DOMAIN_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR) ===";
+       @echo " ";
+       @make -C $@ TARGET=$@ default || exit 1;
+       @echo " ";
+
+.PHONY: $(XSEG_INSTALL_TARGETS)
+$(XSEG_INSTALL_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR)===";
+       @echo " ";
+       @make -C $(@:install-%=%) TARGET=$@ install || true;
+       @echo " ";
+
+
+.PHONY: $(XSEG_INSTALLSRC_TARGETS)
+$(XSEG_INSTALLSRC_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR)===";
+       @echo " ";
+       @make -C $(@:install-src-%=%) TARGET=$@ install-src || true;
+       @echo " ";
+
+.PHONY: $(XSEG_CLEAN_TARGETS)
+$(XSEG_CLEAN_TARGETS):
+       @echo " ";
+       @echo "=== $@ in $(SUBDIR)===";
+       @echo " ";
+       @make -C $(@:clean-%=%) TARGET=$@ clean || true;
+       @echo " ";
+
+
+
+install-src: $(XSEG_INSTALLSRC_TARGETS)
+       install -d $(DESTDIR)$(srcdir)$(SUBDIR)
+       @for f in $(FILES) ; do \
+               install -o 0 -g 0 -m 644 -t $(DESTDIR)$(srcdir)$(SUBDIR) $$f ; \
+       done
+
index 5271399..8e3dda9 100644 (file)
 # or implied, of GRNET S.A.
 #
 
-default: 
+.PHONY: default clean install install-src
+
+default:
+
+clean:
+
+install:
+
+install-src:
+
+
diff --git a/xseg/xseg/Makefile b/xseg/xseg/Makefile
new file mode 100644 (file)
index 0000000..0730af1
--- /dev/null
@@ -0,0 +1,27 @@
+.PHONY: default clean install install-src
+
+include $(XSEG_HOME)/base.mk
+
+FILES="Makefile"
+FILES+=$(shell ls *.h)
+FILES+=$(shell ls *.c)
+#FILES+="xseg.h"
+#FILES+="xseg.c"
+#FILES+="xseg_exports.h"
+#FILES+="domain.h"
+#FILES+="protocol.h"
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
+default:
+
+clean:
+
+install:
+
+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
+
diff --git a/xseg/xtypes/Makefile b/xseg/xtypes/Makefile
new file mode 100644 (file)
index 0000000..15b5769
--- /dev/null
@@ -0,0 +1,22 @@
+.PHONY: default clean install install-src
+
+include $(XSEG_HOME)/base.mk
+
+FILES="Makefile"
+FILES+=$(shell ls *.h)
+FILES+=$(shell ls *.c)
+
+SUBDIR:=$(subst $(XSEG_HOME),,$(CURDIR))
+
+default:
+
+clean:
+
+install:
+
+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
+