-
Notifications
You must be signed in to change notification settings - Fork 50
Closed
Description
I think better to use Make directly.
Makefile:
#
# IPFS C++ HTTP API client library
#
VER_MAJOR := 0
VER_MINOR := 4
VER_PATCH := 0
VERSION := $(VER_MAJOR).$(VER_MINOR).$(VER_PATCH)
HEADERS := include/ipfs/client.h include/ipfs/http/transport-curl.h include/ipfs/http/transport.h
TESTPROGS := block dht files key object swarm config generic name pin
CXXFLAGS = -Wall -Wpedantic -Wextra -Werror -Os -std=gnu++11 -I./include
LDLIBS = ./libipfs-http-client.a -lcurl
.PHONY: testprogs lib all clean
all: lib testprogs
lib: libipfs-http-client.a libipfs-http-client.so.$(VERSION)
libipfs-http-client.a: src/client.o src/http/transport-curl.o
$(AR) rc libipfs-http-client.a src/client.o src/http/transport-curl.o
libipfs-http-client.so.$(VERSION): src/client.o src/http/transport-curl.o
$(CXX) $(CXXFLAGS) -shared -Wl,-soname,libipfs-http-client.so.$(VER_MAJOR) -o libipfs-http-client.so.$(VERSION) src/client.o src/http/transport-curl.o -lcurl
ln -sf libipfs-http-client.so.$(VERSION) libipfs-http-client.so.$(VER_MAJOR)
ln -sf libipfs-http-client.so.$(VER_MAJOR) libipfs-http-client.so
testprogs: $(addprefix test/,$(TESTPROGS))
$(addprefix test/,$(TESTPROGS)):%:%.cc include/ipfs/client.h include/ipfs/test/utils.h libipfs-http-client.a
$(CXX) $(CXXFLAGS) $< $(LDLIBS) -o $@
src/client.o: src/client.cc $(HEADERS)
$(CXX) $(CXXFLAGS) -fPIC -o src/client.o -c src/client.cc
src/http/transport-curl.o: src/http/transport-curl.cc $(HEADERS) include/ipfs/test/utils.h
$(CXX) $(CXXFLAGS) -fPIC -o src/http/transport-curl.o -c src/http/transport-curl.cc
clean:
$(RM) src/client.o src/http/transport-curl.o libipfs-http-client.a libipfs-http-client.so* $(addprefix test/,$(TESTPROGS))
Tested in Debian Stretch.
LHLaurini
Metadata
Metadata
Assignees
Labels
No labels