3 ### Standard Makefile for Python packages.
11 ###--------------------------------------------------------------------------
12 ### Version information.
14 distdir
:= $(shell $(PYTHON
) setup.py
-q distdir
)
16 ###--------------------------------------------------------------------------
17 ### Useful targets implemented by the `setup.py' program.
19 SINGLE_PYTARGETS
+= gen
24 $(foreach p
,$(PYTHONS
),all/$p):: all/%: gen
28 clean-hook
::; rm -f MANIFEST RELEASE
30 SINGLE_PYTARGETS
+= dist
32 OPTS-dist
+= --dist-dir .
35 OPTS-install
+= --prefix $(prefix)
39 ###--------------------------------------------------------------------------
40 ### Interfacing `setup.py' to make.
42 pysetup
= $(or
$2,$(PYTHON
)) setup.py \
43 $(if
$(filter-out undefined
,$(origin CMD-
$1)),$(CMD-
$1),$1) \
44 $(OPTS-
$1) $(OPTS-
$1/$(or
$2,$(PYTHON
)))
46 PYTHON_PYTARGETS
= $(foreach t
, $(PYTARGETS
), \
47 $(foreach p
, $(PYTHONS
), \
49 ALL_PYTARGETS
= $(PYTARGETS
)
50 ALL_PYTARGETS
+= $(SINGLE_PYTARGETS
) $(PYTHON_PYTARGETS
)
52 $(foreach t
, $(ALL_PYTARGETS
), $t-hook
):: %:
54 $(SINGLE_PYTARGETS
):: %: %-hook setup.py
56 $(PYTARGETS
):: %: %-hook
$(foreach p
, $(PYTHONS
), %/$p)
57 $(PYTHON_PYTARGETS
):: %: %-hook setup.py
58 $(call pysetup
,$(patsubst %/,%,$(dir $*)),$(notdir $*))
60 .PHONY
: $(ALL_PYTARGETS
)
62 ###--------------------------------------------------------------------------
67 $(PYTHON
) setup.py sdist
--dist-dir _distcheck
68 cd _distcheck
&& tar xvfz
$(distdir
).
tar.gz
69 cd _distcheck
/$(distdir
) && $(MAKE
) && $(MAKE
) check && $(MAKE
) dist
70 cp _distcheck
/$(distdir
)/$(distdir
).
tar.gz .
73 ###----- That's all, folks --------------------------------------------------