make sure the version installed is updated on a testup with changed files
[bse.git] / Makefile
1 VERSION=0.19
2 DISTNAME=bse-$(VERSION)
3 DISTBUILD=$(DISTNAME)
4 DISTTAR=../$(DISTNAME).tar
5 DISTTGZ=$(DISTTAR).gz
6 WEBBASE=/home/httpd/html/bse
7
8 MODULES=$(shell grep cgi-bin/.*\.pm MANIFEST | sed -e '/^\#/d' -e 's/[ \t].*//' -e '/^site\/cgi-bin\/modules\/BSE\/\(Modules\|Version\)\.pm/d' )
9 VERSIONDEPS=$(shell perl site/util/bse_versiondeps.pl MANIFEST)
10
11 help:
12         @echo make dist - build the tar.gz file and copy to distribution directory
13         @echo make 'archive - build the tar.gz (in the parent directory)'
14         @echo make clean - delete generated files
15         @echo make distdir - build distribution directory
16         @echo make docs - build documentation
17         @echo make testup - upgrade an installation
18
19 # this target needs to be modified so that the output directory includes
20 # the release number
21 dist: cleantree $(DISTTGZ)
22         cp $(DISTTGZ) $(WEBBASE)/dists/
23         cp site/docs/bse.html $(WEBBASE)/relnotes/bse-$(VERSION).html
24         cp site/docs/*.html $(WEBBASE)/docs
25         git tag -m "$(VERSION) release" r$(VERSION)
26
27 # make sure everything is committed
28 cleantree:
29         if grep -q 'perl.*-d:ptkdb' site/cgi-bin/*.pl site/cgi-bin/admin/*.pl ; \
30           then echo '***' The debugger is still enabled ; \
31           exit 1; \
32         fi
33         test -z "`git status -s`" || ( echo "Uncommitted files in the tree"; exit 1 )
34
35 archive: $(DISTTGZ)
36
37 $(DISTTGZ): distdir
38         if [ -e $(DISTTGZ) ] ; \
39           then echo $(DISTTGZ) already exists ; \
40                exit 1 ; \
41         fi
42         tar cf $(DISTTAR) $(DISTBUILD)
43         -perl -MExtUtils::Command -e rm_rf $(DISTBUILD)
44         gzip $(DISTTAR)
45
46 #       tar czf $(DISTFILE) -C .. bse --exclude '*~' --exclude '*,v' --exclude 'pod2html-*cache'
47
48 # recent ExtUtils::Manifest don't copy the executable bit, fix that here
49
50 distdir: docs dbinfo version modversion
51         -perl -MExtUtils::Command -e rm_rf $(DISTBUILD)
52         perl -MExtUtils::Manifest=manicopy,maniread -e "manicopy(maniread(), '$(DISTBUILD)')"
53         mkdir $(DISTBUILD)/site/htdocs/shop
54         find $(DISTBUILD) -type f | xargs chmod u+w
55         for i in `cat MANIFEST` ; do if [ -x $$i ] ; then chmod a+x $(DISTBUILD)/$$i ; fi ; done
56
57 clean:
58         -perl -MExtUtils::Command -e rm_f site/htdocs/index.html site/htdocs/shop/*.html site/htdocs/a/*.html
59         -cd site/htdocs/images ; \
60         for i in *.gif ; do \
61           if [ $$i != trans_pixel.gif ] ; then \
62             rm $$i ; \
63           fi ; \
64         done
65         -perl -MExtUtils::Command -e rm_f site/htdocs/images/*.jpg
66         -perl -MExtUtils::Command -e rm_rf $(DISTBUILD)
67
68 docs: INSTALL.txt INSTALL.html otherdocs
69
70 INSTALL.txt: INSTALL.pod
71         pod2text <INSTALL.pod >INSTALL.txt
72
73 INSTALL.html: INSTALL.pod
74         pod2html --infile=INSTALL.pod --outfile=INSTALL.html
75         -rm pod2html-dircache pod2html-itemcache pod2htmd.tmp pod2htmi.tmp
76
77 otherdocs:
78         cd site/docs ; make all
79
80 dbinfo: site/util/mysql.str
81
82 site/util/mysql.str: schema/bse.sql
83         perl schema/mysql_build.pl >site/util/mysql.str
84
85 version: site/cgi-bin/modules/BSE/Version.pm
86
87 site/cgi-bin/modules/BSE/Version.pm: $(VERSIONDEPS)
88         perl site/util/bse_mkgitversion.pl $(VERSION) site/cgi-bin/modules/BSE/Version.pm
89
90 modversion: site/cgi-bin/modules/BSE/Modules.pm
91
92 site/cgi-bin/modules/BSE/Modules.pm: $(MODULES) site/util/make_versions.pl
93         perl site/util/make_versions.pl site/cgi-bin/modules/BSE/Modules.pm
94
95 # this is very rough
96 testinst: distdir
97         perl localinst.perl $(DISTBUILD)
98         perl -MExtUtils::Command -e rm_rf $(DISTBUILD)
99         cd `perl -lne 'do { print $$1; exit; } if /^base_dir\s*=\s*(.*)/' test.cfg`/util ; perl loaddata.pl ../data/db
100
101 testup: checkver distdir
102         perl localinst.perl $(DISTBUILD) leavedb
103         perl -MExtUtils::Command -e rm_rf $(DISTBUILD)
104         cd `perl -lne 'do { print $$1; exit; } if /^base_dir\s*=\s*(.*)/' test.cfg`/util ; perl upgrade_mysql.pl -b ; perl loaddata.pl ../data/db
105
106 checkver:
107         if [ -d .git ] ; then perl site/util/check_versions.pl ; fi
108
109 TEST_FILES=t/*.t
110
111 test: testup
112         perl -MTest::Harness=runtests -Isite/cgi-bin/modules -It -e 'runtests @ARGV' $(TEST_FILES)
113
114 manicheck:
115         perl -MExtUtils::Manifest=manicheck -e 'manicheck()'
116
117 filecheck:
118         perl -MExtUtils::Manifest=filecheck -e 'filecheck()'
119
120 manifest:
121         perl -MExtUtils::Manifest=mkmanifest -e mkmanifest