Annotation of embedaddon/quagga/solaris/Makefile.am, revision 1.1
1.1 ! misho 1: # Solaris packages automake file
! 2:
! 3: # XXX This file uses GNU make extensions.
! 4:
! 5: .PHONY: packages
! 6:
! 7: # the names of the various subpackages, and some convenient
! 8: # derived variables.
! 9: pkg_names = daemons dev doc libs smf
! 10: pkg_quagga_daemons = zebra bgpd ospfd ospf6d ripd ripngd
! 11: pkg_name_rev = @PACKAGE_VERSION@-@CONFDATE@-@target_os@-@target_cpu@
! 12: pkg_depends = $(pkg_names:%=depend.%)
! 13: pkg_packages = $(pkg_names:%=@PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg)
! 14: pkg_pkginfos = $(pkg_names:%=pkginfo.%.full)
! 15: pkg_prototypes = $(pkg_names:%=prototype.%)
! 16: pkg_manifests = quagga.xml
! 17:
! 18: # pkgmk variable substitutions wont grok ${variable} in prototype
! 19: # file, so we cant let autoconf generate the file sadly
! 20: # wish automake would just provide a template for this
! 21: edit = $(SED) \
! 22: -e 's,@prefix\@,$(prefix),g' \
! 23: -e 's,@exec_prefix,$(exec_prefix),g' \
! 24: -e 's,@bindir\@,$(bindir),g' \
! 25: -e 's,@sbindir\@,$(sbindir),g' \
! 26: -e 's,@libexecdir\@,$(libexecdir),g' \
! 27: -e 's,@datadir\@,$(datadir),g' \
! 28: -e 's,@sysconfdir\@,$(sysconfdir),g' \
! 29: -e 's,@sharedstatedir\@,$(sharedstatedir),g' \
! 30: -e 's,@localstatedir\@,$(localstatedir),g' \
! 31: -e 's,@libdir\@,$(libdir),g' \
! 32: -e 's,@includedir\@,$(includedir),g' \
! 33: -e 's,@infodir\@,$(infodir),g' \
! 34: -e 's,@mandir\@,$(mandir),g' \
! 35: -e 's,@enable_user\@,$(enable_user),g' \
! 36: -e 's,@enable_group\@,$(enable_group),g' \
! 37: -e 's,@enable_vty_group\@,$(enable_vty_group),g' \
! 38: -e 's,@quagga_statedir\@,$(quagga_statedir),g' \
! 39: -e 's,[@]PACKAGE_NAME[@],@PACKAGE_NAME@,g' \
! 40: -e 's,[@]PACKAGE_TARNAME[@],@PACKAGE_TARNAME@,g' \
! 41: -e 's,[@]PACKAGE_VERSION[@],@PACKAGE_VERSION@,g' \
! 42: -e 's,[@]PACKAGE_BUGREPORT[@],@PACKAGE_BUGREPORT@,g' \
! 43: -e 's,[@]CONFDATE[@],@CONFDATE@,g' \
! 44: -e 's,[@]target_cpu[@],$(target_cpu),g' \
! 45: -e 's,[@]target_host[@],$(target_host),g' \
! 46: -e 's,[@]target_os[@],$(target_os),g'
! 47:
! 48: # common options for pkgmk
! 49: pkg_make_vars = exec_prefix=@exec_prefix@ prefix=@prefix@ \
! 50: builddir=@builddir@ srcdir=@srcdir@ \
! 51: top_builddir=@top_builddir@ top_srcdir=@top_srcdir@ \
! 52: abs_builddir=@abs_builddir@ abs_srcdir=@abs_srcdir@ \
! 53: abs_top_builddir=@abs_top_builddir@ abs_top_srcdir=@abs_top_srcdir@
! 54:
! 55: # pkgmk: write the package to spool in build dir, to avoid root dependencies
! 56: pkg_make = pkgmk -o -d @abs_builddir@ \
! 57: -f $< DESTDIR="$(DESTDIR)/" $(pkg_make_vars)
! 58:
! 59: # pkgtrans: write a pkg file stream, shame we cant pipe directly to it from
! 60: # pkgmk..
! 61: pkg_trans = pkgtrans -s @abs_builddir@ "@abs_builddir@/$@"
! 62:
! 63: # pkgmk can only cope with a single pkginfo, cant 'stack' various
! 64: # pkginfo template files and a package specific pkginfo file in the prototype
! 65: # Create the package specific template here, and create the full pkginfo
! 66: # by cating this and the common pkginfo.tmpl together.
! 67: pkginfo.tmpl: $(srcdir)/pkginfo.tmpl.in Makefile
! 68: rm -f $@
! 69: $(edit) $< > $@
! 70:
! 71: pkginfo.%.tmpl: $(srcdir)/pkginfo.%.tmpl.in Makefile
! 72: rm -f $@
! 73: $(edit) $< > $@
! 74:
! 75: pkginfo.%.full: pkginfo.%.tmpl pkginfo.tmpl Makefile
! 76: cat pkginfo.tmpl pkginfo.$*.tmpl > $@
! 77:
! 78: # use 'edit' above to transform prototype.in to pkgmk acceptable prototype
! 79: prototype.%: $(srcdir)/prototype.%.in Makefile
! 80: rm -f $@
! 81: $(edit) $< > $@
! 82:
! 83: # use edit to construct the SMF manifest files
! 84: %.xml: $(srcdir)/%.xml.in Makefile
! 85: rm -f $@
! 86: $(edit) $< > $@
! 87: # use edit to construct the depend files
! 88: depend.%: $(srcdir)/depend.%.in Makefile
! 89: rm -f $@
! 90: $(edit) $< > $@
! 91:
! 92: # method file (bit like init script)
! 93: quagga.init: $(srcdir)/quagga.init.in Makefile
! 94: rm -f $@
! 95: $(edit) $< > $@
! 96:
! 97: # construct the pkg
! 98: @PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg: prototype.% \
! 99: depend.% quagga.init pkginfo.%.full
! 100: ($(pkg_make) && \
! 101: $(pkg_trans) "QUAGGA$*")
! 102:
! 103: %.pkg.gz : %.pkg
! 104: (gzip -c $< > $@)
! 105:
! 106: # pkginfo.package and prototype.package are all built sources
! 107: #BUILT_SOURCES = pkginfo.daemons pkginfo.dev pkginfo.doc pkginfo.libs \
! 108: # prototype.daemons prototype.dev prototype.doc prototype.libs
! 109: BUILT_SOURCES = $(pkg_pkginfos) pkginfo.tmpl $(pkg_prototypes) \
! 110: $(pkg_manifests) $(pkg_depends) quagga.init
! 111:
! 112: CLEANFILES = $(BUILT_SOURCES) $(pkg_packages)
! 113:
! 114: EXTRA_DIST = $(pkg_manifests:%=%.in) $(pkg_prototypes:%=%.in) \
! 115: $(pkg_names:%=pkginfo.%.tmpl.in) $(srcdir)/pkginfo.tmpl.in \
! 116: $(pkg_depends:%=%.in) quagga.init.in README.txt
! 117:
! 118: pkg-root-install:
! 119: (cd $(top_builddir) && \
! 120: $(MAKE) DESTDIR=$(abs_builddir)/quagga-root install)
! 121:
! 122: packages: $(pkg_packages)
! 123:
! 124: #nodist_pkgdata_DATA = $(pkg_packages)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>