From fc5b95110ff75110ad55bb97f7c93a8c4eb68e3b Mon Sep 17 00:00:00 2001 From: Sara Golemon Date: Tue, 19 Feb 2013 08:02:08 -0800 Subject: [PATCH] Remove support for buildling HPHPc To get the non-hphpc portions of buliding for HPHPc, perform an HHVM build and execute it with the --hphp flag To checkout the commit immediately prior to this: git checkout use-hphpc --- CMakeLists.txt | 2 +- hphp/CMakeLists.txt | 40 +- hphp/dirs.mk | 229 ----------- hphp/hhvm/CMakeLists.txt | 15 +- hphp/hphp | 1 - hphp/legacy/CMakeLists.base.txt | 116 ------ hphp/legacy/run.sh | 14 - hphp/rules.mk | 770 ----------------------------------- hphp/runtime/ext_hhvm/CMakeLists.txt | 4 - hphp/test/CMakeLists.txt | 5 +- hphp/tools/generated_files.sh | 1 - 11 files changed, 14 insertions(+), 1183 deletions(-) delete mode 100644 hphp/dirs.mk delete mode 120000 hphp/hphp delete mode 100644 hphp/legacy/CMakeLists.base.txt delete mode 100755 hphp/legacy/run.sh delete mode 100644 hphp/rules.mk diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e49b32aa49..61bbd86bf5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,5 +30,5 @@ if ("$ENV{USE_HHVM}" STREQUAL "1") message("Building for HHVM") endif() if ("$ENV{USE_HPHPC}" STREQUAL "1") - message("Building for HPHPc") + message(FATAL_ERROR "Building HPHPc is no longer supported") endif() diff --git a/hphp/CMakeLists.txt b/hphp/CMakeLists.txt index 05af3c521bc..487982a9859 100644 --- a/hphp/CMakeLists.txt +++ b/hphp/CMakeLists.txt @@ -17,24 +17,10 @@ include(HPHPSetup) -if ("$ENV{USE_HHVM}" STREQUAL "1") - # HHVM Build - SET(USE_HHVM TRUE) - SET(ENV{HHVM} 1) - ADD_DEFINITIONS("-DHHVM -DHHVM_BINARY=1 -DHHVM_PATH=\\\"${HPHP_HOME}/hphp/hhvm/hhvm\\\"") - - if ("$ENV{USE_HPHPC}" STREQUAL "1") - message(FATAL_ERROR "Both USE_HHVM and USE_HPHPC are set, you may only select one") - endif() -else() - # HPHPc Build - SET(USE_HHVM FALSE) - ADD_DEFINITIONS("-DHHVM_PATH=\"\"") - - if (NOT "$ENV{USE_HPHPC}" STREQUAL "1") - message(FATAL_ERROR "You must select which version of HipHop to build by setting either USE_HHVM=1 or USE_HPHPC=1 in your environment") - endif() -endif() +# HHVM Build +SET(USE_HHVM TRUE) +SET(ENV{HHVM} 1) +ADD_DEFINITIONS("-DHHVM -DHHVM_BINARY=1 -DHHVM_PATH=\\\"${HPHP_HOME}/hphp/hhvm/hhvm\\\"") set(RECURSIVE_SOURCE_SUBDIRS runtime/base runtime/eval runtime/ext runtime/vm system/gen system/lib util) foreach (dir ${RECURSIVE_SOURCE_SUBDIRS}) @@ -70,13 +56,11 @@ foreach (file ${CXX_SOURCES}) endforeach(file ${CXX_SOURCES}) # remove ext/sep for hhvm -if (USE_HHVM) - foreach (file ${CXX_SOURCES}) - if (${file} MATCHES "ext/sep") - list(REMOVE_ITEM CXX_SOURCES ${file}) - endif() - endforeach(file ${CXX_SOURCES}) -endif(USE_HHVM) +foreach (file ${CXX_SOURCES}) + if (${file} MATCHES "ext/sep") + list(REMOVE_ITEM CXX_SOURCES ${file}) + endif() +endforeach(file ${CXX_SOURCES}) if (EXISTS "${hphp_SOURCE_DIR}/HPHP_EXCLUDE_FILES.txt") @@ -184,11 +168,7 @@ SET(CMAKE_CXX_ARCHIVE_APPEND " q ") hphp_link(hphp_runtime_static) add_subdirectory(compiler) - -if (USE_HHVM) - add_subdirectory(runtime/ext_hhvm) -endif() - +add_subdirectory(runtime/ext_hhvm) add_subdirectory(hhvm) if (NOT "$ENV{HPHP_NOTEST}" STREQUAL "1") diff --git a/hphp/dirs.mk b/hphp/dirs.mk deleted file mode 100644 index af862970855..00000000000 --- a/hphp/dirs.mk +++ /dev/null @@ -1,229 +0,0 @@ -############################################################################### -# -# Handle command line switches, and directories -# -# Author: mwilliams (02/2010) -# -############################################################################### -# -# NOTE: $(PWD) is not set correctly when make is invoked -# using "make -Cdir". We need the actual current -# directory, not the one that make was invoked from -CWD := $(shell readlink -f `pwd`) - -ifdef USE_HHVM -ifneq ($(USE_HHVM),1) -$(error USE_HHVM must either be unset, or equal to 1) -endif -endif - -ifeq ($(notdir $(MAKE)),emake) -export MAKE -override USE_CCACHE := -override NO_DISTCC := 1 -endif - -ifneq ($(origin DIRS_INCLUDED), override) -override DIRS_INCLUDED := 1 -unexport DIRS_INCLUDED - -# This is to make sure "make" without any target will actually "make all". -overall: all quiet-1 - -# Add quiet as a dependent to prevent "nothing to do for... warnings from make" -.PHONY: quiet quiet-% -quiet quiet-%: - @true - -############################################################################### -# The exact revision of external repositories that HPHP builds against. - -FBCODE_REV = 0c8b962b192eb655b7da1d9dcc1730427705c160 -FBCODE_THIRD_PARTY_REV = 1b76b1fdef117650883ae1568fcf2777ad9a00c1 - -ifndef FBCODE_EXTERNALS_ROOT -FBCODE_EXTERNALS_ROOT = /mnt/gvfs/third-party/$(FBCODE_THIRD_PARTY_REV) -endif - -ifndef FBCODE_HOME -export FBCODE_HOME=/mnt/gvfs/fbcode/$(FBCODE_REV) -endif - -export FBCODE_BIN=$(LIB_DIR)/_fbcode_bin - -############################################################################### -# Command line switches. For example, "make RELEASE=1". - -V ?= @ -NO_PRINT = $(if $(V),--no-print-directory,) -INFINITE_LOOP_DETECTION = 1 -INFINITE_RECURSION_DETECTION = 1 -REQUEST_TIMEOUT_DETECTION = 1 - -# This requires the patched libmysql -MYSQL_MILLISECOND_TIMEOUT = 1 - --include $(wildcard $(PROJECT_ROOT)/local/*.mk) - -# This normally generates debug symbols, but you may also use this in your -# code to output extra debugging information. -#DEBUG = 1 -#DEBUG_MEMORY_LEAK = 1 -#DEBUG_APC_LEAK = 1 -#DEBUG_RACE_CONDITION = 1 - -ifdef VALGRIND - -DEBUG_MEMORY_LEAK=1 -NO_TCMALLOC=1 - -else - -ifdef RELEASE -override DEBUG= -unexport DEBUG -override DEBUG_MEMORY_LEAK= -override DEBUG_RACE_CONDITION= -override RELEASE=1 -endif - -endif # VALGRIND - -# Use jemalloc by default. -ifndef NO_JEMALLOC -USE_JEMALLOC = 1 -endif - -# This normally adds -O3 tag to generate the most optimized code targeted for -# production build. -ifndef DEBUG -RELEASE = 1 -endif - -ifndef DEBUG_MEMORY_LEAK -ifndef DEBUG_RACE_CONDITION - -# For hotprofiler instrumentation -HOTPROFILER = 1 - -# Only use jemalloc *or* tcmalloc. -ifdef USE_JEMALLOC -override NO_TCMALLOC = 1 -override GOOGLE_TCMALLOC = -endif # USE_JEMALLOC - -ifndef NO_TCMALLOC -# For google profilers -#GOOGLE_CPU_PROFILER = 1 -#GOOGLE_HEAP_PROFILER = 1 - -# Whether to link with tcmalloc.a -GOOGLE_TCMALLOC = 1 -endif - -# For GNU profiler - gprof. -#PROFILE = 1 - -# For GNU coverage - gcov. -#COVERAGE = 1 - -endif # DEBUG_RACE_CONDITION -endif # DEBUG_MEMORY_LEAK - -ifndef NO_SNAPPY -HAVE_SNAPPY = 1 -endif - -############################################################################### -# Directories - -ifdef USE_ICC -ifndef ICC -override USE_ICC:= -endif -endif - -ifdef OUTDIR_BY_TYPE -ifndef OUTPUT_ROOT -OUTPUT_ROOT := bin -endif -OUT_EXTS := \ - $(if $(USE_HHVM),-hhvm) \ - $(if $(USE_HHVM_GC),-gc) \ - $(if $(USE_LLVM),-llvm) \ - $(if $(USE_ICC),-icc) \ - $(if $(USE_JEMALLOC),-je) \ - $(if $(NO_TCMALLOC),,-tc) \ - $(if $(PROFILE),-pg) \ - $(if $(CHECKED),-ck) \ - $(if $(VALGRIND),-vg) \ - $(if $(DEBUG),-g,-O) - -EMPTY:= -SPACE:=$(EMPTY) $(EMPTY) -OUT_EXT := $(subst $(SPACE),,$(strip $(OUT_EXTS))) -endif - -ABS_PROJECT_ROOT := $(shell cd $(PROJECT_ROOT) && readlink -f `pwd`) - -ifdef OUTPUT_ROOT - -OUT_DIRNAME := $(OUTPUT_ROOT)$(OUT_EXT) -OUTPUT_REL := $(patsubst /%,,$(patsubst ~%,,$(OUTPUT_ROOT))) - -OUT_TOP := $(if $(OUTPUT_REL),$(ABS_PROJECT_ROOT)/)$(OUT_DIRNAME) -OUT_ABS := $(OUT_TOP)$(patsubst $(ABS_PROJECT_ROOT)%,%,$(CWD)) -OUT_DIR := $(OUT_ABS)/ - -LIB_DIR := $(OUT_TOP) -HPHP_LIB := $(LIB_DIR) -OUT_TOP := $(OUT_TOP)/ -HPHP := $(OUT_TOP)hphp -HHVM := $(OUT_TOP)hhvm -HPHP_OPTIONS := $(OUT_TOP)hphp_options - -else - -OUT_TOP := -OUT_DIR := -OUT_ABS := $(shell pwd) -LIB_DIR := $(ABS_PROJECT_ROOT)/bin -ifdef HPHP_LIB -ifneq ($(HPHP_LIB),$(HPHP_ROOT)/bin) -LIB_DIR := $(HPHP_LIB) -endif -endif -HPHP := $(PROJECT_ROOT)/src/hphp/hphp -HHVM := $(PROJECT_ROOT)/src/hhvm/hhvm -HPHP_OPTIONS := $(LIB_DIR)/hphp_options - -endif - -ifndef HPHP_LIB -HPHP_LIB := $(ABS_PROJECT_ROOT)/bin -endif - -ifdef SHARED -# Clear USE_JEMALLOC, since it may have already been set by the parent make. -# Ideally we would actually undefine USE_JEMALLOC: -# override undefine USE_JEMALLOC -# However, the undefine feature is only available in GNU make 3.82 and later. -override USE_JEMALLOC = -override GOOGLE_TCMALLOC = -endif - -MKDIR = mkdir -p -RMDIR = rm -fR -EXT_DIR = /home/engshare/externals/cpp/hphp/$(OS) - -%/.mkdir : - $(V)-$(MKDIR) $(@D) - $(V)touch $@ - -dirinfo: - @echo $(ABS_PROJECT_ROOT) $(OUT_TOP) \ -$(if $(VALGRIND),VG-)$(if $(USE_HHVM),VM)\ -$(if $(USE_HHVM_GC),GC)$(if $(PROFILE),P)$(if $(DEBUG),D,R)\ -$(if $(CHECKED),C)$(if $(USE_ICC),-I)$(if $(USE_LLVM),-L)\ - -endif diff --git a/hphp/hhvm/CMakeLists.txt b/hphp/hhvm/CMakeLists.txt index 8017e40806d..4ed20275deb 100644 --- a/hphp/hhvm/CMakeLists.txt +++ b/hphp/hhvm/CMakeLists.txt @@ -1,17 +1,6 @@ - -if (USE_HHVM) - set(HIPHOP_TARGET hhvm) -else() - set(HIPHOP_TARGET hphp) -endif() - set(CXX_SOURCES) auto_sources(files "*.cpp" "") list(APPEND CXX_SOURCES ${files}) -add_executable(${HIPHOP_TARGET} ${CXX_SOURCES}) -target_link_libraries(${HIPHOP_TARGET} hphp_analysis hphp_runtime_static) - -if (USE_HHVM) - target_link_libraries(hhvm ext_hhvm_static) -endif() +add_executable(hhvm ${CXX_SOURCES}) +target_link_libraries(hhvm hphp_analysis hphp_runtime_static ext_hhvm_static) diff --git a/hphp/hphp b/hphp/hphp deleted file mode 120000 index ca246bef14f..00000000000 --- a/hphp/hphp +++ /dev/null @@ -1 +0,0 @@ -hhvm \ No newline at end of file diff --git a/hphp/legacy/CMakeLists.base.txt b/hphp/legacy/CMakeLists.base.txt deleted file mode 100644 index de960fef80d..00000000000 --- a/hphp/legacy/CMakeLists.base.txt +++ /dev/null @@ -1,116 +0,0 @@ -# -# +----------------------------------------------------------------------+ -# | HipHop for PHP | -# +----------------------------------------------------------------------+ -# | Copyright (c) 2010 Facebook, Inc. (http://www.facebook.com) | -# | Copyright (c) 1997-2010 The PHP Group | -# +----------------------------------------------------------------------+ -# | This source file is subject to version 3.01 of the PHP license, | -# | that is bundled with this package in the file LICENSE, and is | -# | available through the world-wide-web at the following url: | -# | http://www.php.net/license/3_01.txt | -# | If you did not receive a copy of the PHP license and are unable to | -# | obtain it through the world-wide-web, please send a note to | -# | license@php.net so we can mail you a copy immediately. | -# +----------------------------------------------------------------------+ -# - -CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4 FATAL_ERROR) -PROJECT(hphp C CXX) - -IF("$ENV{HPHP_HOME}" STREQUAL "") - message(FATAL_ERROR "You should set the HPHP_HOME environmental") -ENDIF() - -IF("$ENV{USE_HHVM}" STREQUAL "1") - SET(USE_HHVM TRUE) -ENDIF() - -file(TO_CMAKE_PATH "$ENV{HPHP_HOME}" HPHP_HOME) - -IF(NOT IS_DIRECTORY ${HPHP_HOME}) - message(FATAL_ERROR "The value of HPHP_HOME does not exist") -ENDIF() - -IF(NOT EXISTS "${HPHP_HOME}/LICENSE.PHP") - message(FATAL_ERROR "The value of HPHP_HOME in incorrect") -ENDIF() - -SET(CMAKE_MODULE_PATH "${HPHP_HOME}/CMake" ${CMAKE_MODULE_PATH}) - -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) - -include(HPHPFunctions) -include(CheckFunctionExists) -include(HPHPSetup) - -if ("${PROGRAM_NAME}" STREQUAL "") - set(PROGRAM_NAME program) -endif() - -if (USE_HHVM) - ADD_DEFINITIONS("-DHHVM -DHHVM_BINARY=1 -DHHVM_PATH=\\\"${HPHP_HOME}/hphp/hhvm/hhvm\\\"") -endif(USE_HHVM) - -auto_sources(SOURCES "*.cpp" "RECURSE" "${CMAKE_CURRENT_SOURCE_DIR}") - -add_executable(${PROGRAM_NAME} ${SOURCES}) - -foreach (SOURCE_FILE ${SOURCES}) - if(${SOURCE_FILE} MATCHES ".no.cpp$") - SET_SOURCE_FILES_PROPERTIES( - ${SOURCE_FILE} - PROPERTIES - COMPILE_FLAGS -O0 - ) - endif() -endforeach() - -add_library(libhphp_runtime STATIC IMPORTED) -SET_PROPERTY(TARGET libhphp_runtime PROPERTY IMPORTED_LOCATION "${HPHP_HOME}/bin/libhphp_runtime.a") - -add_library(timelib STATIC IMPORTED) -SET_PROPERTY(TARGET timelib PROPERTY IMPORTED_LOCATION "${HPHP_HOME}/bin/libtimelib.a") - -add_library(sqlite3 STATIC IMPORTED) -SET_PROPERTY(TARGET sqlite3 PROPERTY IMPORTED_LOCATION "${HPHP_HOME}/bin/libsqlite3.a") - -add_library(lz4 STATIC IMPORTED) -SET_PROPERTY(TARGET lz4 PROPERTY IMPORTED_LOCATION "${HPHP_HOME}/bin/liblz4.a") - -if (NOT SKIP_BUNDLED_XHP) - add_library(xhp STATIC IMPORTED) - SET_PROPERTY(TARGET xhp PROPERTY IMPORTED_LOCATION "${HPHP_HOME}/bin/libxhp.a") -endif() - -add_library(afdt STATIC IMPORTED) -SET_PROPERTY(TARGET afdt PROPERTY IMPORTED_LOCATION "${HPHP_HOME}/bin/libafdt.a") - -add_library(mbfl STATIC IMPORTED) -SET_PROPERTY(TARGET mbfl PROPERTY IMPORTED_LOCATION "${HPHP_HOME}/bin/libmbfl.a") - -add_library(double-conversion STATIC IMPORTED) -SET_PROPERTY(TARGET double-conversion PROPERTY IMPORTED_LOCATION "${HPHP_HOME}/bin/libdouble-conversion.a") - -add_library(folly STATIC IMPORTED) -SET_PROPERTY(TARGET folly PROPERTY IMPORTED_LOCATION "${HPHP_HOME}/bin/libfolly.a") - -if (USE_HHVM) - - add_library(libext_hhvm STATIC IMPORTED) -SET_PROPERTY(TARGET libext_hhvm PROPERTY IMPORTED_LOCATION "${HPHP_HOME}/bin/libext_hhvm.a") - - add_library(libanalysis STATIC IMPORTED) -SET_PROPERTY(TARGET libanalysis PROPERTY IMPORTED_LOCATION "${HPHP_HOME}/bin/libhphp_analysis.a") - - SET_TARGET_PROPERTIES(${PROGRAM_NAME} PROPERTIES LINK_FLAGS -Wl,-u,hphp_compiler_parse,-u,hphp_build_native_func_unit,-u,hphp_build_native_class_unit,${HPHP_HOME}/bin/libhphp_analysis.a) - - target_link_libraries(${PROGRAM_NAME} libhphp_runtime libext_hhvm libanalysis) -else() - - target_link_libraries(${PROGRAM_NAME} libhphp_runtime) - -endif(USE_HHVM) - - -hphp_link(${PROGRAM_NAME}) diff --git a/hphp/legacy/run.sh b/hphp/legacy/run.sh deleted file mode 100755 index bede6097608..00000000000 --- a/hphp/legacy/run.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -#$1: output directory -#$2: program name -#$3: extra flags, for exmaple, RELEASE=1 - #echo make -j $3 PROJECT_NAME=$2 TIME_LINK=1 -C $1 -cp $HPHP_HOME/hphp/legacy/CMakeLists.base.txt $1/CMakeLists.txt -cd $1 -cmake -D PROGRAM_NAME:string=$2 . || exit $? - -if [ -n "$HPHP_VERBOSE" ]; then - make $MAKEOPTS > /dev/tty || exit $? -else - make $MAKEOPTS || exit $? -fi diff --git a/hphp/rules.mk b/hphp/rules.mk deleted file mode 100644 index e6f53e1219c..00000000000 --- a/hphp/rules.mk +++ /dev/null @@ -1,770 +0,0 @@ -############################################################################### -# -# Master Makefile Rules -# -# Author: hzhao (09/2007) -# -############################################################################### -# -# If you want to take advantage of this rules.mk, define one of these prefined -# project types, and there is very minimum Makefile lines to write. -# -# EXCLUDES = # any .c or .cpp files to exclude from build -# include rules.mk -# all: $(TARGETS) # one should always have this line unchanged -# -# 1. Static Library Project: -# -# PROJECT_NAME = xxx # final lib is named as libxxx.a -# TARGETS = $(STATIC_LIB) # add more targets than libxxx.a -# -# 2. Shared Library Project: -# -# PROJECT_NAME = xxx # final lib is named as libxxx.so -# TARGETS = $(SHARED_LIB) # add more targets than libxxx.so -# -# 3. Application Project: -# -# PROJECT_NAME = xxx # final executable is named as xxx -# TARGETS = $(APP_TARGET) # add more targets than xxx -# -# 4. Multi-Target Project: -# -# CODEGEN_TARGETS = -# LIB_TARGETS = -# PROGRAMS = -# TARGETS = $(PROGRAMS) # add more targets than xxx -# -# 5. Mono-Target Project: -# -# CODEGEN_TARGETS = -# LIB_TARGETS = -# MONO_TARGETS = -# TARGETS = $(MONO_TARGETS) # add more targets than xxx -# -# The following targets are automatically defined: -# -# make clobber: delete all intermediate files and built targets -# make clean: delete all intermediate files without deleting targets -# make cleartargets: delete targets only -# (check default.mk for more) -# -# If there are extra files to remove when "make clobber" or "make clean", add -# them to $(INTERMEDIATE_FILES). -# -############################################################################### -# Machine specific information - -OS := $(shell head -1 /etc/issue | cut -d' ' -f1) - -ifeq ($(OS), CentOS) -OS = centos$(if $(HPHP_DEV),-dev) -else -OS = fedora -endif - -GCC_VERSION := $(shell gcc --version | sed -e '1!d' -e 's%^.*LLVM.*$$%gcc x 4.4.0%' -e 's%^gcc \S\+ \(\S\+\).*$$%\1%') - -############################################################################### -# Directories and command line switches - -include $(PROJECT_ROOT)/src/dirs.mk - -############################################################################### -# Source Files - -ifdef AUTO_SOURCES - -CXX_NOOPT_SOURCES += \ - $(filter-out $(GENERATED_CXX_NOOPT_SOURCES), \ - $(wildcard *.no.cpp) \ - $(wildcard $(patsubst %, %/*.no.cpp, $(SOURCE_SUBDIRS)))) - -CXX_SOURCES += \ - $(filter-out $(GENERATED_CXX_SOURCES) $(CXX_NOOPT_SOURCES), \ - $(wildcard *.cpp) \ - $(wildcard $(patsubst %, %/*.cpp, $(SOURCE_SUBDIRS)))) - -C_SOURCES += \ - $(filter-out $(GENERATED_C_SOURCES) $(GENERATED_CPP_SOURCES), \ - $(wildcard *.c) \ - $(wildcard $(patsubst %, %/*.c, $(SOURCE_SUBDIRS)))) - -endif - -ifdef AUTO_SOURCES_RECURSIVE - -CXX_NOOPT_SOURCES += \ - $(filter-out $(GENERATED_CXX_NOOPT_SOURCES), \ - $(shell find . -name "*.no.cpp")) - -CXX_SOURCES += \ - $(filter-out $(GENERATED_CXX_SOURCES) $(CXX_NOOPT_SOURCES), \ - $(shell find . -name "*.cpp")) - -C_SOURCES += \ - $(filter-out $(GENERATED_C_SOURCES) $(GENERATED_CPP_SOURCES), \ - $(shell find . -name "*.c")) - -endif - -GENERATED_SOURCES = \ - $(GENERATED_CXX_NOOPT_SOURCES) \ - $(GENERATED_CXX_SOURCES) \ - $(GENERATED_C_SOURCES) \ - $(GENERATED_CPP_SOURCES) - -ALL_SOURCES += \ - $(CXX_NOOPT_SOURCES) \ - $(CXX_SOURCES) \ - $(C_SOURCES) \ - $(GENERATED_SOURCES) \ - $(ASM_SOURCES) - -ifdef USE_PIC_ONLY -pic_objects = $(1) -CPPFLAGS += -fPIC -else -ifeq ($(origin USE_NO_PIC), file) -pic_objects = -else -pic_objects = $(patsubst %.o, %.pic.o, $(1)) -endif # USE_NO_PIC -endif # USE_PIC_ONLY - -# Always excludes emacs temporary backup files -EXCLUDES += .#% - -INTERMEDIATE_FILES += $(GENERATED_SOURCES) time_build.out -SOURCES += $(filter-out $(EXCLUDES), $(ALL_SOURCES)) -OBJECTS += $(addprefix $(OUT_DIR),$(patsubst %.S, %.o, $(patsubst %.cpp, %.o, $(SOURCES:.c=.o)))) -PIC_OBJECTS = $(call pic_objects, $(OBJECTS)) -OBJECT_DIR_DEPS := $(if $(OUT_DIR),$(addsuffix .mkdir, \ - $(sort $(dir $(OBJECTS) $(TEST_OBJECTS))))) -OBJECT_DIRS_REQUIRED := $(filter-out $(wildcard $(OBJECT_DIR_DEPS)), \ - $(OBJECT_DIR_DEPS)) -ifneq ($(OBJECT_DIRS_REQUIRED),) -$(shell $(MKDIR) $(OBJECT_DIRS_REQUIRED)) -endif - -STATIC_LIB = $(LIB_DIR)/lib$(PROJECT_NAME).a -SHARED_LIB = $(LIB_DIR)/lib$(PROJECT_NAME).so -APP_TARGET = $(OUT_TOP)$(PROJECT_NAME) - -MONO_TARGETS = $(filter-out $(PROJECT_NAME), $(patsubst %.cpp, %, $(wildcard *.cpp))) - -# external shared libraries -EXTERNAL = - -# additional objects that are linked into the static library -ADDITIONAL_OBJS = - -############################################################################### -# Compilation - -ifneq ($(USE_CCACHE),) -override USE_CCACHE := $(wildcard /usr/bin/ccache) -endif - -# To time compilation time and link time, run "TIME_BUILD=1 make -j1", and it -# will generate time_build.out for analysis. -ifdef TIME_BUILD -TIMECMD = /usr/bin/time -f "%e %C" -o time_build.out --append -NO_DISTCC = 1 -USE_CCACHE := -else -TIMECMD = -endif -ifneq ($(USE_CCACHE),) -ifndef NO_DISTCC -export CCACHE_PREFIX=distcc -endif -endif - -PREFIX := $(TIMECMD)$(if $(USE_CCACHE), ccache,$(if $(NO_DISTCC),, distcc)) -ICC_ARGS := -no-ipo -fp-model precise -wd584 -wd1418 -wd1918 -wd383 -wd869 -wd981 -wd424 -wd1419 -wd444 -wd271 -wd2259 -wd1572 -wd1599 -wd82 -wd177 -wd593 -wd68 - -# CXX and CC are assigned by the externals makefile included below - -P_CXX = $(PREFIX) $(CXX) -P_CC = $(PREFIX) $(CC) -# override make default for icpcp case -LD = $(CXX) - -# Both $(CC) and $(CXX) will now generate .d dependency files. -CPPFLAGS += -MMD - -# allowing "and", "or" to be re-defined -CXXFLAGS += -fno-operator-names -ffunction-sections #-std=gnu++0x - -# For now, only enable C++11 in DEBUG builds. -ifdef DEBUG -CXXFLAGS += -std=gnu++0x -endif - -# Include frame pointers to make it easier to generate callgraphs in oprofile -CPPFLAGS += -fno-omit-frame-pointer $(if $(USE_ICC),,-momit-leaf-frame-pointer) - -ifdef VALGRIND -CPPFLAGS += -DVALGRIND -endif - -ifeq ($(USE_HHVM),1) -CPPFLAGS += -DHHVM -ifeq ($(USE_HHVM_GC),1) -CPPFLAGS += -DHHVM_GC -endif -# The user can set the intended install path for systemlib.php as follows if -# intending to install hhvm somewhere other than HPHP_LIB: -# -# make HHVM_LIB_PATH_DEFAULT=/usr/local/hhvm -ifeq ($(HHVM_LIB_PATH_DEFAULT),) -CPPFLAGS += -DHHVM_LIB_PATH_DEFAULT='"$(HPHP_LIB)"' -else -CPPFLAGS += -DHHVM_LIB_PATH_DEFAULT='"$(HHVM_LIB_PATH_DEFAULT)"' -endif -endif - -ifdef MAC_OS_X - -CXXFLAGS += \ - -DMAC_OS_X \ - -D_GNU_SOURCE \ - -ftemplate-depth-60 \ - -else - -CPPFLAGS += \ - -I $(PROJECT_ROOT)/src \ - -I $(PROJECT_ROOT)/src/system/gen \ - -ifneq ($(wildcard $(PROJECT_ROOT)/facebook/extensions),) -CPPFLAGS += \ - -I $(PROJECT_ROOT)/facebook/extensions -endif - -ifdef GOOGLE_CPU_PROFILER -GOOGLE_TOOLS = 1 -endif -ifdef GOOGLE_HEAP_PROFILER -GOOGLE_TOOLS = 1 -endif -ifdef GOOGLE_TCMALLOC -GOOGLE_TOOLS = 1 -endif - -CPPFLAGS += -D_GNU_SOURCE -D_REENTRANT=1 -D_PTHREADS=1 -pthread -CXXFLAGS += -ftemplate-depth-60 - -endif - -ifndef NO_WALL -CXXFLAGS += -Wall -Woverloaded-virtual -Wno-deprecated -Wno-strict-aliasing -Wno-write-strings -Wno-invalid-offsetof \ - $(if $(USE_ICC),-w1,-Wno-parentheses) -endif - -ifndef NO_WERROR -CXXFLAGS += -Werror -endif - -ifndef NO_DEBUG_SYMBOL -DEBUG_SYMBOL = -g -else -DEBUG_SYMBOL = -endif -CPPFLAGS += $(DEBUG_SYMBOL) - -ifdef HPHP_DEV -CPPFLAGS += -DHPHP_DEV -endif - -ifdef DEBUG -CPPFLAGS += -DDEBUG -OPT = -endif - -# HHVM never uses VectorArray -ifeq ($(USE_HHVM),1) - ENABLE_VECTOR_ARRAY= -else - ENABLE_VECTOR_ARRAY=1 -endif - -ifdef ENABLE_HPHP_ARRAY -CPPFLAGS += -DENABLE_HPHP_ARRAY -endif - -ifdef ENABLE_VECTOR_ARRAY -CPPFLAGS += -DENABLE_VECTOR_ARRAY -endif - -ifdef DEBUG_MEMORY_LEAK -CPPFLAGS += -DDEBUG_MEMORY_LEAK -OPT = -endif - -ifdef DEBUG_APC_LEAK -CPPFLAGS += -DDEBUG_APC_LEAK -endif - -ifdef DEBUG_RACE_CONDITION -CPPFLAGS += -DDEBUG_RACE_CONDITION -OPT = -endif - -ifneq ($(RELEASE)$(CHECKED),) -CPPFLAGS += $(if $(RELEASE),-DRELEASE) -fmerge-all-constants -ifdef OPT_SIZE -OPT = -Os -else -OPT = -O3 - -ifndef USE_ICC -# Disable global common subexpression elimination and a few other flags -# which made binary code larger, but not faster. -OPT += -fno-gcse\ - -fno-tree-vectorize -fno-ipa-cp-clone\ - -fno-unswitch-loops -fno-prefetch-loop-arrays -# Increase the inline limit for functions not declared inline (faster) -OPT += --param max-inline-insns-auto=60 -endif - -endif - -ifndef NO_GOLD -LDFLAGS += -Wl,--icf=all,--gc-sections -endif - -endif - -ifdef ALWAYS_ASSERT -CPPFLAGS += -DALWAYS_ASSERT -endif - -ifdef INFINITE_LOOP_DETECTION -CPPFLAGS += -DINFINITE_LOOP_DETECTION -endif -ifdef INFINITE_RECURSION_DETECTION -CPPFLAGS += -DINFINITE_RECURSION_DETECTION -endif -ifdef REQUEST_TIMEOUT_DETECTION -CPPFLAGS += -DREQUEST_TIMEOUT_DETECTION -endif -ifdef HOTPROFILER -CPPFLAGS += -DHOTPROFILER -endif -ifdef EXECUTION_PROFILER -CPPFLAGS += -DEXECUTION_PROFILER -endif -ifdef STACK_FRAME_INJECTION -CPPFLAGS += -DSTACK_FRAME_INJECTION -endif -ifdef ENABLE_FULL_SETLINE -CPPFLAGS += -DENABLE_FULL_SETLINE -endif - -ifdef GOOGLE_CPU_PROFILER -CPPFLAGS += -DGOOGLE_CPU_PROFILER -endif -ifdef GOOGLE_HEAP_PROFILER -CPPFLAGS += -DGOOGLE_HEAP_PROFILER -endif -ifdef GOOGLE_TCMALLOC -CPP_MALLOC_FLAGS += -DGOOGLE_TCMALLOC -endif -ifdef USE_JEMALLOC -CPP_MALLOC_FLAGS += -DUSE_JEMALLOC -endif -ifdef PROFILE -CPPFLAGS += -pg -endif - -ifdef COVERAGE -CPPFLAGS += -fprofile-arcs -ftest-coverage -endif - -ifdef CPP_PROFILE_GENERATE -#CPPFLAGS += -fprofile-arcs -CPPFLAGS += -fprofile-generate -endif - -ifdef LD_PROFILE_GENERATE -#LDFLAGS += -fprofile-arcs -#SO_LDFLAGS += -fprofile-arcs -LDFLAGS += -fprofile-generate -SO_LDFLAGS += -fprofile-generate -endif - -ifdef PROFILE_USE -CPPFLAGS += -fprofile-use -fprofile-correction -Wcoverage-mismatch -LDFLAGS += -fprofile-use -fprofile-correction -SO_LDFLAGS += -fprofile-use -fprofile-correction -endif - -ifdef HPHP_BUILD_LIBRARY -CPPFLAGS += -DHPHP_BUILD_LIBRARY -endif - -ifdef HPHP_BUILD_FFI -JAVA_PATH = /usr/local/jdk-6u7-64 -CPPFLAGS += -I $(JAVA_PATH)/include -I $(JAVA_PATH)/include/linux -endif - -ifdef NO_TLS -CPPFLAGS += -DNO_TLS -endif - -ifneq ($(TAINTED),) -CPPFLAGS += -DTAINTED -endif - -ifdef HPHP_INSTRUMENT_PROCESS_PARALLEL -CPPFLAGS += -DHPHP_INSTRUMENT_PROCESS_PARALLEL -endif - -ifdef HPHP_INSTRUMENT_TYPE_INF -CPPFLAGS += -DHPHP_INSTRUMENT_TYPE_INF -endif - -ifdef HPHP_DETAILED_TYPE_INF_ASSERT -CPPFLAGS += -DHPHP_DETAILED_TYPE_INF_ASSERT -endif - -ifdef HAVE_SNAPPY -CPPFLAGS += -DHAVE_SNAPPY -endif - -ifdef ENABLE_INTERCEPT -CPPFLAGS += -DENABLE_INTERCEPT -endif - -ifneq ($(wildcard $(PROJECT_ROOT)/facebook),) -# facebook specific stuff -CPPFLAGS += -DFACEBOOK -DHAVE_QUICKLZ -endif - -MYSQL_UNIX_SOCK_ADDR := $(shell mysql_config --socket) -ifneq ($(MYSQL_UNIX_SOCK_ADDR), "") -CPPFLAGS += -DPHP_MYSQL_UNIX_SOCK_ADDR=\"$(MYSQL_UNIX_SOCK_ADDR)\" -endif - -############################################################################### -# Linking - -ifndef AR -AR = ar -endif -ifndef LINKER -LINKER = $(CXX) -unexport LINKER -endif - -AR_CMD = $(TIMECMD) $(AR) -crs -LD_CMD = $(TIMECMD) $(LINKER) - -ifndef NO_GOLD -LDFLAGS += -Xlinker --export-dynamic -Xlinker --no-warn-search-mismatch -Wl,--build-id -else -LDFLAGS += -rdynamic -endif - -SCRIPT_ARGS = -Wl,--script=$(LINKER_SCRIPT) -LDFLAGS += $(if $(LINKER_SCRIPT),$(SCRIPT_ARGS)) - -# Add library search paths here. -LDFLAGS += \ - -L$(LIB_DIR) - -ifdef PROFILE -LDFLAGS += -pg -endif - -ifdef COVERAGE -LDFLAGS += -fprofile-arcs -endif - -############################################################################### -# External Libraries and Programs -# -# 1. Base Libraries -# -# These have to be libraries that nearly ALL programs need to link with. Do -# NOT add something that not everyone wants. - -# Default externals tree to use -EXTERNALS ?= gcc-4.6.2-glibc-2.13 - -$(LIB_DIR)/hphp.mk: - $(V)cp $(PROJECT_ROOT)/src/externals/hphp.mk $@ - -# Generate the fbcode platform makefiles so that we can include them -$(LIB_DIR)/%.mk: \ - $(PROJECT_ROOT)/src/externals/fbcode/gen_makefile.py \ - $(PROJECT_ROOT)/src/externals/fbcode/external_deps.py \ - $(PROJECT_ROOT)/src/dirs.mk - @echo "Generating $@" - @python $(PROJECT_ROOT)/src/externals/fbcode/gen_makefile.py \ - $(FBCODE_EXTERNALS_ROOT) $(EXTERNALS) \ - $(PROJECT_ROOT)/src/externals/fbcode/external_deps.py > $@.tmp - @mv -f $@.tmp $@ - -# Make sure a 'make clean' removes the generated makefiles -INTERMEDIATE_FILES += $(LIB_DIR)/gcc-*.mk -INTERMEDIATE_FILES += $(LIB_DIR)/gcc-*.mk.tmp - -# Import the platform-specific makefiles -ifeq ($(filter clean clobber,$(MAKECMDGOALS)),) - -include $(LIB_DIR)/$(EXTERNALS).mk -endif - -CXX = $(EXTERNAL_CXX) -CC = $(EXTERNAL_CC) -SWIG = $(EXTERNAL_SWIG) - -LDFLAGS += $(EXTERNAL_LDFLAGS) -CPPFLAGS += $(EXTERNAL_CPPFLAGS) - -ifndef NO_GOLD -LD_CMD += -B$(EXTERNAL_GOLD_DIR) -endif - -# external static libraries -ALL_LIBS = $(EXTERNAL_STATIC_LIBS) - -# Paths to external libraries -LIB_PATHS = $(HPHP_LIB) $(HPHP_TEST_LIB_PATH) $(EXTERNAL_LIB_PATHS) - -############################################################################### -# Dependencies - -# This is to make sure "make" without any target will actually "make all". -overall: all quiet-1 - -# Suppressing no rule errors -%.d: - @ - -%.h %.hpp %.hh %.inc: - @ - -DEPEND_FILES := $(wildcard $(OBJECTS:.o=.d) $(PIC_OBJECTS:.o=.d) $(BOOTSTRAP_CXX_SOURCES:.cpp=.d)) - -ifneq ($(DEPEND_FILES),) -$(DEPEND_FILES:.d=.o): %.o : %.d --include $(DEPEND_FILES) -endif - -dep_libs = $(filter $(patsubst -L%,, $(patsubst -l%, $(LIB_DIR)/lib%.a, $(1))), $(wildcard $(LIB_DIR)/*)) - -DEP_LIBS += $(call dep_libs, $(LIBS)) - -############################################################################### -# Predefined Targets - -ifndef SHOW_COMPILE -ECHO_COMPILE = @echo 'Compiling $< ...' -CV = $(V) -else -ECHO_COMPILE = -CV = -endif - -ifndef SHOW_LINK -ECHO_LINK = @echo 'Linking $@ ...' -LV = $(V) -else -ECHO_LINK = -LV = -endif - -define COMPILE_IT -$(ECHO_COMPILE) -$(CV)$(1) -c $(if $(OUT_TOP),-I$(OUT_TOP)src) \ - $(sort $(if $(filter %.pic.o,$@),-fPIC,$(CPP_MALLOC_FLAGS))) \ - $(CPPFLAGS) $(2) -o $@ -MT $@ -MF $(patsubst %.o, %.d, $@) $< -endef - -define PREPROCESS_IT -$(ECHO_PREPROCESS) -$(CV)$(1) -c $(if $(OUT_TOP),-I$(OUT_TOP)src) $(CPPFLAGS) $(2) $< -E > $<.E -endef - - -define LINK_OBJECTS -$(ECHO_LINK) -$(LV)$(LD_CMD) -o $@ $(LDFLAGS) $(sort $(filter %.o,$^)) $(LIBS) -endef - -OBJECT_FILES = $(addprefix $(OUT_DIR),$(patsubst %.$(2),%.o,$(1))) -PIC_OBJECT_FILES = $(addprefix $(OUT_DIR),$(patsubst %.$(2),%.pic.o,$(1))) -PREPROCESSED_FILES = $(addprefix $(OUT_DIR),$(patsubst %.$(2),%.cpp.E,$(1))) - -ifdef NOT_NOW -%:%.o - -%:%.c - -%:%.cpp -endif - -$(call OBJECT_FILES,$(CXX_NOOPT_SOURCES) $(GENERATED_CXX_NOOPT_SOURCES),cpp): $(OUT_DIR)%.o:%.cpp - $(call COMPILE_IT,$(P_CXX),$(CXXFLAGS)) - -$(BOOTSTRAP_CXX_SOURCES:.cpp=.o): %.o:%.cpp - $(call COMPILE_IT,$(P_CXX),$(OPT) $(CXXFLAGS)) - -$(call OBJECT_FILES,$(CXX_SOURCES) $(GENERATED_CXX_SOURCES) $(TEST_SOURCES),cpp): $(OUT_DIR)%.o:%.cpp - $(call COMPILE_IT,$(P_CXX),$(OPT) $(CXXFLAGS)) - -$(call OBJECT_FILES,$(C_SOURCES) $(GENERATED_C_SOURCES),c): $(OUT_DIR)%.o:%.c - $(call COMPILE_IT,$(P_CC),$(OPT)) - -$(call OBJECT_FILES,$(GENERATED_CPP_SOURCES),c): $(OUT_DIR)%.o:%.c - $(call COMPILE_IT,$(P_CXX),$(OPT) $(CXXFLAGS)) - -$(call OBJECT_FILES,$(ASM_SOURCES),S): $(OUT_DIR)%.o:%.S - $(call COMPILE_IT,$(P_CC:distcc=),$(OPT)) - -$(call PIC_OBJECT_FILES,$(CXX_NOOPT_SOURCES) $(GENERATED_CXX_NOOPT_SOURCES),cpp): $(OUT_DIR)%.pic.o:%.cpp - $(call COMPILE_IT,$(P_CXX),$(CXXFLAGS)) - -$(BOOTSTRAP_CXX_SOURCES:.cpp=.pic.o): %.pic.o:%.cpp - $(call COMPILE_IT,$(P_CXX),$(OPT) $(CXXFLAGS)) - -$(call PIC_OBJECT_FILES,$(CXX_SOURCES) $(GENERATED_CXX_SOURCES),cpp): $(OUT_DIR)%.pic.o:%.cpp - $(call COMPILE_IT,$(P_CXX),$(OPT) $(CXXFLAGS)) - -$(call PIC_OBJECT_FILES,$(C_SOURCES) $(GENERATED_C_SOURCES),c): $(OUT_DIR)%.pic.o:%.c - $(call COMPILE_IT,$(P_CC),$(OPT)) - -$(call PIC_OBJECT_FILES,$(GENERATED_CPP_SOURCES),c): $(OUT_DIR)%.pic.o:%.c - $(call COMPILE_IT,$(P_CXX),$(OPT) $(CXXFLAGS)) - -$(call PIC_OBJECT_FILES,$(ASM_SOURCES),S): $(OUT_DIR)%.pic.o:%.S - $(call COMPILE_IT,$(P_CC:distcc=),$(OPT)) - -$(OUT_DIR)%.o:$(OUT_DIR)%.cpp - $(call COMPILE_IT,$(P_CXX),$(OPT) $(CXXFLAGS)) - -$(OUT_DIR)%.pic.o:$(OUT_DIR)%.cpp - $(call COMPILE_IT,$(P_CXX),$(OPT) $(CXXFLAGS)) - -$(OUT_DIR)%.cpp.E:$(OUT_DIR)%.cpp - $(call PREPROCESS_IT,$(P_CXX),$(OPT) $(CXXFLAGS)) - -$(call PREPROCESSED_FILES,$(CXX_NOOPT_SOURCES) $(GENERATED_CXX_NOOPT_SOURCES),cpp): $(OUT_DIR)%.cpp.E:%.cpp - $(call PREPROCESS_IT,$(P_CXX),$(CXXFLAGS)) - -$(call PREPROCESSED_FILES,$(CXX_SOURCES) $(GENERATED_CXX_SOURCES) $(TEST_SOURCES),cpp): $(OUT_DIR)%.cpp.E:%.cpp - $(call PREPROCESS_IT,$(P_CXX),$(OPT) $(CXXFLAGS)) - -$(call PREPROCESSED_FILES,$(C_SOURCES) $(GENERATED_C_SOURCES),c): $(OUT_DIR)%.cpp.E:%.c - $(call PREPROCESS_IT,$(P_CC),$(OPT)) - -$(call PREPROCESSED_FILES,$(GENERATED_CPP_SOURCES),c): $(OUT_DIR)%.cpp.E:%.c - $(call PREPROCESS_IT,$(P_CXX),$(OPT) $(CXXFLAGS)) - -$(OUT_DIR)%.cpp.E:$(OUT_DIR)%.cpp - $(call PREPROCESS_IT,$(P_CXX),$(OPT) $(CXXFLAGS)) - - -.EXPORT_ALL_VARIABLES:; -unexport CXX_NOOPT_SOURCES CXX_SOURCES ASM_SOURCES C_SOURCES GENERATED_CXX_NOOPT_SOURCES GENERATED_CXX_SOURCES GENERATED_C_SOURCES GENERATED_CPP_SOURCES ALL_SOURCES SOURCES OBJECTS PIC_OBJECTS DEPEND_FILES CPPFLAGS CXXFLAGS LDFLAGS PROGRAMS LIB_TARGETS DEP_LIBS -unexport LINK_OBJECTS MAKEFILE_LIST COMPILE_IT OBJECT_DIR_DEPS REC_SOURCES PREPROCESS_IT WWW_SHARED_FILES FLIB_FILES SIZE_SORTED_SOURCES ADDITIONAL_OBJS RECURSIVE_SOURCES AUTO_SOURCES_RECURSIVE AUTO_SOURCES -unexport EXTERNAL_SHARED_LIBS LIB_PATHS EXTERNAL_STATIC_LIBS EXTERNAL_CPPFLAGS EXTERNAL EXTERNAL_LIB_PATHS ALL_LIBS - -# Since these variables start with += in this file, when calling submake, -# they will not start with empty list. SUB_XXX will always start with empty. -SUB_SOURCE_SUBDIRS = $(SOURCE_SUBDIRS) -SUB_PROGRAMS = $(PROGRAMS) -SUB_LIB_TARGETS = $(LIB_TARGETS) -SUB_OBJECTS = $(OBJECTS) -SUB_INTERMEDIATE_FILES = $(INTERMEDIATE_FILES) - -# This trick allows Makefiles in recursive directories each defines its own -# SUB_CLEAN_DIRS without passing into child directories - -.DEFAULT: - $(V)$(MAKE) $(NO_PRINT) -f $(PROJECT_ROOT)/src/default.mk $@ - -$(OBJECTS): $(GENERATED_SOURCES) -$(PIC_OBJECTS): $(GENERATED_SOURCES) - -.PHONY: objects picobjects -objects: $(OBJECTS) quiet-2 -picobjects: $(PIC_OBJECTS) quiet-3 - -ifdef SHOW_LINK - -$(SHARED_LIB): $(PIC_OBJECTS) - $(P_CXX) -shared -fPIC $(DEBUG_SYMBOL) -Wall -Werror -Wno-invalid-offsetof -Wl,-soname,$(notdir $@) \ - $(SO_LDFLAGS) -o $@ $(sort $(PIC_OBJECTS)) $(EXTERNAL) - -ifneq ($(USE_STATIC_LIB_RULE),0) -$(STATIC_LIB): $(OBJECTS) - $(V)$(RM) $@ - $(AR_CMD) $@ $(sort $(OBJECTS) $(ADDITIONAL_OBJS)) -endif - -$(MONO_TARGETS): %:%.o $(DEP_LIBS) - $(LD_CMD) -o $@ $(LDFLAGS) $< $(LIBS) - -else - -$(SHARED_LIB): $(PIC_OBJECTS) - @echo 'Linking $@ ...' - $(V)$(P_CXX) -shared -fPIC $(DEBUG_SYMBOL) -Wall -Werror -Wno-invalid-offsetof -Wl,-soname,$(notdir $@) \ - $(SO_LDFLAGS) -o $@ $(sort $(PIC_OBJECTS)) $(EXTERNAL) - -ifneq ($(USE_STATIC_LIB_RULE),0) -$(STATIC_LIB): $(OBJECTS) - @echo 'Linking $@ ...' - $(V)$(RM) $@ - $(V)$(AR_CMD) $@ $(sort $(OBJECTS) $(ADDITIONAL_OBJS)) -endif - -$(MONO_TARGETS): %:%.o $(DEP_LIBS) - @echo 'Linking $@ ...' - $(V)$(LD_CMD) -o $@ $(LDFLAGS) $< $(LIBS) - -endif - -.PHONY:out-of-date do-setup - -do-setup: quiet-4 - -ifdef LINK_LOCAL -#pragma runlocal -endif -$(APP_TARGET): $(OBJECTS) $(DEP_LIBS) $(FORCE_RELINK) - $(LINK_OBJECTS) $(LINK_LIBS) - -.PHONY: $(LIB_TARGETS) \ - $(addsuffix -obj, $(LIB_TARGETS) $(PROGRAMS)) \ - $(addsuffix -setup, $(LIB_TARGETS) $(PROGRAMS)) - -$(addsuffix -setup, $(PROGRAMS) $(LIB_TARGETS)): - $(V)$(MAKE) $(NO_PRINT) -C $(@:-setup=) do-setup - -$(addsuffix -obj, $(LIB_TARGETS) $(PROGRAMS)): %-obj : %-setup - -$(LIB_TARGETS): % : %-obj $(CODEGEN_TARGETS) - $(V)$(MAKE) $(NO_PRINT) -C $@ - -$(PROGRAMS): % : %-obj $(LIB_TARGETS) - $(V)$(MAKE) $(NO_PRINT) -C $@ - -$(addsuffix -obj, $(PROGRAMS) $(LIB_TARGETS)): - $(V)$(MAKE) $(NO_PRINT) -C $(@:-obj=) objects picobjects - -.PHONY: report -report: - @echo "Time PID Source File" - @echo "---------------------------------------------" - -$(V)ps -Cdistcc wwho pid,etime,command k start | \ - sed 's/^\( *[0-9]\+\) \+\([0-9:]\+\) .* \([^ ]\+\)$$/\2 \1 \3/' | \ - head -`tput lines` - -.PHONY: top -top: - $(V)watch $(MAKE) -s report diff --git a/hphp/runtime/ext_hhvm/CMakeLists.txt b/hphp/runtime/ext_hhvm/CMakeLists.txt index ebb903cc6d6..1ad04514909 100644 --- a/hphp/runtime/ext_hhvm/CMakeLists.txt +++ b/hphp/runtime/ext_hhvm/CMakeLists.txt @@ -1,6 +1,4 @@ -if (USE_HHVM) - message("Including ext_hhvm files") set(files) @@ -20,5 +18,3 @@ ADD_LIBRARY(ext_hhvm_static STATIC ${CXX_SOURCES}) SET_TARGET_PROPERTIES(ext_hhvm_static PROPERTIES OUTPUT_NAME "ext_hhvm") SET_TARGET_PROPERTIES(ext_hhvm_static PROPERTIES PREFIX "lib") SET_TARGET_PROPERTIES(ext_hhvm_static PROPERTIES CLEAN_DIRECT_OUTPUT 1) - -endif(USE_HHVM) diff --git a/hphp/test/CMakeLists.txt b/hphp/test/CMakeLists.txt index 50fdb7debee..2d1c0ebc717 100644 --- a/hphp/test/CMakeLists.txt +++ b/hphp/test/CMakeLists.txt @@ -18,7 +18,4 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test_base_fast.inc ${CMAKE_CURRENT_SO configure_file(${CMAKE_CURRENT_SOURCE_DIR}/dummy_mysql_info.inc ${CMAKE_CURRENT_SOURCE_DIR}/test_mysql_info.inc COPYONLY) add_executable(test ${CXX_SOURCES}) -target_link_libraries(test hphp_analysis hphp_runtime_static) -if (USE_HHVM) - target_link_libraries(test ext_hhvm_static) -endif() +target_link_libraries(test hphp_analysis hphp_runtime_static ext_hhvm_static) diff --git a/hphp/tools/generated_files.sh b/hphp/tools/generated_files.sh index e7ffa443ec5..a829f16e6bd 100755 --- a/hphp/tools/generated_files.sh +++ b/hphp/tools/generated_files.sh @@ -9,7 +9,6 @@ check_err() } [ -z "$HPHP_HOME" ] && check_err 1 "HPHP_HOME environment variable not set" -[ -z "$USE_HHVM" ] && check_err 1 "USE_HHVM must be set to generate HHVM files" VERBOSE=1