X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=Makefile;h=e8e37bcf214bb5cb7ac073d8b0cbee788f44036d;hb=671bde96d7e9e68b8dbf871db4d9ded33964a4d4;hp=6aee9049a559c5151582f49943fb0cac79807c8d;hpb=b9766912a62faa0d5b15c9d4b6507cd0a6a163ae;p=freeradius.git diff --git a/Makefile b/Makefile index 6aee904..e8e37bc 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ include Make.inc .PHONY: all clean install -SUBDIRS = $(LTDL_SUBDIRS) src raddb scripts doc +SUBDIRS = $(LTDL_SUBDIRS) $(wildcard src raddb scripts doc) WHAT_TO_MAKE = all all: @@ -67,11 +67,34 @@ install: done $(LIBTOOL) --finish $(R)$(libdir) -common: - @for dir in $(SUBDIRS); do \ - echo "Making $(WHAT_TO_MAKE) in $$dir..."; \ - $(MAKE) $(MFLAGS) -C $$dir $(WHAT_TO_MAKE) || exit $$?; \ - done +ifneq ($(RADMIN),) +ifneq ($(RGROUP),) +.PHONY: install-chown +install-chown: + chown -R $(RADMIN) $(R)$(raddbdir) + chgrp -R $(RGROUP) $(R)$(raddbdir) + chmod u=rwx,g=rx,o= `find $(R)$(raddbdir) -type d -print` + chmod u=rw,g=r,o= `find $(R)$(raddbdir) -type f -print` + chown -R $(RADMIN) $(R)$(logdir) + chgrp -R $(RGROUP) $(R)$(logdir) + find $(R)$(logdir) -type d -exec chmod u=rwx,g=rwx,o= {} \; + find $(R)$(logdir) -type d -exec chmod g+s {} \; + find $(R)$(logdir) -type f -exec chmod u=rw,g=rw,o= {} \; + chown -R $(RADMIN) $(R)$(RUNDIR) + chgrp -R $(RGROUP) $(R)$(RUNDIR) + find $(R)$(RUNDIR) -type d -exec chmod u=rwx,g=rwx,o= {} \; + find $(R)$(RUNDIR) -type d -exec chmod g+s {} \; + find $(R)$(RUNDIR) -type f -exec chmod u=rw,g=rw,o= {} \; +endif +endif + +.PHONY: common $(SUBDIRS) + +common: $(SUBDIRS) + +$(SUBDIRS): + @echo "Making $(WHAT_TO_MAKE) in $@..." + @$(MAKE) $(MFLAGS) -C $@ $(WHAT_TO_MAKE) distclean: clean rm -f config.cache config.log config.status libtool \ @@ -92,6 +115,7 @@ distclean: clean # ###################################################################### reconfig: configure src/include/autoconf.h.in + @$(MAKE) $(MFLAGS) -C src reconfig configure: configure.in aclocal.m4 $(AUTOCONF) @@ -118,6 +142,13 @@ check-includes: TAGS: etags `find src -type f -name '*.[ch]' -print` +# +# Make test certificates. +# +.PHONY: certs +certs: + @cd raddb/certs && $(MAKE) + ###################################################################### # # Make a release. @@ -126,33 +157,56 @@ TAGS: # BEFORE running this command! # ###################################################################### -freeradius-server-$(RADIUSD_VERSION): CVS - @CVSROOT=`cat CVS/Root`; \ - cvs -d $$CVSROOT checkout -P -d freeradius-server-$(RADIUSD_VERSION) radiusd - -freeradius-server-$(RADIUSD_VERSION).tar.gz: freeradius-server-$(RADIUSD_VERSION) - @tar --exclude=CVS -zcf $@ $< +freeradius-server-$(RADIUSD_VERSION).tar.gz: .git + git archive --format=tar --prefix=freeradius-server-$(RADIUSD_VERSION)/ stable | gzip > $@ freeradius-server-$(RADIUSD_VERSION).tar.gz.sig: freeradius-server-$(RADIUSD_VERSION).tar.gz gpg --default-key aland@freeradius.org -b $< -freeradius-server-$(RADIUSD_VERSION).tar.bz2: freeradius-server-$(RADIUSD_VERSION) - @tar --exclude=CVS -jcf $@ $< +freeradius-server-$(RADIUSD_VERSION).tar.bz2: .git + git archive --format=tar --prefix=freeradius-server-$(RADIUSD_VERSION)/ stable | bzip2 > $@ freeradius-server-$(RADIUSD_VERSION).tar.bz2.sig: freeradius-server-$(RADIUSD_VERSION).tar.bz2 gpg --default-key aland@freeradius.org -b $< # high-level targets -dist: freeradius-server-$(RADIUSD_VERSION).tar.gz freeradius-server-$(RADIUSD_VERSION).tar.bz2 +.PHONY: dist-check +dist-check: redhat/freeradius.spec suse/freeradius.spec debian/changelog + @if [ `grep ^Version: redhat/freeradius.spec | sed 's/.*://;s/ //'` != "$(RADIUSD_VERSION)" ]; then \ + cat redhat/freeradius.spec | sed 's/^Version: .*/Version: $(RADIUSD_VERSION)/' > redhat/.foo; \ + mv redhat/.foo redhat/freeradius.spec; \ + echo redhat/freeradius.spec 'Version' needs to be updated; \ + exit 1; \ + fi + @if [ `grep ^Version: suse/freeradius.spec | sed 's/.*://;s/ //'` != "$(RADIUSD_VERSION)" ]; then \ + cat suse/freeradius.spec | sed 's/^Version: .*/Version: $(RADIUSD_VERSION)/' > suse/.foo; \ + mv suse/.foo suse/freeradius.spec; \ + echo suse/freeradius.spec 'Version' needs to be updated; \ + exit 1; \ + fi + @if [ `head -n 1 debian/changelog | sed 's/.*(//;s/-0).*//;s/-1).*//;'` != "$(RADIUSD_VERSION)" ]; then \ + echo debian/changelog needs to be updated; \ + exit 1; \ + fi + +dist: dist-check freeradius-server-$(RADIUSD_VERSION).tar.gz freeradius-server-$(RADIUSD_VERSION).tar.bz2 dist-sign: freeradius-server-$(RADIUSD_VERSION).tar.gz.sig freeradius-server-$(RADIUSD_VERSION).tar.bz2.sig -publish: freeradius-server-$(RADIUSD_VERSION).tar.gz.sig freeradius-server-$(RADIUSD_VERSION).tar.gz freeradius-server-$(RADIUSD_VERSION).tar.gz.sig freeradius-server-$(RADIUSD_VERSION).tar.bz2 freeradius-server-$(RADIUSD_VERSION).tar.gz.sig freeradius-server-$(RADIUSD_VERSION).tar.bz2.sig - scp $^ freeradius.org@freeradius.org:public_ftp +dist-publish: freeradius-server-$(RADIUSD_VERSION).tar.gz.sig freeradius-server-$(RADIUSD_VERSION).tar.gz freeradius-server-$(RADIUSD_VERSION).tar.gz.sig freeradius-server-$(RADIUSD_VERSION).tar.bz2 freeradius-server-$(RADIUSD_VERSION).tar.gz.sig freeradius-server-$(RADIUSD_VERSION).tar.bz2.sig + scp $^ freeradius.org@ns5.freeradius.org:public_ftp + scp $^ freeradius.org@www.tr.freeradius.org:public_ftp # # Note that we do NOT do the tagging here! We just print out what # to do! # dist-tag: freeradius-server-$(RADIUSD_VERSION).tar.gz freeradius-server-$(RADIUSD_VERSION).tar.bz2 - @echo "cd freeradius-server-$(RADIUSD_VERSION) && cvs tag release_`echo $(RADIUSD_VERSION) | tr .- __` && cd .." + @echo "git tag release_`echo $(RADIUSD_VERSION) | tr .- __`" + +# +# Build a debian package +# +.PHONY: deb +deb: + fakeroot dpkg-buildpackage -b -uc