1# qqwing - Sudoku solver and generator
2# Copyright (C) 2014 Stephen Ostermiller
3#
4# This program is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation; either version 2 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License along
15# with this program; if not, write to the Free Software Foundation, Inc.,
16# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
18.PHONY: all
19all: dist test website
20
21.PHONY: dist
22dist: jar tgz rpm deb jsgz
23	@build/show_dist.sh
24
25.PHONY: compile
26compile: javacompile cppcompile jsmin
27
28.PHONY: javaversion
29javaversion: notroot src
30	@build/java_version.sh
31
32.PHONY: javacompile
33javacompile: javaversion
34	@build/java_compile.sh
35
36.PHONY: jar
37jar: javacompile
38	@build/jar_build.sh
39
40.PHONY: cppconfigure
41cppconfigure: notroot src
42	@build/cpp_configure.sh
43
44.PHONY: cppcompile
45cppcompile: cppconfigure
46	@build/cpp_compile.sh
47
48.PHONY: jscompile
49jscompile: src
50	@build/js_build.sh
51
52.PHONY: jsmin
53jsmin: jscompile
54	@build/js_minimize.sh
55
56.PHONY: jsgz
57jsgz: jsmin
58	@build/js_archive.sh
59
60.PHONY: tgz
61tgz: cppcompile
62	@build/cpp_dist.sh
63
64.PHONY: rpm
65rpm: tgz
66	@build/rpm_build.sh
67
68.PHONY: deb
69deb: tgz
70	@build/deb_build.sh
71
72.PHONY: install
73install: cppcompile
74	@build/cpp_install.sh
75
76.PHONY: notroot
77notroot:
78	@build/not_root_check.sh
79
80.PHONY: src
81src: copyright neaten
82
83.PHONY: copyright
84copyright:
85	@build/src-copyright-check.sh
86
87.PHONY: neaten
88neaten:
89	@build/src_neaten.sh
90
91.PHONY: test
92test: testunit testapp
93
94.PHONY: testunit
95testunit: testjavaunit testjsunit
96
97.PHONY: testjavaunit
98testjavaunit: javacompile javatestcompile
99	@build/java_unit_tests.sh
100
101.PHONY: testjsunit
102testjsunit: jscompile
103	@build/js_unit_tests.sh
104
105.PHONY: javatestcompile
106javatestcompile: javacompile
107	@build/java_test_compile.sh
108
109.PHONY: testapp
110testapp: testcppapp testjavaapp testjsapp
111
112.PHONY: testjavaapp
113testjavaapp: jar
114	@build/test-app-run.sh java
115
116.PHONY: testcppapp
117testcppapp: cppcompile
118	@build/test-app-run.sh cpp
119
120.PHONY: testjsapp
121testjsapp: jsmin
122	@build/test-app-run.sh js
123
124.PHONY: website
125website: jsgz
126	@build/website-build.sh
127
128.PHONY: javatest
129javatest: testjavaunit testjavaapp
130
131.PHONY: cpptest
132cpptest: testcppapp
133
134.PHONY: jstest
135jstest: testjsunit testjsapp
136
137.PHONY: release
138release: src
139	@build/release.sh
140
141.PHONY: clean
142clean:
143	rm -rf target/
144
145# Target aliases
146
147.PHONY: versionjava
148versionjava: javaversion
149
150.PHONY: compilejava
151compilejava: javacompile
152
153.PHONY: java
154java: javacompile
155
156.PHONY: cpp
157cpp: cppcompile
158
159.PHONY: js
160js: jsmin
161
162.PHONY: configurecpp
163configurecpp: cppconfigure
164
165.PHONY: compilecpp
166compilecpp: cppcompile
167
168.PHONY: unittest
169unittest: testunit
170
171.PHONY: javaunittest
172javaunittest: testjavaunit
173
174.PHONY: testcompilejava
175testcompilejava: javatestcompile
176
177.PHONY: apptest
178apptest: testapp
179
180.PHONY: javaapptest
181javaapptest: testjavaapp
182
183.PHONY: jsapptest
184jsapptest: testjsapp
185
186.PHONY: cppapptest
187cppapptest: testcppapp
188
189.PHONY: testjava
190testjava: javatest
191
192.PHONY: testcpp
193testcpp: cpptest
194
195.PHONY: testjs
196testjs: jstest
197
198.PHONY: unittestjava
199unittestjava: javaunittest
200
201.PHONY: compilejavatest
202compilejavatest: testcompilejava
203
204.PHONY: apptestjava
205apptestjava: javaapptest
206
207.PHONY: apptestjs
208apptestjs: jsapptest
209
210.PHONY: apptestcpp
211apptestcpp: cppapptest
212
213.PHONY: www
214www: website
215