only clean depends with the "clean-depends" target, not the top level
[pkgsrcv2.git] / Makefile
1 # $NetBSD: Makefile,v 1.34 2000/05/12 09:19:14 agc Exp $
2 # FreeBSD Id: Makefile,v 1.35 1997/08/19 07:10:01 fenner Exp
3 #
4
5 .include "mk/bsd.prefs.mk"
6
7 .ifdef SPECIFIC_PKGS
8 SUBDIR+=        ${SITE_SPECIFIC_PKGS}
9 SUBDIR+=        ${HOST_SPECIFIC_PKGS}
10 SUBDIR+=        ${GROUP_SPECIFIC_PKGS}
11 SUBDIR+=        ${USER_SPECIFIC_PKGS}
12 .else
13 SUBDIR += archivers
14 SUBDIR += audio
15 SUBDIR += benchmarks
16 SUBDIR += biology
17 SUBDIR += cad
18 SUBDIR += comms
19 SUBDIR += converters
20 SUBDIR += cross
21 SUBDIR += databases
22 SUBDIR += devel
23 SUBDIR += editors
24 SUBDIR += emulators
25 SUBDIR += fonts
26 SUBDIR += games
27 SUBDIR += graphics
28 SUBDIR += ham
29 SUBDIR += japanese
30 SUBDIR += lang
31 SUBDIR += mail
32 SUBDIR += math
33 SUBDIR += mbone
34 SUBDIR += meta-pkgs
35 SUBDIR += misc
36 SUBDIR += net
37 SUBDIR += news
38 SUBDIR += parallel
39 SUBDIR += pkgtools
40 SUBDIR += plan9
41 SUBDIR += print
42 SUBDIR += security
43 SUBDIR += shells
44 SUBDIR += sysutils
45 SUBDIR += textproc
46 SUBDIR += www
47 SUBDIR += x11
48 .endif
49
50 PKGSRCTOP=      yes
51
52 .include "mk/bsd.pkg.subdir.mk"
53
54 index:
55         @rm -f ${.CURDIR}/INDEX
56         @${MAKE} ${.CURDIR}/INDEX
57
58 ${.CURDIR}/INDEX:
59         @echo -n "Generating INDEX - please wait.."
60         @${MAKE} describe ECHO_MSG="echo > /dev/null" > ${.CURDIR}/INDEX
61         @echo " Done."
62
63 print-index:    ${.CURDIR}/INDEX
64         @awk -F\| '{ printf("Port:\t%s\nPath:\t%s\nInfo:\t%s\nMaint:\t%s\nIndex:\t%s\nB-deps:\t%s\nR-deps:\t%s\nArch:\t%s\n\n", $$1, $$2, $$4, $$6, $$7, $$8, $$9, $$10); }' < ${.CURDIR}/INDEX
65
66 search: ${.CURDIR}/INDEX
67 .if !defined(key)
68         @echo "The search target requires a keyword parameter,"
69         @echo "e.g.: \"${MAKE} search key=somekeyword\""
70 .else
71         @grep ${key} ${.CURDIR}/INDEX | awk -F\| '{ printf("Port:\t%s\nPath:\t%s\nInfo:\t%s\nMaint:\t%s\nIndex:\t%s\nB-deps:\t%s\nR-deps:\t%s\nArch:\t%s\n\n", $$1, $$2, $$4, $$6, $$7, $$8, $$9, $$10); }'
72 .endif
73
74
75
76 # Generate list of all packages by extracting information from
77 # the category/README.html pages
78 #
79 readme-all:
80         @if [ -f README-all.html ]; then \
81                 mv README-all.html README-all.html.BAK ; \
82         fi
83         @${MAKE} README-all.html
84         @if cmp -s README-all.html README-all.html.BAK  ; then \
85                 mv README-all.html.BAK README-all.html ; \
86         else \
87                 rm -f README-all.html.BAK ; \
88         fi
89
90 README-all.html:
91         @rm -f $@.new
92         @rm -f $@.newsorted
93         @echo -n "Processing categories for $@:"
94 .for category in ${SUBDIR}
95         @if [ -f ${category}/README.html ]; then \
96                 echo -n ' ${category}' ; \
97                 grep '^<TR>' ${category}/README.html \
98                 | sed -e 's|"|"${category}/|' \
99                       -e 's| <TD>| <TD>(<A HREF="${category}/README.html">${category}</A>) <TD>|' \
100                       -e 's|<TR>|<TR VALIGN=TOP>|' \
101                       -e 's|<TD VALIGN=TOP>|<TD>|' \
102                 >> $@.new ; \
103         fi
104 .endfor
105         @echo "."
106         @sort -f -t '">' +2 <$@.new >$@.newsorted
107         @wc -l $@.newsorted | awk '{ print $$1 }'  >$@.npkgs
108         @cat templates/README.all \
109         | ${SED} \
110                 -e '/%%NPKGS%%/r$@.npkgs' \
111                 -e '/%%NPKGS%%/d' \
112                 -e '/%%PKGS%%/r$@.newsorted' \
113                 -e '/%%PKGS%%/d' \
114                 > $@ 
115         @rm -f $@.npkgs
116         @rm -f $@.new
117         @rm -f $@.newsorted
118
119
120
121 readme-ipv6:
122         @if [ -f README-IPv6.html ]; then \
123                 mv README-IPv6.html README-IPv6.html.BAK ; \
124         fi
125         @${MAKE} README-IPv6.html
126         @if cmp -s README-IPv6.html README-IPv6.html.BAK  ; then \
127                 mv README-IPv6.html.BAK README-IPv6.html ; \
128         else \
129                 rm -f README-IPv6.html.BAK ; \
130         fi
131
132 README-IPv6.html:
133         @grep -l '^BUILD_DEFS.*=.*USE_INET6' */*/Makefile \
134          | sed s,.Makefile,, >$@.pkgs
135         @fgrep -f $@.pkgs README-all.html | sort -t/ +1 >$@.trs
136         @cat templates/README.ipv6 \
137         | ${SED} \
138                 -e '/%%TRS%%/r$@.trs' \
139                 -e '/%%TRS%%/d' \
140                 >$@
141         @${RM} $@.trs
142         @${RM} $@.pkgs
143
144 show-host-specific-pkgs:
145         @echo "HOST_SPECIFIC_PKGS= \\";                                 \
146         ${MAKE} show-pkgsrc-dir | awk '/^===/ { next; } { printf("%s \\\n", $$1) }'; \
147         echo ""