2014-08-13 10:39:27 +01:00
ACLOCAL_AMFLAGS = -I m4
2014-09-04 09:07:35 +01:00
AM_CFLAGS = $( WERROR_CFLAGS)
2017-10-19 20:04:20 +00:00
MONOTOUCH_SUBDIRS = $( libgc_dir) mono
2014-08-13 10:39:27 +01:00
2016-11-10 13:04:39 +00:00
# Some tools might not build when cross-compiling
2014-08-13 10:39:27 +01:00
i f C R O S S _ C O M P I L I N G
2016-11-10 13:04:39 +00:00
tools_dir =
2014-08-13 10:39:27 +01:00
e l s e
2016-11-10 13:04:39 +00:00
tools_dir = tools
2014-08-13 10:39:27 +01:00
e n d i f
2019-04-12 14:10:50 +00:00
i f E N A B L E _ M S V C
build_with_msvc = msvc
build_without_msvc =
e l s e
build_with_msvc =
build_without_msvc = msvc
e n d i f
2019-07-26 19:53:28 +00:00
i f E N A B L E _ N E T C O R E
update_submodules =
2019-12-10 18:00:56 +00:00
SUBDIRS = mk llvm mono runtime netcore netcore/corerun
2019-07-26 19:53:28 +00:00
e l s e
update_submodules = update_submodules
2019-09-24 08:53:40 +00:00
SUBDIRS = $( build_with_msvc) mk po $( libgc_dir) llvm mono $( ikvm_native_dir) support data runtime scripts man samples $( tools_dir) $( build_without_msvc) $( docs_dir) acceptance-tests
2019-07-26 19:53:28 +00:00
e n d i f
2016-11-10 13:04:39 +00:00
# Keep in sync with SUBDIRS
2019-12-10 18:00:56 +00:00
DIST_SUBDIRS = $( build_with_msvc) m4 mk po $( libgc_dir) llvm mono ikvm-native support data runtime scripts man samples tools $( build_without_msvc) docs acceptance-tests netcore netcore/corerun
2016-11-10 13:04:39 +00:00
2019-07-26 19:53:28 +00:00
all : $( update_submodules )
2014-08-13 10:39:27 +01:00
update_submodules :
2019-04-12 14:10:50 +00:00
@cd $( srcdir) && scripts/update_submodules.sh
2014-08-13 10:39:27 +01:00
.PHONY : update_submodules
EXTRA_DIST = \
2016-02-22 11:00:01 -05:00
README.md \
LICENSE \
autogen.sh \
mkinstalldirs \
mono-uninstalled.pc.in \
winconfig.h \
code_of_conduct.md \
2016-08-03 10:59:49 +00:00
external \
2019-12-10 18:00:56 +00:00
netcore/Makefile \
2016-08-03 10:59:49 +00:00
mcs/class/referencesource
2014-08-13 10:39:27 +01:00
2019-12-10 18:00:56 +00:00
DISTCHECK_CONFIGURE_FLAGS = EXTERNAL_RUNTIME = false
2014-08-13 10:39:27 +01:00
# Distribute the 'mcs' tree too
GIT_DIR ?= $( srcdir) /.git
dist-hook :
test -d $( distdir) /mcs || mkdir $( distdir) /mcs
d = ` cd $( distdir) /mcs && pwd ` ; cd $( mcs_topdir) && $( MAKE) distdir = $$ d dist-recursive
2014-09-04 09:07:35 +01:00
rm -rf ` find $( top_distdir) /external -path '*\.git' `
2019-04-12 14:10:50 +00:00
rm -rf ` find $( top_distdir) /external -path '*\.libs' `
rm -rf ` find $( top_distdir) /external -path '*\.deps' `
rm -f ` find $( top_distdir) /external -path '*\.o' `
rm -f ` find $( top_distdir) /external -path '*\.so' `
rm -f ` find $( top_distdir) /external -path '*\.lo' `
rm -f ` find $( top_distdir) /external -path '*\.Plo' `
rm -f ` find $( top_distdir) /external -name '\.dirstamp' `
2017-04-10 11:41:01 +00:00
rm -f ` find $( top_distdir) /external -path '*\.exe' -not -path '*/roslyn-binaries/*' `
2019-04-12 14:10:50 +00:00
rm -f ` find $( top_distdir) /external -path '*\.dll' -not -path '*/binary-reference-assemblies/*' -not -path '*/roslyn-binaries/*' -not -path '*/helix-binaries/*' `
rm -rf " $( top_distdir) /external/linker/test "
2017-04-10 11:41:01 +00:00
2014-08-13 10:39:27 +01:00
pkgconfigdir = $( libdir) /pkgconfig
noinst_DATA = mono-uninstalled.pc
DISTCLEANFILES = mono-uninstalled.pc
# building with monolite
.PHONY : get -monolite -latest
get-monolite-latest :
2017-08-21 15:34:15 +00:00
$( MAKE) -C $( mcs_topdir) /class get-monolite-latest
2014-08-13 10:39:27 +01:00
2016-11-10 13:04:39 +00:00
i f B I T C O D E
BITCODE_CHECK = yes
e n d i f
2019-04-12 14:10:50 +00:00
i f D E F A U L T _ T E S T S
CI_TEST_SCRIPT = $( srcdir) /scripts/ci/run-test-default.sh
e l s e
CI_TEST_SCRIPT = $( srcdir) /scripts/ci/run-test-$( TEST_PROFILE) .sh
e n d i f
2016-11-10 13:04:39 +00:00
.PHONY : check -ci
check-ci :
2019-04-12 14:10:50 +00:00
MONO_LLVMONLY = $( BITCODE_CHECK) $( CI_TEST_SCRIPT)
2016-11-10 13:04:39 +00:00
2014-08-13 10:39:27 +01:00
.PHONY : validate do -build -mono -mcs mcs -do -clean mcs -do -tests
validate : do -build -mono -mcs
$( MAKE) mcs-do-tests
do-build-mono-mcs : mcs -do -clean
$( MAKE) all
mcs-do-clean :
cd runtime && $( MAKE) clean-local
cd mono/tests && $( MAKE) clean
mcs-do-tests :
cd runtime && $( MAKE) check-local
cd mono/tests && $( MAKE) check
.PHONY : compiler -tests mcs -do -compiler -tests
compiler-tests :
$( MAKE) test_select = 'TEST_SUBDIRS="tests errors"' validate
mcs-do-compiler-tests :
$( MAKE) test_select = 'TEST_SUBDIRS="tests errors"' mcs-do-tests
.PHONY : bootstrap -world
bootstrap-world : compiler -tests
$( MAKE) install
i f I N S T A L L _ M O N O T O U C H
monotouch-do-build : config .h
@list= '$(MONOTOUCH_SUBDIRS)' ; for subdir in $$ list; do \
case " x $$ subdir " in \
xmono ) target = "monotouch-do-build" ; ; \
* ) target = "all" ; ; \
esac ; \
echo " Making $$ target in $$ subdir " ; \
( cd $$ subdir && $( MAKE) $( AM_MAKEFLAGS) $$ target) ; \
done ;
( cd runtime && $( MAKE) $( AM_MAKEFLAGS) monotouch-do-build)
monotouch-do-clean :
@list= '$(MONOTOUCH_SUBDIRS)' ; for subdir in $$ list; do \
case " x $$ subdir " in \
xmono ) target = "monotouch-do-clean" ; ; \
* ) target = "clean" ; ; \
esac ; \
echo " Making $$ target in $$ subdir " ; \
( cd $$ subdir && $( MAKE) $( AM_MAKEFLAGS) $$ target) ; \
done ;
( cd runtime && $( MAKE) $( AM_MAKEFLAGS) monotouch-do-clean)
e n d i f
update-csproj :
-rm msvc/scripts/order
-rm msvc/scripts/order.xml
-rm -rf msvc/scripts/inputs
-mkdir msvc/scripts/inputs
2018-04-24 09:31:23 +00:00
( cd runtime; $( MAKE) V = 1 extra_targets = csproj-local)
2014-08-13 10:39:27 +01:00
package-inputs :
echo '<?xml version="1.0" encoding="utf-8"?>' > msvc/scripts/order.xml
echo '<root>' >> msvc/scripts/order.xml
for i in ` cat msvc/scripts/order` ; do \
set ` echo $$ i | sed -e 's/:/ /' -e 's/.input//' ` ; \
cat msvc/scripts/inputs/$$ 2.input | sed -e 's/\\\\/\\/g' -e 's/\\/\\\\/g' | \
( echo " <project dir=\" $$ 1\" library=\" $$ 2\"> " ; \
read boot; echo " <boot> $$ boot</boot> " ; \
read flags; echo " <flags> $$ flags</flags> " ; \
2018-10-09 08:20:59 +00:00
read sources; echo " <sources> $$ sources</sources> " ; \
2014-08-13 10:39:27 +01:00
read output; echo " <output> $$ output</output> " ; \
read built; echo " <built_sources>`echo $$ built | sed 's/\\\/\\\\/g'`</built_sources> " ; \
read libou; echo " <library_output> $$ libou</library_output> " ; \
read fx_ver; echo " <fx_version> $$ fx_ver</fx_version> " ; \
read profile; echo " <profile> $$ profile</profile> " ; \
2016-11-10 13:04:39 +00:00
read resxt; echo " <resources> $$ resxt</resources> " ; \
2014-08-13 10:39:27 +01:00
read resp; echo " <response> $$ resp</response> " ; \
echo " </project>" ) >> msvc/scripts/order.xml; \
done
echo "</root>" >> msvc/scripts/order.xml
# Update llvm version in configure.ac to the output of $LLVM_DIR/bin/llvm-config --version
update-llvm-version :
if test " x $$ LLVM_DIR " = "x" ; then echo "Set the make variable LLVM_DIR to the directory containing the LLVM installation." ; exit 1; fi
REV = ` $( LLVM_DIR) /bin/llvm-config --version` && sed -e " s,expected_llvm_version=.*,expected_llvm_version=\" $$ REV\", " < configure.ac > tmp && mv tmp configure.ac && echo " Version set to $$ REV. "
2016-08-03 10:59:49 +00:00
update-solution-files :
2018-10-09 08:20:59 +00:00
cd msvc/scripts && $( MAKE) genproj.exe || exit $$ ?;
2018-04-24 09:31:23 +00:00
$( MAKE) update-csproj
$( MAKE) package-inputs
2018-05-10 08:37:03 +00:00
( cd msvc/scripts; mono --debug genproj.exe $( GENPROJ_ARGS) )
2017-10-19 20:04:20 +00:00
update-solution-files-with-tests :
2018-04-24 09:31:23 +00:00
$( MAKE) "GENPROJ_ARGS=2012 true true" update-solution-files