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 $(foreach p
,$(PYTHONS
),check/$p):: check/%: all/%
41 ###--------------------------------------------------------------------------
42 ### Interfacing `setup.py' to make.
44 pysetup
= $(or
$2,$(PYTHON
)) setup.py \
45 $(if
$(filter-out undefined
,$(origin CMD-
$1)),$(CMD-
$1),$1) \
46 $(OPTS-
$1) $(OPTS-
$1/$(or
$2,$(PYTHON
)))
48 PYTHON_PYTARGETS
= $(foreach t
, $(PYTARGETS
), \
49 $(foreach p
, $(PYTHONS
), \
51 ALL_PYTARGETS
= $(PYTARGETS
)
52 ALL_PYTARGETS
+= $(SINGLE_PYTARGETS
) $(PYTHON_PYTARGETS
)
54 $(foreach t
, $(ALL_PYTARGETS
), $t-hook
):: %:
56 $(SINGLE_PYTARGETS
):: %: %-hook setup.py
58 $(PYTARGETS
):: %: %-hook
$(foreach p
, $(PYTHONS
), %/$p)
59 $(PYTHON_PYTARGETS
):: %: %-hook setup.py
60 $(call pysetup
,$(patsubst %/,%,$(dir $*)),$(notdir $*))
62 .PHONY
: $(ALL_PYTARGETS
)
64 ###--------------------------------------------------------------------------
69 $(PYTHON
) setup.py sdist
--dist-dir _distcheck
70 cd _distcheck
&& tar xvfz
$(distdir
).
tar.gz
71 cd _distcheck
/$(distdir
) && $(MAKE
) && $(MAKE
) check && $(MAKE
) dist
72 cp _distcheck
/$(distdir
)/$(distdir
).
tar.gz .
75 ###----- That's all, folks --------------------------------------------------