Files
progsync/cours/inverted-pendulum/Makefile
Adrien Guatto 70fc7019dc Cours 7
2025-11-10 18:12:19 +01:00

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 $@ $^