Skip to content
Snippets Groups Projects
Makefile 1.22 KiB
Newer Older
# 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

David Hendriks's avatar
David Hendriks committed
# Name of program
David Hendriks's avatar
David Hendriks committed

# 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// )

# Incdirs
INCDIRS 	:= -I$(BINARY_C)/src/ -I$(BINARY_C)/src/API

# Object files and flags
OBJECTS 	:= $(C_SRC:.c=.o)
OBJ_FLAGS 	:= -c

# Shared lib files and flags
SO_NAME 	:= libbinary_c_api.so
SO_FLAGS 	:= -shared -o
David Hendriks's avatar
David Hendriks committed
PY_EXEC 	:= python3
PY_SETUP 	:= setup.py
PY_OPTIONS 	:= build_ext --inplace


all:
	$(CC) -DBINARY_C=$(BINARY_C) $(CFLAGS) $(INCDIRS) $(C_SRC) $(OBJ_FLAGS) $(LIBS) 
David Hendriks's avatar
David Hendriks committed
	$(CC) -DBINARY_C=$(BINARY_C) $(SO_FLAGS) $(SO_NAME) $(OBJECTS)
	$(PY_EXEC) $(PY_SETUP) $(PY_OPTIONS) 
David Hendriks's avatar
David Hendriks committed

test:	
	@echo Objects: $(OBJECTS)
	@echo Libs: $(LIBS)
	@echo C_SRC: $(C_SRC)
	@echo CFLAGS: $(CFLAGS)
	@echo INCDIRS: $(INCDIRS)
	rm -rf build/