92ee0e270e4d2ea843139912f56866b4aae1358d
[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
88 install: install-perl-modules install-docs install-init
89
90 deploy: install
91         ${HTTPD_RESTART}
92         ${FREESIDE_RESTART}
93
94 create-database:
95         perl -e 'use DBIx::DataSource qw( create_database ); create_database( "${DATASOURCE}", "${DB_USER}", "${DB_PASSWORD}" ) or die $$DBIx::DataSource::errstr;'
96
97 create-config: install-perl-modules
98         [ -e ${FREESIDE_CONF} ] && mv ${FREESIDE_CONF} ${FREESIDE_CONF}.`date +%Y%m%d%H%M%S` || true
99         mkdir ${FREESIDE_CONF}
100         chown freeside ${FREESIDE_CONF}
101
102         touch ${FREESIDE_CONF}/secrets
103         chown freeside ${FREESIDE_CONF}/secrets
104         chmod 600 ${FREESIDE_CONF}/secrets
105
106         echo -e "${DATASOURCE}\n${DB_USER}\n${DB_PASSWORD}" >${FREESIDE_CONF}/secrets
107         chmod 600 ${FREESIDE_CONF}/secrets
108         chown freeside ${FREESIDE_CONF}/secrets
109
110         mkdir "${FREESIDE_CONF}/conf.${DATASOURCE}"
111         cp conf/[a-z]* "${FREESIDE_CONF}/conf.${DATASOURCE}"
112         chown -R freeside "${FREESIDE_CONF}/conf.${DATASOURCE}"
113
114         mkdir "${FREESIDE_CONF}/counters.${DATASOURCE}"
115         chown freeside "${FREESIDE_CONF}/counters.${DATASOURCE}"
116
117         mkdir "${FREESIDE_CONF}/cache.${DATASOURCE}"
118         chown freeside "${FREESIDE_CONF}/cache.${DATASOURCE}"
119
120         mkdir "${FREESIDE_CONF}/export.${DATASOURCE}"
121         chown freeside "${FREESIDE_CONF}/export.${DATASOURCE}"
122
123 clean:
124         rm -rf aspdocs masondocs
125         cd FS; \
126         make clean
127
128 #these are probably only useful if you're me...
129
130 upload-docs:
131         ssh cleanwhisker.420.am rm -rf /var/www/www.sisd.com/freeside/devdocs
132         scp -pr httemplate/docs cleanwhisker.420.am:/var/www/www.sisd.com/freeside/devdocs
133
134 release: upload-docs
135         cd /home/ivan/freeside_current
136         #cvs tag ${TAG}
137         cvs tag -F ${TAG}
138
139         #cd /home/ivan
140         cvs export -r ${TAG} -d freeside-${VERSION} freeside
141         tar czvf freeside-${VERSION}.tar.gz freeside-${VERSION}
142
143         scp freeside-${VERSION}.tar.gz ivan@cleanwhisker.420.am:/var/www/sisd.420.am/freeside/
144         mv freeside-${VERSION} freeside-${VERSION}.tar.gz ..
145
146 update-webdemo:
147         ssh ivan@pouncequick.420.am '( cd freeside; cvs update -d -P )'
148         #ssh root@pouncequick.420.am '( cd /home/ivan/freeside; make clean; make deploy )'
149         ssh root@pouncequick.420.am '( cd /home/ivan/freeside; make deploy )'
150