Makefile 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. STATIC_LIBS = libcxxcall.a
  2. SHARED_LIBS = libcxxcall.so
  3. HEADERS = abi.hpp cxxcall.hpp
  4. DEPS = $(wildcard sysdeps/*/*.cpp)
  5. OBJS = callout-arg.o callout-call.o callin-arg.o callin-recv.o
  6. LOBJS = $(OBJS:.o=.lo)
  7. TEST_OBJS = $(LOBJS)
  8. -include config.mak
  9. ALL_LIBS = $(STATIC_LIBS) $(SHARED_LIBS)
  10. AR = $(CROSS_COMPILE)ar
  11. RANLIB = $(CROSS_COMPILE)ranlib
  12. CXXFLAGS += $(CXXFLAGS_AUTO)
  13. all: $(ALL_LIBS)
  14. check: $(TEST_OBJS)
  15. $(CXX) $(CXXFLAGS) tests/test.cpp $(TEST_OBJS) -o tst
  16. ./tst
  17. %.o: %.cpp $(HEADERS) $(DEPS)
  18. $(CXX) $(CXXFLAGS) -c $< -o $@
  19. %.lo: %.cpp $(HEADERS)
  20. $(CXX) $(CXXFLAGS) -fPIC -c $< -o $@
  21. callout-call.o: callout-call.cpp $(HEADERS) $(DEPS)
  22. $(CXX) $(CXXFLAGS_ZERO) $(LDFLAGS) -c $< -o $@
  23. callout-call.lo: callout-call.cpp $(HEADERS) $(DEPS)
  24. $(CXX) $(CXXFLAGS_ZERO) $(LDFLAGS) -fPIC -c $< -o $@
  25. callin-recv.o: callin-recv.cpp $(HEADERS) $(DEPS)
  26. $(CXX) $(CXXFLAGS_ZERO) $(LDFLAGS) -c $< -o $@
  27. callin-recv.lo: callin-recv.cpp $(HEADERS) $(DEPS)
  28. $(CXX) $(CXXFLAGS_ZERO) $(LDFLAGS) -fPIC -c $< -o $@
  29. libcxxcall.a: $(OBJS)
  30. rm -f $@
  31. $(AR) rc $@ $(OBJS)
  32. $(RANLIB) $@
  33. libcxxcall.so: $(LOBJS)
  34. $(CXX) -fPIC -shared $(CXXFLAGS) $(LDFLAGS) -o $@ $(LOBJS)
  35. install: $(ALL_LIBS)
  36. mkdir -p $(includedir)/cxxcall
  37. cp libcxxcall* $(libdir)/
  38. cp $(HEADERS) $(includedir)/cxxcall
  39. clean:
  40. rm -rf *.o *.lo libcxxcall.* tst