Browse Source

add static build for linux

Signed-off-by: r4sas <r4sas@i2pmail.org>
master 1.1
R4SAS 4 years ago
parent
commit
93b6c6d85c
Signed by: r4sas
GPG Key ID: 66F6C87B98EBCFE2
  1. 32
      Makefile
  2. 2
      Makefile.mingw
  3. 2
      README.md

32
Makefile

@ -1,16 +1,36 @@
SYS := $(shell $(CXX) -dumpmachine) CXX := g++
CXX = g++ SYS = $(shell $(CXX) -dumpmachine)
STATIC := no
DEBUG := no
SYG_SRC = sygcpp.cpp SYG_SRC = sygcpp.cpp
SYGCPP = sygcpp SYGCPP = sygcpp
LDFLAGS = -O3 -s ifeq ($(DEBUG),yes)
LDLIBS = -lcrypto -lpthread CXX_DEBUG = -g
else
LD_DEBUG = -s
endif
CXXFLAGS = $(CXX_DEBUG) -fPIC
LDFLAGS = $(LD_DEBUG) -Os
SYG_OBJS += $(patsubst %.cpp,obj/%.o,$(SYG_SRC)) SYG_OBJS = $(patsubst %.cpp,obj/%.o,$(SYG_SRC))
ifneq (, $(findstring mingw, $(SYS))$(findstring cygwin, $(SYS))) ifneq (, $(findstring mingw, $(SYS))$(findstring cygwin, $(SYS)))
include Makefile.mingw include Makefile.mingw
else
ifeq ($(STATIC),yes)
LIBPATH = /usr/lib/$(SYS)
LDLIBS = -pthread $(LIBPATH)/libcrypto.a -lpthread -ldl
else ifeq ($(STATIC),full)
LIBPATH = /usr/lib/$(SYS)
LDFLAGS += -static
LDLIBS = -pthread $(LIBPATH)/libcrypto.a -lpthread -ldl
else
LDLIBS = -lcrypto -lpthread
endif
endif endif
all: mk_obj_dir $(SYGCPP) all: mk_obj_dir $(SYGCPP)
@ -22,7 +42,7 @@ clean:
$(RM) -r obj $(SYGCPP) $(RM) -r obj $(SYGCPP)
obj/%.o: %.cpp obj/%.o: %.cpp
$(CXX) -c -o $@ $< $(CXX) -c $(CXXFLAGS) $< -o $@
$(SYGCPP): $(SYG_OBJS) $(SYGCPP): $(SYG_OBJS)
$(CXX) -o $@ $^ $(LDFLAGS) $(LDLIBS) $(CXX) -o $@ $^ $(LDFLAGS) $(LDLIBS)

2
Makefile.mingw

@ -2,7 +2,7 @@ WINDRES = windres
SYG_RC = windows/resource.rc SYG_RC = windows/resource.rc
LDFLAGS = -O3 -s -Wl,-Bstatic LDFLAGS = $(LD_DEBUG) -Os -Wl,-Bstatic
LDLIBS = -static-libgcc -lcrypto -lws2_32 -lpthread LDLIBS = -static-libgcc -lcrypto -lws2_32 -lpthread
SYG_OBJS += $(patsubst %.rc,obj/%.o,$(SYG_RC)) SYG_OBJS += $(patsubst %.rc,obj/%.o,$(SYG_RC))

2
README.md

@ -32,3 +32,5 @@ make
``` ```
* Run it using `./sygcpp` * Run it using `./sygcpp`
*Note*: If you want compile static binary, add `STATIC=yes` or `STATIC=full` to `make` command. That works only on Linux.

Loading…
Cancel
Save