Makefile 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. NAME=libdatachannel
  2. CXX=$(CROSS)g++
  3. AR=$(CROSS)ar
  4. RM=rm -f
  5. CPPFLAGS=-pthread -std=c++17 -fPIC -Wall -Wno-reorder -Wno-sign-compare -Wno-unused-function -Og -g
  6. LDFLAGS=-pthread
  7. LDLIBS=$(shell pkg-config --libs glib-2.0 gobject-2.0 nice) -lgnutls
  8. INCLUDES=$(shell pkg-config --cflags glib-2.0 gobject-2.0 nice) -I$(USRSCTP_DIR)/usrsctplib
  9. USRSCTP_DIR:=usrsctp
  10. USRSCTP_DEFINES:=-DINET -DINET6
  11. USRSCTP_CFLAGS:=-fPIC -Wno-address-of-packed-member
  12. SRCS=$(shell printf "%s " src/*.cpp)
  13. OBJS=$(subst .cpp,.o,$(SRCS))
  14. all: $(NAME).a $(NAME).so tests
  15. src/%.o: src/%.cpp
  16. $(CXX) $(CPPFLAGS) $(INCLUDES) $(USRSCTP_DEFINES) -MMD -MP -o $@ -c $<
  17. test/%.o: test/%.cpp
  18. $(CXX) $(CPPFLAGS) -Isrc -MMD -MP -o $@ -c $<
  19. -include $(subst .o,.d,$(OBJS))
  20. $(NAME).a: $(OBJS)
  21. $(AR) crf $@ $(OBJS)
  22. $(NAME).so: libusrsctp.a $(OBJS)
  23. $(CXX) $(LDFLAGS) -shared -o $@ $(OBJS) $(LDLIBS) libusrsctp.a
  24. tests: $(NAME).a test/main.o
  25. $(CXX) $(LDFLAGS) -o $@ test/main.o $(LDLIBS) $(NAME).a libusrsctp.a
  26. clean:
  27. $(RM) src/*.o src/*.d
  28. dist-clean: clean
  29. $(RM) $(NAME).a
  30. $(RM) $(NAME).so
  31. $(RM) libusrsctp.a
  32. $(RM) src/*~
  33. libusrsctp.a:
  34. cd $(USRSCTP_DIR) && ./bootstrap && CFLAGS="$(USRSCTP_CFLAGS)" ./configure --enable-static && make
  35. cp $(USRSCTP_DIR)/usrsctplib/.libs/libusrsctp.a .