Skip to content

Commit 5a659f5

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 (use UINT64_MAX) - PR giltene#130
1 parent 44a94c1 commit 5a659f5

File tree

207 files changed

+248
-114047
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

+248
-114047
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

+46-18
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)
@@ -11,10 +11,9 @@ else ifeq ($(TARGET), darwin)
1111
# is not set then it's forced to 10.4, which breaks compile on Mojave.
1212
export MACOSX_DEPLOYMENT_TARGET = $(shell sw_vers -productVersion)
1313
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
14+
CFLAGS += -I/usr/local/include
1615
else ifeq ($(TARGET), linux)
17-
CFLAGS += -D_POSIX_C_SOURCE=200809L -D_BSD_SOURCE
16+
CFLAGS += -D_POSIX_C_SOURCE=200809L -D_DEFAULT_SOURCE
1817
LIBS += -ldl
1918
LDFLAGS += -Wl,-E
2019
else ifeq ($(TARGET), freebsd)
@@ -24,42 +23,71 @@ endif
2423

2524
SRC := wrk.c net.c ssl.c aprintf.c stats.c script.c units.c \
2625
ae.c zmalloc.c http_parser.c tinymt64.c hdr_histogram.c
27-
BIN := wrk
26+
BIN := wrk2
2827

2928
ODIR := obj
3029
OBJ := $(patsubst %.c,$(ODIR)/%.o,$(SRC)) $(ODIR)/bytecode.o
3130

3231
LDIR = deps/luajit/src
33-
LIBS := -lluajit $(LIBS)
34-
CFLAGS += -I$(LDIR)
35-
LDFLAGS += -L$(LDIR)
32+
SDIR = deps/openssl
33+
34+
LDIRFLAGS= BUILDMODE=static
35+
SDIRFLAGS=
36+
37+
# Please do not enable static linking because
38+
# OpenSSL seems to cause issues. This should probably
39+
# get built and tested with MUSL for Linux.
40+
#
41+
# We localize these flags so that they are
42+
# not passed into dependent projects.
43+
44+
ifeq ($(DEBUG), true)
45+
LOCCFLAGS += -O0 -g3
46+
LOCLDFLAGS += -g3
47+
endif
3648

37-
all: $(BIN)
49+
LOCLIBS := $(LDIR)/libluajit.a $(SDIR)/libssl.a $(SDIR)/libcrypto.a
50+
CFLAGS += -I$(LDIR) -I$(SDIR)/include/
51+
LDFLAGS += -L$(LDIR) -L$(SDIR)
52+
53+
all: depends $(BIN)
54+
55+
depends:
56+
$(GIT) submodule update --init --recursive --force
3857

3958
clean:
4059
$(RM) $(BIN) obj/*
4160
@$(MAKE) -C deps/luajit clean
61+
@$(MAKE) -C deps/openssl clean
4262

43-
$(BIN): $(OBJ)
63+
$(BIN): $(OBJ) $(LOCLIBS)
4464
@echo LINK $(BIN)
45-
@$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
65+
@$(CC) $(LOCLDFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
4666

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

4969
$(ODIR):
5070
@mkdir -p $@
5171

52-
$(ODIR)/bytecode.o: src/wrk.lua
72+
$(ODIR)/bytecode.o: src/wrk.lua $(LDIR)/luajit
5373
@echo LUAJIT $<
5474
@$(SHELL) -c 'cd $(LDIR) && ./luajit -b $(CURDIR)/$< $(CURDIR)/$@'
5575

5676
$(ODIR)/%.o : %.c
5777
@echo CC $<
58-
@$(CC) $(CFLAGS) -c -o $@ $<
78+
@$(CC) $(LOCCFLAGS) $(CFLAGS) -c -o $@ $<
79+
80+
$(LDIR) $(SDIR): depends
5981

60-
$(LDIR)/libluajit.a:
82+
$(LDIR)/luajit $(LDIR)/libluajit.a: $(LDIR)
6183
@echo Building LuaJIT...
62-
@$(MAKE) -C $(LDIR) BUILDMODE=static
84+
@$(MAKE) -C $(LDIR) $(LDIRFLAGS)
85+
86+
$(SDIR)/libcrypto.a: $(SDIR)
87+
@echo Building OpenSSL...
88+
@cd $(SDIR) && ./config $(SDIRFLAGS) && $(MAKE)
89+
90+
$(SDIR)/libssl.a: $(SDIR)/libcrypto.a
6391

6492
.PHONY: all clean
6593
.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)