Re-analyze tracelets when IR translation fails
[hiphop-php.git] / bin / run.mk
blob378e56955ed08e166a38f5d9352b0cffcb9c33d8
2 PROJECT_ROOT = $(HPHP_HOME)
4 ifndef PROJECT_NAME
5 PROJECT_NAME = program
6 endif
8 override OUTPUT_ROOT=
9 override OUTDIR_BY_TYPE=
11 # We want files to be sorted by size, so that larger files are dispatched by
12 # distcc earlier
13 RECURSIVE_SOURCES := $(shell find . -name "*.cpp")
14 CXX_NOOPT_SOURCES := $(filter %.no.cpp, $(RECURSIVE_SOURCES))
15 SIZE_SORTED_SOURCES := $(shell ls -S $(filter-out %.no.cpp, $(RECURSIVE_SOURCES)))
16 CXX_SOURCES := $(SIZE_SORTED_SOURCES)
18 ifdef RANDOMIZE_CXX_SOURCES
19 CXX_SOURCES := $(shell perl -MList::Util=shuffle \
20 -e'print join " ",shuffle @ARGV' $(CXX_SOURCES))
21 endif
23 -include sep_extensions.mk
25 EXTRA_LIB :=
26 ifdef HPHP_EMITTER
27 EXTRA_LIB := -Wl,-u,hphp_compiler_parse,-u,hphp_build_native_func_unit,-u,hphp_build_native_class_unit,$(HPHP_LIB)/libhphp_analysis.a
28 LIBS += $(HPHP_LIB)/libhphp_analysis.a
29 endif
30 ifdef HPHPI_THUNK
31 CPPFLAGS += -DTHUNK_FILENAME='"/.hphpi-thunk"'
32 endif
33 ifdef HPHPI_BINARY
34 CPPFLAGS += -DHPHPI_BINARY=1
35 endif
36 ifdef HHVM_BINARY
37 CPPFLAGS += -DHHVM_BINARY=1
38 endif
40 CPPFLAGS += -I. $(SEP_EXTENSION_INCLUDE_PATHS)
41 LIBS = $(EXTRA_LIB) $(SEP_EXTENSION_LIBS) $(HPHP_LIB)/libhphp_runtime.a $(ALL_LIBS) $(HHVM_EXT_LIB)
43 include $(HPHP_HOME)/src/rules.mk
45 ifdef HPHP_BUILD_LIBRARY
47 EXTERNAL += $(HPHP_LIB)/libhphp_runtime.so
48 HPHP_OBJ_DIR = $(HPHP_HOME)
50 ifdef HPHP_BUILD_FFI
51 EXTERNAL += $(HPHP_LIB)/libhphp_java.so
52 endif
54 RUNTIME_DIRS := $(wildcard \
55 $(HPHP_LIB)/src/runtime/base \
56 $(HPHP_LIB)/src/runtime/ext \
57 $(HPHP_LIB)/src/runtime/eval \
58 $(HPHP_LIB)/src/system/gen \
59 $(HPHP_LIB)/src/system/lib \
60 $(HPHP_LIB)/src/util)
62 ifeq ($(strip $(RUNTIME_DIRS)),)
63 RUNTIME_DIRS = \
64 $(HPHP_OBJ_DIR)/src/runtime/base \
65 $(HPHP_OBJ_DIR)/src/runtime/ext \
66 $(HPHP_OBJ_DIR)/src/runtime/eval \
67 $(HPHP_OBJ_DIR)/src/system/gen \
68 $(HPHP_OBJ_DIR)/src/system/lib \
69 $(HPHP_OBJ_DIR)/src/util
70 endif
72 ADDITIONAL_OBJS += $(shell find $(RUNTIME_DIRS) -name "*.o" -\! -name "*.pic.o")
74 TARGETS = $(STATIC_LIB) $(SHARED_LIB)
76 else # HPHP_BUILD_LIBRARY
77 TARGETS = $(APP_TARGET)
78 endif
80 all: $(TARGETS)
82 %.pp: %
83 $(CXX) -E $(if $(OUT_TOP),-I$(OUT_TOP)src) $(CPPFLAGS) $(OPT) $(CXXFLAGS) $<