+#
+# Scripts that we install
+#
+# Starting with Mono 2.0, the majority of the tools default to the
+# 2.0 profile. Commands that support the 1.0 toolchain and must
+# run under 1.0 have the number 1 appended to their command names
+# (for example mcs1 is the C# 1.0 compiler) and are listed in the
+# scripts_1_0 compat variable.
+#
+# To preserve compatibility with old Makefiles and tools we keep the
+# command names that had the suffix 2 (like wsdl2)
+#
+if USE_BATCH_FILES
+SCRIPT_IN=script.bat.in
+FILTER=sed -e 's,\.bat\.exe,\.exe,g' -e 's,/,\\,g'
+SCRIPT_SUFFIX=.bat
+else
+SCRIPT_IN=script.in
+FILTER=cat
+SCRIPT_SUFFIX=
+endif
+
+COMPAT_1_0_SUFFIX=1$(SCRIPT_SUFFIX)
+COMPAT_2_0_SUFFIX=2$(SCRIPT_SUFFIX)
+COMPAT_4_0_SUFFIX=4$(SCRIPT_SUFFIX)
+
bin_SCRIPTS = \
- $(scripts_1_0) \
- $(scripts_1_0_umask) \
+ $(scripts_4_0_umask) \
+ $(scripts_defaults) \
$(scripts_2_0) \
- $(scripts_2_1) \
$(scripts_service) \
$(scripts_nunit) \
$(scripts_rpmhelpers) \
- mono-test-install
-
-scripts_1_0 = \
- al \
- caspol \
- cert2spc \
- certmgr \
- chktrust \
- cilc \
- disco \
- dtd2xsd \
- dtd2rng \
- gacutil \
- genxs \
- ilasm \
- installvst \
- macpack \
- mbas \
- mcs \
- mjs \
- mkbundle \
- monop \
- monolinker \
- mono-api-diff \
- mono-api-info \
- mono-shlib-cop \
- mono-xmltool \
- mozroots \
- permview \
- prj2make \
- resgen \
- secutil \
- setreg \
- signcode \
- soapsuds \
- sqlsharp \
- wsdl \
- xsd
-
-scripts_1_0_umask = \
- makecert \
- sn
+ $(MDOC_SUBCOMMANDS) \
+ $(MDOC_COMPAT) \
+ mono-test-install \
+ peverify \
+ mcs \
+ gmcs \
+ mono-heapviz \
+ $(scripts_mono_configuration_crypto)
+
+if INSTALL_4_0
+bin_SCRIPTS += $(scripts_4_0)
+bin_SCRIPTS += dmcs
+endif
+
+scripts_4_0_umask = \
+ makecert$(SCRIPT_SUFFIX) \
+ sn$(SCRIPT_SUFFIX)
+
+deprecated = \
+ cilc(SCRIPT_SUFFIX) \
+ mjs(SCRIPT_SUFFIX)
scripts_2_0 = \
- al2 \
- gmcs \
- httpcfg \
- ilasm2 \
- mkbundle2 \
- mono-api-info2 \
- monop2 \
- resgen2 \
- wsdl2 \
- sgen \
- xbuild
-
-scripts_2_1 = smcs
+ al2$(SCRIPT_SUFFIX) \
+ gacutil2$(SCRIPT_SUFFIX) \
+ mdoc$(SCRIPT_SUFFIX) \
+ monop2$(SCRIPT_SUFFIX) \
+ resgen2$(SCRIPT_SUFFIX) \
+ wsdl2$(SCRIPT_SUFFIX)
+
+scripts_4_0 = \
+ disco$(SCRIPT_SUFFIX) \
+ dtd2xsd$(SCRIPT_SUFFIX) \
+ dtd2rng$(SCRIPT_SUFFIX) \
+ installvst$(SCRIPT_SUFFIX) \
+ genxs$(SCRIPT_SUFFIX) \
+ macpack$(SCRIPT_SUFFIX) \
+ mono-cil-strip$(SCRIPT_SUFFIX) \
+ prj2make$(SCRIPT_SUFFIX) \
+ soapsuds$(SCRIPT_SUFFIX) \
+ caspol$(SCRIPT_SUFFIX) \
+ cert2spc$(SCRIPT_SUFFIX) \
+ certmgr$(SCRIPT_SUFFIX) \
+ chktrust$(SCRIPT_SUFFIX) \
+ csharp$(SCRIPT_SUFFIX) \
+ httpcfg$(SCRIPT_SUFFIX) \
+ lc$(SCRIPT_SUFFIX) \
+ mconfig$(SCRIPT_SUFFIX) \
+ mod$(SCRIPT_SUFFIX) \
+ monolinker$(SCRIPT_SUFFIX) \
+ mono-api-info$(SCRIPT_SUFFIX) \
+ mono-shlib-cop$(SCRIPT_SUFFIX) \
+ mozroots$(SCRIPT_SUFFIX) \
+ permview$(SCRIPT_SUFFIX) \
+ pdb2mdb$(SCRIPT_SUFFIX) \
+ xsd$(SCRIPT_SUFFIX) \
+ mono-xmltool$(SCRIPT_SUFFIX) \
+ setreg$(SCRIPT_SUFFIX) \
+ secutil$(SCRIPT_SUFFIX) \
+ signcode$(SCRIPT_SUFFIX) \
+ sgen$(SCRIPT_SUFFIX) \
+ sqlmetal$(SCRIPT_SUFFIX) \
+ sqlsharp$(SCRIPT_SUFFIX) \
+ svcutil$(SCRIPT_SUFFIX) \
+ xbuild$(SCRIPT_SUFFIX) \
+ ccrewrite$(SCRIPT_SUFFIX)
+
+MDOC_SUBCOMMANDS = \
+ mdoc-assemble \
+ mdoc-export-html \
+ mdoc-export-msxdoc \
+ mdoc-update \
+ mdoc-validate
+
+MDOC_COMPAT = \
+ mdassembler \
+ mdvalidater \
+ monodocer \
+ monodocs2html \
+ monodocs2slashdoc
+
+#
+# these are the new defaults, 2.0 profile-based commands
+#
+# we can move scripts_1_0 scripts here as we see fit, if we need to
+# keep a 1.0 command available, we should additionally put it on
+# the scripts_1_0_compat list
+#
+scripts_defaults = \
+ al$(SCRIPT_SUFFIX) \
+ ilasm$(SCRIPT_SUFFIX) \
+ gacutil$(SCRIPT_SUFFIX) \
+ mkbundle$(SCRIPT_SUFFIX) \
+ monop$(SCRIPT_SUFFIX) \
+ resgen$(SCRIPT_SUFFIX) \
+ wsdl$(SCRIPT_SUFFIX)
+
scripts_service = mono-service mono-service2
-scripts_nunit = nunit-console nunit-console2
+scripts_nunit = nunit-console$(SCRIPT_SUFFIX) nunit-console2$(SCRIPT_SUFFIX)
scripts_rpmhelpers = mono-find-provides mono-find-requires
+scripts_mono_configuration_crypto = mono-configuration-crypto$(SCRIPT_SUFFIX)
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA= mono-nunit.pc
-
-CLEANFILES = $(scripts_1_0) $(scripts_1_0_umask) $(scripts_2_0) $(scripts_2_1) gmcs mono-service mono-service2
+CLEANFILES = $(scripts_mono_configuration_crypto) $(scripts_4_0_umask) $(scripts_2_0) $(scripts_defaults) $(scripts_4_0) mono-service mono-service2 nunit-console nunit-console2 mono-find-provides mono-find-requires mod $(MDOC_SUBCOMMANDS)
DISTCLEANFILES = $(pkgconfig_DATA) $(scripts_rpmhelpers)
-EXTRA_DIST = \
- script.in \
- script_umask.in \
- smcs.in \
- mono-service.in \
- mono-nunit.pc.in \
- mono-find-provides.in \
- mono-find-requires.in
+EXTRA_DIST = \
+ script.in \
+ script.bat.in \
+ script_umask.in \
+ script_umask.bat.in \
+ mod.in \
+ mono-service.in \
+ mono-find-provides.in \
+ mono-find-requires.in \
+ peverify.in \
+ mcs.in \
+ gmcs.in \
+ dmcs.in \
+ mono-test-install \
+ mono-heapviz \
+ $(MDOC_COMPAT) \
+ patch-quiet.sh \
+ get-cygwin-deps.sh \
+ mono-configuration-crypto.in
if USE_JIT
mono_interp = mono
mono_interp = mint
endif
-if PLATFORM_WIN32
+if HOST_WIN32
+if CROSS_COMPILING
+plat_bindir = $(bindir)
+mono_instdir = $(prefix)/lib/mono
+else
plat_bindir = $(shell cygpath -m $(libdir))
mono_instdir = $(shell cygpath -m $(libdir))/mono
+endif
else
plat_bindir = $(bindir)
mono_instdir = $(prefix)/lib/mono
endif
+
REWRITE_COMMON = sed \
-e 's,@''bindir@,$(bindir),g' \
-e 's,@''plat_bindir@,$(plat_bindir),g' \
REWRITE = $(REWRITE_COMMON) -e 's,@''mono_interp@,$(mono_interp),g'
REWRITE_DEBUG = $(REWRITE_COMMON) -e 's,@''mono_interp@,$(mono_interp) --debug,g'
-REWRITE1 = $(REWRITE) -e 's,@''framework_version@,1.0,g'
REWRITE2 = $(REWRITE) -e 's,@''framework_version@,2.0,g'
REWRITE2_1 = $(REWRITE) -e 's,@''framework_version@,2.1,g'
-REWRITE1_DEBUG = $(REWRITE_DEBUG) -e 's,@''framework_version@,1.0,g'
+if INSTALL_4_0
+REWRITE4 = $(REWRITE) -e 's,@''framework_version@,4.0,g'
+else
+REWRITE4 = $(REWRITE) -e 's,@''framework_version@,2.0,g'
+endif
REWRITE2_DEBUG = $(REWRITE_DEBUG) -e 's,@''framework_version@,2.0,g'
+peverify: peverify.in Makefile
+ $(REWRITE_COMMON) $(srcdir)/peverify.in > $@.tmp
+ mv -f $@.tmp $@
+
+mcs: mcs.in Makefile
+ $(REWRITE_COMMON) $(srcdir)/mcs.in > $@.tmp
+ mv -f $@.tmp $@
+
+gmcs: gmcs.in Makefile
+ $(REWRITE_COMMON) $(srcdir)/gmcs.in > $@.tmp
+ mv -f $@.tmp $@
+
+dmcs: dmcs.in Makefile
+ $(REWRITE_COMMON) $(srcdir)/dmcs.in > $@.tmp
+ mv -f $@.tmp $@
+
mono-service: mono-service.in Makefile
- $(REWRITE1) -e 's,@''exe_name@,$@,g' $(srcdir)/mono-service.in > $@.tmp
- mv $@.tmp $@
+ $(REWRITE4) -e 's,@''exe_name@,$@,g' $(srcdir)/mono-service.in > $@.tmp
+ mv -f $@.tmp $@
mono-service2: mono-service.in Makefile
$(REWRITE2) -e 's,@''exe_name@,$@,g' $(srcdir)/mono-service.in > $@.tmp
- mv $@.tmp $@
+ mv -f $@.tmp $@
+
+nunit-console$(SCRIPT_SUFFIX): $(SCRIPT_IN) Makefile
+ $(REWRITE2_DEBUG) -e 's,@''exe_name@,nunit-console,g' $(srcdir)/$(SCRIPT_IN) | $(FILTER) > $@.tmp
+ mv -f $@.tmp $@
+
+nunit-console2$(SCRIPT_SUFFIX): $(SCRIPT_IN) Makefile
+ $(REWRITE2_DEBUG) -e 's,@''exe_name@,nunit-console,g' $(srcdir)/$(SCRIPT_IN) | $(FILTER) > $@.tmp
+ mv -f $@.tmp $@
+
+#FIXME: this is not the correct rule for mod.bat.
+mod$(SCRIPT_SUFFIX): mod.in Makefile
+ $(REWRITE2) -e "s,@""exe_name@,mod,g" $(srcdir)/mod.in > $@.tmp
+ mv -f $@.tmp $@
+
+#FIXME: this is not the correct rule for bat files.
+$(scripts_4_0_umask): script_umask.in Makefile
+ n=`echo $@ | sed 's,$(COMPAT_4_0_SUFFIX)$$,,'`; \
+ $(REWRITE4) -e "s,@""exe_name@,$$n,g" $(srcdir)/script_umask.in | $(FILTER) > $@.tmp
+ mv -f $@.tmp $@
-nunit-console: script.in Makefile
- $(REWRITE1_DEBUG) -e 's,@''exe_name@,nunit-console,g' $(srcdir)/script.in > $@.tmp
- mv $@.tmp $@
+$(scripts_defaults): $(SCRIPT_IN) Makefile
+ n=`echo $@ | sed 's,$(COMPAT_4_0_SUFFIX)$$,,'`; \
+ $(REWRITE4) -e "s,@""exe_name@,$$n,g" $(srcdir)/$(SCRIPT_IN) | $(FILTER) > $@.tmp
+ mv -f $@.tmp $@
-nunit-console2: script.in Makefile
- $(REWRITE2_DEBUG) -e 's,@''exe_name@,nunit-console,g' $(srcdir)/script.in > $@.tmp
- mv $@.tmp $@
+$(scripts_2_0): $(SCRIPT_IN) Makefile
+ n=`echo $@ | sed 's,$(COMPAT_2_0_SUFFIX)$$,,'`; \
+ $(REWRITE2) -e "s,@""exe_name@,$$n,g" $(srcdir)/$(SCRIPT_IN) | $(FILTER) > $@.tmp
+ mv -f $@.tmp $@
-smcs: smcs.in Makefile
- $(REWRITE2_1) -e "s,@""exe_name@,smcs,g" $(srcdir)/smcs.in > $@.tmp
- mv $@.tmp $@
+$(scripts_4_0): $(SCRIPT_IN) Makefile
+ n=`echo $@ | sed 's,$(COMPAT_4_0_SUFFIX)$$,,'`; \
+ $(REWRITE4) -e "s,@""exe_name@,$$n,g" $(srcdir)/$(SCRIPT_IN) | $(FILTER) > $@.tmp
+ mv -f $@.tmp $@
-$(scripts_1_0): script.in Makefile
- $(REWRITE1) -e 's,@''exe_name@,$@,g' $(srcdir)/script.in > $@.tmp
- mv $@.tmp $@
+$(scripts_mono_configuration_crypto): mono-configuration-crypto.in
+ $(REWRITE4) -e "s,@exe_name@,mono-configuration-crypto,g" $(srcdir)/mono-configuration-crypto.in > $@.tmp
+ mv -f $@.tmp $@
-$(scripts_1_0_umask): script_umask.in Makefile
- $(REWRITE1) -e 's,@''exe_name@,$@,g' $(srcdir)/script_umask.in > $@.tmp
- mv $@.tmp $@
+$(MDOC_SUBCOMMANDS): Makefile
+ for script in $(MDOC_SUBCOMMANDS) ; do \
+ cmd=`echo $$script | sed 's/mdoc-//'` ; \
+ echo "#!/bin/sh" > $$script ; \
+ echo "exec mdoc $$cmd \"\$$@\"" >> $$script; \
+ done
-$(scripts_2_0): script.in Makefile
- n=`echo $@ | sed 's,2$$,,'`; \
- $(REWRITE2) -e "s,@""exe_name@,$$n,g" $(srcdir)/script.in > $@.tmp
- mv $@.tmp $@