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
@ -1,7 +1,5 @@
|
||||
This list of authors is outdated. For a full list of contributors
|
||||
see:
|
||||
|
||||
http://www.go-mono.com/archive/mono-1.0.html
|
||||
check out the git history.
|
||||
|
||||
C# Compiler:
|
||||
Miguel de Icaza (miguel@ximian.com)
|
||||
|
341
mcs/COPYING
341
mcs/COPYING
@ -1,340 +1 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program 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 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
See LICENSE file in the project root for full license information.
|
||||
|
112
mcs/INSTALL.txt
112
mcs/INSTALL.txt
@ -23,7 +23,7 @@ compilers and tools.
|
||||
* *
|
||||
*********************************************************************
|
||||
|
||||
If you only want to build a snapshot or a fresh CVS checkout of the
|
||||
If you only want to build a snapshot or a fresh checkout of the
|
||||
sources, you should go into the `mono' sibling directory and issue the
|
||||
make command, like this:
|
||||
|
||||
@ -35,72 +35,6 @@ make command, like this:
|
||||
The compilation is bundled with the build due to dependencies on the
|
||||
class libraries on the runtime.
|
||||
|
||||
Build Features for Developers of Mono.
|
||||
======================================
|
||||
|
||||
These instructions apply to both Linux and Windows. To build this
|
||||
package, you must already have a C# compiler installed. This means
|
||||
that to build on Linux, you need to get a distribution of the MCS
|
||||
binaries; these are called monocharges. They can be found at
|
||||
www.go-mono.com/daily. On Windows, you can just use the
|
||||
Microsoft compiler. You also need GNU make to build the software (on
|
||||
Windows, you will need for example the Cygwin environment setup).
|
||||
|
||||
You can customize your MCS configuration by using:
|
||||
|
||||
./configure [--prefix=PREFIX] [--profile=PROFILE]
|
||||
|
||||
If you do not run the above, the defaults are /usr/local for the
|
||||
prefix, and `default' for the profile.
|
||||
|
||||
To build the compiler and class libraries, run:
|
||||
|
||||
make
|
||||
|
||||
The libraries will be placed in the directory class/lib/ and the mcs
|
||||
compiler executable in mcs/.
|
||||
|
||||
To install them, run the following:
|
||||
|
||||
make install
|
||||
|
||||
If you get "corlib out of sync" errors, try
|
||||
|
||||
make PROFILE="atomic"
|
||||
|
||||
A better alternative would be to fire off a 'make' from a sibling or
|
||||
parent 'mono/' tree.
|
||||
|
||||
Troubleshooting
|
||||
===============
|
||||
|
||||
We try to maintain the CVS tree such that it is bootstrapable from the
|
||||
latest released version of mono and mcs. Occasionally, something in the
|
||||
compiler or runtime changes enough that an existing installation cannot
|
||||
complete a bootstrap from cvs. In this case, go to
|
||||
http://go-mono.com/daily and download a monocharge or monolite tarball.
|
||||
Unpack and copy the .dlls to $prefix/lib and .exes to $prefix/bin/.
|
||||
Then you should be able to complete the build normally (i.e. using make
|
||||
bootstrap).
|
||||
|
||||
wget http://go-mono.com/daily/monolite-20040505.tar.gz
|
||||
tar -zxvf monolite-20040505.tar.gz
|
||||
cd monolite-20040505
|
||||
env prefix=/usr/local sh recharge.sh
|
||||
|
||||
Monocharges
|
||||
===========
|
||||
|
||||
If you are tracking Mono's development, you may sometimes need to share
|
||||
the compiled libraries with others, you can do:
|
||||
|
||||
make monocharge
|
||||
|
||||
Or a light version, which contains only the essential libraries and
|
||||
results in a much smaller file:
|
||||
|
||||
make monocharge-lite
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
@ -110,48 +44,15 @@ place your configuration options in build/config.make
|
||||
A list of variables that control the build are listed in the file
|
||||
build/config-default.make.
|
||||
|
||||
Build profiles? What?
|
||||
======================
|
||||
|
||||
Don't worry about them too much. If you're wondering which to use:
|
||||
use the default if you can (that's why it's the default!) and use
|
||||
the atomic if you have to.
|
||||
|
||||
The default profile uses the C# compiler and class libaries as they
|
||||
are built. This lets you build MCS without needing to have already
|
||||
installed it, but can fail if the libraries change significantly.
|
||||
(This is the source of the dreaded "corlib out of sync" warning, most
|
||||
of the time.)
|
||||
|
||||
The atomic profile tries to use the system compiler and preexisting
|
||||
MCS libraries. New libaries are built against this constant reference
|
||||
point, so if a newly built library has a binary incompatibility, the
|
||||
rest of your build can proceed.
|
||||
|
||||
If you want to always use the atomic profile, run this command:
|
||||
|
||||
./configure --profile=atomic
|
||||
|
||||
More About the Build System
|
||||
===========================
|
||||
|
||||
More information is found in build/README.*. Here's a quick rundown
|
||||
of the features:
|
||||
|
||||
* Unified build system for Windows and Linux. Windows is still
|
||||
fairly untested, but "should work." Unfortunately I don't
|
||||
have a Windows machine to test on, but Gonzalo can get
|
||||
corlib to build I think and that's about as complicated as
|
||||
it gets.
|
||||
|
||||
* Profile support. 'make PROFILE=profilename' or 'export
|
||||
PROFILE=profilename ; make' will work. Profiles are defined
|
||||
in build/profiles/profilename.make ; right now there isn't
|
||||
too much going on. The 'bootstrap' profile will build the
|
||||
way makefile.gnu did on Linux, by setting MONO_PATH and
|
||||
using mcs/mcs.exe; the default profile will build against
|
||||
the existing system libraries and compile with 'mcs', which
|
||||
should reduce a lot of 'corlib out of sync' warnings.
|
||||
in build/profiles/profilename.make ;
|
||||
|
||||
* Important variables are shared among makefiles now; you can
|
||||
edit build/config.make (see build/config-default.make for a
|
||||
@ -164,16 +65,11 @@ of the features:
|
||||
|
||||
* Test libraries now live in class/Library/Library_test.dll,
|
||||
not class/Library/Test. 'make test' will build the test DLL,
|
||||
'make run-test' will actually run the nunit tests. Set the
|
||||
variable TEST_HARNESS to run with a program other than
|
||||
nunit-console (for example, nunit-gtk).
|
||||
'make run-test' will actually run the nunit tests.
|
||||
|
||||
* Standardized recursive targets: all, clean, install, test,
|
||||
run-test. Read build/README.makefiles for definitions of
|
||||
what they should do
|
||||
|
||||
* (Relatively) sane 'make dist' target; 'make distcheck'
|
||||
support; cute 'make monocharge' and 'make monocharge-lite'
|
||||
targets. They're made possible because 'make install' now
|
||||
supports DESTDIR a la automake, which I'm sure someone cares
|
||||
about.
|
||||
support;
|
||||
|
52
mcs/Makefile
52
mcs/Makefile
@ -95,8 +95,7 @@ DISTFILES = \
|
||||
mkinstalldirs \
|
||||
MonoIcon.png \
|
||||
README \
|
||||
ScalableMonoIcon.svg \
|
||||
winexe.in
|
||||
ScalableMonoIcon.svg
|
||||
|
||||
dist-local: dist-default
|
||||
|
||||
@ -138,24 +137,35 @@ distcheck: dist-tarball
|
||||
rm -f before.list after.list distdist.list ; \
|
||||
rm -rf $(package) InstallTest
|
||||
|
||||
monocharge:
|
||||
chargedir=monocharge-`date -u +%Y%m%d` ; \
|
||||
mkdir "$$chargedir" ; \
|
||||
DESTDIR=`cd "$$chargedir" && pwd` ; \
|
||||
$(MAKE) install DESTDIR="$$DESTDIR" || exit 1 ; \
|
||||
tar cvjf "$$chargedir".tar.bz2 "$$chargedir" ; \
|
||||
rm -rf "$$chargedir"
|
||||
# Targets for creating API diffs of the framework
|
||||
|
||||
# A bare-bones monocharge.
|
||||
MONO_API_SNAPSHOT_PATH := $(topdir)../external/api-snapshot/
|
||||
GENAPI := $(MONO_API_SNAPSHOT_PATH)tools/genapi/GenAPI.exe
|
||||
MONO_API_SNAPSHOT_PROFILE_PATH := $(MONO_API_SNAPSHOT_PATH)profiles/$(PROFILE)/
|
||||
MONO_API_ASSEMBLIES_IGNORED := $(addprefix $(topdir)class/lib/$(PROFILE)/, Mono.CSharp.dll SystemWebTestShim.dll standalone-runner-support.dll nunit.core.dll nunit.core.extensions.dll nunit.core.interfaces.dll nunit.framework.dll nunit.framework.extensions.dll nunit.mocks.dll nunit.util.dll nunit-console-runner.dll nunitlite.dll)
|
||||
MONO_API_ASSEMBLIES := $(filter-out $(MONO_API_ASSEMBLIES_IGNORED), $(wildcard $(topdir)class/lib/$(PROFILE)/*.dll)) $(wildcard $(topdir)class/lib/$(PROFILE)/Facades/*.dll)
|
||||
MONO_API_ASSEMBLIES_CS := $(MONO_API_ASSEMBLIES:$(topdir)class/lib/$(PROFILE)/%.dll=$(MONO_API_SNAPSHOT_PROFILE_PATH)%.cs)
|
||||
|
||||
monocharge-lite:
|
||||
chargedir=monocharge-lite-`date -u +%Y%m%d` ; \
|
||||
mkdir "$$chargedir" ; \
|
||||
DESTDIR=`cd "$$chargedir" && pwd` ; \
|
||||
$(MAKE) -C mcs install DESTDIR="$$DESTDIR" || exit 1; \
|
||||
$(MAKE) -C class/corlib install DESTDIR="$$DESTDIR" || exit 1; \
|
||||
$(MAKE) -C class/System install DESTDIR="$$DESTDIR" || exit 1; \
|
||||
$(MAKE) -C class/System.XML install DESTDIR="$$DESTDIR" || exit 1; \
|
||||
$(MAKE) -C class/Mono.CSharp.Debugger install DESTDIR="$$DESTDIR" || exit 1; \
|
||||
tar cvjf "$$chargedir".tar.bz2 "$$chargedir" ; \
|
||||
rm -rf "$$chargedir"
|
||||
$(MONO_API_SNAPSHOT_PROFILE_PATH)%.cs: $(topdir)class/lib/$(PROFILE)/%.dll $(GENAPI) $(MONO_API_SNAPSHOT_PATH)profiles/license-header.txt
|
||||
@mkdir -p $(dir $@)
|
||||
$(Q) MONO_PATH=$(topdir)class/lib/$(BUILD_TOOLS_PROFILE) $(RUNTIME) $(GENAPI) -libPath:$(topdir)class/lib/$(PROFILE),$(topdir)class/lib/$(PROFILE)/Facades -out:$(dir $@) -headerFile:$(MONO_API_SNAPSHOT_PATH)profiles/license-header.txt -assemblyAttributes -typeForwardedTo -assemblyVersion -assembly:$< || echo "Couldn't process assembly." > $@
|
||||
|
||||
mono-api-current: $(MONO_API_ASSEMBLIES_CS)
|
||||
|
||||
mono-api-current-clean:
|
||||
$(Q) rm -rf "$(MONO_API_SNAPSHOT_PROFILE_PATH)"
|
||||
|
||||
mono-api-diff:
|
||||
@echo "Regenerating API snapshot..."
|
||||
$(Q) $(MAKE) mono-api-current-clean PROFILE=net_4_x
|
||||
$(Q) $(MAKE) mono-api-current-clean PROFILE=monotouch
|
||||
$(Q) $(MAKE) mono-api-current-clean PROFILE=monodroid
|
||||
$(Q) $(MAKE) mono-api-current PROFILE=net_4_x
|
||||
$(Q) $(MAKE) mono-api-current PROFILE=monotouch
|
||||
$(Q) $(MAKE) mono-api-current PROFILE=monodroid
|
||||
@echo "Checking public API differences..."
|
||||
$(Q) cd $(MONO_API_SNAPSHOT_PATH); git add -A .
|
||||
$(Q) cd $(MONO_API_SNAPSHOT_PATH); git diff --no-renames HEAD > $(abspath $(topdir))/temp.patch
|
||||
@mkdir -p apidiff
|
||||
$(Q) sed -e "/@diffdata@/r temp.patch" -e "/@diffdata@/d" -e "s/@title@/Public API Diff/g" -e "s/@description@/If the changes are intentional, run <code>make -C mcs mono-api-diff<\/code> locally and commit changes in external\/api-snapshot./g" diff.html.in > apidiff/index.html
|
||||
$(Q) if [ -s temp.patch ]; then echo "Error: Found public API differences, see mcs/apidiff/index.html. If the changes are intentional, please go to external/api-snapshot and commit them."; rm -f temp.patch; exit 1; else echo "No differences found."; rm -f temp.patch; fi
|
||||
|
39
mcs/README
39
mcs/README
@ -19,31 +19,34 @@ package module which drives the compilation of this directory.
|
||||
class/
|
||||
The class libraries.
|
||||
|
||||
docs/
|
||||
Some notes on the compiler and the class libraries.
|
||||
|
||||
errors/
|
||||
Sample programs that should generate errors by the C# compiler.
|
||||
|
||||
ilasm/
|
||||
The IL assembler.
|
||||
|
||||
jay/
|
||||
Yacc-based parser generator.
|
||||
|
||||
mcs/
|
||||
The Mono C# compiler
|
||||
|
||||
nunit24/
|
||||
An old copy of the NUnit 2.4 library that we ship for historical reasons.
|
||||
|
||||
packages/
|
||||
Integrates some packages from NuGet (like Roslyn) into the build system.
|
||||
|
||||
tests/
|
||||
Regression test suite for the C# compiler
|
||||
|
||||
docs/
|
||||
Some notes on the compiler and the class libraries.
|
||||
|
||||
nant/
|
||||
A copy of nant source code, used during the build process
|
||||
on Windows.
|
||||
|
||||
tools/
|
||||
Various small development tools: CorCompare used to compare
|
||||
two assemblies for differences in the API; TypeReflector is
|
||||
a tool used to introspect types from assemblies from the
|
||||
command line; MonoStyle helps you keep your code indendented
|
||||
with the Mono programming style.
|
||||
two assemblies for differences in the API; csharp is a C# REPL;
|
||||
cil-strip trims IL from assemblies.
|
||||
|
||||
* Building Individual Directories
|
||||
=================================
|
||||
@ -51,14 +54,14 @@ package module which drives the compilation of this directory.
|
||||
You can build individual components in the hierarchy by running the command
|
||||
"make", and to install it use "make install".
|
||||
|
||||
By default, the 2.x profile is built, if you want to build the net 1.1 profile,
|
||||
By default, the 4.x profile is built, if you want to build other profiles,
|
||||
use the following command:
|
||||
|
||||
make PROFILE=net_1_1
|
||||
make PROFILE=<profilename>
|
||||
|
||||
And to install:
|
||||
|
||||
make PROFILE=net_1_1 install
|
||||
make PROFILE=<profilename> install
|
||||
|
||||
To turn on verbose mode in the build (for example to diagnose a
|
||||
problem), you can use the V=1 flag, like this:
|
||||
@ -68,16 +71,14 @@ problem), you can use the V=1 flag, like this:
|
||||
* Running Unit tests
|
||||
====================
|
||||
|
||||
You can run unit tests in individual components by running the command
|
||||
"make run-test". If you want to run tests for a different profile (say
|
||||
'net_1_1')
|
||||
You can run unit tests in individual components by running the command:
|
||||
|
||||
make run-test PROFILE=net_1_1
|
||||
make run-test
|
||||
|
||||
If you want to only run the tests in a single fixture (say
|
||||
'MonoTests.System.TypeTest'), you can use
|
||||
|
||||
make run-test TEST_HARNESS_FLAGS=/fixture:MonoTests.System.TypeTest
|
||||
make run-test TEST_FIXTURE=System.TypeTest
|
||||
|
||||
* Acknowledgements
|
||||
==================
|
||||
|
@ -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
|
||||
|
||||
|
@ -60,7 +60,7 @@ System.Runtime.Numerics System.Xml.XDocument System.Reflection.Extensions System
|
||||
System.Diagnostics.FileVersionInfo System.Security.Cryptography.Primitives System.Security.Cryptography.Algorithms System.ValueTuple \
|
||||
System.Text.Encoding.CodePages
|
||||
|
||||
build_PARALLEL_SUBDIRS = $(basic_PARALLEL_SUBDIRS)
|
||||
build_PARALLEL_SUBDIRS = $(basic_PARALLEL_SUBDIRS) System.Text.RegularExpressions System.Diagnostics.Contracts
|
||||
|
||||
monodroid_SUBDIRS = $(monotouch_SUBDIRS)
|
||||
monodroid_PARALLEL_SUBDIRS = $(monotouch_PARALLEL_SUBDIRS)
|
||||
|
@ -1,25 +1 @@
|
||||
The MIT X11 License covers most of the class libraries in the Mono
|
||||
project. Some third party libraries come from different projects, and
|
||||
are licensed under their own terms.
|
||||
|
||||
|
||||
Copyright (c) 2001, 2002, 2003 The Mono Project
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
See LICENSE file in the project root for full license information.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user