source: trunk/ports-make/rules.gmk@ 2562

Last change on this file since 2562 was 2549, checked in by bird, 20 years ago

my good old ports stuff.

File size: 4.6 KB
Line 
1# $Id: rules.gmk,v 1.17 2004/02/16 20:53:38 bird Exp $
2
3## commands
4DO_CONFIG = CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" AR="$(AR)" RANLIB="$(RANLIB)" $(SET_CONFIG) \
5 $(pm_srcdir)/configure --prefix=$(pm_prefix)
6ifndef NO_DO_CONFIG_CACHE
7DO_CONFIG += --cache-file=./configure.cache
8endif
9
10DO_MAKE = MAKEFLAGS="$(firstword $(MAKEFLAGS))" $(SET_MAKE) $(MAKE) pm_buildts="$(pm_buildts)"
11ifdef LT_OS2_LDFLAGS
12DO_MAKE += LT_OS2_LDFLAGS="$(LT_OS2_LDFLAGS)"
13endif
14ifdef DO_MAKE_SET_ARCHIVERS
15DO_MAKE += AR="$(AR)" RANLIB="$(RANLIB)"
16endif
17ifdef DO_MAKE_SET_LDFLAGS
18DO_MAKE += LDFLAGS="$(LDFLAGS)"
19endif
20ifdef DO_MAKE_SET_COMPILERFLAGS
21DO_MAKE += CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)"
22endif
23
24## da non-destructive default rule
25somewhat-all-recursive: config build publish
26
27## da all rule
28all: kill config build publish install
29
30.PHONY: config build check publish install clean distclean shell auto
31.NOTPARALLEL: config build check publish install clean distclean shell auto
32.PHONY: do-config do-build do-check do-publish do-install do-clean do-distclean do-shell do-auto
33.NOTPARALLEL: do-config do-build do-check do-publish do-install do-clean do-distclean do-shell do-auto
34.PHONY: kill
35.NOTPARALLEL: kill
36
37## da worker rulez
38config build dep check dist install publish nothing:
39 mkdir -p $(pm_objdir)
40 ( $(MAKE) -C $(pm_objdir) -f $(pm_makefile) \
41 pm_objdir="$(pm_objdir)" pm_srcdir="$(pm_srcdir)" pm_topdir="$(pm_topdir)" pm_pubdir="$(pm_pubdir)" pm_pubdirbase="$(pm_pubdirbase)" pm_insdir="$(pm_insdir)" pm_package="$(pm_package)" \
42 do-$@ 2>&1 ; echo "$$?" > $(pm_objdir)/.pm_rc_$@ ) | tee $(pm_objdir)/$(pm_buildts)-$@.log ; exit `cat $(pm_objdir)/.pm_rc_$@`
43
44clean distclean shell:
45 mkdir -p $(pm_objdir)
46 $(MAKE) -C $(pm_objdir) -f $(pm_makefile) \
47 pm_objdir="$(pm_objdir)" pm_srcdir="$(pm_srcdir)" pm_topdir="$(pm_topdir)" pm_pubdir="$(pm_pubdir)" pm_pubdirbase="$(pm_pubdirbase)" pm_insdir="$(pm_insdir)" pm_package="$(pm_package)" \
48 do-$@
49
50## config
51ifndef HAVE_DO_CONFIG
52do-config:
53 $(DO_CONFIG) $(OPT_CONFIG)
54endif
55
56## build
57do-build:
58 $(DO_MAKE) $(OPT_BUILD) all
59
60
61## publish
62ifdef PM_VERSION
63_PM_VERSION_SUFF = -$(PM_VERSION)
64else
65_PM_VERSION_SUFF =
66endif
67do-publish:
68ifdef pm_pubdir
69ifneq "$(pm_pubdirbase)" "/"
70 rm -Rf $(pm_pubdirbase)
71endif
72endif
73 $(DO_MAKE) $(OPT_PUBLISH) prefix=$(pm_pubdir) install
74ifdef PM_DOCS
75 mkdir -p $(pm_pubdirbase)/$(pm_docdir)
76 cp $(addprefix $(pm_srcdir)/,$(PM_DOCS)) $(pm_pubdirbase)/$(pm_docdir)/
77endif
78 rm -f $(pm_pubdirbase)/../$(pm_package)$(_PM_VERSION_SUFF).zip \
79 rm -f $(pm_pubdirbase)/../$(pm_package).zip \
80 $(pm_pubdirbase)/../$(pm_package)$(_PM_VERSION_SUFF)-source.zip \
81 $(pm_pubdirbase)/../$(pm_package)-source.zip
82 cd $(pm_pubdirbase) && zip -9r ../$(pm_package)$(_PM_VERSION_SUFF).zip *
83 cd $(pm_srcdir)/.. && zip -9r $(pm_pubdirbase)/../$(pm_package)$(_PM_VERSION_SUFF)-source.zip $(notdir $(pm_srcdir))/* -x \*CVS\*
84
85## install
86do-install:
87 $(DO_MAKE) $(OPT_INSTALL) prefix=$(pm_insdir) install
88ifdef PM_DOCS
89 mkdir -p $(pm_insdir)/$(pm_docdir)
90 cp $(addprefix $(pm_srcdir)/,$(PM_DOCS)) $(pm_insdir)/$(pm_docdir)/
91endif
92
93## clean and distclean
94do-clean do-distclean:
95 $(DO_MAKE) $(OPT_CLEAN) clean
96
97## check
98do-check:
99ifndef NO_CHECKS
100 $(DO_MAKE) $(OPT_CHECK) check
101else
102 @echo "Sorry, no checks for this port."
103endif
104
105## shell
106do-shell:
107ifdef COMSPEC
108 $(COMSPEC)
109else
110 $(SHELL)
111endif
112
113## nothing
114do-nothing:
115 @echo "* did nothing in $(CURDIR)"
116
117## kill
118kill:
119ifdef pm_objdir
120ifneq "$(pm_objdir)" "/"
121 rm -Rf $(pm_objdir)
122endif
123endif
124ifdef pm_pubdir
125ifneq "$(pm_pubdirbase)" "/"
126 rm -Rf $(pm_pubdirbase)
127endif
128endif
129
130auto:
131 for dir in $(SUBDIRS_AUTO) .; \
132 do \
133 if $(MAKE) -C $$dir -f $(pm_makefile) do-$@ pm_makefile="$(pm_makefile)" pm_topdir=$(pm_topdir); then true; else exit 1; fi; \
134 done
135
136do-auto:
137 rm -f aclocal config.in.h~ config-h.in~ config.h.in~ config.in~ configure
138 if grep -q AM_CONFIG_HEADER configure.ac; then \
139 rm -f config.in.h config-h.in config.h.in; \
140 fi
141 ash -c "aclocal $(OPT_ACLOCAL) $(OPT_AUTO)"
142 if ls *-h.in 2> nul > nul || ls *.h.in 2> nul > nul || test -f config.in || grep -q AM_CONFIG_HEADER configure.ac; then \
143 autoheader $(OPT_AUTOHEADER) $(OPT_AUTO); \
144 fi
145 if ls *.am 2> nul > nul; then \
146 automake $(OPT_AUTOMAKE) $(OPT_AUTO); \
147 fi
148 ash -c "autoconf $(OPT_AUTOCONF) $(OPT_AUTO)"
149
150
151
Note: See TracBrowser for help on using the repository browser.