Makefile 815 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. CC=gcc
  2. CFLAGS=-O3 -std=c99 -D_DEFAULT_SOURCE
  3. PYTHON_INC=/usr/include/python3.6
  4. PY_BIN_FILES:=$(patsubst src/%.py,bin/%.py,$(wildcard src/*.py))
  5. PY_DEV_FILES:=$(patsubst src/%.py,dev/%.py,$(wildcard src/*.py))
  6. all: bin_dir $(PY_BIN_FILES) bin/accelerated_functions.so
  7. dev: dev_dir $(PY_DEV_FILES) dev/accelerated_functions.so
  8. clean:
  9. @if [ -d bin ]; then rm -r bin; fi
  10. @if [ -d dev ]; then rm -r dev; fi
  11. bin/accelerated_functions.so: src/accelerated_functions.c
  12. dev/accelerated_functions.so: src/accelerated_functions.c
  13. #######
  14. bin/%.so: src/%.c
  15. $(CC) $(CFLAGS) -I $(PYTHON_INC) -shared -fPIC $^ -o $@
  16. bin/%.py: src/%.py
  17. @cp $< $@
  18. bin_dir:
  19. @mkdir -p bin
  20. #######
  21. dev/%.so: src/%.c
  22. $(CC) $(CFLAGS) -I $(PYTHON_INC) -shared -fPIC $^ -o $@
  23. dev/%.py: src/%.py
  24. rm -f $@
  25. ln $< $@
  26. dev_dir:
  27. @mkdir -p dev