aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-03-27 22:37:59 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-03-27 22:37:59 -0700
commitc321ddfa9b94a08d812479201bb74c04a1ef96d4 (patch)
tree4efa29b8211132159136104f50f19b28ea6729f0
parented4f4ae4e29bc7a27d0eb7503401a8fbfb669470 (diff)
downloadbun-c321ddfa9b94a08d812479201bb74c04a1ef96d4.tar.gz
bun-c321ddfa9b94a08d812479201bb74c04a1ef96d4.tar.zst
bun-c321ddfa9b94a08d812479201bb74c04a1ef96d4.zip
Update Makefile
-rw-r--r--Makefile31
1 files changed, 24 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 3bf9433a1..d54157383 100644
--- a/Makefile
+++ b/Makefile
@@ -183,13 +183,17 @@ HOMEBREW_PREFIX ?= $(BREW_PREFIX_PATH)
SRC_DIR := src/javascript/jsc/bindings
OBJ_DIR := src/javascript/jsc/bindings-obj
-SRC_FILES := $(wildcard $(SRC_DIR)/*.cpp)
+SRC_FILES := $(wildcard $(SRC_DIR)/*.cpp)
+SRC_WEBCORE_FILES := $(wildcard $(SRC_DIR)/webcore/*.cpp)
OBJ_FILES := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRC_FILES))
+WEBCORE_OBJ_FILES := $(patsubst $(SRC_DIR)/webcore/%.cpp,$(OBJ_DIR)/%.o,$(SRC_WEBCORE_FILES))
+
MAC_INCLUDE_DIRS := -I$(WEBKIT_RELEASE_DIR)/JavaScriptCore/PrivateHeaders \
-I$(WEBKIT_RELEASE_DIR)/WTF/Headers \
-I$(WEBKIT_RELEASE_DIR)/ICU/Headers \
-I$(WEBKIT_RELEASE_DIR)/ \
-Isrc/javascript/jsc/bindings/ \
+ -Isrc/javascript/jsc/bindings/webcore \
-I$(WEBKIT_DIR)/Source/bmalloc
LINUX_INCLUDE_DIRS := -I$(JSC_INCLUDE_DIR) \
@@ -206,7 +210,7 @@ endif
ifeq ($(OS_NAME),darwin)
MACOS_MIN_FLAG=-mmacosx-version-min=$(MIN_MACOS_VERSION)
POSIX_PKG_MANAGER=brew
- INCLUDE_DIRS += $(MAC_INCLUDE_DIRS)
+INCLUDE_DIRS += $(MAC_INCLUDE_DIRS)
endif
@@ -266,14 +270,14 @@ endif
-JSC_BINDINGS=$(BUN_DEPS_OUT_DIR)/jsc-bindings.a
+JSC_BINDINGS=$(BUN_DEPS_OUT_DIR)/libjsc-bindings.a
RELEASE_FLAGS=
DEBUG_FLAGS=
ifeq ($(OS_NAME), darwin)
RELEASE_FLAGS += -Wl,-dead_strip -Wl,-dead_strip_dylibs
- DEBUG_FLAGS += -undefined dynamic_lookup
+ DEBUG_FLAGS += -Wl,-dead_strip -Wl,-dead_strip_dylibs
endif
@@ -325,7 +329,7 @@ BUN_LLD_FLAGS_WITHOUT_JSC = $(ARCHIVE_FILES) \
-BUN_LLD_FLAGS = $(JSC_BINDINGS) $(JSC_FILES) ${ICU_FLAGS} $(BUN_LLD_FLAGS_WITHOUT_JSC)
+BUN_LLD_FLAGS = $(JSC_BINDINGS) ${ICU_FLAGS} $(BUN_LLD_FLAGS_WITHOUT_JSC)
CLANG_VERSION = $(shell $(CC) --version | awk '/version/ {for(i=1; i<=NF; i++){if($$i=="version"){split($$(i+1),v,".");print v[1]}}}')
@@ -806,6 +810,7 @@ test-dev-bunjs:
test-dev: test-dev-with-hmr
jsc-copy-headers:
+ cp $(WEBKIT_DIR)/Source/JavaScriptCore/heap/WeakHandleOwner.h $(WEBKIT_RELEASE_DIR)/JavaScriptCore/PrivateHeaders/JavaScriptCore/WeakHandleOwner.h
find $(WEBKIT_RELEASE_DIR)/JavaScriptCore/Headers/JavaScriptCore/ -name "*.h" -exec cp {} $(WEBKIT_RELEASE_DIR)/JavaScriptCore/PrivateHeaders/JavaScriptCore/ \;
# This is a workaround for a JSC bug that impacts aarch64
@@ -895,6 +900,8 @@ clean-jsc:
cd src/javascript/jsc/WebKit && rm -rf **/CMakeCache.txt **/CMakeFiles && rm -rf src/javascript/jsc/WebKit/WebKitBuild
clean-bindings:
rm -rf $(OBJ_DIR)/*.o
+ rm -rf $(OBJ_DIR)/webcore/*.o
+ rm -rf $(JSC_BINDINGS)
clean: clean-bindings
rm $(BUN_DEPS_DIR)/*.a $(BUN_DEPS_DIR)/*.o
@@ -904,11 +911,13 @@ clean: clean-bindings
(cd $(BUN_DEPS_DIR)/picohttp && make clean) || echo "";
(cd $(BUN_DEPS_DIR)/zlib && make clean) || echo "";
-jsc-bindings-mac: $(OBJ_FILES)
+jsc-bindings-mac: $(OBJ_FILES) $(WEBCORE_OBJ_FILES)
make jsc-bindings-archive
jsc-bindings-archive:
- $(AR) rvs $(JSC_BINDINGS) $(OBJ_FILES)
+ $(AR) rvs $(JSC_BINDINGS).1.a $(OBJ_FILES) $(WEBCORE_OBJ_FILES)
+ llvm-libtool-darwin -static -o $(JSC_BINDINGS) -L$(BUN_DEPS_DIR) -lJavaScriptCore -lWTF -lbmalloc -U --color -ljsc-bindings.a.1
+
mimalloc-debug:
rm -rf $(BUN_DEPS_DIR)/mimalloc/CMakeCache* $(BUN_DEPS_DIR)/mimalloc/CMakeFiles
@@ -1026,6 +1035,14 @@ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
-fno-exceptions \
-ferror-limit=1000 \
-g3 -c -o $@ $<
+
+$(OBJ_DIR)/%.o: $(SRC_DIR)/webcore/%.cpp
+ $(CXX) $(CLANG_FLAGS) \
+ $(MACOS_MIN_FLAG) \
+ $(OPTIMIZATION_LEVEL) \
+ -fno-exceptions \
+ -ferror-limit=1000 \
+ -g3 -c -o $@ $<
sizegen:
$(CXX) src/javascript/jsc/headergen/sizegen.cpp -o $(BUN_TMP_DIR)/sizegen $(CLANG_FLAGS) -O1