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