1*b1cdbd2cSJim Jagielski#**************************************************************
2*b1cdbd2cSJim Jagielski#
3*b1cdbd2cSJim Jagielski#  Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski#  or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski#  distributed with this work for additional information
6*b1cdbd2cSJim Jagielski#  regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski#  to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski#  "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski#  with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski#
11*b1cdbd2cSJim Jagielski#    http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski#
13*b1cdbd2cSJim Jagielski#  Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski#  software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski#  KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski#  specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski#  under the License.
19*b1cdbd2cSJim Jagielski#
20*b1cdbd2cSJim Jagielski#**************************************************************
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim JagielskiPRJ = ..$/..
25*b1cdbd2cSJim JagielskiPRJNAME = cli_ure
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski# for dummy
28*b1cdbd2cSJim JagielskiTARGET = basetypes
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski.INCLUDE : settings.mk
31*b1cdbd2cSJim Jagielski.INCLUDE : $(PRJ)$/util$/makefile.pmk
32*b1cdbd2cSJim Jagielski
33*b1cdbd2cSJim Jagielski.INCLUDE : $(PRJ)$/util$/target.pmk
34*b1cdbd2cSJim Jagielski.INCLUDE : target.mk
35*b1cdbd2cSJim Jagielski
36*b1cdbd2cSJim Jagielski.IF "$(BUILD_FOR_CLI)" != ""
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski.INCLUDE : $(BIN)$/cliureversion.mk
39*b1cdbd2cSJim Jagielski
40*b1cdbd2cSJim JagielskiASSEMBLY_ATTRIBUTES = $(MISC)$/assembly_ure_$(TARGET).cs
41*b1cdbd2cSJim JagielskiPOLICY_ASSEMBLY_FILE=$(BIN)$/$(CLI_BASETYPES_POLICY_ASSEMBLY).dll
42*b1cdbd2cSJim Jagielski
43*b1cdbd2cSJim JagielskiALLTAR : \
44*b1cdbd2cSJim Jagielski	$(BIN)$/cli_basetypes.dll \
45*b1cdbd2cSJim Jagielski	$(POLICY_ASSEMBLY_FILE)
46*b1cdbd2cSJim Jagielski
47*b1cdbd2cSJim Jagielski.IF "$(CCNUMVER)" >= "001399999999"
48*b1cdbd2cSJim JagielskiCSCFLAGS+=-keyfile:"$(BIN)$/cliuno.snk"
49*b1cdbd2cSJim Jagielski.ENDIF
50*b1cdbd2cSJim Jagielski
51*b1cdbd2cSJim JagielskiCSFILES = \
52*b1cdbd2cSJim Jagielski	uno$/Any.cs			\
53*b1cdbd2cSJim Jagielski	uno$/BoundAttribute.cs \
54*b1cdbd2cSJim Jagielski	uno$/ExceptionAttribute.cs	\
55*b1cdbd2cSJim Jagielski	uno$/ParameterizedTypeAttribute.cs	\
56*b1cdbd2cSJim Jagielski	uno$/TypeParametersAttribute.cs \
57*b1cdbd2cSJim Jagielski	uno$/TypeArgumentsAttribute.cs \
58*b1cdbd2cSJim Jagielski	uno$/OnewayAttribute.cs	\
59*b1cdbd2cSJim Jagielski	uno$/PolymorphicType.cs \
60*b1cdbd2cSJim Jagielski	$(ASSEMBLY_ATTRIBUTES)
61*b1cdbd2cSJim Jagielski
62*b1cdbd2cSJim Jagielski.IF "$(CCNUMVER)" <= "001399999999"
63*b1cdbd2cSJim Jagielski$(ASSEMBLY_ATTRIBUTES) : assembly.cs makefile.mk $(BIN)$/cliuno.snk $(BIN)$/cliureversion.mk
64*b1cdbd2cSJim Jagielski    $(GNUCOPY) -p assembly.cs $@
65*b1cdbd2cSJim Jagielski    echo \
66*b1cdbd2cSJim Jagielski    '[assembly:System.Reflection.AssemblyVersion( "$(CLI_BASETYPES_NEW_VERSION)")] \
67*b1cdbd2cSJim Jagielski    [assembly:System.Reflection.AssemblyKeyFile(@"$(BIN)$/cliuno.snk")]' \
68*b1cdbd2cSJim Jagielski    >> $@
69*b1cdbd2cSJim Jagielski.ELSE
70*b1cdbd2cSJim Jagielski$(ASSEMBLY_ATTRIBUTES) : assembly.cs makefile.mk $(BIN)$/cliuno.snk $(BIN)$/cliureversion.mk
71*b1cdbd2cSJim Jagielski    $(GNUCOPY) -p assembly.cs $@
72*b1cdbd2cSJim Jagielski    echo \
73*b1cdbd2cSJim Jagielski    '[assembly:System.Reflection.AssemblyVersion( "$(CLI_BASETYPES_NEW_VERSION)")]' \
74*b1cdbd2cSJim Jagielski    >> $@
75*b1cdbd2cSJim Jagielski.ENDIF
76*b1cdbd2cSJim Jagielski
77*b1cdbd2cSJim Jagielski$(BIN)$/cli_basetypes.dll : $(CSFILES) $(BIN)$/cliureversion.mk
78*b1cdbd2cSJim Jagielski	$(CSC) $(CSCFLAGS) \
79*b1cdbd2cSJim Jagielski		-target:library \
80*b1cdbd2cSJim Jagielski		-out:$@ \
81*b1cdbd2cSJim Jagielski		-reference:System.dll \
82*b1cdbd2cSJim Jagielski		$(CSFILES)
83*b1cdbd2cSJim Jagielski	@echo "If code has changed then provide a policy assembly and change the version!"
84*b1cdbd2cSJim Jagielski
85*b1cdbd2cSJim Jagielski#do not forget to deliver cli_uretypes.config. It is NOT embedded in the policy file.
86*b1cdbd2cSJim Jagielski$(POLICY_ASSEMBLY_FILE) : $(BIN)$/cli_basetypes.config
87*b1cdbd2cSJim Jagielski	$(WRAPCMD) AL.exe -out:$@ \
88*b1cdbd2cSJim Jagielski			-version:$(CLI_BASETYPES_POLICY_VERSION) \
89*b1cdbd2cSJim Jagielski			-keyfile:$(BIN)$/cliuno.snk \
90*b1cdbd2cSJim Jagielski			-link:$(BIN)$/cli_basetypes.config
91*b1cdbd2cSJim Jagielski
92*b1cdbd2cSJim Jagielski
93*b1cdbd2cSJim Jagielski#Create the config file that is used with the policy assembly
94*b1cdbd2cSJim Jagielski$(BIN)$/cli_basetypes.config: cli_basetypes_config $(BIN)$/cliureversion.mk
95*b1cdbd2cSJim Jagielski	$(PERL) $(SOLARENV)$/bin$/clipatchconfig.pl \
96*b1cdbd2cSJim Jagielski	$< $@
97*b1cdbd2cSJim Jagielski
98*b1cdbd2cSJim Jagielski
99*b1cdbd2cSJim Jagielski.ENDIF
100*b1cdbd2cSJim Jagielski
101*b1cdbd2cSJim Jagielski
102