typo noticed by <Kaa>
[freeside.git] / Makefile
1 #!/usr/bin/make
2
3 DATASOURCE = DBI:Pg:host=localhost;dbname=freeside
4 #DATASOURCE=DBI:mysql:freeside
5
6 DB_USER = freeside
7 DB_PASSWORD=
8
9 #TEMPLATE = asp
10 TEMPLATE = mason
11
12 ASP_GLOBAL = /usr/local/etc/freeside/asp-global
13
14 FREESIDE_DOCUMENT_ROOT = /var/www/freeside
15
16 INIT_FILE = /etc/init.d/freeside
17
18 HTTPD_RESTART = /etc/init.d/apache restart
19 FREESIDE_RESTART = /etc/init.d/freeside restart
20
21 INSTALLGROUP = root
22
23 #---
24
25 #not changable yet
26 FREESIDE_CONF = /usr/local/etc/freeside
27
28 VERSION=1.4.0pre13
29 TAG=freeside_1_4_0_pre13
30 #VERSION=1.4.0beta1
31 #TAG=freeside_1_4_0_beta1
32
33 help:
34         @echo "supported targets: aspdocs masondocs alldocs docs install-docs"
35         @echo "                   htmlman"
36         @echo "                   perl-modules install-perl-modules"
37         @echo "                   install deploy"
38         @echo "                   create-database"
39         @echo "                   clean"
40
41 aspdocs: htmlman httemplate/* httemplate/*/* httemplate/*/*/* httemplate/*/*/*/* httemplate/*/*/*/*/*
42         rm -rf aspdocs
43         cp -pr httemplate aspdocs
44         touch aspdocs
45
46 masondocs: htmlman httemplate/* httemplate/*/* httemplate/*/*/* httemplate/*/*/*/* httemplate/*/*/*/*/*
47         rm -rf masondocs
48         cp -pr httemplate masondocs
49         ( cd masondocs; \
50           ../bin/masonize; \
51         )
52         touch masondocs
53
54 alldocs: aspdocs masondocs
55
56 docs:
57         make ${TEMPLATE}docs
58
59 htmlman:
60         [ -e ./httemplate/docs/man ] || mkdir httemplate/docs/man
61         [ -e ./httemplate/docs/man/bin ] || mkdir httemplate/docs/man/bin
62         [ -e ./httemplate/docs/man/FS ] || mkdir httemplate/docs/man/FS
63         [ -e ./httemplate/docs/man/FS/UI ] || mkdir httemplate/docs/man/FS/UI
64         [ -e DONT_REBUILD_DOCS ] || bin/pod2x
65
66
67 install-docs: docs
68         [ -e ${FREESIDE_DOCUMENT_ROOT} ] && mv ${FREESIDE_DOCUMENT_ROOT} ${FREESIDE_DOCUMENT_ROOT}.`date +%Y%m%d%H%M%S` || true
69         cp -r ${TEMPLATE}docs ${FREESIDE_DOCUMENT_ROOT}
70         [ "${TEMPLATE}" = "asp" -a ! -e ${ASP_GLOBAL} ] && mkdir ${ASP_GLOBAL} || true
71         [ "${TEMPLATE}" = "asp" ] && chown -R freeside ${ASP_GLOBAL} || true
72         [ "${TEMPLATE}" = "asp" ] && cp htetc/global.asa ${ASP_GLOBAL} || true
73
74 perl-modules:
75         cd FS; \
76         [ -e Makefile ] || perl Makefile.PL; \
77         make
78
79 install-perl-modules: perl-modules
80         cd FS; \
81         make install UNINST=1
82
83 install-init:
84         #[ -e ${INIT_FILE} ] || install -o root -g ${INSTALLGROUP} -m 711 init.d/freeside-init ${INIT_FILE}
85         install -o root -g ${INSTALLGROUP} -m 711 init.d/freeside-init ${INIT_FILE}
86
87 install: install-perl-modules install-docs install-init
88
89 deploy: install
90         ${HTTPD_RESTART}
91         ${FREESIDE_RESTART}
92
93 create-database:
94         perl -e 'use DBIx::DataSource qw( create_database ); create_database( "${DATASOURCE}", "${DB_USER}", "${DB_PASSWORD}" ) or die $$DBIx::DataSource::errstr;'
95
96 create-config: install-perl-modules
97         [ -e ${FREESIDE_CONF} ] && mv ${FREESIDE_CONF} ${FREESIDE_CONF}.`date +%Y%m%d%H%M%S` || true
98         mkdir ${FREESIDE_CONF}
99         chown freeside ${FREESIDE_CONF}
100
101         touch ${FREESIDE_CONF}/secrets
102         chown freeside ${FREESIDE_CONF}/secrets
103         chmod 600 ${FREESIDE_CONF}/secrets
104
105         echo -e "${DATASOURCE}\n${DB_USER}\n${DB_PASSWORD}" >${FREESIDE_CONF}/secrets
106         chmod 600 ${FREESIDE_CONF}/secrets
107         chown freeside ${FREESIDE_CONF}/secrets
108
109         mkdir "${FREESIDE_CONF}/conf.${DATASOURCE}"
110         cp conf/[a-z]* "${FREESIDE_CONF}/conf.${DATASOURCE}"
111         chown -R freeside "${FREESIDE_CONF}/conf.${DATASOURCE}"
112
113         mkdir "${FREESIDE_CONF}/counters.${DATASOURCE}"
114         chown freeside "${FREESIDE_CONF}/counters.${DATASOURCE}"
115
116         mkdir "${FREESIDE_CONF}/cache.${DATASOURCE}"
117         chown freeside "${FREESIDE_CONF}/cache.${DATASOURCE}"
118
119         mkdir "${FREESIDE_CONF}/export.${DATASOURCE}"
120         chown freeside "${FREESIDE_CONF}/export.${DATASOURCE}"
121
122 clean:
123         rm -rf aspdocs masondocs
124         cd FS; \
125         make clean
126
127 #these are probably only useful if you're me...
128
129 upload-docs:
130         ssh cleanwhisker.420.am rm -rf /var/www/www.sisd.com/freeside/devdocs
131         scp -pr httemplate/docs cleanwhisker.420.am:/var/www/www.sisd.com/freeside/devdocs
132
133 release: upload-docs
134         cd /home/ivan/freeside_current
135         #cvs tag ${TAG}
136         cvs tag -F ${TAG}
137
138         #cd /home/ivan
139         cvs export -r ${TAG} -d freeside-${VERSION} freeside
140         tar czvf freeside-${VERSION}.tar.gz freeside-${VERSION}
141
142         scp freeside-${VERSION}.tar.gz ivan@cleanwhisker.420.am:/var/www/sisd.420.am/freeside/
143         mv freeside-${VERSION} freeside-${VERSION}.tar.gz ..
144
145 update-webdemo:
146         ssh ivan@pouncequick.420.am '( cd freeside; cvs update -d -P )'
147         #ssh root@pouncequick.420.am '( cd /home/ivan/freeside; make clean; make deploy )'
148         ssh root@pouncequick.420.am '( cd /home/ivan/freeside; make deploy )'
149