81 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
| include src/options.mk
 | |
| 
 | |
| 
 | |
| .PHONY: pybinding install devel venv doc clean
 | |
| 
 | |
| 
 | |
| pybinding:
 | |
| 	@+$(INSIDE_VENV) $(MAKE) -C src pybinding
 | |
| 
 | |
| 
 | |
| venv:
 | |
| ifeq ($(NO_VENV),0)
 | |
| 	@virtualenv --python=$(PYTHON_EXE) --prompt="(msspec-$(VERSION)) " $(VENV_PATH)
 | |
| 	$(INSIDE_VENV) \
 | |
|             wget https://bootstrap.pypa.io/get-pip.py && \
 | |
|             python get-pip.py                         && \
 | |
|             pip install --upgrade setuptools          && \
 | |
|             pip install -r src/pip.freeze             && \
 | |
|             rm -f get-pip.py
 | |
| endif
 | |
| 
 | |
| 
 | |
| install: venv pybinding wx
 | |
| 	@+$(INSIDE_VENV) $(MAKE) -C src sdist
 | |
| 	@+$(INSIDE_VENV) $(MAKE) -C src frontend
 | |
| 	@+$(INSIDE_VENV) pip install src/dist/msspec-$(VERSION).tar.gz
 | |
| 	@echo "Do not forget to check that $(INSTALL_PREFIX)/bin is set in your \$$PATH"
 | |
| 
 | |
| 
 | |
| devel: VENV_PATH = ./_venv
 | |
| devel: venv pybinding wx
 | |
| 	@$(INSIDE_VENV) pip install -e src/
 | |
| 
 | |
| 
 | |
| light: VENV_PATH = ./_venv
 | |
| light: venv
 | |
| 	@$(INSIDE_VENV) pip install src/
 | |
| 
 | |
| 
 | |
| _build_wx/wxPython.target:
 | |
| 	@$(INSIDE_VENV) echo "Building wxPython for your `python --version 2>&1` under Linux $(DISTRO_RELEASE)..."
 | |
| 	# Create a folder to build wx into
 | |
| 	@mkdir -p _build_wx
 | |
| 	@$(INSIDE_VENV) pip install attrdict sip
 | |
| 	# TODO: attrdict is no longer compatible with collections package. The build will fail
 | |
| 	# download the wheel or the source if it cannot find a wheel
 | |
| 	@$(INSIDE_VENV) cd _build_wx && pip download -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/$(DISTRO_RELEASE) wxPython
 | |
| 	# Build the source if a tar.gz was downloaded
 | |
| 	@$(INSIDE_VENV) cd _build_wx && \
 | |
|           if [ -e wxPython*.tar.gz ]; then \
 | |
|             tar -x --skip-old-files -vzf wxPython*.tar.gz; \
 | |
|             cd `ls -d wxPython*/`; \
 | |
|             pip install requests; \
 | |
|             python build.py dox etg --nodoc sip build bdist_wheel; \
 | |
|             ln -sf `readlink -f dist/wxPython*.whl` ../; \
 | |
|           fi;
 | |
| 	# Finally touch a dummy file to avoid phony target
 | |
| 	@touch _build_wx/wxPython.target
 | |
| 
 | |
| 
 | |
| wx: _build_wx/wxPython.target
 | |
| 	# Install the wheel
 | |
| 	@$(INSIDE_VENV) cd _build_wx && pip install wxPython*.whl
 | |
| 
 | |
| 
 | |
| doc: VENV_PATH = ./_venv
 | |
| doc: venv
 | |
| 	@echo "Building pdf and html documentation..."
 | |
| 	@$(INSIDE_VENV) pip install sphinx
 | |
| 	# @+$(INSIDE_VENV) $(MAKE) -C doc/ latexpdf
 | |
| 	@+$(INSIDE_VENV) $(MAKE) -C doc/ html
 | |
| 
 | |
| 
 | |
| clean::
 | |
| 	@+$(MAKE) -C src/ clean
 | |
| 
 | |
| 
 | |
| help:
 | |
| 	@echo "Top Makefile help message"
 | |
| 
 |