bug 4548
[scilab.git] / scilab / modules / dynamic_link / src / scripts / Makefile.incl.mak
1 #==================================================
2 # Visual C++/Intel Fortran 10.x 
3 # Allan CORNET - 2008
4 #==================================================
5 all::
6 MAKE=nmake /f Makefile.mak
7 #==================================================
8 # C compiler
9 # typically, for compiling use: CFLAGS = $(CC_OPTIONS)
10 # and for linking: $(CC) -o $(PROGRAM) $(OBJS) $(CC_LDFLAGS)
11 #==================================================
12 CC=cl
13 LINKER=link
14
15 !IF "$(WIN64)" == "OK" 
16 MACHINE=/machine:X64
17 DWIN=-D_WIN64
18 !ELSE
19 MACHINE=/machine:ix86
20 DWIN=-DWIN32
21 !ENDIF
22
23 !IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
24 DIR_OBJ=Debug
25 LINKER_OPTIMISATION_MODE=/DEBUG -PDB:"$(DIR_OBJ)\$(LIBRARY).pdb"
26 CC__OPTIMISATION_MODE=-Zi -Od
27 !ELSE
28 DIR_OBJ=Release
29 LINKER_OPTIMISATION_MODE=/RELEASE
30 CC__OPTIMISATION_MODE=-Z7 -O2
31 !ENDIF
32
33 CC_COMMON=-D__MSC__ -DFORDLL $(DWIN) -c -DSTRICT -D_CRT_SECURE_NO_DEPRECATE -D__MAKEFILEVC__ -nologo $(INCLUDES)
34 LINKER_FLAGS=/NOLOGO $(MACHINE) $(LINKER_OPTIMISATION_MODE)
35 CC_OPTIONS = $(CC_COMMON) -W3 -Gd $(CC__OPTIMISATION_MODE) /Fo"$(DIR_OBJ)/" /Fd"$(DIR_OBJ)/"
36
37 # include options 
38 INCLUDES=-I"$(SCIDIR)/libs/MALLOC/includes" \
39 -I"$(SCIDIR)/modules/core/includes" \
40 -I"$(SCIDIR)/modules/call_scilab/includes" \
41 -I"$(SCIDIR)/modules/output_stream/includes" \
42 -I"$(SCIDIR)/modules/jvm/includes" \
43 -I"$(SCIDIR)/modules/localization/includes" \
44 -I"$(SCIDIR)/libs/intl" \
45 -I"$(SCIDIR)/libs/f2c" \
46 -I"$(SCIDIR)/modules/mexlib/includes" \
47 -I"$(SCIDIR)/modules/localization/includes" \
48 -I"$(SCIDIR)/modules/jvm/includes" \
49 -I"$(SCIDIR)/modules/time/includes" \
50 -I"$(SCIDIR)/libs/intl"
51
52
53 CC_LDFLAGS = 
54 #==================================================
55 # Fortran Compiler 
56 # default usage is to use f2c 
57 #==================================================
58 # detect intel fortran compiler 10.x family
59 !IF "$(IFORT_COMPILER10)" == ""
60 USE_F2C=YES
61 !ELSE
62 USE_F2C=NO
63 !ENDIF
64
65 # if USE_F2C is set to NO we will use the following Fortran compiler (i.e Intel Fortran 10.x)
66 !IF "$(USE_F2C)" == "NO"
67 FC=ifort 
68 FC_OPTIONS_COMMON=/nologo /G6 /DFORDLL /assume:underscore \
69 /noaltparam /f77rtl /fpscomp:nolibs /names:lowercase \
70 /iface:cref /libs:dll /threads /dbglibs /c /Qvc9 \
71 /Fo"$(DIR_OBJ)/" /Fd"$(DIR_OBJ)/" \
72 /include:"$(SCIDIR1)/modules/core/includes"
73 #==================================================
74 !IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
75 FC_OPTIONS=$(FC_OPTIONS_COMMON) /Zi /Od /debug /dbglibs
76 FORTRAN_RUNTIME_LIBRARIES = libifcoremdd.lib libmmdd.lib
77 #==================================================
78 !ELSE
79 FC_OPTIONS=$(FC_OPTIONS_COMMON)
80 FORTRAN_RUNTIME_LIBRARIES = libifcoremd.lib libmmd.lib
81 !ENDIF
82 #==================================================
83 LINKER_FLAGS=$(LINKER_FLAGS) /force:multiple
84 !ENDIF
85 #==================================================
86 # resource compiler 
87 #==================================================
88 RC=rc
89 RCVARS=-r -DWIN32
90 #==================================================
91 # Libraries 
92 #==================================================
93 # SCILAB_LIBS is used by the binary version of Scilab for linking external codes
94 SCILAB_LIBS="$(SCIDIR1)/bin/MALLOC.lib" "$(SCIDIR1)/bin/blasplus.lib" \
95 "$(SCIDIR1)/bin/libf2c.lib" "$(SCIDIR1)/bin/lapack.lib" \
96 "$(SCIDIR1)/bin/scicos.lib" "$(SCIDIR1)/bin/intersci.lib" \
97 "$(SCIDIR1)/bin/output_stream.lib" "$(SCIDIR1)/bin/dynamic_link.lib" \
98 "$(SCIDIR1)/bin/integer.lib" "$(SCIDIR1)/bin/optimization_f.lib" \
99 "$(SCIDIR1)/bin/libjvm.lib" "$(SCIDIR1)/bin/scilocalization.lib" \
100 "$(SCIDIR1)/bin/libintl.lib" "$(SCIDIR1)/bin/linpack_f.lib" \
101 "$(SCIDIR1)/bin/call_scilab.lib" "$(SCIDIR1)/bin/time.lib"
102 #==================================================
103 # default rules for Fortran 77 & 90 Compilation 
104 #==================================================
105 !IF "$(USE_F2C)" == "YES"
106 #==================================================
107 # F2C
108 #==================================================
109 .f{$(DIR_OBJ)}.obj      :
110         @echo ----------- Compile file $< (using f2c) -------------
111 !IF "$(F2C_IMPORT_COMMON)" == "YES"     
112         @"$(SCIDIR1)/bin/f2c.exe" -E -I"$(SCIDIR1)/modules/core/includes" $(FFLAGS) $< 2>NUL
113 !ELSE
114         @"$(SCIDIR1)/bin/f2c.exe" -I"$(SCIDIR1)/modules/core/includes" $(FFLAGS) $< 2>NUL
115 !ENDIF
116         -IF NOT EXIST  $(DIR_OBJ) mkdir $(DIR_OBJ)
117
118         @$(CC) $(CFLAGS) $(<:.f=.c)
119 !IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
120 !ELSE
121   -del $(<:.f=.c)
122 !ENDIF
123 .f90{$(DIR_OBJ)}.obj    :
124         @echo F2C cannot build .f90 file        
125 !ELSE
126 #==================================================
127 # INTEL FORTRAN
128 #==================================================
129 .f{$(DIR_OBJ)}.obj      :
130         @echo ----------- Compile file $< (using INTEL FORTRAN) -------------
131         -IF NOT EXIST  $(DIR_OBJ) mkdir $(DIR_OBJ)
132         @$(FC) $(FFLAGS) $<
133 .f90{$(DIR_OBJ)}.obj    :
134         @echo ----------- Compile file $< (using INTEL FORTRAN) -------------
135         -IF NOT EXIST  $(DIR_OBJ) mkdir $(DIR_OBJ)
136         @$(FC) $(FFLAGS) $<
137 !ENDIF
138 #==================================================
139 # default rules for C++
140 #==================================================
141 .cxx{$(DIR_OBJ)}.obj    :
142         @echo ------------- Compile file $< --------------
143         -IF NOT EXIST  $(DIR_OBJ) mkdir $(DIR_OBJ)
144         @$(CC) $(CFLAGS) /EHsc $< 
145 #==================================================
146 .cpp{$(DIR_OBJ)}.obj    :
147         @echo ------------- Compile file $< --------------
148         -IF NOT EXIST  $(DIR_OBJ) mkdir $(DIR_OBJ)
149         @$(CC) $(CFLAGS) /EHsc $<
150 #==================================================
151 # default rules for C
152 #==================================================
153 .c{$(DIR_OBJ)}.obj      :
154         @echo ------------- Compile file $< --------------
155         -IF NOT EXIST  $(DIR_OBJ) mkdir $(DIR_OBJ)
156         $(CC) $(CFLAGS) $< 
157 #==================================================
158 # clean 
159 RM = del
160 #==================================================
161 clean::
162         -del *.bak 
163   -del "$(DIR_OBJ)\*.obj"
164 !IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
165   -del "$(DIR_OBJ)\*.pdb"
166 !ENDIF
167   -rmdir "$(DIR_OBJ)"
168 #==================================================
169 distclean::  
170   -del *.bak 
171   -del "$(DIR_OBJ)\*.obj"
172 !IF "$(DEBUG_SCILAB_DYNAMIC_LINK)" == "YES"
173   -del "$(DIR_OBJ)\*.pdb"
174 !ENDIF
175   -rmdir "$(DIR_OBJ)"
176 #==================================================
177