From e6dcb27ecb0dbe2258b7ee83a44a01da9da97216 Mon Sep 17 00:00:00 2001 From: mrbesen Date: Thu, 4 Mar 2021 10:18:18 +0100 Subject: [PATCH] make for static linkage --- .gitignore | 1 + Makefile | 17 +++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 299598a..a8179ba 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ build/ *.so *.d +*.a deps/ diff --git a/Makefile b/Makefile index f98e789..7d9aee4 100644 --- a/Makefile +++ b/Makefile @@ -6,10 +6,11 @@ # statdessen: `make clean; make all -j` verwenden # windows name -NAME = lib$(NAMESHORT).dll +#NAME = lib$(NAMESHORT).dll NAMESHORT = mrbesen NAME ?= lib$(NAMESHORT).so +NAMESTATIC = lib$(NAMESHORT).a NAMETEST = test CFLAGS = -fpic -std=c++17 -O2 -g -pipe -Wall -Wextra -Wno-unused-parameter -Wpedantic CXX = g++ @@ -32,7 +33,11 @@ BUILDDIRS = $(patsubst $(SRCF)%, $(BUILDDIR)%, $(SOURCEDIRS)) INCLUDES += $(addprefix -I, $(SOURCEDIRS)) -all: $(OUTF)$(NAME) runtest +all: $(OUTF)$(NAME) $(OUTF)$(NAMESTATIC) runtest + +$(OUTF)$(NAMESTATIC): $(BUILDDIRS) $(DEPF) $(OBJFILES) + @echo "Archiving $@" + @$(AR) rs $@ $(filter %.o, $^) $(OUTF)$(NAME): $(BUILDDIRS) $(DEPF) $(OBJFILES) @echo "Linking $@" @@ -50,15 +55,15 @@ clean-depends: $(RM) -r $(DEPF) clean: - $(RM) -r $(OUTF)$(NAME) $(BUILDDIR) $(NAMETEST) + $(RM) -r $(OUTF)$(NAME) $(BUILDDIR) $(NAMETEST) $(NAMESTATIC) -$(NAMETEST): $(NAME) $(TESTF)*.cpp +$(NAMETEST): $(TESTF)*.cpp $(NAMESTATIC) @echo "Compiling tests" - @$(CXX) -o $@ $(filter-out %.so, $^) $(CFLAGS) $(INCLUDES) $(LDFLAGS) -L$(OUTF) -l$(NAMESHORT) + @$(CXX) -o $@ $^ $(CFLAGS) $(INCLUDES) $(LDFLAGS) runtest: $(NAMETEST) @echo "Running tests" - LD_LIBRARY_PATH=$(OUTF):$(LD_LIBRARY_PATH) ./$< + ./$< install: $(NAME) cp -f ./$(NAME) /usr/lib/