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