1 # Makefile to prepare runtime files (for rpm-based and deb-based distributions)
3 # usage: make DESTDIR=/some/runtime_dir
7 DEFTEMPLATE = rpm-template
9 DEFHTTPDSITECONF = conf.d
10 SAMPLETYPE ?= $(DEFTEMPLATE)
11 HTTPDNAME ?= $(DEFHTTPDNAME)
12 HTTPDSITECONF ?= $(DEFHTTPDSITECONF)
16 CONFDIR = $(SYSCONFDIR)/$(NAME)
17 HTTPDCONFDIR = $(SYSCONFDIR)/$(HTTPDNAME)/$(HTTPDSITECONF)
18 UNITDIR = $(SYSUSRDIR)/lib/systemd/system
19 LOCALEDIR = $(SYSUSRDIR)/share/locale
20 WWWDIR = $(SYSUSRDIR)/share/$(NAME)/htdocs
21 CACHEDIR = $(SYSVARDIR)/cache/$(NAME)
22 LOGDIR = $(SYSVARDIR)/log
23 HTTPDLOGS = $(LOGDIR)/$(HTTPDNAME)
24 LIGHTTPDLOGS = $(LOGDIR)/lighttpd
26 # Internal application directories
31 frameworkdir = framework
35 configcachedir = $(datadir)/runtime
36 samplesdir = examples/$(SAMPLETYPE)
38 webdatadirsrc = $(datadir)/$(webdir)/Class \
39 $(datadir)/$(webdir)/Config \
40 $(datadir)/$(webdir)/JavaScript \
41 $(datadir)/$(webdir)/Data \
42 $(datadir)/$(webdir)/Layouts \
43 $(datadir)/$(webdir)/Logs \
44 $(datadir)/$(webdir)/Pages \
45 $(datadir)/$(webdir)/Portlets
47 apidatadirsrc = $(datadir)/$(apidir)/Class \
48 $(datadir)/$(apidir)/Config \
49 $(datadir)/$(apidir)/JavaScript \
50 $(datadir)/$(apidir)/Layouts \
51 $(datadir)/$(apidir)/Logs \
52 $(datadir)/$(apidir)/Pages
54 commondatadirsrc = $(datadir)/$(commondir)/Class \
55 $(datadir)/$(commondir)/Portlets
57 datafilesrc = $(datadir)/application.xml
59 webdatafilesrc = $(datadir)/$(webdir)/endpoints.xml \
60 $(datadir)/$(webdir)/Init.php
62 apidatafilesrc = $(datadir)/$(apidir)/endpoints.xml
64 miscfilesrc = index.php \
70 localeweblang = en pl pt ja
71 localeapilang = en pl pt
72 localewebdirsrc = $(datadir)/$(webdir)/Lang
73 localeapidirsrc = $(datadir)/$(apidir)/Lang
74 localefile = messages.mo
76 excluded_dirs = '.*/\(3rdParty\|tinymce-405\).*'
77 excluded_files = '.*\(\.htaccess\)$$'
80 build: prepare_build prepare_data prepare_externals prepare_themes prepare_locale setup
83 if [ -z "$(DESTDIR)" ]; then @echo "No DESTDIR given"; exit 1; fi
84 mkdir -p $(DESTDIR)$(SYSCONFDIR) \
85 $(DESTDIR)$(CONFDIR) \
86 $(DESTDIR)$(HTTPDCONFDIR) \
87 $(DESTDIR)$(UNITDIR) \
89 $(DESTDIR)$(CACHEDIR) \
90 $(DESTDIR)$(LOCALEDIR) \
91 $(DESTDIR)$(WWWDIR)/$(cachedir) \
92 $(DESTDIR)$(WWWDIR)/$(configcachedir)
93 mkdir -m 700 -p $(DESTDIR)$(CONFDIR)/$(configdir)-api-apache \
94 $(DESTDIR)$(CONFDIR)/$(configdir)-api-lighttpd \
95 $(DESTDIR)$(CONFDIR)/$(configdir)-web-apache \
96 $(DESTDIR)$(CONFDIR)/$(configdir)-web-lighttpd
98 prepare_data: prepare_build
99 mkdir -p $(DESTDIR)$(WWWDIR)/$(datadir) \
100 $(DESTDIR)$(WWWDIR)/$(datadir)/$(webdir) \
101 $(DESTDIR)$(WWWDIR)/$(datadir)/$(apidir) \
102 $(DESTDIR)$(WWWDIR)/$(datadir)/$(commondir)
103 cp -ra $(webdatadirsrc) $(DESTDIR)$(WWWDIR)/$(datadir)/$(webdir)
104 cp -a $(webdatafilesrc) $(DESTDIR)$(WWWDIR)/$(datadir)/$(webdir)
105 cp -ra $(apidatadirsrc) $(DESTDIR)$(WWWDIR)/$(datadir)/$(apidir)
106 cp -a $(apidatafilesrc) $(DESTDIR)$(WWWDIR)/$(datadir)/$(apidir)
107 cp -ra $(commondatadirsrc) $(DESTDIR)$(WWWDIR)/$(datadir)/$(commondir)
108 cp -a $(datafilesrc) $(DESTDIR)$(WWWDIR)/$(datadir)
109 cp -a $(miscfilesrc) $(DESTDIR)$(WWWDIR)/
111 prepare_externals: prepare_build
112 find $(frameworkdir) -type d ! -regex $(excluded_dirs) -exec mkdir -p $(DESTDIR)$(WWWDIR)/{} \;
113 find $(frameworkdir) -type f ! -regex $(excluded_files) -a ! -regex $(excluded_dirs) -exec cp -a {} $(DESTDIR)$(WWWDIR)/{} \;
115 prepare_themes: prepare_build
116 cp -ra $(themesdir) $(DESTDIR)$(WWWDIR)
118 prepare_locale: prepare_build
119 for lang in $(localeweblang) ; do \
120 mkdir -p $(DESTDIR)$(LOCALEDIR)/$$lang/LC_MESSAGES ; \
121 mkdir -p $(DESTDIR)$(WWWDIR)/$(localewebdirsrc)/$$lang ; \
122 install -m 644 $(localewebdirsrc)/$$lang/$(localefile) $(DESTDIR)$(LOCALEDIR)/$$lang/LC_MESSAGES/$(NAME)-web.mo ; \
123 ln -s $(DESTDIR)$(LOCALEDIR)/$$lang/LC_MESSAGES/$(NAME)-web.mo $(DESTDIR)$(WWWDIR)/$(localewebdirsrc)/$$lang/$(localefile) ; \
125 for lang in $(localeapilang) ; do \
126 mkdir -p $(DESTDIR)$(LOCALEDIR)/$$lang/LC_MESSAGES ; \
127 mkdir -p $(DESTDIR)$(WWWDIR)/$(localeapidirsrc)/$$lang ; \
128 install -m 644 $(localeapidirsrc)/$$lang/$(localefile) $(DESTDIR)$(LOCALEDIR)/$$lang/LC_MESSAGES/$(NAME)-api.mo ; \
129 ln -s $(DESTDIR)$(LOCALEDIR)/$$lang/LC_MESSAGES/$(NAME)-api.mo $(DESTDIR)$(WWWDIR)/$(localeapidirsrc)/$$lang/$(localefile) ; \
133 install -m 640 $(samplesdir)/$(NAME)-api-lighttpd.conf $(DESTDIR)$(CONFDIR)
134 install -m 640 $(samplesdir)/$(NAME)-web-lighttpd.conf $(DESTDIR)$(CONFDIR)
135 install -m 644 $(samplesdir)/$(NAME)-api-lighttpd.service $(DESTDIR)$(UNITDIR)
136 install -m 644 $(samplesdir)/$(NAME)-web-lighttpd.service $(DESTDIR)$(UNITDIR)
137 install -m 640 $(samplesdir)/$(NAME)-api-apache.conf $(DESTDIR)$(HTTPDCONFDIR)/$(NAME)-api.conf
138 install -m 640 $(samplesdir)/$(NAME)-web-apache.conf $(DESTDIR)$(HTTPDCONFDIR)/$(NAME)-web.conf
139 install -m 600 $(samplesdir)/$(NAME).users $(DESTDIR)$(CONFDIR)/$(configdir)-api-lighttpd
140 install -m 600 $(samplesdir)/$(NAME).users $(DESTDIR)$(CONFDIR)/$(configdir)-api-apache
141 install -m 600 $(samplesdir)/$(NAME).users $(DESTDIR)$(CONFDIR)/$(configdir)-web-lighttpd
142 install -m 600 $(samplesdir)/$(NAME).users $(DESTDIR)$(CONFDIR)/$(configdir)-web-apache
143 # Default link apache config file
144 #ln -s $(DESTDIR)$(CONFDIR)/$(configdir)-api-apache $(DESTDIR)$(WWWDIR)/$(datadir)/$(configdir)
146 setup: prepare_samples
147 sed -i -e "s#%DOCUMENTROOT#$(WWWDIR)#g" -e "s#%LOGDIR#$(HTTPDLOGS)#g" $(DESTDIR)$(HTTPDCONFDIR)/$(NAME)-api.conf
148 sed -i -e "s#%DOCUMENTROOT#$(WWWDIR)#g" -e "s#%LOGDIR#$(HTTPDLOGS)#g" $(DESTDIR)$(HTTPDCONFDIR)/$(NAME)-web.conf
149 sed -i -e "s#%DOCUMENTROOT#$(WWWDIR)#g" -e "s#%LOGDIR#$(LIGHTTPDLOGS)#g" $(DESTDIR)$(CONFDIR)/$(NAME)-api-lighttpd.conf
150 sed -i -e "s#%DOCUMENTROOT#$(WWWDIR)#g" -e "s#%LOGDIR#$(LIGHTTPDLOGS)#g" $(DESTDIR)$(CONFDIR)/$(NAME)-web-lighttpd.conf
151 sed -i -e "s#%CONFDIR#$(CONFDIR)#g" $(DESTDIR)$(UNITDIR)/$(NAME)-api-lighttpd.service
152 sed -i -e "s#%CONFDIR#$(CONFDIR)#g" $(DESTDIR)$(UNITDIR)/$(NAME)-web-lighttpd.service
153 find $(DESTDIR)/ -type f -name .gitignore -exec rm -f {} \;