Changeset 2143

Show
Ignore:
Timestamp:
04/30/09 12:00:43 (3 years ago)
Author:
kjellm
Message:

Moved more build functionality to Module::Build. Some Makefile cleanup. Updated INSTALL.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/INSTALL

    r2047 r2143  
    8787        - Create the group "munin" 
    8888        - make 
    89         - make install-node install-node-plugins (NOTE: This overwrites 
    90           any existing plugins.) 
     89        - make install-common-prime install-node-prime 
     90          install-plugins-prime (NOTE: This overwrites any existing 
     91          plugins.) 
    9192        - Decide which plugins to use.  The quick auto-plug-and-play 
    9293          solution:  
  • trunk/Makefile

    r2141 r2143  
    1313DIR              := $(shell /bin/pwd | sed 's/^.*\///') 
    1414INFILES          := $(shell find . -name '*.in' | sed 's/\.\/\(.*\)\.in$$/build\/\1/') 
     15INFILES_MASTER   := $(shell find master -name '*.in' | sed 's/\(.*\)\.in$$/build\/\1/') 
    1516PLUGINS          := $(wildcard plugins/node.d.$(OSTYPE)/* plugins/node.d/*) 
    1617MANCENTER        := "Munin Documentation" 
    17 MAN8             := master/bin/munin-graph master/bin/munin-update \ 
    18                         master/bin/munin-limits master/bin/munin-html \ 
    19                         master/bin/munin-gather 
     18MAN8             := master/_bin/munin-graph master/_bin/munin-update \ 
     19                        master/_bin/munin-limits master/_bin/munin-html \ 
     20                        master/_bin/munin-gather 
    2021PODMAN8          := master/doc/munin-cron master/doc/munin 
    2122PODMAN5          := master/doc/munin.conf node/doc/munin-node.conf 
    2223 
    23 .PHONY: install install-pre install-master install-node-prime install-node-pre install-common-prime install-doc install-man \ 
     24.PHONY: install install-pre install-master-prime install-node-prime install-node-pre install-common-prime install-doc install-man \ 
    2425        build build-common-prime build-common-pre build-doc \ 
    2526        deb source_dist \ 
     
    4041###################################################################### 
    4142 
    42 install: install-master install-common-prime install-node-prime install-node-plugins install-man 
     43install: install-master-prime install-common-prime install-node-prime install-plugins-prime install-man 
    4344 
    4445install-pre: Makefile Makefile.config 
     
    4748        mkdir -p $(STATEDIR) 
    4849        mkdir -p $(CONFDIR) 
    49  
    50 install-master: build install-pre 
     50        $(CHOWN) $(USER) $(LOGDIR) $(STATEDIR) 
     51 
     52install-master-prime: $(INFILES_MASTER) install-pre install-master 
    5153        mkdir -p $(CONFDIR)/templates 
    5254        mkdir -p $(LIBDIR) 
     
    5456        mkdir -p $(PERLLIB) 
    5557        mkdir -p $(PERLLIB)/Munin/Master 
    56  
    5758        mkdir -p $(HTMLDIR) 
    5859        mkdir -p $(DBDIR) 
    5960        mkdir -p $(CGIDIR) 
    6061 
    61         $(CHOWN) $(USER) $(LOGDIR) $(STATEDIR) $(RUNDIR) $(HTMLDIR) $(DBDIR) 
     62        $(CHOWN) $(USER) $(HTMLDIR) $(DBDIR) 
    6263 
    6364        for p in build/master/www/*.tmpl; do                     \ 
     
    6970        $(INSTALL) -m 0755 master/VeraMono.ttf $(LIBDIR)/ 
    7071        $(INSTALL) -m 0644 resources/favicon.ico $(HTMLDIR)/ 
     72 
    7173        test -f $(HTMLDIR)/.htaccess || $(INSTALL) -m 0644 build/master/www/munin-htaccess $(HTMLDIR)/.htaccess 
    7274        test -f "$(CONFDIR)/munin.conf"  || $(INSTALL) -m 0644 build/master/munin.conf $(CONFDIR)/ 
    73         $(INSTALL) -m 0755 build/master/bin/munin-cron $(BINDIR)/ 
    74         $(INSTALL) -m 0755 build/master/bin/munin-check $(BINDIR)/ 
    75         $(INSTALL) -m 0755 master/bin/munin-update $(LIBDIR)/ 
    76         $(INSTALL) -m 0755 build/master/bin/munin-graph $(LIBDIR)/ 
    77         $(INSTALL) -m 0755 build/master/bin/munin-html $(LIBDIR)/ 
    78         $(INSTALL) -m 0755 build/master/bin/munin-limits $(LIBDIR)/ 
    79         $(INSTALL) -m 0755 build/master/bin/munin-gather $(LIBDIR)/ 
    80         $(INSTALL) -m 0755 build/master/bin/munin-cgi-graph $(CGIDIR)/ 
    81         $(INSTALL) -m 0644 master/lib/Munin/Master/Config.pm $(PERLLIB)/Munin/Master 
    82         $(INSTALL) -m 0644 master/lib/Munin/Master/Group.pm $(PERLLIB)/Munin/Master 
    83         $(INSTALL) -m 0644 master/lib/Munin/Master/GroupRepository.pm $(PERLLIB)/Munin/Master 
    84         $(INSTALL) -m 0644 master/lib/Munin/Master/Host.pm $(PERLLIB)/Munin/Master 
    85         $(INSTALL) -m 0644 master/lib/Munin/Master/Logger.pm $(PERLLIB)/Munin/Master 
    86         $(INSTALL) -m 0644 master/lib/Munin/Master/Node.pm $(PERLLIB)/Munin/Master 
    87         $(INSTALL) -m 0644 master/lib/Munin/Master/ProcessManager.pm $(PERLLIB)/Munin/Master 
    88         $(INSTALL) -m 0644 master/lib/Munin/Master/Update.pm $(PERLLIB)/Munin/Master 
    89         $(INSTALL) -m 0644 master/lib/Munin/Master/UpdateWorker.pm $(PERLLIB)/Munin/Master 
    90         $(INSTALL) -m 0644 master/lib/Munin/Master/Utils.pm $(PERLLIB)/Munin/Master 
    91         $(INSTALL) -m 0644 master/lib/Munin/Master/Worker.pm $(PERLLIB)/Munin/Master 
    92  
     75 
     76        $(INSTALL) -m 0755 build/master/_bin/munin-cron $(BINDIR)/ 
     77        $(INSTALL) -m 0755 build/master/_bin/munin-check $(BINDIR)/ 
     78        $(INSTALL) -m 0755 master/_bin/munin-update $(LIBDIR)/ 
     79        $(INSTALL) -m 0755 build/master/_bin/munin-graph $(LIBDIR)/ 
     80        $(INSTALL) -m 0755 build/master/_bin/munin-html $(LIBDIR)/ 
     81        $(INSTALL) -m 0755 build/master/_bin/munin-limits $(LIBDIR)/ 
     82        $(INSTALL) -m 0755 build/master/_bin/munin-gather $(LIBDIR)/ 
     83        $(INSTALL) -m 0755 build/master/_bin/munin-cgi-graph $(CGIDIR)/ 
    9384 
    9485# ALWAYS DO THE OS SPECIFIC PLUGINS LAST! THAT WAY THEY OVERWRITE THE 
     
    9687 
    9788# Some HP-UX plugins needs *.adv support files in LIBDIR 
    98 install-node-plugins: build $(PLUGINS) Makefile Makefile.config 
     89install-plugins-prime: install-plugins build $(PLUGINS) Makefile Makefile.config 
    9990        $(CHECKGROUP) 
    10091 
     
    10293        mkdir -p $(CONFDIR)/plugin-conf.d 
    10394        mkdir -p $(LIBDIR)/plugins 
    104         mkdir -p $(PERLLIB)/Munin/Plugin 
    105  
    10695        mkdir -p $(PLUGSTATE) 
    10796 
     
    122111        done 
    123112        -mv $(LIBDIR)/plugins/*.adv $(LIBDIR) 
    124         -mkdir -p $(PLUGSTATE) 
    125         $(CHOWN) $(PLUGINUSER):$(GROUP) $(PLUGSTATE) 
    126         $(CHMOD) 0775 $(PLUGSTATE) 
    127113        $(INSTALL) -m 0644 build/plugins/plugins.history $(LIBDIR)/plugins/ 
    128114        $(INSTALL) -m 0644 build/plugins/plugin.sh $(LIBDIR)/plugins/ 
    129         mkdir -p $(PERLLIB)/Munin/Plugin 
    130         $(INSTALL) -m 0644 plugins/lib/Munin/Plugin.pm $(PERLLIB)/Munin/ 
    131         $(INSTALL) -m 0644 plugins/lib/Munin/Plugin/SNMP.pm $(PERLLIB)/Munin/Plugin/ 
    132115 
    133116#TODO: 
    134117# configure plugins.  Or not. Better done under the direction of the installer 
    135118# or the packager. 
     119 
     120install-node-prime: install-node-pre install-node 
     121 
     122install-node-pre: build/node/munin-node.conf install-pre 
     123        test -f "$(CONFDIR)/munin-node.conf" || $(INSTALL) -m 0644 build/node/munin-node.conf $(CONFDIR)/ 
     124 
     125 
     126install-common-prime: build-common install-common 
     127 
    136128 
    137129install-man: build-man Makefile Makefile.config 
     
    156148###################################################################### 
    157149 
    158 build: $(INFILES) build-common-prime build-node build-man 
     150build: $(INFILES) build-master build-common-prime build-node build-plugins build-man 
    159151 
    160152build/%: %.in 
     
    191183 
    192184 
    193 build-doc: build-doc-stamp Makefile Makefile.config 
    194  
    195 build-doc-stamp: 
    196         touch build-doc-stamp 
    197         mkdir -p build/doc 
    198  
    199 build-man: build-man-stamp  
    200  
    201 build-man-stamp: build Makefile Makefile.config 
    202         touch build-man-stamp 
    203         mkdir -p build/doc 
    204         for f in $(MAN8); do \ 
    205            pod2man --section=8 --release=$(RELEASE) --center=$(MANCENTER) build/"$$f" > build/doc/`basename $$f`.8; \ 
    206         done 
    207         for f in $(PODMAN8); do \ 
    208            pod2man --section=8 --release=$(RELEASE) --center=$(MANCENTER) "$$f".pod > build/doc/`basename $$f .pod`.8; \ 
    209         done 
    210         for f in $(PODMAN5); do \ 
    211            pod2man --section=5 --release=$(RELEASE) --center=$(MANCENTER) "$$f".pod > build/doc/`basename $$f .pod`.5; \ 
    212         done 
    213  
    214 ###################################################################### 
    215 # DIST RULES 
    216  
    217 deb: 
    218         (! grep MAINTAINER Makefile.config) 
    219         -rm debian 
    220         -ln -s dists/debian 
    221         fakeroot debian/rules binary 
    222  
    223 tar-pre: 
    224         (! grep MAINTAINER Makefile.config) 
    225         find . -name '*~' -exec rm -fv {} \; 
    226         PWD=`pwd` 
    227         -rm -f ../munin-$(VERSION) 
    228         (cd ..; ln -s $(PWD) munin-$(VERSION)) 
    229  
    230 tar: tar-pre 
    231         GZIP=-9 tar -C .. --dereference --exclude .svn -cvzf ../munin_$(RELEASE).tar.gz munin-$(VERSION)/ 
    232  
    233 rpm-pre: 
    234         (! grep MAINTAINER Makefile.config) 
    235         @for file in `find dists/redhat/ -type f -name '*.in'`; do                      \ 
    236                 destname=`echo $$file | sed 's/.in$$//'`;               \ 
    237                 echo Generating $$destname..;                           \ 
    238                 sed -e 's|@@VERSION@@|$(VERSION)|g'                     \ 
    239                     $$file > $$destname;                                \ 
    240         done 
    241         -cp dists/tarball/plugins.conf . 
    242 #       (cd ..; ln -s munin munin-$(VERSION)) 
    243  
    244 rpm: rpm-pre 
    245         tar -C .. --dereference --exclude .svn -cvzf ../munin_$(RELEASE).tar.gz munin-$(VERSION)/ 
    246         (cd ..; rpmbuild -tb munin_$(RELEASE).tar.gz) 
    247  
    248 rpm-src: rpm-pre 
    249         tar -C .. --dereference --exclude .svn -cvzf ../munin-$(RELEASE).tar.gz munin-$(VERSION)/ 
    250         (cd ..; rpmbuild -ts munin-$(RELEASE).tar.gz) 
    251  
    252 suse-pre: 
    253         (! grep MAINTAINER Makefile.config) 
    254         @for file in `find dists/suse/ -type f -name '*.in'`; do                \ 
    255                 destname=`echo $$file | sed 's/.in$$//'`;               \ 
    256                 echo Generating $$destname..;                           \ 
    257                 sed -e 's|@@VERSION@@|$(VERSION)|g'                     \ 
    258                 $$file > $$destname;                                \ 
    259         done 
    260         -cp dists/tarball/plugins.conf . 
    261 #       (cd ..; ln -s munin munin-$(VERSION)) 
    262  
    263 suse: suse-pre 
    264         tar -C .. --dereference --exclude .svn -cvzf ../munin_$(RELEASE).tar.gz munin-$(VERSION)/ 
    265         (cd ..; rpmbuild -tb munin-$(RELEASE).tar.gz) 
    266  
    267 suse-src: suse-pre 
    268         tar -C .. --dereference --exclude .svn -cvzf ../munin_$(RELEASE).tar.gz munin-$(VERSION)/ 
    269         (cd ..; rpmbuild -ts munin-$(RELEASE).tar.gz) 
    270  
    271 source_dist: clean 
    272         (! grep MAINTAINER Makefile.config) 
    273         (cd .. && ln -s $(DIR) munin-$(VERSION)) 
    274         tar -C .. --dereference --exclude .svn -cvzf ../munin_$(RELEASE).tar.gz munin-$(VERSION)/ 
    275         (cd .. && rm munin-$(VERSION)) 
    276  
    277 ###################################################################### 
    278  
    279 ifeq ($(MAKELEVEL),0) 
    280 clean: clean-common clean-node clean-master 
    281         -rm -f debian 
    282         -ln -sf dists/debian 
    283         -fakeroot debian/rules clean 
    284         -rm -f debian 
    285 else 
    286 clean: 
    287 endif 
    288         -rm -rf build 
    289         -rm -f build-stamp 
    290         -rm -f build-doc-stamp 
    291         -rm -f build-man-stamp 
    292         -rm -rf t/install 
    293  
    294         -rm -f dists/redhat/munin.spec 
    295         -rm -f dists/suse/munin.spec 
    296  
    297  
    298 ###################################################################### 
    299  
    300 test: test-node test-common test-master 
    301  
    302 ifeq ($(MAKELEVEL),0) 
    303 # Re-exec make with the test config 
    304 old-test: t/*.t 
    305         $(MAKE) $@ CONFIG=t/Makefile.config 
    306 else 
    307 test_plugins = id_default id_root env 
    308 old-test: t/*.t t/install $(addprefix $(CONFDIR)/plugins/,$(test_plugins)) 
    309         @for test in t/*.t; do \ 
    310                 echo -n "$$test: "; \ 
    311                 PERL5LIB=$(PERLLIB) $(PERL) $$test;\ 
    312         done 
    313 endif 
    314  
    315 node-monkeywrench: install-node 
    316         rm -rf $(CONFDIR)/plugins 
    317         rm -rf $(LIBDIR)/plugins 
    318         mkdir -p $(LIBDIR)/plugins 
    319         mkdir -p $(CONFDIR)/plugins 
    320         cp monkeywrench/plugin-break*_ $(LIBDIR)/plugins/ 
    321         $(SBINDIR)/munin-node-configure --suggest 
    322         echo 'Done?' 
    323  
    324 t/install:  
    325         $(MAKE) clean install-node-prime install-node-plugins CONFIG=t/Makefile.config INSTALL_PLUGINS=test 
    326  
    327  
    328 ###################################################################### 
    329  
    330 install-node-prime: install-node-pre install-node 
    331  
    332 install-node-pre: build/node/munin-node.conf install-pre 
    333         test -f "$(CONFDIR)/munin-node.conf" || $(INSTALL) -m 0644 build/node/munin-node.conf $(CONFDIR)/ 
    334  
    335  
    336 install-common-prime: build-common install-common 
    337  
    338  
    339185build-common-prime: build-common-pre common/blib/lib/Munin/Common/Defaults.pm build-common 
    340186 
     
    373219                  $< > $@ 
    374220 
     221build-doc: build-doc-stamp Makefile Makefile.config 
     222 
     223build-doc-stamp: 
     224        touch build-doc-stamp 
     225        mkdir -p build/doc 
     226 
     227build-man: build-man-stamp  
     228 
     229build-man-stamp: build Makefile Makefile.config 
     230        touch build-man-stamp 
     231        mkdir -p build/doc 
     232        for f in $(MAN8); do \ 
     233           pod2man --section=8 --release=$(RELEASE) --center=$(MANCENTER) build/"$$f" > build/doc/`basename $$f`.8; \ 
     234        done 
     235        for f in $(PODMAN8); do \ 
     236           pod2man --section=8 --release=$(RELEASE) --center=$(MANCENTER) "$$f".pod > build/doc/`basename $$f .pod`.8; \ 
     237        done 
     238        for f in $(PODMAN5); do \ 
     239           pod2man --section=5 --release=$(RELEASE) --center=$(MANCENTER) "$$f".pod > build/doc/`basename $$f .pod`.5; \ 
     240        done 
     241 
     242###################################################################### 
     243# DIST RULES 
     244 
     245deb: 
     246        (! grep MAINTAINER Makefile.config) 
     247        -rm debian 
     248        -ln -s dists/debian 
     249        fakeroot debian/rules binary 
     250 
     251tar-pre: 
     252        (! grep MAINTAINER Makefile.config) 
     253        find . -name '*~' -exec rm -fv {} \; 
     254        PWD=`pwd` 
     255        -rm -f ../munin-$(VERSION) 
     256        (cd ..; ln -s $(PWD) munin-$(VERSION)) 
     257 
     258tar: tar-pre 
     259        GZIP=-9 tar -C .. --dereference --exclude .svn -cvzf ../munin_$(RELEASE).tar.gz munin-$(VERSION)/ 
     260 
     261rpm-pre: 
     262        (! grep MAINTAINER Makefile.config) 
     263        @for file in `find dists/redhat/ -type f -name '*.in'`; do                      \ 
     264                destname=`echo $$file | sed 's/.in$$//'`;               \ 
     265                echo Generating $$destname..;                           \ 
     266                sed -e 's|@@VERSION@@|$(VERSION)|g'                     \ 
     267                    $$file > $$destname;                                \ 
     268        done 
     269        -cp dists/tarball/plugins.conf . 
     270#       (cd ..; ln -s munin munin-$(VERSION)) 
     271 
     272rpm: rpm-pre 
     273        tar -C .. --dereference --exclude .svn -cvzf ../munin_$(RELEASE).tar.gz munin-$(VERSION)/ 
     274        (cd ..; rpmbuild -tb munin_$(RELEASE).tar.gz) 
     275 
     276rpm-src: rpm-pre 
     277        tar -C .. --dereference --exclude .svn -cvzf ../munin-$(RELEASE).tar.gz munin-$(VERSION)/ 
     278        (cd ..; rpmbuild -ts munin-$(RELEASE).tar.gz) 
     279 
     280suse-pre: 
     281        (! grep MAINTAINER Makefile.config) 
     282        @for file in `find dists/suse/ -type f -name '*.in'`; do                \ 
     283                destname=`echo $$file | sed 's/.in$$//'`;               \ 
     284                echo Generating $$destname..;                           \ 
     285                sed -e 's|@@VERSION@@|$(VERSION)|g'                     \ 
     286                $$file > $$destname;                                \ 
     287        done 
     288        -cp dists/tarball/plugins.conf . 
     289#       (cd ..; ln -s munin munin-$(VERSION)) 
     290 
     291suse: suse-pre 
     292        tar -C .. --dereference --exclude .svn -cvzf ../munin_$(RELEASE).tar.gz munin-$(VERSION)/ 
     293        (cd ..; rpmbuild -tb munin-$(RELEASE).tar.gz) 
     294 
     295suse-src: suse-pre 
     296        tar -C .. --dereference --exclude .svn -cvzf ../munin_$(RELEASE).tar.gz munin-$(VERSION)/ 
     297        (cd ..; rpmbuild -ts munin-$(RELEASE).tar.gz) 
     298 
     299source_dist: clean 
     300        (! grep MAINTAINER Makefile.config) 
     301        (cd .. && ln -s $(DIR) munin-$(VERSION)) 
     302        tar -C .. --dereference --exclude .svn -cvzf ../munin_$(RELEASE).tar.gz munin-$(VERSION)/ 
     303        (cd .. && rm munin-$(VERSION)) 
     304 
     305###################################################################### 
     306 
     307ifeq ($(MAKELEVEL),0) 
     308clean: clean-common clean-node clean-master clean-plugins 
     309        -rm -f debian 
     310        -ln -sf dists/debian 
     311        -fakeroot debian/rules clean 
     312        -rm -f debian 
     313else 
     314clean: 
     315endif 
     316        -rm -rf build 
     317        -rm -f build-stamp 
     318        -rm -f build-doc-stamp 
     319        -rm -f build-man-stamp 
     320        -rm -rf t/install 
     321 
     322        -rm -f dists/redhat/munin.spec 
     323        -rm -f dists/suse/munin.spec 
     324 
     325 
     326###################################################################### 
     327 
     328test: test-node test-common test-master test-plugins 
     329 
     330ifeq ($(MAKELEVEL),0) 
     331# Re-exec make with the test config 
     332old-test: t/*.t 
     333        $(MAKE) $@ CONFIG=t/Makefile.config 
     334else 
     335test_plugins = id_default id_root env 
     336old-test: t/*.t t/install $(addprefix $(CONFDIR)/plugins/,$(test_plugins)) 
     337        @for test in t/*.t; do \ 
     338                echo -n "$$test: "; \ 
     339                PERL5LIB=$(PERLLIB) $(PERL) $$test;\ 
     340        done 
     341endif 
     342 
     343node-monkeywrench: install-node 
     344        rm -rf $(CONFDIR)/plugins 
     345        rm -rf $(LIBDIR)/plugins 
     346        mkdir -p $(LIBDIR)/plugins 
     347        mkdir -p $(CONFDIR)/plugins 
     348        cp monkeywrench/plugin-break*_ $(LIBDIR)/plugins/ 
     349        $(SBINDIR)/munin-node-configure --suggest 
     350        echo 'Done?' 
     351 
     352t/install:  
     353        $(MAKE) clean install-node-prime install-node-plugins CONFIG=t/Makefile.config INSTALL_PLUGINS=test 
     354 
     355 
    375356###################################################################### 
    376357 
     
    392373        cd $* && $(PERL) Build test || true 
    393374 
    394 # We assume here that if $*/Build is missing, there is nothing to 
    395 # clean. 
    396 clean-%: 
    397         test -f "$*/Build" && cd $* && $(PERL) Build realclean || true 
    398  
    399  
     375clean-%: %/Build 
     376        cd $* && $(PERL) Build realclean 
     377 
     378 
  • trunk/dev_scripts/install

    r2141 r2143  
    1414 
    1515make DESTDIR=$DESTDIR HTMLDIR=$DESTDIR/www || exit 
    16 fakeroot make install-master install-common-prime install-node-prime install-man DESTDIR=$DESTDIR HTMLDIR=$DESTDIR/www || exit 
     16fakeroot make install-master-prime install-common-prime install-node-prime install-man DESTDIR=$DESTDIR HTMLDIR=$DESTDIR/www || exit 
    1717 
    1818 
    1919if [ $1 ]; then 
    2020    echo "**********************************************************************" 
    21     fakeroot make install-node-plugins DESTDIR=$DESTDIR HTMLDIR=$DESTDIR/www || exit 
     21    fakeroot make install-plugins-prime DESTDIR=$DESTDIR HTMLDIR=$DESTDIR/www || exit 
    2222    echo "**********************************************************************" 
    2323    perl -pi -e "s/port 4949/port 4948/;  
  • trunk/master/Build.PL

    r2129 r2143  
    2323    recommends     => { 
    2424        #'Net::SSLeay' => 0, In Munin::Common? 
    25     } 
     25    }, 
    2626); 
    2727$build->create_build_script;