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) \
36 $(and
$(DESTDIR
),--root
$(DESTDIR
))
40 $(foreach p
,$(PYTHONS
),check/$p):: check/%: all/%
42 ###--------------------------------------------------------------------------
43 ### Interfacing `setup.py' to make.
45 pysetup
= $(or
$2,$(PYTHON
)) setup.py \
46 $(if
$(filter-out undefined
,$(origin CMD-
$1)),$(CMD-
$1),$1) \
47 $(OPTS-
$1) $(OPTS-
$1/$(or
$2,$(PYTHON
)))
49 PYTHON_PYTARGETS
= $(foreach t
, $(PYTARGETS
), \
50 $(foreach p
, $(PYTHONS
), \
52 ALL_PYTARGETS
= $(PYTARGETS
)
53 ALL_PYTARGETS
+= $(SINGLE_PYTARGETS
) $(PYTHON_PYTARGETS
)
55 $(foreach t
, $(ALL_PYTARGETS
), $t-hook
):: %:
57 $(SINGLE_PYTARGETS
):: %: %-hook setup.py
59 $(PYTARGETS
):: %: %-hook
$(foreach p
, $(PYTHONS
), %/$p)
60 $(PYTHON_PYTARGETS
):: %: %-hook setup.py
61 $(call pysetup
,$(patsubst %/,%,$(dir $*)),$(notdir $*))
63 .PHONY
: $(ALL_PYTARGETS
)
65 ###--------------------------------------------------------------------------
70 $(PYTHON
) setup.py sdist
--dist-dir _distcheck
71 cd _distcheck
&& tar xvfz
$(distdir
).
tar.gz
72 cd _distcheck
/$(distdir
) && $(MAKE
) check && $(MAKE
) dist
73 cp _distcheck
/$(distdir
)/$(distdir
).
tar.gz .
76 ###----- That's all, folks --------------------------------------------------