@@ -487,9 +487,10 @@ MEMCHK_STATUS = Disabled
487
487
MEMCHK := $(shell echo "$(HASH ) include <valgrind/memcheck.h>" | $(CC ) $(CPPFLAGS ) -E - >/dev/null 2>&1 && echo 1)
488
488
MEMCHK_BACKENDS = /cpu/self/memcheck/serial /cpu/self/memcheck/blocked
489
489
ifeq ($(MEMCHK ) ,1)
490
- MEMCHK_STATUS = Enabled
491
- libceed.c += $(ceedmemcheck.c )
490
+ MEMCHK_STATUS = Enabled
491
+ libceed.c += $(ceedmemcheck.c )
492
492
BACKENDS_MAKE += $(MEMCHK_BACKENDS )
493
+ CFLAGS += "-DCEED_USE_MEMCHECK"
493
494
endif
494
495
495
496
# AVX Backeds
@@ -498,9 +499,10 @@ AVX_FLAG := $(if $(filter clang,$(CC_VENDOR)),+avx,-mavx)
498
499
AVX := $(filter $(AVX_FLAG ) ,$(shell $(CC ) $(CFLAGS:-M%= ) -v -E -x c /dev/null 2>&1) )
499
500
AVX_BACKENDS = /cpu/self/avx/serial /cpu/self/avx/blocked
500
501
ifneq ($(AVX ) ,)
501
- AVX_STATUS = Enabled
502
- libceed.c += $(avx.c )
502
+ AVX_STATUS = Enabled
503
+ libceed.c += $(avx.c )
503
504
BACKENDS_MAKE += $(AVX_BACKENDS )
505
+ CFLAGS += "-DCEED_USE_AVX"
504
506
endif
505
507
506
508
# Collect list of libraries and paths for use in linking and pkg-config
@@ -523,10 +525,11 @@ ifneq ($(wildcard $(XSMM_DIR)/lib/libxsmm.*),)
523
525
endif
524
526
BLAS_LIB ?= $(MKL_LINK ) -Wl,--push-state,--no-as-needed -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl -Wl,--pop-state
525
527
endif
526
- PKG_LIBS += $(BLAS_LIB )
528
+ PKG_LIBS += $(BLAS_LIB )
527
529
libceed.c += $(xsmm.c )
528
530
$(xsmm.c:%.c =$(OBJDIR ) /%.o) $(xsmm.c:%=%.tidy ) : CPPFLAGS += -I$(XSMM_DIR ) /include
529
531
BACKENDS_MAKE += $(XSMM_BACKENDS )
532
+ CFLAGS += "-DCEED_USE_XSMM"
530
533
endif
531
534
532
535
# CUDA Backends
@@ -538,14 +541,15 @@ CUDA_LIB_DIR_STUBS := $(CUDA_LIB_DIR)/stubs
538
541
CUDA_BACKENDS = /gpu/cuda/ref /gpu/cuda/shared /gpu/cuda/gen
539
542
ifneq ($(CUDA_LIB_DIR ) ,)
540
543
$(libceeds ) : CPPFLAGS += -I$(CUDA_DIR ) /include
541
- PKG_LIBS += -L$(abspath $(CUDA_LIB_DIR ) ) -lcudart -lnvrtc -lcuda -lcublas
544
+ PKG_LIBS += -L$(abspath $(CUDA_LIB_DIR ) ) -lcudart -lnvrtc -lcuda -lcublas
542
545
PKG_STUBS_LIBS += -L$(CUDA_LIB_DIR_STUBS )
543
546
LIBCEED_CONTAINS_CXX = 1
544
547
libceed.c += interface/ceed-cuda.c
545
548
libceed.c += $(cuda-all.c )
546
549
libceed.cpp += $(cuda-all.cpp )
547
550
libceed.cu += $(cuda-all.cu )
548
551
BACKENDS_MAKE += $(CUDA_BACKENDS )
552
+ CFLAGS += "-DCEED_USE_CUDA"
549
553
endif
550
554
551
555
# HIP Backends
@@ -564,6 +568,7 @@ ifneq ($(HIP_LIB_DIR),)
564
568
libceed.cpp += $(hip-all.cpp )
565
569
libceed.hip += $(hip-all.hip )
566
570
BACKENDS_MAKE += $(HIP_BACKENDS )
571
+ CFLAGS += "-DCEED_USE_HIP"
567
572
endif
568
573
569
574
# SYCL Backends
@@ -577,6 +582,7 @@ ifneq ($(SYCL_LIB_DIR),)
577
582
LIBCEED_CONTAINS_CXX = 1
578
583
libceed.sycl += $(sycl-core.cpp ) $(sycl-ref.cpp ) $(sycl-shared.cpp ) $(sycl-gen.cpp )
579
584
BACKENDS_MAKE += $(SYCL_BACKENDS )
585
+ CFLAGS += "-DCEED_USE_SYCL"
580
586
endif
581
587
582
588
# MAGMA Backends
@@ -613,6 +619,7 @@ ifneq ($(wildcard $(MAGMA_DIR)/lib/libmagma.*),)
613
619
endif
614
620
LIBCEED_CONTAINS_CXX = 1
615
621
BACKENDS_MAKE += $(MAGMA_BACKENDS )
622
+ CFLAGS += "-DCEED_USE_MAGMA"
616
623
endif
617
624
618
625
# OCCA Backends
@@ -627,8 +634,9 @@ ifneq ($(wildcard $(OCCA_DIR)/lib/libocca.*),)
627
634
$(libceeds ) : CPPFLAGS += -I$(OCCA_DIR ) /include
628
635
PKG_LIBS += -L$(abspath $(OCCA_DIR ) ) /lib -locca
629
636
LIBCEED_CONTAINS_CXX = 1
630
- libceed.cpp += $(occa.cpp )
637
+ libceed.cpp += $(occa.cpp )
631
638
BACKENDS_MAKE += $(OCCA_BACKENDS )
639
+ CFLAGS += "-DCEED_USE_OCCA"
632
640
endif
633
641
634
642
BACKENDS ?= $(BACKENDS_MAKE )
@@ -662,17 +670,16 @@ endif
662
670
# Building core library components
663
671
# ------------------------------------------------------------
664
672
665
- # File names *-weak.c contain weak symbol definitions, which must be listed last
666
- # when creating shared or static libraries.
667
- weak_last = $(filter-out % -weak.o,$(1 ) ) $(filter % -weak.o,$(1 ) )
673
+ FORCE :
674
+ $(OBJDIR ) /backends/ceed-backend-list.o : FORCE
668
675
669
676
libceed.o = $(libceed.c:%.c=$(OBJDIR ) /%.o ) $(libceed.cpp:%.cpp=$(OBJDIR ) /%.o ) $(libceed.cu:%.cu=$(OBJDIR ) /%.o ) $(libceed.hip:%.hip.cpp=$(OBJDIR ) /%.o ) $(libceed.sycl:%.sycl.cpp=$(OBJDIR ) /%.o )
670
677
$(filter % fortran.o,$(libceed.o ) ) : CPPFLAGS += $(if $(filter 1,$(UNDERSCORE ) ) ,-DUNDERSCORE)
671
678
$(libceed.o ) : | info-backends
672
- $(libceed.so ) : $(call weak_last, $( libceed.o ) ) | $$(@D ) /.DIR
679
+ $(libceed.so ) : $(libceed.o ) | $$(@D ) /.DIR
673
680
$(call quiet,LINK) $(LDFLAGS ) $(CEED_LDFLAGS ) -shared -o $@ $^ $(CEED_LDLIBS ) $(LDLIBS )
674
681
675
- $(libceed.a ) : $(call weak_last, $( libceed.o ) ) | $$(@D ) /.DIR
682
+ $(libceed.a ) : $(libceed.o ) | $$(@D ) /.DIR
676
683
$(call quiet,AR) $(ARFLAGS ) $@ $^
677
684
678
685
$(OBJDIR ) /% .o : $(CURDIR ) /% .c | $$(@D ) /.DIR
0 commit comments