3 GIT_LABEL
= $(shell echo
`git describe --all`-`git rev-parse HEAD`)
11 -DFACTOR_VERSION
="$(VERSION)" \
12 -DFACTOR_GIT_LABEL
="$(GIT_LABEL)" \
15 CXXFLAGS
+= -std
=c
++11
18 CFLAGS
+= -g
-DFACTOR_DEBUG
23 ENGINE
= $(DLL_PREFIX
)factor
$(DLL_SUFFIX
)$(DLL_EXTENSION
)
24 EXECUTABLE
= factor
$(EXE_SUFFIX
)$(EXE_EXTENSION
)
25 CONSOLE_EXECUTABLE
= factor
$(EXE_SUFFIX
)$(CONSOLE_EXTENSION
)
27 DLL_OBJS
= $(PLAF_DLL_OBJS
) \
28 vm
/aging_collector.o \
40 vm
/data_heap_checker.o \
50 vm
/instruction_operands.o \
55 vm
/nursery_collector.o \
56 vm
/object_start_map.o \
62 vm
/sampling_profiler.o \
64 vm
/to_tenured_collector.o \
70 MASTER_HEADERS
= $(PLAF_MASTER_HEADERS
) \
81 vm
/sampling_profiler.hpp \
86 vm
/instruction_operands.hpp \
88 vm
/bump_allocator.hpp \
89 vm
/bitwise_hacks.hpp \
93 vm
/write_barrier.hpp \
94 vm
/object_start_map.hpp \
96 vm
/tenured_space.hpp \
110 vm
/generic_arrays.hpp \
112 vm
/slot_visitor.hpp \
113 vm
/to_tenured_collector.hpp \
119 vm
/inline_cache.hpp \
124 EXE_OBJS
= $(PLAF_EXE_OBJS
)
126 FFI_TEST_LIBRARY
= libfactor-ffi-test
$(SHARED_DLL_EXTENSION
)
128 TEST_OBJS
= vm
/ffi_test.o
132 $(MAKE
) `./build.sh make-target`
135 @echo
"Run '$(MAKE)' with one of the following parameters:"
142 @echo
"macosx-x86-32"
143 @echo
"macosx-x86-64"
144 @echo
"macosx-x86-fat"
145 @echo
"windows-x86-32"
146 @echo
"windows-x86-64"
148 @echo
"Additional modifiers:"
150 @echo
"DEBUG=1 compile VM with debugging information"
151 @echo
"SITE_CFLAGS=... additional optimization flags"
152 @echo
"X11=1 force link with X11 libraries instead of Cocoa (only on Mac OS X)"
154 ALL
= factor factor-ffi-test factor-lib
157 $(MAKE
) $(ALL
) macosx.app CONFIG
=vm
/Config.macosx.x86.32
160 $(MAKE
) $(ALL
) macosx.app CONFIG
=vm
/Config.macosx.x86.64
163 $(MAKE
) $(ALL
) macosx.app CONFIG
=vm
/Config.macosx.x86.fat
166 $(MAKE
) $(ALL
) CONFIG
=vm
/Config.linux.x86.32
169 $(MAKE
) $(ALL
) CONFIG
=vm
/Config.linux.x86.64
172 $(MAKE
) $(ALL
) CONFIG
=vm
/Config.linux.ppc
.32
175 $(MAKE
) $(ALL
) CONFIG
=vm
/Config.linux.ppc
.64
178 $(MAKE
) $(ALL
) CONFIG
=vm
/Config.linux.arm
181 $(MAKE
) $(ALL
) CONFIG
=vm
/Config.windows.x86.32
182 $(MAKE
) factor-console CONFIG
=vm
/Config.windows.x86.32
185 $(MAKE
) $(ALL
) CONFIG
=vm
/Config.windows.x86.64
186 $(MAKE
) factor-console CONFIG
=vm
/Config.windows.x86.64
191 mkdir
-p
$(BUNDLE
)/Contents
/MacOS
192 mkdir
-p
$(BUNDLE
)/Contents
/Frameworks
193 mv
$(EXECUTABLE
) $(BUNDLE
)/Contents
/MacOS
/factor
194 ln
-s Factor.app
/Contents
/MacOS
/factor .
/factor
196 $(ENGINE
): $(DLL_OBJS
)
197 $(TOOLCHAIN_PREFIX
)$(LINKER
) $(ENGINE
) $(DLL_OBJS
)
199 factor-lib
: $(ENGINE
)
201 factor
: $(EXE_OBJS
) $(DLL_OBJS
)
202 $(TOOLCHAIN_PREFIX
)$(CXX
) -L.
$(DLL_OBJS
) \
203 $(CFLAGS
) $(CXXFLAGS
) -o
$(EXECUTABLE
) $(LIBS
) $(EXE_OBJS
)
205 factor-console
: $(EXE_OBJS
) $(DLL_OBJS
)
206 $(TOOLCHAIN_PREFIX
)$(CXX
) -L.
$(DLL_OBJS
) \
207 $(CFLAGS
) $(CXXFLAGS
) $(CFLAGS_CONSOLE
) -o
$(CONSOLE_EXECUTABLE
) $(LIBS
) $(EXE_OBJS
)
209 factor-ffi-test
: $(FFI_TEST_LIBRARY
)
211 $(FFI_TEST_LIBRARY
): vm
/ffi_test.o
212 $(TOOLCHAIN_PREFIX
)$(CC
) $(CFLAGS
) $(FFI_TEST_CFLAGS
) $(SHARED_FLAG
) -o
$(FFI_TEST_LIBRARY
) $(TEST_OBJS
)
215 $(TOOLCHAIN_PREFIX
)$(WINDRES
) vm
/factor.rs vm
/resources.o
217 vm
/ffi_test.o
: vm
/ffi_test.c
218 $(TOOLCHAIN_PREFIX
)$(CC
) -c
$(CFLAGS
) $(FFI_TEST_CFLAGS
) -std
=c99
-o
$@
$<
220 vm
/master.hpp.gch
: vm
/master.hpp
$(MASTER_HEADERS
)
221 $(TOOLCHAIN_PREFIX
)$(CXX
) -c
-x c
++-header
$(CFLAGS
) $(CXXFLAGS
) -o
$@
$<
223 %.o
: %.
cpp vm
/master.hpp.gch
224 $(TOOLCHAIN_PREFIX
)$(CXX
) -c
$(CFLAGS
) $(CXXFLAGS
) -o
$@
$<
227 $(TOOLCHAIN_PREFIX
)$(CC
) -c
$(CFLAGS
) $(CXXFLAGS
) -o
$@
$<
229 %.o
: %.mm vm
/master.hpp.gch
230 $(TOOLCHAIN_PREFIX
)$(CXX
) -c
$(CFLAGS
) $(CXXFLAGS
) -o
$@
$<
243 rm -f libfactor-ffi-test.
*
244 rm -f Factor.app
/Contents
/Frameworks
/libfactor.dylib
246 .PHONY
: factor factor-lib factor-console factor-ffi-test
tags clean macosx.app