You've already forked linux-packaging-mono
Imported Upstream version 5.4.0.167
Former-commit-id: 5624ac747d633e885131e8349322922b6a59baaa
This commit is contained in:
parent
e49d6f06c0
commit
536cd135cc
@@ -6,12 +6,12 @@ Peter Williams <peter@newton.cx>
|
||||
It's pretty easy. You can create two files in this directory to tweak
|
||||
settings: pre-config.make and config.make.
|
||||
|
||||
pre-config.make is included before $(PLATFORM).make and
|
||||
pre-config.make is included before $(BUILD_PLATFORM).make and
|
||||
$(PROFILE).make, so you can set either of these variables if you want
|
||||
to change the default.
|
||||
|
||||
Just about any other change should go in config.make, which is
|
||||
included after $(PLATFORM).make and $(PROFILE).make, so you can use
|
||||
included after $(BUILD_PLATFORM).make and $(PROFILE).make, so you can use
|
||||
the values defined in those files if you wish. For example,
|
||||
|
||||
MCS_FLAGS = $(DEFAULT_MCS_FLAGS) /my-experimental-optimizer-flag
|
||||
|
||||
@@ -119,8 +119,8 @@ Configuration variables are given defaults in `config-default.make';
|
||||
`rules.make' optionally includes `$(topdir)/build/config.make', so you
|
||||
can customize your build without CVS trying to commit your modified
|
||||
`config-default.make' all the time. Platform-specific variables are
|
||||
defined in `$(topdir)/build/platforms/$(PLATFORM).make', where
|
||||
$(PLATFORM) is detected in config-default.make. (Currently, the only
|
||||
defined in `$(topdir)/build/platforms/$(BUILD_PLATFORM).make', where
|
||||
$(BUILD_PLATFORM) is detected in config-default.make. (Currently, the only
|
||||
choices are linux.make and win32.make.)
|
||||
|
||||
The best way to learn what the configuration variables are is to read
|
||||
|
||||
@@ -34,11 +34,11 @@ static class Consts
|
||||
// Use these assembly version constants to make code more maintainable.
|
||||
//
|
||||
|
||||
public const string MonoVersion = "5.2.0.215";
|
||||
public const string MonoVersion = "5.4.0.167";
|
||||
public const string MonoCompany = "Mono development team";
|
||||
public const string MonoProduct = "Mono Common Language Infrastructure";
|
||||
public const string MonoCopyright = "(c) Various Mono authors";
|
||||
public const int MonoCorlibVersion = 1050200001;
|
||||
public const int MonoCorlibVersion = 1050400003;
|
||||
|
||||
#if MOBILE
|
||||
// Versions of .NET Framework for Silverlight 4.0
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
CODEPAGE = 65001
|
||||
|
||||
RUNTIME_FLAGS =
|
||||
TEST_HARNESS = $(topdir)/class/lib/$(PROFILE)/$(PARENT_PROFILE)nunit-lite-console.exe
|
||||
TEST_HARNESS = $(topdir)/class/lib/$(PROFILE_DIRECTORY)/$(PARENT_PROFILE)nunit-lite-console.exe
|
||||
PLATFORM_DEBUG_FLAGS = /debug:portable
|
||||
MCS_FLAGS =
|
||||
MBAS_FLAGS = -debug
|
||||
@@ -24,7 +24,7 @@ mono_libdir = $(exec_prefix)/lib
|
||||
sysconfdir = $(prefix)/etc
|
||||
#RUNTIME = mono
|
||||
RUNTIME = false
|
||||
TEST_RUNTIME = MONO_PATH="./$(PLATFORM_PATH_SEPARATOR)$(topdir)/class/lib/$(PROFILE)$(PLATFORM_PATH_SEPARATOR)$(TEST_MONO_PATH)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) --debug
|
||||
TEST_RUNTIME = MONO_PATH="./$(PLATFORM_PATH_SEPARATOR)$(topdir)/class/lib/$(PROFILE_DIRECTORY)$(PLATFORM_PATH_SEPARATOR)$(TEST_MONO_PATH)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) --debug
|
||||
|
||||
# In case you want to add MCS_FLAGS, this lets you not have to
|
||||
# keep track of the default value
|
||||
|
||||
@@ -19,7 +19,7 @@ executable_CLEAN_FILES += $(response)
|
||||
endif
|
||||
|
||||
ifndef the_libdir
|
||||
the_libdir = $(topdir)/class/lib/$(PROFILE)/
|
||||
the_libdir = $(topdir)/class/lib/$(PROFILE_DIRECTORY)/
|
||||
ifdef PROGRAM_USE_INTERMEDIATE_FILE
|
||||
build_libdir = $(the_libdir)tmp/
|
||||
else
|
||||
@@ -42,8 +42,8 @@ executable_CLEAN_FILES += $(build_lib) $(build_lib).so $(build_lib).mdb $(build_
|
||||
|
||||
makefrag = $(depsdir)/$(PROFILE)_$(base_prog).makefrag
|
||||
|
||||
MCS_REFERENCES = $(patsubst %,-r:$(topdir)/class/lib/$(PROFILE)/%.dll,$(LIB_REFS))
|
||||
MCS_REFERENCES += $(patsubst %,-r:$(topdir)/class/lib/$(PROFILE)/%.exe,$(EXE_REFS))
|
||||
MCS_REFERENCES = $(patsubst %,-r:$(topdir)/class/lib/$(PROFILE_DIRECTORY)/%.dll,$(LIB_REFS))
|
||||
MCS_REFERENCES += $(patsubst %,-r:$(topdir)/class/lib/$(PROFILE_DIRECTORY)/%.exe,$(EXE_REFS))
|
||||
|
||||
ifndef NO_BUILD
|
||||
all-local: $(the_lib) $(PROGRAM_config)
|
||||
@@ -117,7 +117,12 @@ ifndef PROGRAM_COMPILE
|
||||
PROGRAM_COMPILE = $(CSCOMPILE)
|
||||
endif
|
||||
|
||||
$(the_lib): $(the_libdir)/.stamp
|
||||
$(the_lib): $(the_libdir)/.stamp $(if $(PROFILE_PLATFORM),$(if $(filter $(HOST_PLATFORM),$(BUILD_PLATFORM)),$(topdir)/class/lib/$(PROFILE)/.stamp))
|
||||
|
||||
ifdef PROFILE_PLATFORM
|
||||
$(topdir)/class/lib/$(PROFILE)/.stamp: | $(topdir)/class/lib/$(PROFILE)-$(HOST_PLATFORM)/.stamp
|
||||
$(if $(filter $(HOST_PLATFORM),$(BUILD_PLATFORM)),$(if $(filter $(BUILD_PLATFORM),win32),CYGWIN=winsymlinks:nativestrict) ln -s $(abspath $(topdir)/class/lib/$(PROFILE)-$(BUILD_PLATFORM)) $(abspath $(topdir)/class/lib/$(PROFILE)))
|
||||
endif
|
||||
|
||||
$(build_lib): $(BUILT_SOURCES) $(EXTRA_SOURCES) $(response) $(build_libdir:=/.stamp)
|
||||
$(PROGRAM_COMPILE) $(MCS_REFERENCES) -target:exe -out:$@ $(BUILT_SOURCES) $(EXTRA_SOURCES) @$(response)
|
||||
|
||||
@@ -29,6 +29,17 @@ process_includes() {
|
||||
rm -f $t
|
||||
}
|
||||
|
||||
check_newline_eof() {
|
||||
file=$1
|
||||
if ! test -f "$file"; then return; fi
|
||||
if ! test -z "$(tail -c 1 "$file")"; then echo "$file: missing newline at end of file."; exit 1; fi
|
||||
}
|
||||
|
||||
check_newline_eof $incfile
|
||||
check_newline_eof $excfile
|
||||
check_newline_eof $extfile
|
||||
check_newline_eof $extexcfile
|
||||
|
||||
rm -f $outfile.makefrag
|
||||
|
||||
process_includes $incfile $outfile.inc
|
||||
|
||||
@@ -23,37 +23,8 @@ _FILTER_OUT = $(foreach x,$(2),$(if $(findstring $(1),$(x)),,$(x)))
|
||||
LIB_REFS_FULL = $(call _FILTER_OUT,=, $(LIB_REFS))
|
||||
LIB_REFS_ALIAS = $(filter-out $(LIB_REFS_FULL),$(LIB_REFS))
|
||||
|
||||
LIB_MCS_FLAGS += $(patsubst %,-r:$(topdir)/class/lib/$(PROFILE)/%.dll,$(LIB_REFS_FULL))
|
||||
LIB_MCS_FLAGS += $(patsubst %,-r:%.dll, $(subst =,=$(topdir)/class/lib/$(PROFILE)/,$(LIB_REFS_ALIAS)))
|
||||
|
||||
sourcefile = $(LIBRARY).sources
|
||||
|
||||
# If the directory contains the per profile include file, generate list file.
|
||||
PROFILE_sources := $(wildcard $(PROFILE)_$(LIBRARY).sources)
|
||||
ifdef PROFILE_sources
|
||||
PROFILE_excludes = $(wildcard $(PROFILE)_$(LIBRARY).exclude.sources)
|
||||
sourcefile = $(depsdir)/$(PROFILE)_$(LIBRARY).sources
|
||||
library_CLEAN_FILES += $(sourcefile)
|
||||
|
||||
# Note, gensources.sh can create a $(sourcefile).makefrag if it sees any '#include's
|
||||
# We don't include it in the dependencies since it isn't always created
|
||||
$(sourcefile): $(PROFILE_sources) $(PROFILE_excludes) $(topdir)/build/gensources.sh
|
||||
@echo Creating the per profile list $@ ...
|
||||
$(SHELL) $(topdir)/build/gensources.sh $@ '$(PROFILE_sources)' '$(PROFILE_excludes)'
|
||||
endif
|
||||
|
||||
PLATFORM_excludes := $(wildcard $(LIBRARY).$(PLATFORM)-excludes)
|
||||
|
||||
ifndef PLATFORM_excludes
|
||||
ifeq (cat,$(PLATFORM_CHANGE_SEPARATOR_CMD))
|
||||
response = $(sourcefile)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifndef response
|
||||
response = $(depsdir)/$(PROFILE)_$(LIBRARY_SUBDIR)_$(LIBRARY).response
|
||||
library_CLEAN_FILES += $(response)
|
||||
endif
|
||||
LIB_MCS_FLAGS += $(patsubst %,-r:$(topdir)/class/lib/$(PROFILE_DIRECTORY)/%.dll,$(LIB_REFS_FULL))
|
||||
LIB_MCS_FLAGS += $(patsubst %,-r:%.dll, $(subst =,=$(topdir)/class/lib/$(PROFILE_DIRECTORY)/,$(LIB_REFS_ALIAS)))
|
||||
|
||||
ifndef LIBRARY_NAME
|
||||
LIBRARY_NAME = $(LIBRARY)
|
||||
@@ -65,11 +36,7 @@ else
|
||||
lib_dir = lib
|
||||
endif
|
||||
|
||||
ifdef LIBRARY_SUBDIR
|
||||
the_libdir_base = $(topdir)/class/$(lib_dir)/$(PROFILE)/$(LIBRARY_SUBDIR)/
|
||||
else
|
||||
the_libdir_base = $(topdir)/class/$(lib_dir)/$(PROFILE)/
|
||||
endif
|
||||
the_libdir_base = $(topdir)/class/$(lib_dir)/$(PROFILE_DIRECTORY)/$(if $(LIBRARY_SUBDIR),$(LIBRARY_SUBDIR)/)
|
||||
|
||||
ifdef RESOURCE_STRINGS
|
||||
ifneq (basic, $(PROFILE))
|
||||
@@ -110,7 +77,7 @@ SN = MONO_PATH="$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)$(PLATFORM_PATH_SEPARA
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), win32)
|
||||
ifeq ($(BUILD_PLATFORM), win32)
|
||||
GACDIR = `cygpath -w $(mono_libdir)`
|
||||
GACROOT = `cygpath -w $(DESTDIR)$(mono_libdir)`
|
||||
test_flags += -d:WINDOWS
|
||||
@@ -296,9 +263,51 @@ endif
|
||||
|
||||
# The library
|
||||
|
||||
$(the_lib): $(the_libdir)/.stamp
|
||||
# If the directory contains the per profile include file, generate list file.
|
||||
PROFILE_sources := $(firstword $(if $(PROFILE_PLATFORM),$(wildcard $(PROFILE_PLATFORM)_$(PROFILE)_$(LIBRARY).sources)) $(wildcard $(PROFILE)_$(LIBRARY).sources) $(wildcard $(LIBRARY).sources))
|
||||
PROFILE_excludes = $(firstword $(if $(PROFILE_PLATFORM),$(wildcard $(PROFILE_PLATFORM)_$(PROFILE)_$(LIBRARY).exclude.sources)) $(wildcard $(PROFILE)_$(LIBRARY).exclude.sources))
|
||||
|
||||
$(build_lib): $(response) $(sn) $(BUILT_SOURCES) $(build_libdir:=/.stamp) $(GEN_RESOURCE_DEPS)
|
||||
# Note, gensources.sh can create a $(sourcefile).makefrag if it sees any '#include's
|
||||
# We don't include it in the dependencies since it isn't always created
|
||||
sourcefile = $(depsdir)/$(PROFILE_PLATFORM)_$(PROFILE)_$(LIBRARY_SUBDIR)_$(LIBRARY).sources
|
||||
$(sourcefile): $(PROFILE_sources) $(PROFILE_excludes) $(topdir)/build/gensources.sh $(depsdir)/.stamp
|
||||
$(SHELL) $(topdir)/build/gensources.sh $@ '$(PROFILE_sources)' '$(PROFILE_excludes)'
|
||||
|
||||
library_CLEAN_FILES += $(sourcefile)
|
||||
|
||||
response = $(depsdir)/$(PROFILE_PLATFORM)_$(PROFILE)_$(LIBRARY_SUBDIR)_$(LIBRARY).response
|
||||
$(response): $(sourcefile) $(topdir)/build/library.make $(depsdir)/.stamp
|
||||
$(PLATFORM_CHANGE_SEPARATOR_CMD) <$(sourcefile) >$@
|
||||
|
||||
library_CLEAN_FILES += $(response)
|
||||
|
||||
makefrag = $(depsdir)/$(PROFILE_PLATFORM)_$(PROFILE)_$(LIBRARY_SUBDIR)_$(LIBRARY).makefrag
|
||||
$(makefrag): $(sourcefile) $(topdir)/build/library.make $(depsdir)/.stamp
|
||||
# @echo Creating $@ ...
|
||||
@sed 's,^,$(build_lib): ,' $< >$@
|
||||
@if test ! -f $(sourcefile).makefrag; then :; else \
|
||||
cat $(sourcefile).makefrag >> $@ ; \
|
||||
echo '$@: $(sourcefile).makefrag' >> $@; \
|
||||
echo '$(sourcefile).makefrag:' >> $@; fi
|
||||
|
||||
library_CLEAN_FILES += $(makefrag)
|
||||
|
||||
ifndef NO_BUILD
|
||||
all-local: $(makefrag)
|
||||
endif
|
||||
|
||||
-include $(makefrag)
|
||||
|
||||
$(the_lib): $(the_libdir)/.stamp $(if $(PROFILE_PLATFORM),$(if $(filter $(HOST_PLATFORM),$(BUILD_PLATFORM)),$(topdir)/class/$(lib_dir)/$(PROFILE)/.stamp))
|
||||
|
||||
ifdef PROFILE_PLATFORM
|
||||
$(topdir)/class/$(lib_dir)/$(PROFILE)/.stamp: | $(topdir)/class/$(lib_dir)/$(PROFILE)-$(HOST_PLATFORM)/.stamp
|
||||
$(if $(filter $(HOST_PLATFORM),$(BUILD_PLATFORM)),$(if $(filter $(BUILD_PLATFORM),win32),CYGWIN=winsymlinks:nativestrict) ln -s $(abspath $(topdir)/class/$(lib_dir)/$(PROFILE)-$(BUILD_PLATFORM)) $(abspath $(topdir)/class/$(lib_dir)/$(PROFILE)))
|
||||
endif
|
||||
|
||||
ifndef NO_BUILD
|
||||
|
||||
$(build_lib): $(response) $(sn) $(BUILT_SOURCES) $(build_libdir)/.stamp $(GEN_RESOURCE_DEPS)
|
||||
$(LIBRARY_COMPILE) $(LIBRARY_FLAGS) $(LIB_MCS_FLAGS) $(GEN_RESOURCE_FLAGS) -target:library -out:$@ $(BUILT_SOURCES_cmdline) @$(response)
|
||||
ifdef RESOURCE_STRINGS_FILES
|
||||
$(Q) $(STRING_REPLACER) $(RESOURCE_STRINGS_FILES) $@
|
||||
@@ -313,7 +322,9 @@ $(the_lib): $(build_lib)
|
||||
$(Q) test ! -f $(build_lib:.dll=.pdb) || mv $(build_lib:.dll=.pdb) $(the_lib:.dll=.pdb)
|
||||
endif
|
||||
|
||||
library_CLEAN_FILES += $(PROFILE)_aot.log
|
||||
endif
|
||||
|
||||
library_CLEAN_FILES += $(PROFILE)_$(LIBRARY_NAME)_aot.log
|
||||
|
||||
ifdef PLATFORM_AOT_SUFFIX
|
||||
$(the_lib)$(PLATFORM_AOT_SUFFIX): $(the_lib)
|
||||
@@ -322,67 +333,29 @@ $(the_lib)$(PLATFORM_AOT_SUFFIX): $(the_lib)
|
||||
all-local-aot: $(the_lib)$(PLATFORM_AOT_SUFFIX)
|
||||
endif
|
||||
|
||||
|
||||
makefrag = $(depsdir)/$(PROFILE)_$(LIBRARY_SUBDIR)_$(LIBRARY).makefrag
|
||||
library_CLEAN_FILES += $(makefrag)
|
||||
$(makefrag): $(sourcefile)
|
||||
# @echo Creating $@ ...
|
||||
@sed 's,^,$(build_lib): ,' $< >$@
|
||||
@if test ! -f $(sourcefile).makefrag; then :; else \
|
||||
cat $(sourcefile).makefrag >> $@ ; \
|
||||
echo '$@: $(sourcefile).makefrag' >> $@; \
|
||||
echo '$(sourcefile).makefrag:' >> $@; fi
|
||||
|
||||
ifneq ($(response),$(sourcefile))
|
||||
|
||||
ifdef PLATFORM_excludes
|
||||
$(response): $(sourcefile) $(PLATFORM_excludes)
|
||||
@echo Filtering $(sourcefile) to $@ ...
|
||||
@sort $(sourcefile) $(PLATFORM_excludes) | uniq -u | $(PLATFORM_CHANGE_SEPARATOR_CMD) >$@
|
||||
else
|
||||
$(response): $(sourcefile)
|
||||
@echo Converting $(sourcefile) to $@ ...
|
||||
@cat $(sourcefile) | $(PLATFORM_CHANGE_SEPARATOR_CMD) >$@
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
-include $(makefrag)
|
||||
|
||||
# for now, don't give any /lib flags or set MONO_PATH, since we
|
||||
# give a full path to the assembly.
|
||||
|
||||
## Include corcompare stuff
|
||||
include $(topdir)/build/corcompare.make
|
||||
|
||||
all-local: $(makefrag) $(test_makefrag) $(btest_makefrag)
|
||||
ifneq ($(response),$(sourcefile))
|
||||
$(response): $(topdir)/build/library.make $(depsdir)/.stamp
|
||||
ifndef NO_BUILD
|
||||
all-local: $(test_makefrag) $(btest_makefrag)
|
||||
endif
|
||||
$(makefrag) $(test_response) $(test_makefrag) $(btest_response) $(btest_makefrag): $(topdir)/build/library.make $(depsdir)/.stamp
|
||||
|
||||
$(test_response) $(test_makefrag) $(btest_response) $(btest_makefrag): $(topdir)/build/library.make $(depsdir)/.stamp
|
||||
|
||||
## Documentation stuff
|
||||
|
||||
Q_MDOC_UP=$(if $(V),,@echo "MDOC-UP [$(PROFILE)] $(notdir $(@))";)
|
||||
MDOC_UP =$(Q_MDOC_UP) \
|
||||
MONO_PATH="$(topdir)/class/lib/$(DEFAULT_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(topdir)/class/lib/$(DEFAULT_PROFILE)/mdoc.exe \
|
||||
update --delete -o Documentation/en $(the_lib)
|
||||
|
||||
doc-update-local: $(the_libdir)/.doc-stamp
|
||||
|
||||
$(the_libdir)/.doc-stamp: $(the_lib)
|
||||
$(MDOC_UP)
|
||||
$(MDOC_UP) $(the_lib)
|
||||
@echo "doc-stamp" > $@
|
||||
|
||||
# Need to be here so it comes after the definition of DEP_DIRS/DEP_LIBS
|
||||
gen-deps:
|
||||
@echo "$(DEPS_TARGET_DIR): $(DEP_DIRS) $(DEP_LIBS)" >> $(DEPS_FILE)
|
||||
|
||||
# Should be $(BUILD_TOOLS_PROFILE) but still missing System.Windows.Forms
|
||||
resx2sr=$(topdir)/class/lib/net_4_x/resx2sr.exe
|
||||
|
||||
update-corefx-sr: $(resx2sr) $(RESX_RESOURCE_STRING)
|
||||
MONO_PATH="$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(resx2sr) $(RESX_RESOURCE_STRING) >corefx/SR.cs
|
||||
|
||||
$(resx2sr):
|
||||
$(MAKE) -C $(topdir)/tools/resx2sr
|
||||
update-corefx-sr: $(RESX_RESOURCE_STRING)
|
||||
MONO_PATH="$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/resx2sr.exe $(RESX_RESOURCE_STRING) >corefx/SR.cs
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- makefile -*-
|
||||
|
||||
monolite_path := $(topdir)/class/lib/monolite/$(MONO_CORLIB_VERSION)
|
||||
monolite_path := $(topdir)/class/lib/monolite-$(BUILD_PLATFORM)/$(MONO_CORLIB_VERSION)
|
||||
|
||||
with_mono_path_monolite = MONO_PATH="$(monolite_path)$(PLATFORM_PATH_SEPARATOR)$(monolite_path)/Facades$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH"
|
||||
|
||||
@@ -90,7 +90,7 @@ ifdef use_monolite
|
||||
do-get-monolite:
|
||||
|
||||
do-profile-check-monolite:
|
||||
@echo "*** The contents of your 'monolite/$(MONO_CORLIB_VERSION)' directory may be out-of-date" 1>&2
|
||||
@echo "*** The contents of your 'monolite-$(BUILD_PLATFORM)/$(MONO_CORLIB_VERSION)' directory may be out-of-date" 1>&2
|
||||
@echo "*** You may want to try 'make get-monolite-latest'" 1>&2
|
||||
rm -f $(monolite_flag)
|
||||
exit 1
|
||||
@@ -98,12 +98,12 @@ do-profile-check-monolite:
|
||||
else
|
||||
|
||||
do-get-monolite:
|
||||
@echo "*** Downloading bootstrap required 'monolite/$(MONO_CORLIB_VERSION)'" 1>&2
|
||||
$(MAKE) $(MAKE_Q) -C $(mono_build_root) get-monolite-latest
|
||||
@echo "*** Downloading bootstrap required 'monolite-$(BUILD_PLATFORM)/$(MONO_CORLIB_VERSION)'" 1>&2
|
||||
$(MAKE) $(MAKE_Q) -C $(topdir)/class get-monolite-latest
|
||||
|
||||
do-profile-check-monolite: $(depsdir)/.stamp
|
||||
@echo "*** The runtime '$(PROFILE_RUNTIME)' doesn't appear to be usable." 1>&2
|
||||
@echo "*** Trying the 'monolite/$(MONO_CORLIB_VERSION)' directory." 1>&2
|
||||
@echo "*** Trying the 'monolite-$(BUILD_PLATFORM)/$(MONO_CORLIB_VERSION)' directory." 1>&2
|
||||
@echo dummy > $(monolite_flag)
|
||||
$(MAKE) do-profile-check
|
||||
|
||||
|
||||
@@ -6,12 +6,14 @@ BUILD_TOOLS_PROFILE = basic
|
||||
BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_CSC)
|
||||
MCS = $(BOOTSTRAP_MCS)
|
||||
|
||||
PLATFORMS = darwin linux win32
|
||||
|
||||
# nuttzing!
|
||||
|
||||
profile-check:
|
||||
@:
|
||||
|
||||
DEFAULT_REFERENCES = -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll
|
||||
DEFAULT_REFERENCES = -r:$(topdir)/class/lib/$(PROFILE_DIRECTORY)/mscorlib.dll
|
||||
PROFILE_MCS_FLAGS = -d:NET_4_0 -d:NET_4_5 -d:MONO -d:WIN_PLATFORM -nowarn:1699 -nostdlib $(DEFAULT_REFERENCES)
|
||||
|
||||
NO_SIGN_ASSEMBLY = yes
|
||||
|
||||
@@ -5,12 +5,14 @@ BOOTSTRAP_PROFILE = build
|
||||
BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_CSC)
|
||||
MCS = $(BOOTSTRAP_MCS)
|
||||
|
||||
PLATFORMS = darwin linux win32
|
||||
|
||||
# nuttzing!
|
||||
|
||||
profile-check:
|
||||
@:
|
||||
|
||||
DEFAULT_REFERENCES = -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll
|
||||
DEFAULT_REFERENCES = -r:$(topdir)/class/lib/$(PROFILE_DIRECTORY)/mscorlib.dll
|
||||
PROFILE_MCS_FLAGS = -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:WIN_PLATFORM -d:MULTIPLEX_OS -nowarn:1699 -nostdlib $(DEFAULT_REFERENCES) $(PLATFORM_DEBUG_FLAGS)
|
||||
|
||||
FRAMEWORK_VERSION = 4.5
|
||||
|
||||
@@ -2,8 +2,10 @@
|
||||
|
||||
include $(topdir)/build/profiles/net_4_x.make
|
||||
|
||||
PARENT_PROFILE = ../net_4_x/
|
||||
DEFAULT_REFERENCES = -r:$(topdir)/class/lib/net_4_x/mscorlib.dll
|
||||
PLATFORMS:=
|
||||
|
||||
PARENT_PROFILE = ../net_4_x$(if $(PROFILE_PLATFORM),-$(PROFILE_PLATFORM))/
|
||||
DEFAULT_REFERENCES = -r:$(topdir)/class/lib/net_4_x$(if $(PROFILE_PLATFORM),-$(PROFILE_PLATFORM))/mscorlib.dll
|
||||
PROFILE_MCS_FLAGS += -d:XBUILD_12
|
||||
|
||||
XBUILD_VERSION = 12.0
|
||||
|
||||
@@ -22,8 +22,8 @@ VERSION = 0.93
|
||||
|
||||
Q=$(if $(V),,@)
|
||||
# echo -e "\\t" does not work on some systems, so use 5 spaces
|
||||
Q_MCS=$(if $(V),,@echo "$(if $(MCS_MODE),MCS,CSC) [$(intermediate)$(PROFILE)] $(notdir $(@))";)
|
||||
Q_AOT=$(if $(V),,@echo "AOT [$(intermediate)$(PROFILE)] $(notdir $(@))";)
|
||||
Q_MCS=$(if $(V),,@echo "$(if $(MCS_MODE),MCS,CSC) [$(intermediate)$(PROFILE_DIRECTORY)] $(notdir $(@))";)
|
||||
Q_AOT=$(if $(V),,@echo "AOT [$(intermediate)$(PROFILE_DIRECTORY)] $(notdir $(@))";)
|
||||
|
||||
ifndef BUILD_TOOLS_PROFILE
|
||||
BUILD_TOOLS_PROFILE = build
|
||||
@@ -56,7 +56,6 @@ depsdir = $(topdir)/build/deps
|
||||
|
||||
# Make sure these propagate if set manually
|
||||
|
||||
export PLATFORM
|
||||
export PROFILE
|
||||
export MCS
|
||||
export MCS_FLAGS
|
||||
@@ -75,31 +74,18 @@ export RESGEN
|
||||
default: all
|
||||
|
||||
# Get initial configuration. pre-config is so that the builder can
|
||||
# override PLATFORM or PROFILE
|
||||
# override BUILD_PLATFORM or PROFILE
|
||||
|
||||
include $(topdir)/build/config-default.make
|
||||
-include $(topdir)/build/pre-config.make
|
||||
-include $(topdir)/build/config.make
|
||||
|
||||
# Default PLATFORM and PROFILE if they're not already defined.
|
||||
|
||||
ifndef PLATFORM
|
||||
ifeq ($(OS),Windows_NT)
|
||||
ifneq ($(V),)
|
||||
$(info *** Assuming PLATFORM is 'win32'.)
|
||||
endif
|
||||
PLATFORM = win32
|
||||
else
|
||||
ifneq ($(V),)
|
||||
$(info *** Assuming PLATFORM is 'linux'.)
|
||||
endif
|
||||
PLATFORM = linux
|
||||
endif
|
||||
endif
|
||||
|
||||
# Platform config
|
||||
|
||||
include $(topdir)/build/platforms/$(PLATFORM).make
|
||||
include $(topdir)/build/platforms/$(BUILD_PLATFORM).make
|
||||
|
||||
PROFILE_PLATFORM = $(if $(PLATFORMS),$(if $(filter $(PLATFORMS),$(HOST_PLATFORM)),$(HOST_PLATFORM),$(error Unknown platform "$(HOST_PLATFORM)" for profile "$(PROFILE)")))
|
||||
PROFILE_DIRECTORY = $(PROFILE)$(if $(PROFILE_PLATFORM),-$(PROFILE_PLATFORM))
|
||||
|
||||
ifdef PLATFORM_CORLIB
|
||||
corlib = $(PLATFORM_CORLIB)
|
||||
@@ -224,37 +210,34 @@ csproj: do-csproj
|
||||
# be listed _before_ including rules.make. However, the default
|
||||
# SUBDIRS list can come after, so don't use the eager := syntax when
|
||||
# using the defaults.
|
||||
PROFILE_SUBDIRS := $($(PROFILE)_SUBDIRS)
|
||||
ifndef PROFILE_SUBDIRS
|
||||
PROFILE_SUBDIRS = $(SUBDIRS)
|
||||
endif
|
||||
PROFILE_SUBDIRS = $(or $($(PROFILE)_SUBDIRS),$(SUBDIRS))
|
||||
|
||||
# These subdirs can be built in parallel
|
||||
PROFILE_PARALLEL_SUBDIRS := $($(PROFILE)_PARALLEL_SUBDIRS)
|
||||
ifndef PROFILE_PARALLEL_SUBDIRS
|
||||
PROFILE_PARALLEL_SUBDIRS = $(PARALLEL_SUBDIRS)
|
||||
endif
|
||||
PROFILE_PARALLEL_SUBDIRS = $(or $($(PROFILE)_PARALLEL_SUBDIRS),$(PARALLEL_SUBDIRS))
|
||||
|
||||
ifndef FRAMEWORK_VERSION_MAJOR
|
||||
FRAMEWORK_VERSION_MAJOR = $(basename $(FRAMEWORK_VERSION))
|
||||
endif
|
||||
|
||||
%-recursive:
|
||||
@set . $$MAKEFLAGS; final_exit=:; \
|
||||
@set . $$MAKEFLAGS; \
|
||||
case $$2 in --unix) shift ;; esac; \
|
||||
case $$2 in *=*) dk="exit 1" ;; *k*) dk=: ;; *) dk="exit 1" ;; esac; \
|
||||
list='$(PROFILE_SUBDIRS)'; for d in $$list ; do \
|
||||
(cd $$d && $(MAKE) $*) || { final_exit="exit 1"; $$dk; } ; \
|
||||
done; \
|
||||
if [ $* = "all" -a -n "$(PROFILE_PARALLEL_SUBDIRS)" ]; then \
|
||||
$(MAKE) do-all-parallel ENABLE_PARALLEL_SUBDIR_BUILD=1 || { final_exit="exit 1"; $$dk; } ; \
|
||||
else \
|
||||
list='$(PROFILE_PARALLEL_SUBDIRS)'; for d in $$list ; do \
|
||||
(cd $$d && $(MAKE) $*) || { final_exit="exit 1"; $$dk; } ; \
|
||||
done; \
|
||||
fi; \
|
||||
final_exit=:; \
|
||||
$(foreach subdir,$(PROFILE_SUBDIRS),$(MAKE) -C $(subdir) $* || { final_exit="exit 1"; $$dk; };) \
|
||||
$(if $(PROFILE_PARALLEL_SUBDIRS), \
|
||||
$(if $(filter $*,all), \
|
||||
$(MAKE) $(PROFILE_PARALLEL_SUBDIRS) ENABLE_PARALLEL_SUBDIR_BUILD=1 || { final_exit="exit 1"; $$dk; };, \
|
||||
$(foreach subdir,$(PROFILE_PARALLEL_SUBDIRS),$(MAKE) -C $(subdir) $* || { final_exit="exit 1"; $$dk; };))) \
|
||||
$$final_exit
|
||||
|
||||
ifdef ENABLE_PARALLEL_SUBDIR_BUILD
|
||||
.PHONY: $(PROFILE_PARALLEL_SUBDIRS)
|
||||
$(PROFILE_PARALLEL_SUBDIRS):
|
||||
@set . $$MAKEFLAGS; \
|
||||
$(MAKE) -C $@ all
|
||||
endif
|
||||
|
||||
#
|
||||
# Parallel build support
|
||||
#
|
||||
@@ -287,16 +270,6 @@ clean-dep-dir:
|
||||
|
||||
clean-local: clean-dep-dir
|
||||
|
||||
ifdef ENABLE_PARALLEL_SUBDIR_BUILD
|
||||
.PHONY: do-all-parallel $(PROFILE_PARALLEL_SUBDIRS)
|
||||
|
||||
do-all-parallel: $(PROFILE_PARALLEL_SUBDIRS)
|
||||
|
||||
$(PROFILE_PARALLEL_SUBDIRS):
|
||||
@set . $$MAKEFLAGS; \
|
||||
cd $@ && $(MAKE)
|
||||
endif
|
||||
|
||||
ifndef DIST_SUBDIRS
|
||||
DIST_SUBDIRS = $(SUBDIRS) $(DIST_ONLY_SUBDIRS)
|
||||
endif
|
||||
@@ -337,6 +310,8 @@ dist-default:
|
||||
|
||||
## Documentation stuff
|
||||
|
||||
Q_MDOC =$(if $(V),,@echo "MDOC [$(PROFILE)] $(notdir $(@))";)
|
||||
Q_MDOC =$(if $(V),,@echo "MDOC [$(PROFILE_DIRECTORY)] $(notdir $(@))";)
|
||||
MDOC =$(Q_MDOC) MONO_PATH="$(topdir)/class/lib/$(DEFAULT_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(topdir)/class/lib/$(DEFAULT_PROFILE)/mdoc.exe
|
||||
|
||||
Q_MDOC_UP=$(if $(V),,@echo "MDOC-UP [$(PROFILE_DIRECTORY)] $(notdir $(@))";)
|
||||
MDOC_UP =$(Q_MDOC_UP) MONO_PATH="$(topdir)/class/lib/$(DEFAULT_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(topdir)/class/lib/$(DEFAULT_PROFILE)/mdoc.exe update --delete -o Documentation/en
|
||||
|
||||
@@ -20,9 +20,10 @@ TEST_RUNTIME_WRAPPERS_PATH = $(shell dirname $(RUNTIME))/_tmpinst/bin
|
||||
ifndef NO_TEST
|
||||
|
||||
test_nunit_lib = nunitlite.dll
|
||||
xunit_core := xunit.core xunit.abstractions xunit.assert
|
||||
xunit_core := xunit.core xunit.abstractions xunit.assert Xunit.NetCore.Extensions
|
||||
xunit_deps := System.Runtime
|
||||
xunit_class_deps := Xunit.NetCore.Extensions
|
||||
xunit_src := $(patsubst %,$(topdir)/../external/xunit-binaries/%,BenchmarkAttribute.cs BenchmarkDiscover.cs)
|
||||
xunit_class_deps :=
|
||||
|
||||
xunit_libs_ref = $(patsubst %,-r:$(topdir)/../external/xunit-binaries/%.dll,$(xunit_core))
|
||||
xunit_libs_ref += $(patsubst %,-r:$(topdir)/class/lib/$(PROFILE)/Facades/%.dll,$(xunit_deps))
|
||||
@@ -55,16 +56,18 @@ tests_CLEAN_FILES += $(ASSEMBLY:$(ASSEMBLY_EXT)=_test*.dll) $(ASSEMBLY:$(ASSEMBL
|
||||
|
||||
xtest_sourcefile = $(PROFILE)_$(ASSEMBLY:$(ASSEMBLY_EXT)=_xtest.dll.sources)
|
||||
|
||||
ifeq ($(wildcard $(xtest_sourcefile)),)
|
||||
xtest_sourcefile = $(ASSEMBLY:$(ASSEMBLY_EXT)=_xtest.dll.sources)
|
||||
endif
|
||||
|
||||
xunit_test_lib = $(PROFILE)_$(ASSEMBLY:$(ASSEMBLY_EXT)=_xunit-test.dll)
|
||||
|
||||
xtest_response = $(depsdir)/$(xtest_lib).response
|
||||
xtest_makefrag = $(depsdir)/$(xtest_lib).makefrag
|
||||
xtest_response = $(depsdir)/$(xunit_test_lib).response
|
||||
xtest_makefrag = $(depsdir)/$(xunit_test_lib).makefrag
|
||||
xtest_flags = -r:$(the_assembly) $(xunit_libs_ref) $(XTEST_MCS_FLAGS) $(XTEST_LIB_MCS_FLAGS)
|
||||
|
||||
ifeq ($(wildcard $(xtest_sourcefile)),)
|
||||
xtest_sourcefile = $(ASSEMBLY:$(ASSEMBLY_EXT)=_xtest.dll.sources)
|
||||
tests_CLEAN_FILES += $(xunit_test_lib) $(xtest_response) $(xtest_makefrag)
|
||||
endif
|
||||
|
||||
ifndef HAVE_CS_TESTS
|
||||
HAVE_CS_TESTS := $(wildcard $(test_sourcefile))
|
||||
endif
|
||||
@@ -87,9 +90,6 @@ endif
|
||||
|
||||
tests_CLEAN_FILES += $(topdir)/build/deps/nunit-$(PROFILE).stamp
|
||||
|
||||
$(topdir)/class/lib/$(PROFILE)/$(PARENT_PROFILE)Xunit.NetCore.Extensions.dll:
|
||||
$(MAKE) -C $(topdir)/class/Xunit.NetCore.Extensions
|
||||
|
||||
endif
|
||||
|
||||
test_assemblies :=
|
||||
@@ -220,8 +220,8 @@ run-xunit-test-lib: xunit-test-local
|
||||
$$ok
|
||||
@rm -f xunit.execution.desktop.dll
|
||||
|
||||
$(xunit_test_lib): $(the_assembly) $(xtest_response) $(xunit_libs_dep)
|
||||
$(TEST_COMPILE) $(LIBRARY_FLAGS) $(XTEST_LIB_FLAGS) -target:library -out:$@ $(xtest_flags) @$(xtest_response)
|
||||
$(xunit_test_lib): $(the_assembly) $(xtest_response) $(xunit_libs_dep) $(xunit_src)
|
||||
$(TEST_COMPILE) $(LIBRARY_FLAGS) $(XTEST_LIB_FLAGS) -target:library -out:$@ $(xtest_flags) @$(xtest_response) $(xunit_src)
|
||||
|
||||
xtest_response_preprocessed = $(xtest_response)_preprocessed
|
||||
|
||||
|
||||
Reference in New Issue
Block a user