Add DESTDIR support for easier building on RPM based distros.
authorChristopher Meng <rpm@cicku.me>
Mon, 9 Dec 2013 11:56:37 +0000 (19:56 +0800)
committerChristopher Meng <rpm@cicku.me>
Mon, 9 Dec 2013 11:56:37 +0000 (19:56 +0800)
Use install command instead of cp to install files with permissions control.

Makefile.install

index 8319b46..1f3cf87 100644 (file)
@@ -3,11 +3,11 @@ export GOTOBLAS_MAKEFILE = 1
 -include $(TOPDIR)/Makefile.conf_last
 include ./Makefile.system
 
-PREFIX?=/opt/OpenBLAS
+PREFIX ?= /opt/OpenBLAS
 
-OPENBLAS_INCLUDE_DIR:=$(PREFIX)/include
-OPENBLAS_LIBRARY_DIR:=$(PREFIX)/lib
-OPENBLAS_BUILD_DIR:=$(CURDIR)
+OPENBLAS_INCLUDE_DIR := $(PREFIX)/include
+OPENBLAS_LIBRARY_DIR := $(PREFIX)/lib
+OPENBLAS_BUILD_DIR := $(CURDIR)
 
 .PHONY : install
 .NOTPARALLEL : install
@@ -16,65 +16,65 @@ lib.grd :
        $(error OpenBLAS: Please run "make" firstly)
 
 install :      lib.grd
-       @-mkdir -p $(PREFIX)
-       @-mkdir -p $(OPENBLAS_INCLUDE_DIR)
-       @-mkdir -p $(OPENBLAS_LIBRARY_DIR)
-       @echo Generating openblas_config.h in $(OPENBLAS_INCLUDE_DIR)
+       @-mkdir -p $(DESTDIR)$(PREFIX)
+       @-mkdir -p $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
+       @-mkdir -p $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
+       @echo Generating openblas_config.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
 #for inc 
-       @echo \#ifndef OPENBLAS_CONFIG_H > $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
-       @echo \#define OPENBLAS_CONFIG_H >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
-       @awk '{print $$1, "OPENBLAS_"$$2, $$3}' config_last.h >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
-       @echo \#define OPENBLAS_VERSION \" OpenBLAS $(VERSION) \" >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
-       @cat openblas_config_template.h >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
-       @echo \#endif  \/\* OPENBLAS_CONFIG_H \*\/ >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
+       @echo \#ifndef OPENBLAS_CONFIG_H > $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
+       @echo \#define OPENBLAS_CONFIG_H >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
+       @awk '{print $$1, "OPENBLAS_"$$2, $$3}' config_last.h >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
+       @echo \#define OPENBLAS_VERSION \" OpenBLAS $(VERSION) \" >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
+       @cat openblas_config_template.h >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
+       @echo \#endif  \/\* OPENBLAS_CONFIG_H \*\/ >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
 
-       @echo Generating f77blas.h in $(OPENBLAS_INCLUDE_DIR)
-       @echo \#ifndef OPENBLAS_F77BLAS_H > $(OPENBLAS_INCLUDE_DIR)/f77blas.h
-       @echo \#define OPENBLAS_F77BLAS_H >> $(OPENBLAS_INCLUDE_DIR)/f77blas.h
-       @echo \#include \"openblas_config.h\" >> $(OPENBLAS_INCLUDE_DIR)/f77blas.h
-       @cat common_interface.h >> $(OPENBLAS_INCLUDE_DIR)/f77blas.h
-       @echo \#endif >> $(OPENBLAS_INCLUDE_DIR)/f77blas.h
+       @echo Generating f77blas.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
+       @echo \#ifndef OPENBLAS_F77BLAS_H > $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
+       @echo \#define OPENBLAS_F77BLAS_H >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
+       @echo \#include \"openblas_config.h\" >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
+       @cat common_interface.h >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
+       @echo \#endif >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
 
 ifndef NO_CBLAS
-       @echo Generating cblas.h in $(OPENBLAS_INCLUDE_DIR)
-       @sed 's/common/openblas_config/g' cblas.h > $(OPENBLAS_INCLUDE_DIR)/cblas.h
+       @echo Generating cblas.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
+       @sed 's/common/openblas_config/g' cblas.h > $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/cblas.h
 endif
 
 ifndef NO_LAPACKE
-       @echo Copying LAPACKE header files to $(OPENBLAS_LIBRARY_DIR)
-       @-cp $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke.h $(OPENBLAS_INCLUDE_DIR)/lapacke.h
-       @-cp $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_config.h $(OPENBLAS_INCLUDE_DIR)/lapacke_config.h
-       @-cp $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_mangling_with_flags.h $(OPENBLAS_INCLUDE_DIR)/lapacke_mangling.h
-       @-cp $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_utils.h $(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h
+       @echo Copying LAPACKE header files to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
+       @-install -pDm644 $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke.h $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h
+       @-install -pDm644 $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_config.h $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_config.h
+       @-install -pDm644 $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_mangling_with_flags.h $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_mangling.h
+       @-install -pDm644 $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_utils.h $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h
 endif
 
 #for install static library 
-       @echo Copy the static library to $(OPENBLAS_LIBRARY_DIR)
-       @cp $(LIBNAME) $(OPENBLAS_LIBRARY_DIR)
-       @cd $(OPENBLAS_LIBRARY_DIR) ; \
+       @echo Copying the static library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
+       @install -pm644 $(LIBNAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
+       @cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \
        ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
 #for install shared library 
-       @echo Copy the shared library to $(OPENBLAS_LIBRARY_DIR)
+       @echo Copying the shared library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
 ifeq ($(OSNAME), Linux)
-       @cp $(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)
-       @cd $(OPENBLAS_LIBRARY_DIR) ; \
+       @install -pm755 $(LIBSONAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
+       @cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \
        ln -fs $(LIBSONAME) $(LIBPREFIX).so ; \
        ln -fs $(LIBSONAME) $(LIBPREFIX).so.$(MAJOR_VERSION)
 endif
 ifeq ($(OSNAME), FreeBSD)
-       @cp $(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)
-       @cd $(OPENBLAS_LIBRARY_DIR) ; \
+       @cp $(LIBSONAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
+       @cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \
        ln -fs $(LIBSONAME) $(LIBPREFIX).so
 endif
 ifeq ($(OSNAME), NetBSD)
-       @cp $(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)
-       @cd $(OPENBLAS_LIBRARY_DIR) ; \
+       @cp $(LIBSONAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
+       @cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \
        ln -fs $(LIBSONAME) $(LIBPREFIX).so
 endif
 ifeq ($(OSNAME), Darwin)     
-       @-cp $(LIBDYNNAME) $(OPENBLAS_LIBRARY_DIR)
-       @-install_name_tool -id $(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME) $(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME)
-       @-ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME) $(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).dylib
+       @-cp $(LIBDYNNAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
+       @-install_name_tool -id $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME)
+       @-ln -fs $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).dylib
 endif
 ifeq ($(OSNAME), WINNT)
        @-cp $(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR)