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 225c719ab0SJed BrownDARWIN := $(filter Darwin,$(shell uname -s)) 235c719ab0SJed BrownSO_EXT := $(if $(DARWIN),dylib,so) 249df38c42SVeselin Dobrev 25bae89548SJed Brownlibceed := libceed.$(SO_EXT) 26bae89548SJed Brownlibceed.c := $(wildcard ceed*.c) 278827639dSJed Browntests.c := $(sort $(wildcard t/t[0-9][0-9]-*.c)) 284859b599SJed Browntests := $(tests.c:%.c=%) 292c6ea02fSJed Brownexamples.c := $(sort $(wildcard examples/*.c)) 302c6ea02fSJed Brownexamples := $(examples.c:%.c=%) 314859b599SJed Brown 329df38c42SVeselin Dobrev.SUFFIXES: 339df38c42SVeselin Dobrev.SUFFIXES: .c .o .d 349df38c42SVeselin Dobrev 35bae89548SJed Brown$(libceed) : $(libceed.c:%.c=%.o) 364859b599SJed Brown $(CC) $(LDFLAGS) -shared -o $@ $^ $(LDLIBS) 374859b599SJed Brown 382c6ea02fSJed Brown$(tests) $(examples) : $(libceed) 392c6ea02fSJed Brown$(tests) $(examples) : LDFLAGS += -Wl,-rpath,. -L. 408827639dSJed Brownt/t% : t/t%.c $(libceed) 412c6ea02fSJed Brownexamples/% : examples/%.c $(libceed) 424859b599SJed Brown 438827639dSJed Brownrun-t% : t/t% 448827639dSJed Brown @./tap.sh $(<:t/%=%) 454859b599SJed Brown 468827639dSJed Browntest : $(tests:t/%=run-%) 474859b599SJed Brown 482c6ea02fSJed Brownexamples : $(examples) 492c6ea02fSJed Brown 50*0dbfdfc5SJed Brown.PHONY: clean print test examples astyle 514859b599SJed Brownclean : 528827639dSJed Brown $(RM) *.o t/*.o *.d t/*.d $(libceed) $(tests.c:%.c=%) 539df38c42SVeselin Dobrev $(RM) -r *.dSYM 544859b599SJed Brown 55*0dbfdfc5SJed Brownastyle : 56*0dbfdfc5SJed Brown @git diff --stat --exit-code HEAD || ( printf "error: Cannot run astyle in dirty tree.\nAborting.\n"; false ) 57*0dbfdfc5SJed Brown astyle --style=google --indent=spaces=2 --max-code-length=96 \ 58*0dbfdfc5SJed Brown --keep-one-line-statements --keep-one-line-blocks --lineend=linux \ 59*0dbfdfc5SJed Brown --suffix=none --preserve-date --formatted *.[ch] t/*.[ch] examples/*.[ch] 60*0dbfdfc5SJed Brown 61*0dbfdfc5SJed Brown 624859b599SJed Brownprint : 634859b599SJed Brown @echo $(VAR)=$($(VAR)) 64582447c9SJed Brown 659df38c42SVeselin Dobrevprint-%: 669df38c42SVeselin Dobrev $(info [ variable name]: $*) 679df38c42SVeselin Dobrev $(info [ origin]: $(origin $*)) 689df38c42SVeselin Dobrev $(info [ value]: $(value $*)) 699df38c42SVeselin Dobrev $(info [expanded value]: $($*)) 709df38c42SVeselin Dobrev $(info ) 719df38c42SVeselin Dobrev @true 729df38c42SVeselin Dobrev 73bae89548SJed Brown-include $(libceed.c:%.c=%.d) $(tests.c:%.c=%.d) 74