10d9661cdSTzanio# Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at 20d9661cdSTzanio# the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights 30d9661cdSTzanio# reserved. See files LICENSE and NOTICE for details. 40d9661cdSTzanio# 50d9661cdSTzanio# This file is part of CEED, a collection of benchmarks, miniapps, software 60d9661cdSTzanio# libraries and APIs for efficient high-order finite element and spectral 70d9661cdSTzanio# element discretizations for exascale applications. For more information and 80d9661cdSTzanio# source code availability see http://github.com/ceed. 90d9661cdSTzanio# 100d9661cdSTzanio# The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, 110d9661cdSTzanio# a collaborative effort of two U.S. Department of Energy organizations (Office 120d9661cdSTzanio# of Science and the National Nuclear Security Administration) responsible for 130d9661cdSTzanio# the planning and preparation of a capable exascale ecosystem, including 140d9661cdSTzanio# software, applications, hardware, advanced system engineering and early 150d9661cdSTzanio# testbed platforms, in support of the nation's exascale computing imperative. 160d9661cdSTzanio 17582447c9SJed BrownCFLAGS = -std=c99 -Wall -Wextra -Wno-unused-parameter -fPIC -MMD -MP 184859b599SJed BrownCFLAGS += $(if $(NDEBUG),-O2,-g) 194859b599SJed BrownCPPFLAGS = -I. 20582447c9SJed BrownLDLIBS = -lm 2187e762eaSJed Brown 22bfa078e6SJed BrownPROVE ?= prove 235c719ab0SJed BrownDARWIN := $(filter Darwin,$(shell uname -s)) 245c719ab0SJed BrownSO_EXT := $(if $(DARWIN),dylib,so) 259df38c42SVeselin Dobrev 26bae89548SJed Brownlibceed := libceed.$(SO_EXT) 27bae89548SJed Brownlibceed.c := $(wildcard ceed*.c) 288827639dSJed Browntests.c := $(sort $(wildcard t/t[0-9][0-9]-*.c)) 294859b599SJed Browntests := $(tests.c:%.c=%) 302c6ea02fSJed Brownexamples.c := $(sort $(wildcard examples/*.c)) 312c6ea02fSJed Brownexamples := $(examples.c:%.c=%) 324859b599SJed Brown 339df38c42SVeselin Dobrev.SUFFIXES: 349df38c42SVeselin Dobrev.SUFFIXES: .c .o .d 359df38c42SVeselin Dobrev 36bae89548SJed Brown$(libceed) : $(libceed.c:%.c=%.o) 374859b599SJed Brown $(CC) $(LDFLAGS) -shared -o $@ $^ $(LDLIBS) 384859b599SJed Brown 392c6ea02fSJed Brown$(tests) $(examples) : $(libceed) 402c6ea02fSJed Brown$(tests) $(examples) : LDFLAGS += -Wl,-rpath,. -L. 418827639dSJed Brownt/t% : t/t%.c $(libceed) 422c6ea02fSJed Brownexamples/% : examples/%.c $(libceed) 434859b599SJed Brown 448827639dSJed Brownrun-t% : t/t% 45bfa078e6SJed Brown @t/tap.sh $(<:t/%=%) 464859b599SJed Brown 478827639dSJed Browntest : $(tests:t/%=run-%) 484859b599SJed Brown 49bfa078e6SJed Brownprove : $(tests) 50bfa078e6SJed Brown $(PROVE) --exec t/tap.sh $(CEED_PROVE_OPTS) $(tests:t/%=%) 51bfa078e6SJed Brown 522c6ea02fSJed Brownexamples : $(examples) 532c6ea02fSJed Brown 540dbfdfc5SJed Brown.PHONY: clean print test examples astyle 554859b599SJed Brownclean : 568827639dSJed Brown $(RM) *.o t/*.o *.d t/*.d $(libceed) $(tests.c:%.c=%) 579df38c42SVeselin Dobrev $(RM) -r *.dSYM 584859b599SJed Brown 590dbfdfc5SJed Brownastyle : 60*4e3516aeSJed Brown astyle --style=google --indent=spaces=2 --max-code-length=80 \ 610dbfdfc5SJed Brown --keep-one-line-statements --keep-one-line-blocks --lineend=linux \ 620dbfdfc5SJed Brown --suffix=none --preserve-date --formatted *.[ch] t/*.[ch] examples/*.[ch] 630dbfdfc5SJed Brown 640dbfdfc5SJed Brown 654859b599SJed Brownprint : 664859b599SJed Brown @echo $(VAR)=$($(VAR)) 67582447c9SJed Brown 689df38c42SVeselin Dobrevprint-%: 699df38c42SVeselin Dobrev $(info [ variable name]: $*) 709df38c42SVeselin Dobrev $(info [ origin]: $(origin $*)) 719df38c42SVeselin Dobrev $(info [ value]: $(value $*)) 729df38c42SVeselin Dobrev $(info [expanded value]: $($*)) 739df38c42SVeselin Dobrev $(info ) 749df38c42SVeselin Dobrev @true 759df38c42SVeselin Dobrev 76bae89548SJed Brown-include $(libceed.c:%.c=%.d) $(tests.c:%.c=%.d) 77