2 PROJECT_ROOT
= $(HPHP_HOME
)
9 override OUTDIR_BY_TYPE
=
11 # We want files to be sorted by size, so that larger files are dispatched by
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
))
23 -include sep_extensions.mk
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
31 CPPFLAGS
+= -DTHUNK_FILENAME
='"/.hphpi-thunk"'
34 CPPFLAGS
+= -DHPHPI_BINARY
=1
37 CPPFLAGS
+= -DHHVM_BINARY
=1
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
)
51 EXTERNAL
+= $(HPHP_LIB
)/libhphp_java.so
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 \
62 ifeq ($(strip $(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
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
)
83 $(CXX
) -E
$(if
$(OUT_TOP
),-I
$(OUT_TOP
)src
) $(CPPFLAGS
) $(OPT
) $(CXXFLAGS
) $<