# Makefile for Rapid Binary Star Evolution program # you will need to set the BINARY_C variable to point # to the root binary_c directory ifeq ($(BINARY_C),) $(error BINARY_C is not set) endif # Name of program PROGRAM := binary_c_python_api SRC_DIR := src OBJ_DIR := obj # some commands CC := gcc LD := gcc MAKE := /usr/bin/make # Libraries LIBS := -lbinary_c $(shell $(BINARY_C)/binary_c-config --libs) # Source files and cflags C_SRC := binary_c_python_api.c CFLAGS := -fPIC $(shell $(BINARY_C)/binary_c-config --flags | sed s/-fvisibility=hidden// ) C_SRC_NEW := src/binary_c_python_api.c # SRC = $(wildcard $(SRC_DIR)/binary_c_python_api.c) # OBJECTS = $(C_SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) # Incdirs INCDIRS := -I$(BINARY_C)/src/ -I$(BINARY_C)/src/API -Iinclude/ # Object files and flags OBJECTS := $(C_SRC:.c=.o) OBJ_FLAGS := -c OBJ_NEW := $(C_SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) # Shared lib files and flags SO_NAME := libbinary_c_api.so SO_FLAGS := -shared # To create python shared library PY_EXEC := python3 PY_SETUP := setup.py PY_OPTIONS := build_ext --inplace all: $(CC) -DBINARY_C=$(BINARY_C) $(CFLAGS) $(INCDIRS) $(C_SRC) -o $(OBJECTS) $(OBJ_FLAGS) $(LIBS) $(CC) -DBINARY_C=$(BINARY_C) $(SO_FLAGS) -o $(SO_NAME) $(OBJECTS) # $(PY_EXEC) $(PY_SETUP) $(PY_OPTIONS) test: @echo Objects: $(OBJECTS) @echo Libs: $(LIBS) @echo C_SRC: $(C_SRC) @echo CFLAGS: $(CFLAGS) @echo INCDIRS: $(INCDIRS) @echo OBJS_NEW: $(OBJ_NEW) clean: $(RM) -f *.o *.so $(RM) -r build/