1#ident "@(#)cc-msc.rul	1.29 21/04/28 "
2###########################################################################
3# Written 2006-2014 by J. Schilling
4###########################################################################
5#
6# Platform dependent MACROS for CYGWIN32_NT using MSVC
7#
8###########################################################################
9# Copyright (c) J. Schilling
10###########################################################################
11# The contents of this file are subject to the terms of the
12# Common Development and Distribution License, Version 1.0 only
13# (the "License").  You may not use this file except in compliance
14# with the License.
15#
16# See the file CDDL.Schily.txt in this distribution for details.
17# A copy of the CDDL is also available via the Internet at
18# http://www.opensource.org/licenses/cddl1.txt
19#
20# When distributing Covered Code, include this CDDL HEADER in each
21# file and include the License file CDDL.Schily.txt from this distribution.
22###########################################################################
23
24CPP_FLAGS=	-DSCHILY_BUILD $(CPPOPTS) $(CPPOPTX) $(OSINCDIRS:%=-I%) $(OSDEFS) $(OSDEFSX)
25C_FLAGS=	$(COPTS) $(CWARNOPTS) $(COPTOPT) $(MSCOPTOPT) $(COPTX)
26C++FLAGS=	$(C++OPTS) $(C++WARNOPTS) $(C++OPTOPT) $(MSC++OPTOPT) $(C++OPTX)
27
28CPPOPTS=	-I$(ARCHDIR) -I$(OINCSDIR) $(INCDIRS:%=-I%) $(INCDIRSX:%=-I%)
29COPTS=
30CWOPTS=		-W3
31COPTOPT=	-O2
32COPTDYN=
33#COPTGPROF=	-pg
34#
35# /EHs C++-EH aktivieren (ohne SEH-Ausnahmen)
36# /EHa C++-EH aktivieren (mit SEH-Ausnahmen)
37# /EHc nothrow als Standard fr externes "C"
38# MS seems to need -EHsc in order to create useful code with exceptions
39#
40C++OPTS=	-EHsc
41C++WOPTS=	-W3
42C++OPTOPT=	-O2
43C++OPTDYN=
44#C++OPTGPROF=	-pg
45
46
47LIB_PREFIX=
48LIB_SUFFIX=	.lib
49SHL_SUFFIX=	.dll
50
51LIB_C=		-lc
52
53#LIBS_PATH=	-libpath:$(OLIBSDIR)
54#LIBS_PATH_STATIC= -libpath:$(OLIBSDIR_STATIC)
55LIBS_PATH=	-L$(OLIBSDIR)
56LIBS_PATH_STATIC= -L$(OLIBSDIR_STATIC)
57
58WIN_LIBS=	$(WIN32_LIBS)
59
60LDFLAGS=	$(LDOPTS) $(LDOPTX)
61LDLIBS=		$(LIBS:-l%=%.lib) $(LIBX:-l%=%.lib) $(WIN_LIBS:-l%=%.lib)
62
63#LDOPTS=		$(LIBS_PATH) $(LDPATH) $(RUNPATH)
64#LDOPTS=		-link $(LIBS_PATH) $(LDPATH)
65LDOPTS=		-link $(LIBS_PATH:-L%=-libpath:%) $(LDPATH:-L%=-libpath:%)
66#LDOPTDYN=	-shared -Wl,-soname,$(TARGET)
67LDOPTDYN=	-dll -def:$(TARGETLIB).def
68LNDYNLIB=	$(NOECHO)
69
70FLOAT_OPTIONS=
71
72__CC_COM=	$(_UNIQ)$(CC)
73___CC_COM=	$(__CC_COM:$(_UNIQ)=$(CC_COM_DEF))
74CC_COM=		$(___CC_COM:$(_UNIQ)%=%)
75
76__CC++_COM=	$(_UNIQ)$(CCC)
77___CC++_COM=	$(__CC++_COM:$(_UNIQ)=$(CC++_COM_DEF))
78CC++_COM=	$(___CC++_COM:$(_UNIQ)%=%)
79
80CC_COM_DEF=	cl.exe
81CC++_COM_DEF=	$(CC_COM_DEF)
82CC=		$(CC_COM_DEF)
83CCC=		$(CC++_COM_DEF)
84
85CCCC=		$(NOECHO)echo "	==> COMPILING \"$@\""; $(CC_COM) -nologo
86CC++ =		$(NOECHO)echo "	==> COMPILING \"$@\""; $(CC++_COM) -nologo
87OUTPUT_OPTION=	-Fo$(O:%=%/)$@
88CC_OUTPUT_FILTER= | tail -n +2	# Filter cl.exe filename echo
89LD_OUTPUT_OPTION= -Fe$@
90LDCC=		$(NOECHO)echo "	==> LINKING \"$@\""; $(CC_COM) -nologo
91LDCC++ =	$(NOECHO)echo "	==> LINKING \"$@\""; $(CC++_COM) -nologo
92DYNLD=		$(NOECHO)echo "	==> LINKING dynamic library \"$@\""; $(CC_COM) -nologo
93DYNLDC++ =	$(NOECHO)echo "	==> LINKING dynamic library \"$@\""; $(CC++_COM) -nologo
94DYNLD.o=	$(DYNLD) `$(LORDER) $(POFILES) | $(TSORT)` $(LDFLAGS) -out:$@ $(LDLIBS)
95
96RANLIB=		$(NOECHO)echo "	==> RANDOMIZING ARCHIVE \"$@\""; true
97AR=		$(NOECHO)echo "	==> ARCHIVING  \"$@\""; lib.exe -nologo
98ARFLAGS=
99AR.o=		$(AR) $(ARFLAGS) -out:$@
100
101RMDEP=		:
102MKDEP=		$(NOECHO)echo "	==> MAKING DEPENDENCIES \"$@\""; $(RMDEP); sh $(SRCROOT)/conf/mkdep-msc.sh
103MKDEP_OUT=
104MKC++DEP=	$(NOECHO)echo "	==> MAKING DEPENDENCIES \"$@\""; $(RMDEP); sh $(SRCROOT)/conf/mkdep-msc.sh
105MKC++DEP_OUT=
106
107VC=7
108
109_VC_SETUP=	$(_UNIQ)$(VC_SETUP)
110__VC_SETUP=	$(_VC_SETUP:$(_UNIQ)=vc$(VC)$(_PLATFORM:%=-%)-setup)
111VCSETUP=	$(__VC_SETUP:$(_UNIQ)%=%)
112
113###########################################################################
114# IMPORTANT Note:
115# We also include $(DEFLTSROOT)/$(DEFLTSDIR)/$(VCSETUP) from Defaults.*
116# in order to be able to test for the existence of "cl.exe" early.
117###########################################################################
118include		$(DEFLTSROOT)/$(DEFLTSDIR)/$(VCSETUP)
119
120OSDEFS	+=	$(WINNTDEFS)
121
122#
123# Tell MKLINKS to copy files instead of linking them
124#
125MKLINKS_COPY=	true
126export		MKLINKS_COPY
127