| ifndef BASE_NAME |
| BASE_NAME = x86disasm |
| endif |
| |
| ifndef SWIG |
| SWIG = swig # apt-get install swig ! |
| endif |
| |
| ifndef GCC |
| GCC = gcc |
| endif |
| |
| ifndef CC_FLAGS |
| CC_FLAGS = -c -fPIC |
| endif |
| |
| ifndef LD_FLAGS |
| LD_FLAGS = -shared -L.. -ldisasm |
| endif |
| |
| INTERFACE_FILE = libdisasm_oop.i |
| |
| SWIG_INTERFACE = ../$(INTERFACE_FILE) |
| |
| # PYTHON rules |
| PYTHON_MOD = $(BASE_NAME)-python.so |
| PYTHON_SHADOW = $(BASE_NAME)_wrap.c |
| PYTHON_SWIG = $(BASE_NAME).py |
| PYTHON_OBJ = $(BASE_NAME)_wrap.o |
| PYTHON_INC = `/bin/echo -e 'import sys\nprint sys.prefix + "/include/python" + sys.version[:3]' | python` |
| PYTHON_LIB = `/bin/echo -e 'import sys\nprint sys.prefix + "/lib/python" + sys.version[:3]' | python` |
| PYTHON_DEST = $(PYTHON_LIB)/lib-dynload/_$(BASE_NAME).so |
| |
| #==================================================== |
| # TARGETS |
| |
| all: swig-python |
| |
| dummy: swig-python install uninstall clean |
| |
| swig-python: $(PYTHON_MOD) |
| |
| $(PYTHON_MOD): $(PYTHON_OBJ) |
| $(GCC) $(LD_FLAGS) $(PYTHON_OBJ) -o $@ |
| |
| $(PYTHON_OBJ): $(PYTHON_SHADOW) |
| $(GCC) $(CC_FLAGS) -I$(PYTHON_INC) -I.. -o $@ $< |
| |
| $(PYTHON_SHADOW): $(SWIG_INTERFACE) |
| swig -python -shadow -o $(PYTHON_SHADOW) -outdir . $< |
| |
| # ================================================================== |
| install: $(PYTHON_MOD) |
| sudo cp $(PYTHON_MOD) $(PYTHON_DEST) |
| sudo cp $(PYTHON_SWIG) $(PYTHON_LIB) |
| |
| # ================================================================== |
| uninstall: |
| |
| # ================================================================== |
| clean: |
| rm $(PYTHON_MOD) $(PYTHON_SWIG) $(PYTHON_OBJ) |
| rm $(PYTHON_SHADOW) |
| |