blob: b36df549761593324bdf4717280761ec55cadebb (
plain)
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
#==================================================
# Visual C++/Intel Fortran 10.x
# Allan CORNET - 2008
#==================================================
all::
MAKE=nmake /f Makefile.mak
#==================================================
# C compiler
# typically, for compiling use: CFLAGS = $(CC_OPTIONS)
# and for linking: $(CC) -o $(PROGRAM) $(OBJS) $(CC_LDFLAGS)
#==================================================
CC=cl
LINKER=link
!IF "$(WIN64)" == "OK"
MACHINE=/machine:X64
DWIN=-D_WIN64
!ELSE
MACHINE=/machine:ix86
DWIN=-DWIN32
!ENDIF
!IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
DIR_OBJ=Debug
LINKER_OPTIMISATION_MODE=/DEBUG -PDB:"$(DIR_OBJ)\$(LIBRARY).pdb"
CC__OPTIMISATION_MODE=-Zi -Od -MDd
!ELSE
DIR_OBJ=Release
LINKER_OPTIMISATION_MODE=/RELEASE
CC__OPTIMISATION_MODE=-Z7 -O2 -MD -DNDEBUG
!ENDIF
CC_COMMON=-D__MSC__ -DFORDLL $(DWIN) -c -DSTRICT -D_CRT_SECURE_NO_DEPRECATE -D__MAKEFILEVC__ -nologo $(INCLUDES)
LINKER_FLAGS=/NOLOGO $(MACHINE) /DYNAMICBASE:NO /NXCOMPAT:NO $(LINKER_OPTIMISATION_MODE)
CC_OPTIONS = $(CC_COMMON) -W3 -Gd $(CC__OPTIMISATION_MODE) /Fo"$(DIR_OBJ)/" /Fd"$(DIR_OBJ)/"
#==================================================
CC_LDFLAGS =
#==================================================
# Fortran Compiler
# default usage is to use f2c
#==================================================
USE_F2C=YES
# detect intel fortran compiler
!IF "$(IFORT_COMPILER9)" == ""
!ELSE
USE_F2C=NO
!ENDIF
!IF "$(IFORT_COMPILER10)" == ""
!ELSE
USE_F2C=NO
!ENDIF
!IF "$(IFORT_COMPILER11)" == ""
!ELSE
USE_F2C=NO
!ENDIF
!IF "$(IFORT_COMPILER12)" == ""
!ELSE
USE_F2C=NO
!ENDIF
!IF "$(IFORT_COMPILER13)" == ""
!ELSE
USE_F2C=NO
!ENDIF
!IF "$(IFORT_COMPILER14)" == ""
!ELSE
USE_F2C=NO
!ENDIF
#==================================================
# if USE_F2C is set to NO we will use the following Fortran compiler (i.e Intel Fortran 10.x)
!IF "$(USE_F2C)" == "NO"
FC=ifort
FC_OPTIONS_COMMON=/nologo /DFORDLL /assume:underscore \
/noaltparam /f77rtl /fpscomp:nolibs /names:lowercase \
/iface:cref /threads /c /Qvc9 \
/Fo"$(DIR_OBJ)/" /Fd"$(DIR_OBJ)/" \
/include:"$(SCIDIR)/modules/core/includes"
#==================================================
!IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
FC_OPTIONS=$(FC_OPTIONS_COMMON) /Zi /Od /debug /dbglibs
#==================================================
!ELSE
FC_OPTIONS=$(FC_OPTIONS_COMMON)
!ENDIF
#==================================================
LINKER_FLAGS=$(LINKER_FLAGS) /force:multiple
!ENDIF
#==================================================
# resource compiler
#==================================================
RC=rc
RCVARS=-r -DWIN32
#==================================================
# default rules for Fortran 77 & 90 Compilation
#==================================================
!IF "$(USE_F2C)" == "YES"
#==================================================
# F2C
#==================================================
.f{$(DIR_OBJ)}.obj :
@echo ----------- Compile file $< (using f2c) -------------
!IF "$(F2C_IMPORT_COMMON)" == "YES"
@"$(SCIDIR)/bin/f2c.exe" -E -I"$(SCIDIR)/modules/core/includes" $(FFLAGS) $< 2>NUL
!ELSE
@"$(SCIDIR)/bin/f2c.exe" -I"$(SCIDIR)/modules/core/includes" $(FFLAGS) $< 2>NUL
!ENDIF
-IF NOT EXIST $(DIR_OBJ) mkdir $(DIR_OBJ)
@$(CC) $(CFLAGS) $(<:.f=.c)
!IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
!ELSE
-del $(<:.f=.c)
!ENDIF
.f90{$(DIR_OBJ)}.obj :
@echo F2C cannot build .f90 file
!ELSE
#==================================================
# INTEL FORTRAN
#==================================================
.f{$(DIR_OBJ)}.obj :
@echo ----------- Compile file $< (using INTEL FORTRAN) -------------
-IF NOT EXIST $(DIR_OBJ) mkdir $(DIR_OBJ)
@$(FC) $(FFLAGS) $<
.f90{$(DIR_OBJ)}.obj :
@echo ----------- Compile file $< (using INTEL FORTRAN 90) -------------
-IF NOT EXIST $(DIR_OBJ) mkdir $(DIR_OBJ)
@$(FC) $(FFLAGS) $<
!ENDIF
#==================================================
# default rules for C++
#==================================================
.cxx{$(DIR_OBJ)}.obj :
@echo ------------- Compile file $< --------------
-IF NOT EXIST $(DIR_OBJ) mkdir $(DIR_OBJ)
@$(CC) $(CFLAGS) /EHsc $<
#==================================================
.cpp{$(DIR_OBJ)}.obj :
@echo ------------- Compile file $< --------------
-IF NOT EXIST $(DIR_OBJ) mkdir $(DIR_OBJ)
@$(CC) $(CFLAGS) /EHsc $<
#==================================================
# default rules for C
#==================================================
.c{$(DIR_OBJ)}.obj :
@echo ------------- Compile file $< --------------
-IF NOT EXIST $(DIR_OBJ) mkdir $(DIR_OBJ)
$(CC) $(CFLAGS) $<
#==================================================
# clean
RM = del
#==================================================
clean::
-del *.bak
-del "$(DIR_OBJ)\*.obj"
!IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
-del "$(DIR_OBJ)\*.pdb"
!ENDIF
-rmdir "$(DIR_OBJ)"
#==================================================
distclean::
-del *.bak
-del "$(DIR_OBJ)\*.obj"
!IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
-del "$(DIR_OBJ)\*.pdb"
!ENDIF
-rmdir "$(DIR_OBJ)"
#==================================================
|