Makefile 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #CXX = clang++
  2. CXXFLAGS = -O2 -std=c++11 -I.. -Wall -Wextra -pthread
  3. PREFIX = /usr/local
  4. #PREFIX = $(shell brew --prefix)
  5. OPENSSL_DIR = $(PREFIX)/opt/openssl@3
  6. OPENSSL_SUPPORT = -DCPPHTTPLIB_OPENSSL_SUPPORT -I$(OPENSSL_DIR)/include -L$(OPENSSL_DIR)/lib -lssl -lcrypto
  7. ifneq ($(OS), Windows_NT)
  8. UNAME_S := $(shell uname -s)
  9. ifeq ($(UNAME_S), Darwin)
  10. OPENSSL_SUPPORT += -framework CoreFoundation -framework Security
  11. endif
  12. endif
  13. ZLIB_SUPPORT = -DCPPHTTPLIB_ZLIB_SUPPORT -lz
  14. BROTLI_DIR = $(PREFIX)/opt/brotli
  15. BROTLI_SUPPORT = -DCPPHTTPLIB_BROTLI_SUPPORT -I$(BROTLI_DIR)/include -L$(BROTLI_DIR)/lib -lbrotlicommon -lbrotlienc -lbrotlidec
  16. all: server client hello simplecli simplesvr upload redirect ssesvr ssecli benchmark issue
  17. server : server.cc ../httplib.h Makefile
  18. $(CXX) -o server $(CXXFLAGS) server.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT)
  19. client : client.cc ../httplib.h Makefile
  20. $(CXX) -o client $(CXXFLAGS) client.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT)
  21. hello : hello.cc ../httplib.h Makefile
  22. $(CXX) -o hello $(CXXFLAGS) hello.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT)
  23. simplecli : simplecli.cc ../httplib.h Makefile
  24. $(CXX) -o simplecli $(CXXFLAGS) simplecli.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT)
  25. simplesvr : simplesvr.cc ../httplib.h Makefile
  26. $(CXX) -o simplesvr $(CXXFLAGS) simplesvr.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT)
  27. upload : upload.cc ../httplib.h Makefile
  28. $(CXX) -o upload $(CXXFLAGS) upload.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT)
  29. redirect : redirect.cc ../httplib.h Makefile
  30. $(CXX) -o redirect $(CXXFLAGS) redirect.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT)
  31. ssesvr : ssesvr.cc ../httplib.h Makefile
  32. $(CXX) -o ssesvr $(CXXFLAGS) ssesvr.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT)
  33. ssecli : ssecli.cc ../httplib.h Makefile
  34. $(CXX) -o ssecli $(CXXFLAGS) ssecli.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT)
  35. benchmark : benchmark.cc ../httplib.h Makefile
  36. $(CXX) -o benchmark $(CXXFLAGS) benchmark.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT)
  37. pem:
  38. openssl genrsa 2048 > key.pem
  39. openssl req -new -key key.pem | openssl x509 -days 3650 -req -signkey key.pem > cert.pem
  40. clean:
  41. rm server client hello simplecli simplesvr upload redirect ssesvr ssecli benchmark *.pem