Skip to content

Commit 3696039

Browse files
committed
Makefile: use LDFLAGS and LDLIBS as extra
CEED_LDFLAGS and CEED_LDLIBS are are internally populated and used unless the user sets them explicitly.
1 parent 9bca2fc commit 3696039

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

Makefile

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,12 @@ SED ?= sed
3636
# ASAN must be left empty if you don't want to use it
3737
ASAN ?=
3838

39-
# Allow users to customize LDFLAGS (libceed appends directly to this variable)
40-
override LDFLAGS := $(LDFLAGS)
39+
# These are the values automatically detected here in the makefile. They are
40+
# augmented with LDFLAGS and LDLIBS from the environment/passed by command line,
41+
# if any. If the user sets CEED_LDFLAGS or CEED_LDLIBS, they are used *instead
42+
# of* what we populate here (thus that's advanced usage and not recommended).
43+
CEED_LDFLAGS ?=
44+
CEED_LDLIBS ?=
4145

4246
UNDERSCORE ?= 1
4347

@@ -138,14 +142,14 @@ FFLAGS ?= $(OPT) $(FFLAGS.$(FC_VENDOR))
138142
ifeq ($(COVERAGE), 1)
139143
CFLAGS += --coverage
140144
CXXFLAGS += --coverage
141-
override LDFLAGS += --coverage
145+
CEED_LDFLAGS += --coverage
142146
endif
143147

144148
CFLAGS += $(if $(ASAN),$(AFLAGS))
145149
FFLAGS += $(if $(ASAN),$(AFLAGS))
146-
override LDFLAGS += $(if $(ASAN),$(AFLAGS))
150+
CEED_LDFLAGS += $(if $(ASAN),$(AFLAGS))
147151
CPPFLAGS += -I./include
148-
LDLIBS = -lm
152+
CEED_LDLIBS = -lm
149153
OBJDIR := build
150154
LIBDIR := lib
151155

@@ -268,8 +272,8 @@ info:
268272
$(info FFLAGS = $(value FFLAGS))
269273
$(info NVCCFLAGS = $(value NVCCFLAGS))
270274
$(info HIPCCFLAGS = $(value HIPCCFLAGS))
271-
$(info LDFLAGS = $(value LDFLAGS))
272-
$(info LDLIBS = $(LDLIBS))
275+
$(info CEED_LDFLAGS = $(value CEED_LDFLAGS))
276+
$(info CEED_LDLIBS = $(value CEED_LDLIBS))
273277
$(info AR = $(AR))
274278
$(info ARFLAGS = $(ARFLAGS))
275279
$(info OPT = $(OPT))
@@ -302,7 +306,7 @@ info-backends-all:
302306
$(info make: 'lib' with backends: $(filter-out $(TEST_BACKENDS),$(BACKENDS)))
303307
@true
304308

305-
$(libceed.so) : override LDFLAGS += $(if $(DARWIN), -install_name @rpath/$(notdir $(libceed.so)))
309+
$(libceed.so) : CEED_LDFLAGS += $(if $(DARWIN), -install_name @rpath/$(notdir $(libceed.so)))
306310

307311
# Standard Backends
308312
libceed.c += $(ref.c)
@@ -454,18 +458,18 @@ export BACKENDS
454458

455459
_pkg_ldflags = $(filter -L%,$(PKG_LIBS))
456460
_pkg_ldlibs = $(filter-out -L%,$(PKG_LIBS))
457-
$(libceeds) : override LDFLAGS += $(_pkg_ldflags) $(_pkg_ldflags:-L%=-Wl,-rpath,%) $(PKG_STUBS_LIBS)
458-
$(libceeds) : LDLIBS += $(_pkg_ldlibs)
461+
$(libceeds) : CEED_LDFLAGS += $(_pkg_ldflags) $(_pkg_ldflags:-L%=-Wl,-rpath,%) $(PKG_STUBS_LIBS)
462+
$(libceeds) : CEED_LDLIBS += $(_pkg_ldlibs)
459463
ifeq ($(STATIC),1)
460-
$(examples) $(tests) : override LDFLAGS += $(_pkg_ldflags) $(_pkg_ldflags:-L%=-Wl,-rpath,%) $(PKG_STUBS_LIBS)
461-
$(examples) $(tests) : LDLIBS += $(_pkg_ldlibs)
464+
$(examples) $(tests) : CEED_LDFLAGS += $(_pkg_ldflags) $(_pkg_ldflags:-L%=-Wl,-rpath,%) $(PKG_STUBS_LIBS)
465+
$(examples) $(tests) : CEED_LDLIBS += $(_pkg_ldlibs)
462466
endif
463467

464468
pkgconfig-libs-private = $(PKG_LIBS)
465469
ifeq ($(LIBCEED_CONTAINS_CXX),1)
466470
$(libceeds) : LINK = $(CXX)
467471
ifeq ($(STATIC),1)
468-
$(examples) $(tests) : LDLIBS += $(LIBCXX)
472+
$(examples) $(tests) : CEED_LDLIBS += $(LIBCXX)
469473
pkgconfig-libs-private += $(LIBCXX)
470474
endif
471475
endif
@@ -478,7 +482,7 @@ libceed.o = $(libceed.c:%.c=$(OBJDIR)/%.o) $(libceed.cpp:%.cpp=$(OBJDIR)/%.o) $(
478482
$(filter %fortran.o,$(libceed.o)) : CPPFLAGS += $(if $(filter 1,$(UNDERSCORE)),-DUNDERSCORE)
479483
$(libceed.o): | info-backends
480484
$(libceed.so) : $(call weak_last,$(libceed.o)) | $$(@D)/.DIR
481-
$(call quiet,LINK) $(LDFLAGS) -shared -o $@ $^ $(LDLIBS)
485+
$(call quiet,LINK) $(LDFLAGS) $(CEED_LDFLAGS) -shared -o $@ $^ $(CEED_LDLIBS) $(LDLIBS)
482486

483487
$(libceed.a) : $(call weak_last,$(libceed.o)) | $$(@D)/.DIR
484488
$(call quiet,AR) $(ARFLAGS) $@ $^
@@ -496,16 +500,16 @@ $(OBJDIR)/%.o : $(CURDIR)/%.hip.cpp | $$(@D)/.DIR
496500
$(call quiet,HIPCC) $(HIPCCFLAGS) -c -o $@ $(abspath $<)
497501

498502
$(OBJDIR)/% : tests/%.c | $$(@D)/.DIR
499-
$(call quiet,LINK.c) $(CEED_LDFLAGS) -o $@ $(abspath $<) $(CEED_LIBS) $(LDLIBS)
503+
$(call quiet,LINK.c) $(CEED_LDFLAGS) -o $@ $(abspath $<) $(CEED_LIBS) $(CEED_LDLIBS) $(LDLIBS)
500504

501505
$(OBJDIR)/% : tests/%.f90 | $$(@D)/.DIR
502-
$(call quiet,LINK.F) -DSOURCE_DIR='"$(abspath $(<D))/"' $(CEED_LDFLAGS) -o $@ $(abspath $<) $(CEED_LIBS) $(LDLIBS)
506+
$(call quiet,LINK.F) -DSOURCE_DIR='"$(abspath $(<D))/"' $(CEED_LDFLAGS) -o $@ $(abspath $<) $(CEED_LIBS) $(CEED_LDLIBS) $(LDLIBS)
503507

504508
$(OBJDIR)/% : examples/ceed/%.c | $$(@D)/.DIR
505-
$(call quiet,LINK.c) $(CEED_LDFLAGS) -o $@ $(abspath $<) $(CEED_LIBS) $(LDLIBS)
509+
$(call quiet,LINK.c) $(CEED_LDFLAGS) -o $@ $(abspath $<) $(CEED_LIBS) $(CEED_LDLIBS) $(LDLIBS)
506510

507511
$(OBJDIR)/% : examples/ceed/%.f | $$(@D)/.DIR
508-
$(call quiet,LINK.F) -DSOURCE_DIR='"$(abspath $(<D))/"' $(CEED_LDFLAGS) -o $@ $(abspath $<) $(CEED_LIBS) $(LDLIBS)
512+
$(call quiet,LINK.F) -DSOURCE_DIR='"$(abspath $(<D))/"' $(CEED_LDFLAGS) -o $@ $(abspath $<) $(CEED_LIBS) $(CEED_LDLIBS) $(LDLIBS)
509513

510514
$(OBJDIR)/mfem-% : examples/mfem/%.cpp $(libceed) | $$(@D)/.DIR
511515
+$(MAKE) -C examples/mfem CEED_DIR=`pwd` \

0 commit comments

Comments
 (0)