Makefile: Add install targets
authorReto Buerki <reet@codelabs.ch>
Mon, 13 Feb 2012 17:01:11 +0000 (18:01 +0100)
committerReto Buerki <reet@codelabs.ch>
Mon, 13 Feb 2012 19:06:04 +0000 (20:06 +0100)
Makefile
gnat/cuda_ada.gpr [new file with mode: 0644]
thin/binding.gpr

index 000307d820c16d7e9a991db4bd044001e24d4900..92beecf8af84a46edc8bf06d9f02e7551935c7df 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,14 @@
+PREFIX ?= $(HOME)/libraries
 CUDASDK = /usr/local/cuda
 OBJDIR  = obj
 LIBDIR  = lib
 CUDASDK = /usr/local/cuda
 OBJDIR  = obj
 LIBDIR  = lib
+SRCDIR  = src
+THINDIR = thin
 COVDIR  = $(OBJDIR)/cov
 PERFDIR = perf
 
 COVDIR  = $(OBJDIR)/cov
 PERFDIR = perf
 
+GPR_FILES = gnat/*.gpr
+
 LIBRARY_PATH = $(CUDASDK)/lib:$(CUDASDK)/lib64
 
 NUM_CPUS := $(shell getconf _NPROCESSORS_ONLN)
 LIBRARY_PATH = $(CUDASDK)/lib:$(CUDASDK)/lib64
 
 NUM_CPUS := $(shell getconf _NPROCESSORS_ONLN)
@@ -20,6 +25,14 @@ TARBALL  = $(CUDA_ADA).tar.bz2
 SO_LIBRARY   = libcudaada.so.$(VERSION)
 LIBRARY_KIND = dynamic
 
 SO_LIBRARY   = libcudaada.so.$(VERSION)
 LIBRARY_KIND = dynamic
 
+SOURCES = \
+       $(SRCDIR)/*.ad[bs] \
+       $(THINDIR)/*.ad[bs] \
+       $(THINDIR)/$(ARCH)/*.ad[bs]
+ALIFILES = \
+       $(LIBDIR)/*.ali \
+       $(OBJDIR)/$(THINDIR)/*.ali
+
 all: build_lib
 
 build_lib:
 all: build_lib
 
 build_lib:
@@ -33,6 +46,25 @@ build_tests:
        @LIBRARY_PATH=$(LIBRARY_PATH) gnatmake $(GMAKE_OPTS) -Pcuda_tests.gpr \
                -XARCH=$(ARCH)
 
        @LIBRARY_PATH=$(LIBRARY_PATH) gnatmake $(GMAKE_OPTS) -Pcuda_tests.gpr \
                -XARCH=$(ARCH)
 
+install: install_lib install_$(LIBRARY_KIND)
+
+install_lib: build_lib
+       install -d $(PREFIX)/include/cuda-ada
+       install -d $(PREFIX)/lib/cuda-ada
+       install -d $(PREFIX)/lib/gnat
+       install -m 644 $(SOURCES) $(PREFIX)/include/cuda-ada
+       install -m 444 $(ALIFILES) $(PREFIX)/lib/cuda-ada
+       install -m 644 $(GPR_FILES) $(PREFIX)/lib/gnat
+
+install_static:
+       install -m 444 $(LIBDIR)/libcudaada.a $(PREFIX)/lib/cuda-ada
+
+install_dynamic:
+       install -m 444 $(LIBDIR)/$(SO_LIBRARY) $(PREFIX)/lib/cuda-ada
+       cd $(PREFIX)/lib/cuda-ada && \
+       ln -sf $(SO_LIBRARY) libcudaada.so && \
+       ln -sf $(SO_LIBRARY) libcudaada.so.$(MAJOR)
+
 tests: build_tests
        @LD_LIBRARY_PATH=$(LIBRARY_PATH) $(OBJDIR)/test_runner
 
 tests: build_tests
        @LD_LIBRARY_PATH=$(LIBRARY_PATH) $(OBJDIR)/test_runner
 
@@ -42,7 +74,7 @@ doc:
 cov:
        @rm -f $(COVDIR)/*.gcda
        @LIBRARY_PATH=$(LIBRARY_PATH) gnatmake $(GMAKE_OPTS) -Pcuda_tests.gpr \
 cov:
        @rm -f $(COVDIR)/*.gcda
        @LIBRARY_PATH=$(LIBRARY_PATH) gnatmake $(GMAKE_OPTS) -Pcuda_tests.gpr \
-               -XBUILD="coverage"
+               -XARCH=$(ARCH) -XBUILD="coverage"
        @LD_LIBRARY_PATH=$(LIBRARY_PATH) $(COVDIR)/test_runner || true
        @lcov -c -d $(COVDIR) -o $(COVDIR)/cov.info
        @lcov -e $(COVDIR)/cov.info "$(PWD)/src/*.adb" -o $(COVDIR)/cov.info
        @LD_LIBRARY_PATH=$(LIBRARY_PATH) $(COVDIR)/test_runner || true
        @lcov -c -d $(COVDIR) -o $(COVDIR)/cov.info
        @lcov -e $(COVDIR)/cov.info "$(PWD)/src/*.adb" -o $(COVDIR)/cov.info
@@ -73,4 +105,5 @@ dist:
        @echo "Creating release tarball $(TARBALL) ... "
        @git archive --format=tar HEAD --prefix $(CUDA_ADA)/ | bzip2 > $(TARBALL)
 
        @echo "Creating release tarball $(TARBALL) ... "
        @git archive --format=tar HEAD --prefix $(CUDA_ADA)/ | bzip2 > $(TARBALL)
 
-.PHONY: all build_examples build_lib build_tests clean dist doc perf tests
+.PHONY: all build_examples build_lib build_tests clean dist doc install \
+       install_dynamic install_lib install_static perf tests
diff --git a/gnat/cuda_ada.gpr b/gnat/cuda_ada.gpr
new file mode 100644 (file)
index 0000000..5228d2e
--- /dev/null
@@ -0,0 +1,9 @@
+with "templates_parser";
+
+project Cuda_Ada is
+   for Source_Dirs use ("../../include/cuda-ada");
+   for Library_Name use "cudaada";
+   for Library_Dir use "../../lib/cuda-ada";
+   for Library_Kind use "dynamic";
+   for Externally_Built use "true";
+end Cuda_Ada;
index 50572e11bf90640ce5d3e8b31dc139f76436306a..795db438e93155de1ff8713a7f431451818bbc2a 100644 (file)
@@ -5,7 +5,7 @@ project Binding is
    Arch : Arch_Type := external ("ARCH", "x86_64");
 
    for Source_Dirs use (".", ARCH);
    Arch : Arch_Type := external ("ARCH", "x86_64");
 
    for Source_Dirs use (".", ARCH);
-   for Object_Dir use "../obj";
+   for Object_Dir use "../obj/thin";
 
    Compiler_Switches := ("-gnat05",
                          "-fstack-check",
 
    Compiler_Switches := ("-gnat05",
                          "-fstack-check",