123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- # StarPU --- Runtime system for heterogeneous multicore architectures.
- #
- # Copyright (C) 2009-2020 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
- #
- # StarPU is free software; you can redistribute it and/or modify
- # it under the terms of the GNU Lesser General Public License as published by
- # the Free Software Foundation; either version 2.1 of the License, or (at
- # your option) any later version.
- #
- # StarPU is distributed in the hope that it will be useful, but
- # WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- #
- # See the GNU Lesser General Public License in COPYING.LGPL for more details.
- #
- STARPU ?= undefined
- EXAMPLE ?= undefined
- TARGETS = hello_world
- TARGETS += block
- TARGETS += mult
- TARGETS += variable
- TARGETS += incrementer
- ifeq ($(STARPU),undefined)
- all:
- @echo
- @echo "ERROR. You need to set the variable STARPU to the name of the pkg-config StarPU package"
- @echo
- clean:; rm -f $(TARGETS) *.o
- else
- ifeq ($(EXAMPLE),undefined)
- all:
- @echo
- @echo "ERROR. You need to set the variable EXAMPLE to the directory hosting the example sources"
- @echo
- clean:; rm -f $(TARGETS) *.o
- else
- CFLAGS += $$(pkg-config --cflags $(STARPU))
- LDFLAGS += $$(pkg-config --libs $(STARPU))
- HAS_CUDA = $(shell pkg-config --libs $(STARPU) |grep -i cuda)
- NVCC ?= nvcc
- HAS_OPENCL = $(shell pkg-config --libs $(STARPU) |grep -i opencl)
- %.o: $(EXAMPLE)/basic_examples/%.cu
- $(NVCC) $(CFLAGS) $< -c
- %.o: $(EXAMPLE)/basic_examples/%.c
- $(CC) $(CFLAGS) $< -c
- %.o: $(EXAMPLE)/incrementer/%.cu
- $(NVCC) $(CFLAGS) $< -c
- %.o: $(EXAMPLE)/incrementer/%.c
- $(CC) $(CFLAGS) $< -c
- all: $(TARGETS)
- BLOCK_PREREQUISITES = block.o block_cpu.o
- ifneq ($(strip $(HAS_CUDA)),)
- BLOCK_PREREQUISITES += block_cuda.o
- BLOCK_COMPILER = $(NVCC)
- else
- BLOCK_COMPILER = $(CC)
- endif
- ifneq ($(strip $(HAS_OPENCL)),)
- BLOCK_PREREQUISITES += block_opencl.o
- endif
- block: $(BLOCK_PREREQUISITES)
- $(BLOCK_COMPILER) $(LDFLAGS) $^ -o $@
- VARIABLE_PREREQUISITES = variable.o variable_kernels_cpu.o
- ifneq ($(strip $(HAS_CUDA)),)
- VARIABLE_PREREQUISITES += variable_kernels.o
- VARIABLE_COMPILER = $(NVCC)
- else
- VARIABLE_COMPILER = $(CC)
- endif
- ifneq ($(strip $(HAS_OPENCL)),)
- VARIABLE_PREREQUISITES += variable_kernels_opencl.o
- endif
- variable: $(VARIABLE_PREREQUISITES)
- $(VARIABLE_COMPILER) $(LDFLAGS) $^ -o $@
- INCREMENTER_PREREQUISITES = incrementer.o
- ifneq ($(strip $(HAS_CUDA)),)
- INCREMENTER_PREREQUISITES += incrementer_kernels.o
- INCREMENTER_COMPILER = $(NVCC)
- else
- INCREMENTER_COMPILER = $(CC)
- endif
- ifneq ($(strip $(HAS_OPENCL)),)
- INCREMENTER_PREREQUISITES += incrementer_kernels_opencl.o
- endif
- incrementer: $(INCREMENTER_PREREQUISITES)
- $(INCREMENTER_COMPILER) $(LDFLAGS) $^ -o $@
- clean:; rm -f $(TARGETS) *.o
- endif
- endif
|