63 lines
1.2 KiB
Makefile
63 lines
1.2 KiB
Makefile
HEPTC=heptc
|
|
PYGMENTS=python -m pygments -x -l ../../../notes/heptagon.py:HeptagonLexer
|
|
|
|
HEPT_NAME=pendulum
|
|
|
|
HEPT_SOURCES=$(HEPT_NAME).ept
|
|
HEPT_GENERATED=\
|
|
$(HEPT_NAME)_types.h \
|
|
$(HEPT_NAME).h \
|
|
$(HEPT_NAME)_types.c \
|
|
$(HEPT_NAME).c
|
|
C_SOURCES=mathext.c
|
|
|
|
SWIG_SOURCE=$(HEPT_NAME).i
|
|
SWIG_GENERATED=$(HEPT_NAME).py $(HEPT_NAME)_wrap.c
|
|
|
|
PY_SUFFIX=$(shell python -c \
|
|
"import sysconfig as s; print(s.get_config_var('EXT_SUFFIX'))")
|
|
TARGET?=_$(HEPT_NAME)$(PY_SUFFIX)
|
|
|
|
HTML=pendulum.html
|
|
|
|
.PHONY: all clean run runplot repl
|
|
|
|
all: $(TARGET)
|
|
|
|
clean:
|
|
rm -f *.epci *.log *.mls *.obc *.epci *.epo
|
|
rm -f $(SWIG_GENERATED) $(HEPT_GENERATED)
|
|
rm -rf $(HEPT_NAME)_c build __pycache__ *.so
|
|
rm -f $(HTML)
|
|
|
|
repl: all
|
|
python -i -c 'import $(HEPT_NAME)'
|
|
|
|
run: all
|
|
./main.py
|
|
|
|
runplot: all
|
|
./main.py --plot
|
|
|
|
%.html: %.ept
|
|
$(PYGMENTS) -O full -o $@ $^
|
|
|
|
$(TARGET): $(SWIG_GENERATED) $(HEPT_GENERATED) $(C_SOURCES)
|
|
python setup.py build_ext --inplace
|
|
@echo $@
|
|
|
|
$(SWIG_GENERATED): $(SWIG_SOURCE) $(HEPT_GENERATED) $(C_SOURCES)
|
|
swig -python $<
|
|
|
|
%_types.h %_types.c %.c %.h %.epci : %.ept
|
|
$(HEPTC) -c -target c $<
|
|
cp $(foreach ext,c h,$(basename $<)_c/*.$(ext)) .
|
|
|
|
%.epci: %.epi
|
|
$(HEPTC) $<
|
|
|
|
$(HEPT_SOURCES): mathext.epci debug.epci
|
|
|
|
%.html: %.ept
|
|
$(PYGMENTS) -O full -o $@ $^
|