Skip to content

Commit 77c3d0f

Browse files
committed
Basic Build Improvements:
- Remove Usage of System OpenSSL - Update OpenSSL from GitHub as Submodule - Update LuaJit from GitHub as Submodule - Fixes for gettimeofday() - Fixes to use x86 intrinsics only on x86 - Rename to wrk2 Integrate Improvements from GitHub: - Fixes to Script Copy Value Order - PR giltene#113 - Add Fixes for Mutual TLS Authentication - PR giltene#99 - Add Fixes for TLS Ciphers - PR giltene#107 - Add EOF Handling Error - PR giltene#33 - Add JSON Example - PR giltene#51 - Make Rate Optional - PR giltene#130
1 parent 44a94c1 commit 77c3d0f

File tree

207 files changed

+271
-114052
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

207 files changed

+271
-114052
lines changed

Diff for: .gitignore

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
*.o
2+
*.obj
3+
24
*.a
3-
wrk
5+
*.lib
6+
7+
*.out
8+
*.exe
9+
10+
wrk2
411

512
deps/luajit/src/host/buildvm
613
deps/luajit/src/host/buildvm_arch.h
@@ -16,3 +23,5 @@ deps/luajit/src/luajit
1623

1724
.idea
1825
CMakeLists.txt
26+
27+
*Output

Diff for: .gitmodules

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[submodule "deps/luajit"]
2+
path = deps/luajit
3+
url = https://github.com/LuaJIT/LuaJIT
4+
branch = v2.1
5+
[submodule "deps/openssl"]
6+
path = deps/openssl
7+
url = https://github.com/openssl/openssl
8+
branch = master

Diff for: Makefile

+69-23
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
CFLAGS := -std=c99 -Wall -O2 -D_REENTRANT
2-
LIBS := -lpthread -lm -lcrypto -lssl
3-
1+
CFLAGS := -Wall -O2 -D_REENTRANT
2+
LIBS := -lpthread -lm
3+
GIT := git
44
TARGET := $(shell uname -s | tr '[A-Z]' '[a-z]' 2>/dev/null || echo unknown)
55

66
ifeq ($(TARGET), sunos)
@@ -9,57 +9,103 @@ ifeq ($(TARGET), sunos)
99
else ifeq ($(TARGET), darwin)
1010
# Per https://luajit.org/install.html: If MACOSX_DEPLOYMENT_TARGET
1111
# is not set then it's forced to 10.4, which breaks compile on Mojave.
12-
export MACOSX_DEPLOYMENT_TARGET = $(shell sw_vers -productVersion)
13-
LDFLAGS += -pagezero_size 10000 -image_base 100000000
14-
LIBS += -L/usr/local/opt/openssl/lib
15-
CFLAGS += -I/usr/local/include -I/usr/local/opt/openssl/include
12+
MACOSX_DEPLOYMENT_TARGET ?= $(shell sw_vers -productVersion)
13+
export MACOSX_DEPLOYMENT_TARGET
14+
15+
CFLAGS += -I/usr/local/include
16+
17+
# Per macOS, the below options are deprecated and going to be removed.
18+
# They cause host/minilua build process to fail, so please remove.
19+
# LDFLAGS += -pagezero_size 10000 -image_base 100000000
20+
1621
else ifeq ($(TARGET), linux)
17-
CFLAGS += -D_POSIX_C_SOURCE=200809L -D_BSD_SOURCE
22+
CFLAGS += -D_POSIX_C_SOURCE=200809L -D_DEFAULT_SOURCE
1823
LIBS += -ldl
1924
LDFLAGS += -Wl,-E
2025
else ifeq ($(TARGET), freebsd)
2126
CFLAGS += -D_DECLARE_C99_LDBL_MATH
2227
LDFLAGS += -Wl,-E
2328
endif
2429

25-
SRC := wrk.c net.c ssl.c aprintf.c stats.c script.c units.c \
26-
ae.c zmalloc.c http_parser.c tinymt64.c hdr_histogram.c
27-
BIN := wrk
30+
SRC := wrk.c \
31+
net.c \
32+
ssl.c \
33+
aprintf.c \
34+
stats.c \
35+
script.c \
36+
units.c \
37+
ae.c \
38+
zmalloc.c \
39+
http_parser.c \
40+
tinymt64.c \
41+
hdr_histogram.c
42+
BIN := wrk2
2843

2944
ODIR := obj
3045
OBJ := $(patsubst %.c,$(ODIR)/%.o,$(SRC)) $(ODIR)/bytecode.o
3146

3247
LDIR = deps/luajit/src
33-
LIBS := -lluajit $(LIBS)
34-
CFLAGS += -I$(LDIR)
35-
LDFLAGS += -L$(LDIR)
48+
SDIR = deps/openssl
49+
50+
LDIRFLAGS= BUILDMODE=static
51+
SDIRFLAGS=
52+
53+
# Please do not enable static linking because
54+
# OpenSSL seems to cause issues. This should probably
55+
# get built and tested with MUSL for Linux.
56+
#
57+
# We localize these flags so that they are
58+
# not passed into dependent projects.
59+
60+
ifeq ($(DEBUG), true)
61+
LOCCFLAGS += -O0 -g3
62+
LOCLDFLAGS += -g3
63+
endif
64+
65+
LOCLIBS := $(LDIR)/libluajit.a $(SDIR)/libssl.a $(SDIR)/libcrypto.a
66+
CFLAGS += -I$(LDIR) -I$(SDIR)/include/
67+
LDFLAGS += -L$(LDIR) -L$(SDIR)
3668

37-
all: $(BIN)
69+
all: depends $(BIN)
70+
71+
depends:
72+
$(GIT) submodule update --init --recursive --force
3873

3974
clean:
4075
$(RM) $(BIN) obj/*
4176
@$(MAKE) -C deps/luajit clean
77+
@$(MAKE) -C deps/openssl clean
4278

43-
$(BIN): $(OBJ)
79+
$(BIN): $(OBJ) $(LOCLIBS)
4480
@echo LINK $(BIN)
45-
@$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
81+
@$(CC) $(LOCLDFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
4682

47-
$(OBJ): config.h Makefile $(LDIR)/libluajit.a | $(ODIR)
83+
$(OBJ): config.h Makefile | $(ODIR)
4884

4985
$(ODIR):
5086
@mkdir -p $@
5187

52-
$(ODIR)/bytecode.o: src/wrk.lua
88+
$(ODIR)/bytecode.o: src/wrk.lua $(LDIR)/luajit
5389
@echo LUAJIT $<
5490
@$(SHELL) -c 'cd $(LDIR) && ./luajit -b $(CURDIR)/$< $(CURDIR)/$@'
5591

56-
$(ODIR)/%.o : %.c
92+
$(ODIR)/%.o : %.c | $(LOCLIBS)
5793
@echo CC $<
58-
@$(CC) $(CFLAGS) -c -o $@ $<
94+
@$(CC) $(LOCCFLAGS) $(CFLAGS) -c -o $@ $<
95+
96+
$(LDIR) $(SDIR): depends
5997

60-
$(LDIR)/libluajit.a:
98+
$(LDIR)/libluajit.a: $(LDIR)
6199
@echo Building LuaJIT...
62-
@$(MAKE) -C $(LDIR) BUILDMODE=static
100+
@[ -f "$@" ] || $(MAKE) -C $(LDIR) $(LDIRFLAGS)
101+
102+
$(LDIR)/luajit: $(LDIR)/libluajit.a
103+
104+
$(SDIR)/libcrypto.a: $(SDIR)
105+
@echo Building OpenSSL...
106+
@[ -f "$@" ] || { cd $(SDIR) && ./config $(SDIRFLAGS) && $(MAKE) ; }
107+
108+
$(SDIR)/libssl.a: $(SDIR)/libcrypto.a
63109

64110
.PHONY: all clean
65111
.SUFFIXES:

Diff for: deps/luajit

Submodule luajit added at 505e2c0

Diff for: deps/luajit/COPYRIGHT

-56
This file was deleted.

Diff for: deps/luajit/Makefile

-151
This file was deleted.

Diff for: deps/luajit/README

-16
This file was deleted.

0 commit comments

Comments
 (0)