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. 9pkg_names = daemons dev doc libs smf 10pkg_quagga_daemons = zebra bgpd ospfd ospf6d ripd ripngd 11pkg_name_rev = @PACKAGE_VERSION@-@CONFDATE@-@target_os@-@target_cpu@ 12pkg_depends = $(pkg_names:%=depend.%) 13pkg_packages = $(pkg_names:%=@PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg) 14pkg_pkginfos = $(pkg_names:%=pkginfo.%.full) 15pkg_prototypes = $(pkg_names:%=prototype.%) 16pkg_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 21edit = $(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 49pkg_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 56pkg_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.. 61pkg_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. 67pkginfo.tmpl: $(srcdir)/pkginfo.tmpl.in Makefile 68 rm -f $@ 69 $(edit) $< > $@ 70 71pkginfo.%.tmpl: $(srcdir)/pkginfo.%.tmpl.in Makefile 72 rm -f $@ 73 $(edit) $< > $@ 74 75pkginfo.%.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 79prototype.%: $(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 88depend.%: $(srcdir)/depend.%.in Makefile 89 rm -f $@ 90 $(edit) $< > $@ 91 92# method file (bit like init script) 93quagga.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 109BUILT_SOURCES = $(pkg_pkginfos) pkginfo.tmpl $(pkg_prototypes) \ 110 $(pkg_manifests) $(pkg_depends) quagga.init 111 112CLEANFILES = $(BUILT_SOURCES) $(pkg_packages) 113 114EXTRA_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 118pkg-root-install: 119 (cd $(top_builddir) && \ 120 $(MAKE) DESTDIR=$(abs_builddir)/quagga-root install) 121 122packages: $(pkg_packages) 123 124#nodist_pkgdata_DATA = $(pkg_packages) 125