forked from mono/mono
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile.am
144 lines (121 loc) · 5.24 KB
/
Makefile.am
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
AUTOMAKE_OPTIONS = foreign
ACLOCAL_AMFLAGS = -I .
MOONLIGHT_SUBDIRS = $(libgc_dir) $(eglib_dir) mono $(ikvm_native_dir) data
if CROSS_COMPILING
SUBDIRS = po $(libgc_dir) $(eglib_dir) mono $(ikvm_native_dir) data runtime scripts man samples web msvc $(docs_dir)
# Keep in sync with SUBDIRS
## 'tools' is not normally built
DIST_SUBDIRS = po libgc eglib mono ikvm-native data runtime scripts man samples web tools msvc docs
else
if ONLY_MOONLIGHT
SUBDIRS = $(MOONLIGHT_SUBDIRS) runtime
else
SUBDIRS = po $(libgc_dir) $(eglib_dir) mono $(ikvm_native_dir) support data runtime scripts man samples web msvc $(docs_dir)
# Keep in sync with SUBDIRS
## 'tools' is not normally built
DIST_SUBDIRS = po libgc eglib mono ikvm-native support data runtime scripts man samples web tools msvc docs
endif
endif
EXTRA_DIST= nls.m4 po.m4 progtest.m4 mono-uninstalled.pc.in build-mingw32.sh LICENSE mkinstalldirs autogen.sh
DISTCHECK_CONFIGURE_FLAGS = EXTERNAL_MCS=false EXTERNAL_RUNTIME=false
# Distribute the 'mcs' tree too
dist-hook:
test -d $(distdir)/mcs || mkdir $(distdir)/mcs
d=`cd $(distdir)/mcs && pwd`; cd $(mcs_topdir) && $(MAKE) distdir=$$d dist-recursive
pkgconfigdir = $(libdir)/pkgconfig
noinst_DATA = mono-uninstalled.pc
DISTCLEANFILES= mono-uninstalled.pc
.PHONY: get-monolite-latest mcs-do-compiler-tests compiler-tests bootstrap-world
# building with monolite
mcslib = $(mcs_topdir)/class/lib
monolite = $(mcslib)/monolite
monolite_url = http://mono.ximian.com/daily/monolite-latest.tar.gz
get-monolite-latest:
-rm -fr $(mcslib)/monolite-*
-mkdir -p $(mcslib)
test ! -d $(monolite) || test ! -d $(monolite).old || rm -fr $(monolite).old
test ! -d $(monolite) || mv -f $(monolite) $(monolite).old
cd $(mcslib) && { (wget -O- $(monolite_url) || curl $(monolite_url)) | gzip -d | tar xf - ; }
cd $(mcslib) && mv -f monolite-* monolite
compiler-tests: build-test-mono-mcs-moon
compiler-tests-net_2_0:
-rm -f $(mcs_topdir)/build/common/Consts.cs.save
-mv -f $(mcs_topdir)/build/common/Consts.cs $(mcs_topdir)/build/common/Consts.cs.save
cd $(mcs_topdir) && $(MAKE) PROFILE=net_2_0_bootstrap clean
cd $(mcs_topdir) && $(MAKE) PROFILE=net_2_0 clean
-mv -f $(mcs_topdir)/build/common/Consts.cs.save $(mcs_topdir)/build/common/Consts.cs
$(MAKE) all
$(MAKE) test_profiles=net_2_0 mcs-do-compiler-tests
bootstrap-world: compiler-tests
$(MAKE) install
bootstrap-world-net_2_0: compiler-tests-net_2_0
$(MAKE) install
# internal targets
.PHONY: build-test-mono-mcs-moon
build-test-mono-mcs-moon: do-build-moon-maybe
$(MAKE) mcs-do-compiler-tests
.PHONY: do-build-mono-mcs
do-build-mono-mcs: mcs-do-clean
$(MAKE) all
if MOONLIGHT
moon-do-build: config.h
@list='$(MOONLIGHT_SUBDIRS)'; for subdir in $$list; do \
echo "Making all in $$subdir"; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) all); \
done;
cd $(mcs_topdir) && NO_DIR_CHECK=1 $(MAKE) PROFILE=moonlight_raw all
moon-do-clean:
@list='$(MOONLIGHT_SUBDIRS)'; for subdir in $$list; do \
echo "Making clean in $$subdir"; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) clean); \
done;
cd $(mcs_topdir) && NO_DIR_CHECK=1 $(MAKE) PROFILE=moonlight_raw clean
endif
mcs-do-clean:
cd runtime && $(MAKE) clean-local
cd mono/tests && $(MAKE) clean
mcs-do-compiler-tests:
cd runtime && $(MAKE) test_select='TEST_SUBDIRS="tests errors"' check-local
cd mono/tests && $(MAKE) check
win32getdeps:
wget http://www.go-mono.com/archive/pkgconfig-0.11-20020310.zip
wget http://www.go-mono.com/archive/glib-2.0.4-20020703.zip
wget http://www.go-mono.com/archive/glib-dev-2.0.4-20020703.zip
wget http://www.go-mono.com/archive/libiconv-1.7.zip
wget http://www.go-mono.com/archive/libiconv-dev-1.7.zip
wget http://www.go-mono.com/archive/libintl-0.10.40-20020101.zip
unzip -n -d / pkgconfig-0.11-20020310.zip
unzip -n -d / glib-2.0.4-20020703.zip
unzip -n -d / glib-dev-2.0.4-20020703.zip
unzip -n -d / libiconv-1.7.zip
unzip -n -d / libiconv-dev-1.7.zip
unzip -n -d / libintl-0.10.40-20020101.zip
win32setup:
makensis /DMILESTONE=$(VERSION) /DSOURCE_INSTALL_DIR=$(SOURCE_INSTALL_DIR) /DBUILDNUM=$(BUILDNUM) monowiz.win32.nsi
bootstrap: all
@echo "*** 'make bootstrap' is obsolete. Just run 'make' to perform a combined mono+mcs build"
exit 1
patch-quiet:
find mono -name Makefile -exec scripts/patch-quiet.sh {} \;
find libgc -name Makefile -exec scripts/patch-quiet.sh {} \;
update-csproj:
-rm msvc/scripts/order
-mkdir msvc/scripts/inputs
(cd runtime; make V=1 extra_targets=csproj-local)
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 | \
(echo " <project dir=\"$$1\" library=\"$$2\">"; \
read boot; echo " <boot>$$boot</boot>"; \
read mcs; echo " <mcs>$$mcs</mcs>"; \
read flags; echo " <flags>$$flags</flags>"; \
read output; echo " <output>$$output</output>"; \
read built; echo " <built_sources>$$built</built_sources>"; \
read libou; echo " <library_output>$$libou</library_output>"; \
read resp; echo " <response>$$resp</response>"; \
echo " </project>") >> msvc/scripts/order.xml; \
done
echo "</root>" >> msvc/scripts/order.xml