Sync Mk with ports
[dports.git] / Mk / Uses / drupal.mk
1 # $FreeBSD$
2 #
3 # Support for Drupal ports and modules.
4 #
5 # Feature:      drupal
6 # Usage:        USES=drupal or USES=drupal:ARGS
7 # Valid ARGS:   module <version> theme
8 #
9 # module        The port is a drupal module
10 #
11 # MAINTAINER: ports@FreeBSD.org
12
13 .if !defined(_INCLUDE_USES_DRUPAL_Mk)
14 _INCLUDE_USES_DRUPAL_Mk=        yes
15
16 .if ${drupal_ARGS:M[7]}
17 _DRUPAL_VERSION=        ${drupal_ARGS:M[7]}
18 .endif
19
20 VALID_VERSIONS= 7
21
22 .if ${drupal_ARGS:N[7]:Ntheme:Nmodule}
23 IGNORE= Unknown argument for USES=drupal: ${drupal_ARGS:N[7]:Ntheme:Nmodule}
24 .endif
25
26 _DRUPAL_COMP=   ${drupal_ARGS:N[7]}
27
28 .if !defined(_DRUPAL_VERSION) || ! ${VALID_VERSIONS:M${_DRUPAL_VERSION}}
29 IGNORE= Missing or invalid argument for USES=drupal, a version must be provided: ${VALID_VERSIONS}
30 .endif
31
32 .if ${drupal_ARGS:Mmodule} && ${drupal_ARGS:Mtheme}
33 IGNORE= theme and module arguments are mutually exclusive for USES=drupal
34 .endif
35
36 DRUPAL_BASE?=   www/drupal${_DRUPAL_VERSION}
37
38 DRUPAL_DIR=             ${PREFIX}/${DRUPAL_BASE}
39 DRUPAL_DOCSDIR?=        ${PREFIX}/${DRUPAL_BASE}/doc
40 PLIST_SUB+=             DRUPAL_BASE=${DRUPAL_BASE}
41 SUB_LIST+=              DRUPAL_BASE=${DRUPAL_BASE} DRUPAL_DIR=${DRUPAL_DIR}
42
43 .if ! ${_DRUPAL_COMP}
44 DOCSDIR?=       ${DRUPAL_DOCSDIR}
45 .endif
46
47 .if ${_DRUPAL_COMP}
48 _USES_POST+=    drupal
49 PKGNAMEPREFIX=  drupal${_DRUPAL_VERSION}-
50
51 # drupal contributions must be licensed under the GPLv2 or GPLv3.  This is
52 # documented at: http://drupal.org/licensing/faq/
53 .if !defined(LICENSE)
54 LICENSE=        GPLv2 GPLv3
55 LICENSE_COMB=   dual
56 .endif
57
58 .if defined(DRUPAL_MODSUBDIR)
59 DRUPAL_MODDIR?= ${DRUPAL_BASE}/sites/all/${_DRUPAL_COMP}s/${DRUPAL_MODSUBDIR}
60 .else
61 DRUPAL_MODDIR?= ${DRUPAL_BASE}/sites/all/${_DRUPAL_COMP}s
62 .endif
63
64 DRUPAL_MODLIB?= ${DRUPAL_BASE}/sites/all/libraries
65
66 DOCSDIR?=       ${DRUPAL_DOCSDIR}/${PORTNAME}
67
68 MASTER_SITE_DRUPAL+= \
69         http://ftp.drupal.org/files/projects/ \
70         http://ftp.osuosl.org/pub/drupal/files/projects/
71 MASTER_SITE_DRUPAL_SUBDIR=
72
73 MASTER_SITES?=          ${MASTER_SITE_DRUPAL}
74 MASTER_SITE_SUBDIR?=    ${MASTER_SITE_DRUPAL_SUBDIR}
75
76 DIST_SUBDIR=    drupal
77
78 NO_BUILD?=      yes
79
80 WRKSRC?=        ${WRKDIR}/${PORTNAME}
81 RUN_DEPENDS+=   ${LOCALBASE}/${DRUPAL_BASE}/index.php:${DRUPAL_BASE}
82
83 PLIST_SUB+=     DRUPAL_MODDIR=${DRUPAL_MODDIR}
84 PLIST_FILES+=   "@owner www" \
85                 "@group www" \
86                 ${MODULE_FILES:C|^|%%DRUPAL_MODDIR%%/|} \
87                 "@owner root" \
88                 "@group wheel"
89 PLIST_DIRS+=    ${MODULE_DIRS:C|^|%%DRUPAL_MODDIR%%/|}
90 .endif
91 .endif
92
93 .if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_DRUPAL_POST_MK)
94 _INCLUDE_USES_DRUPAL_POST_MK=   yes
95
96 .if ${_DRUPAL_COMP}
97 .if ${PORT_OPTIONS:MDOCS}
98 PLIST_FILES+=   ${DOC_FILES:C|^|%%DOCSDIR%%/|}
99 PLIST_DIRS+=    ${DOC_DIRS:C|^|%%DOCSDIR%%/|}
100 PLIST_DIRS+=    %%DOCSDIR%%
101 .endif
102
103 do-install:
104         @${MKDIR} ${DRUPAL_MODDIR:C|^|${STAGEDIR}${PREFIX}/|}
105 .if defined(MODULE_DIRS)
106         @${MKDIR} ${MODULE_DIRS:C|^|${STAGEDIR}${PREFIX}/${DRUPAL_MODDIR}/|}
107 .endif
108 .for f in ${MODULE_FILES}
109         @${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${PREFIX}/${DRUPAL_MODDIR}/${f}
110 .endfor
111         @${MKDIR} ${STAGEDIR}${DOCSDIR} ${DOC_DIRS:C|^|${STAGEDIR}${DOCSDIR}/|}
112 .for f in ${DOC_FILES}
113         @${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR}/${f}
114 .endfor
115
116 .endif
117 .endif