1 #==================================================
2 # Visual C++/Intel Fortran 10.x
4 #==================================================
6 MAKE=nmake /f Makefile.mak
7 #==================================================
9 # typically, for compiling use: CFLAGS = $(CC_OPTIONS)
10 # and for linking: $(CC) -o $(PROGRAM) $(OBJS) $(CC_LDFLAGS)
11 #==================================================
15 !IF "$(WIN64)" == "OK"
23 !IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
25 LINKER_OPTIMISATION_MODE=/DEBUG -PDB:"$(DIR_OBJ)\$(LIBRARY).pdb"
26 CC__OPTIMISATION_MODE=-Zi -Od -MTd
29 LINKER_OPTIMISATION_MODE=/RELEASE
30 CC__OPTIMISATION_MODE=-Z7 -O2 -MT
33 CC_COMMON=-D__MSC__ -DFORDLL $(DWIN) -c -DSTRICT -D_CRT_SECURE_NO_DEPRECATE -D__MAKEFILEVC__ -nologo $(INCLUDES)
34 LINKER_FLAGS=/NOLOGO $(MACHINE) /DYNAMICBASE:NO /NXCOMPAT:NO $(LINKER_OPTIMISATION_MODE)
35 CC_OPTIONS = $(CC_COMMON) -W3 -Gd $(CC__OPTIMISATION_MODE) /Fo"$(DIR_OBJ)/" /Fd"$(DIR_OBJ)/"
38 INCLUDES=-I"$(SCIDIR)/libs/MALLOC/includes" \
39 -I"$(SCIDIR)/modules/core/includes" \
40 -I"$(SCIDIR)/modules/api_scilab/includes" \
41 -I"$(SCIDIR)/modules/call_scilab/includes" \
42 -I"$(SCIDIR)/modules/output_stream/includes" \
43 -I"$(SCIDIR)/modules/jvm/includes" \
44 -I"$(SCIDIR)/modules/localization/includes" \
45 -I"$(SCIDIR)/modules/dynamic_link/includes" \
46 -I"$(SCIDIR)/modules/mexlib/includes" \
47 -I"$(SCIDIR)/modules/time/includes" \
48 -I"$(SCIDIR)/modules/windows_tools/includes" \
49 -I"$(SCIDIR)/libs/f2c" \
50 -I"$(SCIDIR)/libs/hashtable" \
51 -I"$(SCIDIR)/libs/intl"
52 #==================================================
54 #==================================================
56 # default usage is to use f2c
57 #==================================================
59 # detect intel fortran compiler 9,10,11.x, 2011 XE family
60 !IF "$(IFORT_COMPILER9)" == ""
64 !IF "$(IFORT_COMPILER10)" == ""
68 !IF "$(IFORT_COMPILER11)" == ""
72 !IF "$(IFORT_COMPILER12)" == ""
77 #==================================================
78 # if USE_F2C is set to NO we will use the following Fortran compiler (i.e Intel Fortran 10.x)
79 !IF "$(USE_F2C)" == "NO"
81 FC_OPTIONS_COMMON=/nologo /DFORDLL /assume:underscore \
82 /noaltparam /f77rtl /fpscomp:nolibs /names:lowercase \
83 /iface:cref /threads /c /Qvc9 \
84 /Fo"$(DIR_OBJ)/" /Fd"$(DIR_OBJ)/" \
85 /include:"$(SCIDIR1)/modules/core/includes"
86 #==================================================
87 !IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
88 FC_OPTIONS=$(FC_OPTIONS_COMMON) /Zi /Od /debug /dbglibs
89 #==================================================
91 FC_OPTIONS=$(FC_OPTIONS_COMMON)
93 #==================================================
94 LINKER_FLAGS=$(LINKER_FLAGS) /force:multiple
96 #==================================================
98 #==================================================
101 #==================================================
103 #==================================================
104 # SCILAB_LIBS is used by the binary version of Scilab for linking external codes
105 SCILAB_LIBS="$(SCIDIR1)/bin/MALLOC.lib" "$(SCIDIR1)/bin/blasplus.lib" \
106 "$(SCIDIR1)/bin/libf2c.lib" "$(SCIDIR1)/bin/lapack.lib" \
107 "$(SCIDIR1)/bin/intersci.lib" \
108 "$(SCIDIR1)/bin/output_stream.lib" "$(SCIDIR1)/bin/dynamic_link.lib" \
109 "$(SCIDIR1)/bin/integer.lib" "$(SCIDIR1)/bin/optimization_f.lib" \
110 "$(SCIDIR1)/bin/libjvm.lib" "$(SCIDIR1)/bin/scilocalization.lib" \
111 "$(SCIDIR1)/bin/libintl.lib" "$(SCIDIR1)/bin/linpack_f.lib" \
112 "$(SCIDIR1)/bin/call_scilab.lib" "$(SCIDIR1)/bin/time.lib" \
113 "$(SCIDIR1)/bin/api_scilab.lib" "$(SCIDIR1)/bin/hashtable.lib" \
114 "$(SCIDIR1)/bin/scilab_windows.lib"
115 #==================================================
116 # default rules for Fortran 77 & 90 Compilation
117 #==================================================
118 !IF "$(USE_F2C)" == "YES"
119 #==================================================
121 #==================================================
123 @echo ----------- Compile file $< (using f2c) -------------
124 !IF "$(F2C_IMPORT_COMMON)" == "YES"
125 @"$(SCIDIR1)/bin/f2c.exe" -E -I"$(SCIDIR1)/modules/core/includes" $(FFLAGS) $< 2>NUL
127 @"$(SCIDIR1)/bin/f2c.exe" -I"$(SCIDIR1)/modules/core/includes" $(FFLAGS) $< 2>NUL
129 -IF NOT EXIST $(DIR_OBJ) mkdir $(DIR_OBJ)
131 @$(CC) $(CFLAGS) $(<:.f=.c)
132 !IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
136 .f90{$(DIR_OBJ)}.obj :
137 @echo F2C cannot build .f90 file
139 #==================================================
141 #==================================================
143 @echo ----------- Compile file $< (using INTEL FORTRAN) -------------
144 -IF NOT EXIST $(DIR_OBJ) mkdir $(DIR_OBJ)
146 .f90{$(DIR_OBJ)}.obj :
147 @echo ----------- Compile file $< (using INTEL FORTRAN 90) -------------
148 -IF NOT EXIST $(DIR_OBJ) mkdir $(DIR_OBJ)
151 #==================================================
152 # default rules for C++
153 #==================================================
154 .cxx{$(DIR_OBJ)}.obj :
155 @echo ------------- Compile file $< --------------
156 -IF NOT EXIST $(DIR_OBJ) mkdir $(DIR_OBJ)
157 @$(CC) $(CFLAGS) /EHsc $<
158 #==================================================
159 .cpp{$(DIR_OBJ)}.obj :
160 @echo ------------- Compile file $< --------------
161 -IF NOT EXIST $(DIR_OBJ) mkdir $(DIR_OBJ)
162 @$(CC) $(CFLAGS) /EHsc $<
163 #==================================================
164 # default rules for C
165 #==================================================
167 @echo ------------- Compile file $< --------------
168 -IF NOT EXIST $(DIR_OBJ) mkdir $(DIR_OBJ)
170 #==================================================
173 #==================================================
176 -del "$(DIR_OBJ)\*.obj"
177 !IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
178 -del "$(DIR_OBJ)\*.pdb"
181 #==================================================
184 -del "$(DIR_OBJ)\*.obj"
185 !IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
186 -del "$(DIR_OBJ)\*.pdb"
189 #==================================================