summaryrefslogtreecommitdiff
path: root/csharp/config/Make.rules.cs
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2015-03-21 15:35:40 -0230
committerMatthew Newhook <matthew@zeroc.com>2015-03-21 15:35:40 -0230
commit630a37d2fe66f24518299e705f958b571803c522 (patch)
tree969723791bdc4d73bb099c19d45554d0ca241ad9 /csharp/config/Make.rules.cs
parentFix some README.md markdown formatting (diff)
downloadice-630a37d2fe66f24518299e705f958b571803c522.tar.bz2
ice-630a37d2fe66f24518299e705f958b571803c522.tar.xz
ice-630a37d2fe66f24518299e705f958b571803c522.zip
py -> python
rb -> ruby objc -> objective-c cs -> csharp
Diffstat (limited to 'csharp/config/Make.rules.cs')
-rw-r--r--csharp/config/Make.rules.cs298
1 files changed, 298 insertions, 0 deletions
diff --git a/csharp/config/Make.rules.cs b/csharp/config/Make.rules.cs
new file mode 100644
index 00000000000..b90ed220591
--- /dev/null
+++ b/csharp/config/Make.rules.cs
@@ -0,0 +1,298 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
+#
+# This copy of Ice is licensed to you under the terms described in the
+# ICE_LICENSE file included in this distribution.
+#
+# **********************************************************************
+
+#
+# Select an installation base directory. The directory will be created
+# if it does not exist.
+#
+
+prefix ?= /opt/Ice-$(VERSION)
+
+#
+# The default behavior of 'make install' is to install the Ice for .NET
+# libraries in the 'bin' directory. If you would prefer to
+# install these libraries in the GAC, set GACINSTALL to yes.
+#
+
+#GACINSTALL = yes
+
+#
+# Ice invokes unmanaged code to implement the following features:
+#
+# - Protocol compression
+# - Signal processing in the Ice.Application class (Windows only)
+#
+# Enable MANAGED below if you do not require these features and prefer that
+# the Ice run time use only managed code.
+#
+
+#MANAGED = yes
+
+#
+# Enable the UNITY flag to build for the Unity3D Web player. Enabling this
+# setting also implies MANAGED. In addition to the features removed by
+# MANAGED, this flag removes the following:
+#
+# - File I/O: property loading, file logger (Ice.LogFile), I/O redirection
+# (Ice.StdOut, Ice.StdErr)
+# - ICE_CONFIG environment variable
+#
+#UNITY = yes
+
+#
+# Define DEBUG as yes if you want to build with debug information and
+# assertions enabled.
+#
+
+DEBUG = yes
+
+#
+# Define OPTIMIZE as yes if you want to build with optmization.
+#
+
+#OPTIMIZE = yes
+
+#
+# Set the key file used to sign assemblies.
+#
+
+KEYFILE ?= $(top_srcdir)/../config/IceDevKey.snk
+
+# ----------------------------------------------------------------------
+# Don't change anything below this line!
+# ----------------------------------------------------------------------
+
+#
+# Common definitions
+#
+ice_language = cs
+slice_translator = slice2cs
+
+ifeq ($(shell test -f $(top_srcdir)/config/Make.common.rules && echo 0),0)
+ include $(top_srcdir)/config/Make.common.rules
+else
+ include $(top_srcdir)/../config/Make.common.rules
+endif
+
+DSEP = /
+
+bindir = $(top_srcdir)/bin
+
+assembliesdir = $(top_srcdir)/Assemblies
+
+install_bindir = $(prefix)/bin
+
+ifeq ($(GACINSTALL),yes)
+ ifeq ($(GAC_ROOT),)
+ install_assembliesdir = $(prefix)/lib/mono/$(PKG)
+ else
+ install_assembliesdir = $(GAC_ROOT)/mono/$(PKG)
+ endif
+else
+install_assembliesdir = $(prefix)/Assemblies
+endif
+
+install_libdir = $(prefix)/lib
+
+ifndef usr_dir_install
+install_mandir := $(prefix)/man/man1
+else
+install_mandir := $(prefix)/share/man/man1
+endif
+
+install_pkgconfigdir = $(prefix)/lib/pkgconfig
+
+ifeq ($(ice_dir), $(usr_dir))
+ ref = -pkg:$(1)
+else
+ ifdef ice_src_dist
+ ref = -r:$(assembliesdir)/$(1).dll
+ else
+ ifeq ($(shell test -d $(ice_dir)/lib/pkgconfig && echo 0),0)
+ export PKG_CONFIG_PATH := $(ice_dir)/lib/pkgconfig:$(PKG_CONFIG_PATH)
+ ref = -pkg:$(1)
+ else
+ ref = -r:$(ice_dir)/Assemblies/$(1).dll
+ endif
+ endif
+endif
+
+GACUTIL = gacutil
+
+# MDB files are generated only for debug builds. For debug, with a GAC
+# install gacutil installs the .mdb into the GAC.
+installmdb = /bin/true
+
+ifeq ($(GACINSTALL),yes)
+ ifeq ($(DESTDIR)$(GAC_ROOT),)
+ installassembly = ([ -n "$(2)" ] && pkgopt="-package $(2)"; $(GACUTIL) -i $(1) -f $$pkgopt
+ installpolicy = $(GACUTIL) -i $(1).dll
+ else
+ ifeq ($(GAC_ROOT),)
+ GAC_ROOT = $(prefix)/lib
+ endif
+ installassembly = ([ -n "$(2)" ] && pkgopt="-package $(2)"; $(GACUTIL) -i $(1) -f $$pkgopt \
+ -root $(DESTDIR)$(GAC_ROOT))
+ installpolicy = $(GACUTIL) -i $(1).dll -f -root $(DESTDIR)$(GAC_ROOT)
+ endif
+else
+ installassembly = $(INSTALL_LIBRARY) $(1) $(DESTDIR)$(install_assembliesdir); \
+ chmod a+rx $(DESTDIR)$(install_assembliesdir)/$(notdir $(1))
+ installpolicy = $(INSTALL_LIBRARY) $(1).dll $(install_assembliesdir); \
+ chmod a+rx $(install_assembliesdir)/$(notdir $(1).dll)
+ ifeq ($(DEBUG),yes)
+ installmdb = $(INSTALL_LIBRARY) $(1) $(DESTDIR)$(install_assembliesdir); \
+ chmod a+rx $(DESTDIR)$(install_assembliesdir)/$(notdir $(1))
+ endif
+endif
+
+#
+# Do not generate policy files for beta (x.y.51) or minor (x.y.0) releases.
+#
+generate_policies = $(shell test $(VERSION_PATCH) -gt 0 -a $(VERSION_PATCH) -lt 51 && echo "yes")
+
+ifneq ($(generate_policies),yes)
+ installpolicy = /bin/true
+endif
+
+MCS = gmcs
+
+MCSFLAGS = -warnaserror
+
+ifeq ($(DEBUG),yes)
+ MCSFLAGS := $(MCSFLAGS) -debug -define:DEBUG
+endif
+
+ifeq ($(OPTIMIZE),yes)
+ MCSFLAGS := $(MCSFLAGS) -optimize+
+endif
+
+ifeq ($(MANAGED),yes)
+ MCSFLAGS := $(MCSFLAGS) -define:MANAGED
+endif
+
+ifeq ($(UNITY),yes)
+ MCSFLAGS := $(MCSFLAGS) -define:UNITY
+endif
+
+ifdef ice_src_dist
+ SLICE2CS = $(ice_cpp_dir)/$(binsubdir)/slice2cs
+ SLICEPARSERLIB = $(ice_cpp_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
+else
+ SLICE2CS = $(ice_dir)/$(binsubdir)/slice2cs
+ SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
+endif
+
+AL = al
+POLICY = policy.$(SHORT_VERSION).$(PKG)
+
+ifeq ($(generate_policies),yes)
+
+ifneq ($(PUBLIC_KEY_TOKEN),)
+ publicKeyToken = $(PUBLIC_KEY_TOKEN)
+else
+ ifneq ($(ice_src_dist),)
+ publicKeyToken = $(shell sn -q -p $(KEYFILE) tmp.pub; \
+ sn -q -t tmp.pub | sed 's/^.* //'; \
+ rm tmp.pub)
+ else
+ publicKeyToken = $(shell sn -q -T $(assembliesdir)/Ice.dll >tmp.pub; \
+ sed 's/^.* //' <tmp.pub; \
+ rm tmp.pub)
+ endif
+endif
+
+ifneq ($(POLICY_TARGET),)
+
+$(assembliesdir)/$(POLICY_TARGET):
+ @echo -e " \
+<configuration> \n \
+ <runtime> \n \
+ <assemblyBinding xmlns=\"urn:schemas-microsoft-com:asm.v1\"> \n \
+ <dependentAssembly> \n \
+ <assemblyIdentity name=\"$(PKG)\" publicKeyToken=\"$(publicKeyToken)\" culture=\"\"/> \n \
+ <publisherPolicy apply=\"yes\"/> \n \
+ <bindingRedirect oldVersion=\"$(SHORT_VERSION).0.0 - $(SHORT_VERSION).1.0\" newVersion=\"$(VERSION).0\"/> \n \
+ </dependentAssembly> \n \
+ </assemblyBinding> \n \
+ </runtime> \n \
+</configuration>" >$(POLICY)
+ $(AL) /link:$(POLICY) /version:0.0.0.0 /out:$(POLICY_TARGET) /keyfile:$(KEYFILE)
+ chmod a+r $(POLICY)
+ chmod a+rx $(POLICY_TARGET)
+ mv $(POLICY) $(POLICY_TARGET) $(assembliesdir)
+
+clean::
+ -rm -f $(assembliesdir)/$(POLICY) $(assembliesdir)/$(POLICY_TARGET)
+
+endif
+
+endif
+
+GEN_SRCS = $(subst .ice,.cs,$(addprefix $(GDIR)/,$(notdir $(SLICE_SRCS))))
+CGEN_SRCS = $(subst .ice,.cs,$(addprefix $(GDIR)/,$(notdir $(SLICE_C_SRCS))))
+SGEN_SRCS = $(subst .ice,.cs,$(addprefix $(GDIR)/,$(notdir $(SLICE_S_SRCS))))
+GEN_AMD_SRCS = $(subst .ice,.cs,$(addprefix $(GDIR)/,$(notdir $(SLICE_AMD_SRCS))))
+SAMD_GEN_SRCS = $(subst .ice,.cs,$(addprefix $(GDIR)/,$(notdir $(SLICE_SAMD_SRCS))))
+
+
+EVERYTHING = all depend clean install
+
+.SUFFIXES:
+.SUFFIXES: .cs .ice
+
+include $(wildcard .depend/*.d)
+
+$(GDIR)/%.cs: $(SDIR)/%.ice
+ $(SLICE2CS) --output-dir $(GDIR) $(SLICE2CSFLAGS) $<
+ @mkdir -p .depend
+ @$(SLICE2CS) --output-dir $(GDIR) $(SLICE2CSFLAGS) --depend $< | $(top_srcdir)/../config/makedepend.py "generated/" > .depend/$(*F).ice.d
+
+all:: $(TARGETS)
+
+ifeq ($(generate_policies),yes)
+ ifneq ($(POLICY_TARGET),)
+all:: $(assembliesdir)/$(POLICY_TARGET)
+ endif
+endif
+
+ifneq ($(TARGETS_CONFIG),)
+all:: $(TARGETS_CONFIG)
+endif
+
+clean::
+ -rm -f $(TARGETS) $(patsubst %,%.mdb,$(TARGETS)) *.bak *.dll *.pdb *.mdb
+
+ifneq ($(SLICE_SRCS),)
+clean::
+ -rm -f $(GEN_SRCS)
+endif
+ifneq ($(SLICE_C_SRCS),)
+clean::
+ -rm -f $(CGEN_SRCS)
+endif
+ifneq ($(SLICE_S_SRCS),)
+clean::
+ -rm -f $(SGEN_SRCS)
+endif
+ifneq ($(SLICE_AMD_SRCS),)
+clean::
+ -rm -f $(GEN_AMD_SRCS)
+endif
+ifneq ($(SLICE_SAMD_SRCS),)
+clean::
+ -rm -f $(SAMD_GEN_SRCS)
+endif
+
+ifneq ($(TARGETS_CONFIG),)
+clean::
+ -rm -f $(TARGETS_CONFIG)
+endif
+
+install::