mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-01 11:52:47 +00:00
126 lines
5.1 KiB
Makefile
126 lines
5.1 KiB
Makefile
# Plugin for offload execution on Intel MIC devices.
|
|
#
|
|
# Copyright (C) 2014-2017 Free Software Foundation, Inc.
|
|
#
|
|
# Contributed by Ilya Verbin <ilya.verbin@intel.com> and
|
|
# Andrey Turetskiy <andrey.turetskiy@intel.com>.
|
|
#
|
|
# This file is part of the GNU Offloading and Multi Processing Library
|
|
# (libgomp).
|
|
#
|
|
# Libgomp is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3, or (at your option)
|
|
# any later version.
|
|
#
|
|
# Libgomp 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 General Public License for
|
|
# more details.
|
|
#
|
|
# Under Section 7 of GPL version 3, you are granted additional
|
|
# permissions described in the GCC Runtime Library Exception, version
|
|
# 3.1, as published by the Free Software Foundation.
|
|
#
|
|
# You should have received a copy of the GNU General Public License and
|
|
# a copy of the GCC Runtime Library Exception along with this program;
|
|
# see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|
# <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
AUTOMAKE_OPTIONS = foreign
|
|
ACLOCAL_AMFLAGS = -I ../.. -I ../../config
|
|
|
|
# Directories
|
|
build_dir = $(top_builddir)
|
|
source_dir = $(top_srcdir)
|
|
coi_inc_dir = $(top_srcdir)/../include/coi
|
|
include_src_dir = $(top_srcdir)/../../include
|
|
libgomp_src_dir = $(top_srcdir)/../../libgomp
|
|
libgomp_dir = $(build_dir)/../../libgomp
|
|
liboffload_src_dir = $(top_srcdir)/../runtime
|
|
liboffload_dir = $(top_builddir)/..
|
|
|
|
# May be used by toolexeclibdir.
|
|
gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../../gcc/BASE-VER)
|
|
libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/include
|
|
# Search for main_target_image.h in these directories
|
|
target_prefix_dir = $(libdir)/gcc/$(accel_target)/$(gcc_version)$(MULTISUBDIR)
|
|
target_build_dir = $(accel_search_dir)/$(accel_target)$(MULTISUBDIR)/liboffloadmic/plugin
|
|
target_install_dir = $(accel_search_dir)/lib/gcc/$(accel_target)/$(gcc_version)$(MULTISUBDIR)
|
|
|
|
if PLUGIN_HOST
|
|
toolexeclib_LTLIBRARIES = libgomp-plugin-intelmic.la
|
|
libgomp_plugin_intelmic_la_SOURCES = libgomp-plugin-intelmic.cpp
|
|
libgomp_plugin_intelmic_la_CPPFLAGS = $(CPPFLAGS) -DLINUX -DCOI_LIBRARY_VERSION=2 -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -DHOST_LIBRARY=1 -I$(coi_inc_dir) -I$(liboffload_src_dir) -I$(libgomp_src_dir) -I$(libgomp_dir) -I$(include_src_dir) -I$(target_prefix_dir)/include -I$(target_build_dir) -I$(target_install_dir)/include
|
|
libgomp_plugin_intelmic_la_LDFLAGS = -L$(liboffload_dir)/.libs -loffloadmic_host -version-info 1:0:0
|
|
else # PLUGIN_TARGET
|
|
plugin_includedir = $(libsubincludedir)
|
|
plugin_include_HEADERS = main_target_image.h
|
|
AM_CPPFLAGS = $(CPPFLAGS) -DLINUX -DCOI_LIBRARY_VERSION=2 -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -DHOST_LIBRARY=0 -I$(coi_inc_dir) -I$(liboffload_src_dir) -I$(libgomp_dir)
|
|
AM_CXXFLAGS = $(CXXFLAGS)
|
|
AM_LDFLAGS = -L$(liboffload_dir)/.libs -L$(libgomp_dir)/.libs -loffloadmic_target -lcoi_device -lgomp -rdynamic
|
|
endif
|
|
|
|
main_target_image.h: offload_target_main
|
|
@echo -n "const int image_size = " > $@
|
|
@stat -c '%s' $< >> $@
|
|
@echo ";" >> $@
|
|
@echo "struct MainTargetImage {" >> $@
|
|
@echo " int64_t size;" >> $@
|
|
@echo " char name[sizeof \"offload_target_main\"];" >> $@
|
|
@echo " uint8_t data[image_size];" >> $@
|
|
@echo "};" >> $@
|
|
@echo "extern \"C\" const MainTargetImage main_target_image = {" >> $@
|
|
@echo " image_size, \"offload_target_main\"," >> $@
|
|
@cat $< | xxd -include >> $@
|
|
@echo "};" >> $@
|
|
|
|
offload_target_main: $(liboffload_dir)/ofldbegin.o offload_target_main.o $(liboffload_dir)/ofldend.o
|
|
$(CXX) $(AM_LDFLAGS) $^ -o $@
|
|
|
|
offload_target_main.o: offload_target_main.cpp
|
|
$(CXX) $(AM_CXXFLAGS) $(AM_CPPFLAGS) -c $< -o $@
|
|
|
|
# Work around what appears to be a GNU make bug handling MAKEFLAGS
|
|
# values defined in terms of make variables, as is the case for CC and
|
|
# friends when we are called from the top level Makefile.
|
|
AM_MAKEFLAGS = \
|
|
"AR_FLAGS=$(AR_FLAGS)" \
|
|
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
|
|
"CFLAGS=$(CFLAGS)" \
|
|
"CXXFLAGS=$(CXXFLAGS)" \
|
|
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
|
|
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
|
|
"INSTALL=$(INSTALL)" \
|
|
"INSTALL_DATA=$(INSTALL_DATA)" \
|
|
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
|
|
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
|
|
"JC1FLAGS=$(JC1FLAGS)" \
|
|
"LDFLAGS=$(LDFLAGS)" \
|
|
"LIBCFLAGS=$(LIBCFLAGS)" \
|
|
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
|
|
"MAKE=$(MAKE)" \
|
|
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
|
|
"PICFLAG=$(PICFLAG)" \
|
|
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
|
|
"SHELL=$(SHELL)" \
|
|
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
|
|
"exec_prefix=$(exec_prefix)" \
|
|
"infodir=$(infodir)" \
|
|
"libdir=$(libdir)" \
|
|
"prefix=$(prefix)" \
|
|
"includedir=$(includedir)" \
|
|
"AR=$(AR)" \
|
|
"AS=$(AS)" \
|
|
"LD=$(LD)" \
|
|
"LIBCFLAGS=$(LIBCFLAGS)" \
|
|
"NM=$(NM)" \
|
|
"PICFLAG=$(PICFLAG)" \
|
|
"RANLIB=$(RANLIB)" \
|
|
"DESTDIR=$(DESTDIR)"
|
|
|
|
MAKEOVERRIDES =
|
|
|
|
include $(top_srcdir)/../../multilib.am
|