]> gitweb.factorcode.org Git - factor.git/blob - Nmakefile
Remove executable bit from tons of files that aren't
[factor.git] / Nmakefile
1 !IF !DEFINED(BOOTIMAGE_VERSION)
2 BOOTIMAGE_VERSION = latest
3 !ENDIF
4
5 !IF DEFINED(PLATFORM)
6
7 LINK_FLAGS = /nologo shell32.lib
8 CL_FLAGS = /nologo /O2 /WX /W3 /D_CRT_SECURE_NO_WARNINGS
9 CL_FLAGS_VISTA = /D_WIN32_WINNT=0x0600
10
11 !IF "$(PLATFORM)" == "x86-32"
12 LINK_FLAGS = $(LINK_FLAGS) /safeseh
13 PLAF_DLL_OBJS = vm\os-windows-x86.32.obj vm\safeseh.obj vm\cpu-x86.obj
14
15 !ELSEIF "$(PLATFORM)" == "x86-32-vista"
16 LINK_FLAGS = $(LINK_FLAGS) /safeseh
17 CL_FLAGS = $(CL_FLAGS) $(CL_FLAGS_VISTA)
18 PLAF_DLL_OBJS = vm\os-windows-x86.32.obj vm\safeseh.obj vm\cpu-x86.obj
19
20 !ELSEIF "$(PLATFORM)" == "x86-64"
21 PLAF_DLL_OBJS = vm\os-windows-x86.64.obj vm\cpu-x86.obj
22
23 !ELSEIF "$(PLATFORM)" == "x86-64-vista"
24 CL_FLAGS = $(CL_FLAGS) $(CL_FLAGS_VISTA)
25 PLAF_DLL_OBJS = vm\os-windows-x86.64.obj vm\cpu-x86.obj
26 !ENDIF
27
28 !IF DEFINED(DEBUG)
29 LINK_FLAGS = $(LINK_FLAGS) /DEBUG
30 CL_FLAGS = $(CL_FLAGS) /Zi /DFACTOR_DEBUG
31 !ENDIF
32
33 ML_FLAGS = /nologo /safeseh
34
35 EXE_OBJS = vm\main-windows.obj vm\factor.res
36
37 DLL_OBJS = $(PLAF_DLL_OBJS) \
38         vm\os-windows.obj \
39         vm\aging_collector.obj \
40         vm\alien.obj \
41         vm\arrays.obj \
42         vm\bignum.obj \
43         vm\byte_arrays.obj \
44         vm\callbacks.obj \
45         vm\callstack.obj \
46         vm\code_blocks.obj \
47         vm\code_heap.obj \
48         vm\compaction.obj \
49         vm\contexts.obj \
50         vm\data_heap.obj \
51         vm\data_heap_checker.obj \
52         vm\debug.obj \
53         vm\dispatch.obj \
54         vm\entry_points.obj \
55         vm\errors.obj \
56         vm\factor.obj \
57         vm\free_list.obj \
58         vm\full_collector.obj \
59         vm\gc.obj \
60         vm/gc_info.obj \
61         vm\image.obj \
62         vm\inline_cache.obj \
63         vm\instruction_operands.obj \
64         vm\io.obj \
65         vm\jit.obj \
66         vm\math.obj \
67         vm\mvm.obj \
68         vm\mvm-windows.obj \
69         vm\nursery_collector.obj \
70         vm\object_start_map.obj \
71         vm\objects.obj \
72         vm\primitives.obj \
73         vm\quotations.obj \
74         vm\run.obj \
75         vm\safepoints.obj \
76         vm\sampling_profiler.obj \
77         vm\strings.obj \
78         vm\to_tenured_collector.obj \
79         vm\tuples.obj \
80         vm\utilities.obj \
81         vm\vm.obj \
82         vm\words.obj
83
84 .cpp.obj:
85         cl /EHsc $(CL_FLAGS) /Fo$@ /c $<
86
87 .c.obj:
88         cl $(CL_FLAGS) /Fo$@ /c $<
89
90 .asm.obj:
91         ml $(ML_FLAGS) /Fo$@ /c $<
92
93 .rs.res:
94         rc $<
95
96 libfactor-ffi-test.dll: vm/ffi_test.obj
97         link $(LINK_FLAGS) /out:libfactor-ffi-test.dll /dll vm/ffi_test.obj
98
99 factor.dll.lib: $(DLL_OBJS)
100         link $(LINK_FLAGS) /implib:factor.dll.lib /out:factor.dll /dll $(DLL_OBJS)
101
102 factor.com: $(EXE_OBJS) $(DLL_OBJS)
103         link $(LINK_FLAGS) /out:factor.com /SUBSYSTEM:console $(EXE_OBJS) $(DLL_OBJS)
104
105 factor.exe: $(EXE_OBJS) $(DLL_OBJS)
106         link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:windows $(EXE_OBJS) $(DLL_OBJS)
107
108 all: factor.com factor.exe factor.dll.lib libfactor-ffi-test.dll
109
110 !ENDIF
111
112 default:
113         @echo Usage: nmake /f Nmakefile platform
114         @echo Where platform is one of:
115         @echo x86-32
116         @echo x86-64
117         @echo x86-32-vista
118         @echo x86-64-vista
119         @exit 1
120
121 x86-32:
122         nmake /nologo PLATFORM=x86-32 /f Nmakefile all
123
124 x86-64:
125         nmake /nologo PLATFORM=x86-64 /f Nmakefile all
126
127 x86-32-vista:
128         nmake /nologo PLATFORM=x86-32-vista /f Nmakefile all
129
130 x86-64-vista:
131         nmake /nologo PLATFORM=x86-64-vista /f Nmakefile all
132
133 clean:
134         del vm\*.obj
135         if exist factor.lib del factor.lib
136         if exist factor.res del factor.res
137         if exist factor.com del factor.com
138         if exist factor.exe del factor.exe
139         if exist factor.dll del factor.dll
140         if exist factor.dll.lib del factor.dll.lib
141
142 .PHONY: all default x86-32 x86-64 x86-32-vista x86-64-vista clean
143
144 .SUFFIXES: .rs