Advertisement
Guest User

Untitled

a guest
Aug 29th, 2019
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 1.63 KB | None | 0 0
  1. # Base macros
  2. CC          :=  gcc
  3. CXX         :=  g++
  4.  
  5. # DIRs
  6. SRC_DIR     :=  ./src
  7. OBJ_DIR     :=  ./obj
  8. INC_DIR     :=  ./include
  9. SOL_DIR     :=  ./soltrack-2.2
  10. TD_DIR      :=  ./timedrift
  11.  
  12. # Compile FLAGS
  13. CFLAGS      +=  -pedantic -O3 -fPIC -m64 -lm -DPYTHON_ENABLE
  14. CXXFLAGS    :=  $(CFLAGS) -std=c++17
  15.  
  16. # TODO: are ALL of those Python CFLAGS actually needed...?
  17. PFLAGS      :=  $(shell python3-config --cflags)
  18.  
  19. # Linker FLAGS
  20. LDFLAGS     +=  $(shell python3-config --ldflags) -lm
  21.  
  22. # extra LIBS
  23. PLIBS       :=  $(shell python3-config --libs)
  24. LIBS        :=  $(PLIBS) -lboost_python3
  25.  
  26. # Main files
  27. SRC         :=  $(wildcard $(SRC_DIR)/*.cpp)
  28. HEADERS     :=  $(wildcard $(INC_DIR)/*.h)
  29. OBJ         :=  $(addprefix $(OBJ_DIR)/,$(notdir $(SRC:.cpp=.o)))
  30. SO_MODULE   :=  timedrift.so
  31.  
  32. # Display collected files
  33. $(info SRC="$(SRC)")
  34. $(info HEADERS="$(HEADERS)")
  35. $(info LIBS="$(LIBS)")
  36. $(info )
  37.  
  38. # TARGETS
  39. all: build install clean
  40.  
  41. build:  $(OBJ) $(OBJ_DIR)/SolTrack.o $(OBJ_DIR)/SolTrack_RiseSet.o
  42.     $(CXX) -Wl,--no-undefined $(CFLAGS) $(LDFLAGS) -shared $< $(LIBS) -lstdc++ \
  43.     -Wl,-whole-archive,-export-dynamic -Wl,--no-whole-archive -ldl -o $(SO_MODULE)
  44.  
  45. install: build
  46.     @mkdir -p $(TD_DIR)
  47.     mv $(SO_MODULE) $(TD_DIR)/
  48.  
  49. clean:
  50.     [ -d "$(OBJ_DIR)" ] && rm -r $(OBJ_DIR) || true
  51.  
  52. # Main targets
  53. $(OBJ): $(SRC) $(HEADERS)
  54.     @mkdir -p $(@D)
  55.     $(CXX) -c $(CXXFLAGS) $(PFLAGS) -I$(INC_DIR) -o $@ $<
  56.  
  57. # External libs
  58. $(OBJ_DIR)/SolTrack.o:  $(SOL_DIR)/SolTrack.c $(SOL_DIR)/SolTrack.h
  59.     @mkdir -p $(@D)
  60.     $(CC) -c $(CFLAGS) $(PFLAGS) -I$(SOL_DIR) -o $@ $<
  61.  
  62. $(OBJ_DIR)/SolTrack_RiseSet.o:  $(SOL_DIR)/SolTrack_RiseSet.c $(SOL_DIR)/SolTrack.h
  63.     @mkdir -p $(@D)
  64.     $(CC) -c $(CFLAGS) $(PFLAGS) -I$(SOL_DIR) -o $@ $<
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement