Skip to content

Commit 51742e7

Browse files
committed
makefile: force link with fmt static library
1 parent 491ef7c commit 51742e7

File tree

3 files changed

+14
-12
lines changed

3 files changed

+14
-12
lines changed

Makefile

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,20 +62,20 @@ OBJ_CPP = $(SRC_CPP:.cpp=.o)
6262
OBJ_CC = $(SRC_CC:.cc=.o)
6363
OBJ = $(OBJ_CPP) $(OBJ_CC)
6464
HEADERS = config.hpp common.hpp core-modules.hh cufetch.hh
65-
LDFLAGS += -L./$(BUILDDIR) -lcufetch -lfmt -ldl
65+
LDFLAGS += -Wl,-Bstatic $(BUILDDIR)/libfmt.a -Wl,-Bdynamic -lcufetch -ldl
6666
CXXFLAGS ?= -mtune=generic -march=native
6767
CXXFLAGS += -fvisibility-inlines-hidden -fvisibility=hidden -Iinclude -std=c++20 $(VARS) -DVERSION=\"$(VERSION)\" -DLOCALEDIR=\"$(LOCALEDIR)\" -DICONPREFIX=\"$(ICONPREFIX)\"
6868

69-
all: genver libcufetch fmt toml json $(TARGET)
69+
all: genver fmt toml json libcufetch $(TARGET)
7070

7171
libcufetch:
7272
ifeq ($(wildcard $(BUILDDIR)/libcufetch.so),)
73-
mkdir -p $(BUILDDIR)
7473
make -C libcufetch BUILDDIR=$(BUILDDIR)
7574
endif
7675

7776
fmt:
7877
ifeq ($(wildcard $(BUILDDIR)/libfmt.a),)
78+
mkdir -p $(BUILDDIR)
7979
make -C src/libs/fmt BUILDDIR=$(BUILDDIR)
8080
endif
8181

@@ -94,10 +94,10 @@ ifeq ($(wildcard include/version.h),)
9494
./scripts/generateVersion.sh
9595
endif
9696

97-
$(TARGET): genver fmt toml libcufetch json $(OBJ)
97+
$(TARGET): genver fmt toml json libcufetch $(OBJ)
9898
mkdir -p $(BUILDDIR)
9999
sh ./scripts/generateVersion.sh
100-
$(CXX) $(OBJ) $(BUILDDIR)/*.o -o $(BUILDDIR)/$(TARGET) $(LDFLAGS)
100+
$(CXX) -o $(BUILDDIR)/$(TARGET) $(OBJ) $(BUILDDIR)/*.o $(LDFLAGS)
101101
cd $(BUILDDIR)/ && ln -sf $(TARGET) cufetch
102102

103103
locale:
@@ -121,9 +121,9 @@ clean:
121121

122122
distclean:
123123
rm -rf $(BUILDDIR) ./tests/$(BUILDDIR) $(OBJ)
124-
find . -type f -name "*.tar.gz" -exec rm -rf "{}" \;
125-
find . -type f -name "*.o" -exec rm -rf "{}" \;
126-
find . -type f -name "*.a" -exec rm -rf "{}" \;
124+
find . -type f -name "*.tar.gz" -delete
125+
find . -type f -name "*.o" -delete
126+
find . -type f -name "*.a" -delete
127127

128128
install: install-common $(TARGET)
129129
install $(BUILDDIR)/$(TARGET) -Dm 755 -v $(DESTDIR)$(PREFIX)/bin/$(TARGET)

libcufetch/Makefile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@ CXX_INCLUDES = -I../include
33
CXX_FLAGS = -shared -fPIC
44
SRC = $(wildcard *.cc)
55
OBJ = $(SRC:.cc=.o)
6+
FMT_STATIC = ../$(BUILDDIR)/libfmt.a
67

78
all: libcufetch
89

910
%.o: %.cc
1011
$(CXX) $(CXX_INCLUDES) $(CXX_FLAGS) -c -o $@ $<
1112

12-
libcufetch: $(OBJ)
13-
$(CXX) $(OBJ) $(CXX_INCLUDES) $(CXX_FLAGS) -o libcufetch.so -L../$(BUILDDIR)/ -lfmt
13+
libcufetch: $(OBJ) $(FMT_STATIC)
14+
$(CXX) $(CXX_FLAGS) $(OBJ) $(CXX_INCLUDES) \
15+
-Wl,-Bstatic $(FMT_STATIC) -Wl,-Bdynamic \
16+
-o libcufetch.so
1417
mv -f libcufetch.so ../$(BUILDDIR)/$@.so
1518

1619
clean:

src/libs/fmt/Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
CXX ?= g++
66
# CXX_DEFINES = -DFMT_LIB_EXPORT -Dfmt_EXPORTS
77
CXX_INCLUDES = -I../../../include
8-
CXX_FLAGS = -O3 -DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden
8+
CXX_FLAGS = -O3 -DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden -fPIC
99

1010
all: fmt
1111

@@ -15,7 +15,6 @@ fmt: format.cc os.cc
1515
ar qc libfmt.a os.cc.o format.cc.o
1616
ranlib libfmt.a
1717
mv -f libfmt.a ../../../$(BUILDDIR)/libfmt.a
18-
# $(CXX) -fPIC -O3 -DNDEBUG -shared -Wl,-soname,libfmt.so.10 -o libfmt.so format.cc.o os.cc.o
1918

2019
clean:
2120
rm -f *.o *.so *.a ../../../$(BUILDDIR)/fmt/.*a

0 commit comments

Comments
 (0)