From 1f15bee02acaff0255566360a36a0fc2e30441c6 Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Wed, 21 Mar 2012 23:57:09 +0800 Subject: [PATCH] Refs #81. Added LIBNAMESUFFIX flag in Makefile.rule. The user can use this flag to control the library name, e.g. libopenblas.a, libopenblas_ifort.a or libopenblas_omp.a. --- Makefile | 26 +++++++++++++------------- Makefile.install | 16 ++++++++-------- Makefile.rule | 5 +++++ Makefile.system | 4 ++++ exports/Makefile | 2 +- 5 files changed, 31 insertions(+), 22 deletions(-) diff --git a/Makefile b/Makefile index a320112..ba04aa9 100644 --- a/Makefile +++ b/Makefile @@ -82,28 +82,28 @@ endif shared : ifeq ($(OSNAME), Linux) $(MAKE) -C exports so - -ln -fs $(LIBSONAME) libopenblas.so - -ln -fs $(LIBSONAME) libopenblas.so.$(MAJOR_VERSION) + -ln -fs $(LIBSONAME) $(LIBPREFIX).so + -ln -fs $(LIBSONAME) $(LIBPREFIX).so.$(MAJOR_VERSION) endif ifeq ($(OSNAME), FreeBSD) $(MAKE) -C exports so - -ln -fs $(LIBSONAME) libopenblas.so + -ln -fs $(LIBSONAME) $(LIBPREFIX).so endif ifeq ($(OSNAME), NetBSD) $(MAKE) -C exports so - -ln -fs $(LIBSONAME) libopenblas.so + -ln -fs $(LIBSONAME) $(LIBPREFIX).so endif ifeq ($(OSNAME), Darwin) $(MAKE) -C exports dyn - -ln -fs $(LIBDYNNAME) libopenblas.dylib + -ln -fs $(LIBDYNNAME) $(LIBPREFIX).dylib endif ifeq ($(OSNAME), WINNT) $(MAKE) -C exports dll - -ln -fs $(LIBDLLNAME) libopenblas.dll + -ln -fs $(LIBDLLNAME) $(LIBPREFIX).dll endif ifeq ($(OSNAME), CYGWIN_NT) $(MAKE) -C exports dll - -ln -fs $(LIBDLLNAME) libopenblas.dll + -ln -fs $(LIBDLLNAME) $(LIBPREFIX).dll endif tests : @@ -131,7 +131,7 @@ endif ifeq ($(NOFORTRAN), 1) $(error OpenBLAS: Detecting fortran compiler failed. Please install fortran compiler, e.g. gfortran, ifort, openf90.) endif - -ln -fs $(LIBNAME) libopenblas.$(LIBSUFFIX) + -ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX) for d in $(SUBDIRS) ; \ do if test -d $$d; then \ $(MAKE) -C $$d $(@F) || exit 1 ; \ @@ -159,7 +159,7 @@ endif prof : prof_blas prof_lapack prof_blas : - ln -fs $(LIBNAME_P) libopenblas_p.$(LIBSUFFIX) + ln -fs $(LIBNAME_P) $(LIBPREFIX)_p.$(LIBSUFFIX) for d in $(SUBDIRS) ; \ do if test -d $$d; then \ $(MAKE) -C $$d prof || exit 1 ; \ @@ -170,7 +170,7 @@ ifdef DYNAMIC_ARCH endif blas : - ln -fs $(LIBNAME) libopenblas.$(LIBSUFFIX) + ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX) for d in $(BLASDIRS) ; \ do if test -d $$d; then \ $(MAKE) -C $$d libs || exit 1 ; \ @@ -178,7 +178,7 @@ blas : done hpl : - ln -fs $(LIBNAME) libopenblas.$(LIBSUFFIX) + ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX) for d in $(BLASDIRS) ../laswp exports ; \ do if test -d $$d; then \ $(MAKE) -C $$d $(@F) || exit 1 ; \ @@ -192,7 +192,7 @@ ifdef DYNAMIC_ARCH endif hpl_p : - ln -fs $(LIBNAME_P) libopenblas_p.$(LIBSUFFIX) + ln -fs $(LIBNAME_P) $(LIBPREFIX)_p.$(LIBSUFFIX) for d in $(SUBDIRS) ../laswp exports ; \ do if test -d $$d; then \ $(MAKE) -C $$d $(@F) || exit 1 ; \ @@ -287,7 +287,7 @@ clean :: @$(MAKE) -C kernel clean #endif @$(MAKE) -C reference clean - @rm -f *.$(LIBSUFFIX) *.so *~ *.exe getarch getarch_2nd *.dll *.lib *.$(SUFFIX) *.dwf libopenblas.$(LIBSUFFIX) libopenblas_p.$(LIBSUFFIX) *.lnk myconfig.h + @rm -f *.$(LIBSUFFIX) *.so *~ *.exe getarch getarch_2nd *.dll *.lib *.$(SUFFIX) *.dwf $(LIBPREFIX).$(LIBSUFFIX) $(LIBPREFIX)_p.$(LIBSUFFIX) $(LIBPREFIX).so.$(MAJOR_VERSION) *.lnk myconfig.h @rm -f Makefile.conf config.h Makefile_kernel.conf config_kernel.h st* *.dylib @if test -d lapack-3.4.0; then \ echo deleting lapack-3.4.0; \ diff --git a/Makefile.install b/Makefile.install index dbc28c5..46105fc 100644 --- a/Makefile.install +++ b/Makefile.install @@ -38,34 +38,34 @@ install : lib.grd #for install static library @echo Copy the static library to $(OPENBLAS_LIBRARY_DIR) @cp $(LIBNAME) $(OPENBLAS_LIBRARY_DIR) - @-ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBNAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.$(LIBSUFFIX) + @-ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBNAME) $(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).$(LIBSUFFIX) #for install shared library @echo Copy the shared library to $(OPENBLAS_LIBRARY_DIR) ifeq ($(OSNAME), Linux) -cp $(LIBSONAME) $(OPENBLAS_LIBRARY_DIR) - -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.so - -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.so.$(MAJOR_VERSION) + -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).so + -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).so.$(MAJOR_VERSION) endif ifeq ($(OSNAME), FreeBSD) -cp $(LIBSONAME) $(OPENBLAS_LIBRARY_DIR) - -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.so + -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).so endif ifeq ($(OSNAME), NetBSD) -cp $(LIBSONAME) $(OPENBLAS_LIBRARY_DIR) - -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.so + -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)/$(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)/libopenblas.dylib + -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME) $(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).dylib endif ifeq ($(OSNAME), WINNT) -cp $(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR) - -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.dll + -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).dll endif ifeq ($(OSNAME), CYGWIN_NT) -cp $(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR) - -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.dll + -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).dll endif @echo Install OK! diff --git a/Makefile.rule b/Makefile.rule index db1a48d..a73a955 100644 --- a/Makefile.rule +++ b/Makefile.rule @@ -5,6 +5,11 @@ # This library's version VERSION = 0.1alpha2.5 +# If you set the suffix, the library name will be libopenblas_$(LIBNAMESUFFIX).a +# and libopenblas_$(LIBNAMESUFFIX).so. Meanwhile, the soname in shared library +# is libopenblas_$(LIBNAMESUFFIX).so.0. +# LIBNAMESUFFIX = omp + # You can specify the target architecture, otherwise it's # automatically detected. # TARGET = PENRYN diff --git a/Makefile.system b/Makefile.system index 9f994a7..8ec9303 100644 --- a/Makefile.system +++ b/Makefile.system @@ -569,7 +569,11 @@ ifdef USE_SIMPLE_THREADED_LEVEL3 CCOMMON_OPT += -DUSE_SIMPLE_THREADED_LEVEL3 endif +ifndef LIBNAMESUFFIX LIBPREFIX = libopenblas +else +LIBPREFIX = libopenblas_$(LIBNAMESUFFIX) +endif KERNELDIR = $(TOPDIR)/kernel/$(ARCH) diff --git a/exports/Makefile b/exports/Makefile index 28a0882..873e8b2 100644 --- a/exports/Makefile +++ b/exports/Makefile @@ -100,7 +100,7 @@ so : ../$(LIBSONAME) ../$(LIBSONAME) : ../$(LIBNAME) linux.def linktest.c $(CC) $(CFLAGS) -shared -o ../$(LIBSONAME) \ -Wl,--whole-archive ../$(LIBNAME) -Wl,--no-whole-archive \ - -Wl,--retain-symbols-file=linux.def -Wl,-soname,libopenblas.so.$(MAJOR_VERSION) $(EXTRALIB) + -Wl,--retain-symbols-file=linux.def -Wl,-soname,$(LIBPREFIX).so.$(MAJOR_VERSION) $(EXTRALIB) $(CC) $(CFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK. rm -f linktest -- 2.7.4