From: David Lamparter Date: Sat, 18 Aug 2018 02:05:55 +0000 (+0200) Subject: build: non-recursive solaris X-Git-Tag: frr-6.0.1~18^2~45 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=9eeccf822bbd3e1b14c1751f08819932204047e0;p=matthieu%2Ffrr.git build: non-recursive solaris Signed-off-by: David Lamparter --- diff --git a/Makefile.am b/Makefile.am index 3168f9d548..ec186b3fc1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -48,6 +48,7 @@ include qpb/subdir.am include fpm/subdir.am include tools/subdir.am include debianpkg/subdir.am +include solaris/subdir.am include ripd/subdir.am include ripngd/subdir.am @@ -68,11 +69,11 @@ include bfdd/subdir.am SUBDIRS = . @LIBRFP@ @RFPTEST@ \ @BGPD@ \ @VTYSH@ \ - @SOLARIS@ tests + tests DIST_SUBDIRS = . bgpd \ vtysh tests \ - solaris bgpd/rfp-example/librfp \ + bgpd/rfp-example/librfp \ bgpd/rfp-example/rfptest \ # end diff --git a/configure.ac b/configure.ac index 0e70c86f3f..cc959a4b35 100755 --- a/configure.ac +++ b/configure.ac @@ -1988,6 +1988,7 @@ AC_CONFIG_FILES([Makefile bgpd/rfp-example/rfptest/Makefile bgpd/rfp-example/librfp/Makefile redhat/frr.spec + solaris/Makefile debianpkg/changelog alpine/APKBUILD snapcraft/snapcraft.yaml @@ -2003,8 +2004,6 @@ if test "${enable_bgp_vnc}" != "no"; then fi fi -AC_CONFIG_FILES([solaris/Makefile]) - AC_CONFIG_FILES([vtysh/extract.pl],[chmod +x vtysh/extract.pl]) AC_CONFIG_COMMANDS([lib/route_types.h], [ diff --git a/solaris/.gitignore b/solaris/.gitignore index a2c7946e71..a249b61996 100644 --- a/solaris/.gitignore +++ b/solaris/.gitignore @@ -1,5 +1,5 @@ Makefile -Makefile.in +!Makefile.in ?.manifest *.xml pkginfo.*.full @@ -19,4 +19,4 @@ frr.init *.pkg.gz *~ *.loT -*.a \ No newline at end of file +*.a diff --git a/solaris/Makefile.am b/solaris/Makefile.am deleted file mode 100644 index 1659082045..0000000000 --- a/solaris/Makefile.am +++ /dev/null @@ -1,123 +0,0 @@ -# Solaris packages automake file - -# XXX This file uses GNU make extensions. - -.PHONY: packages - -# the names of the various subpackages, and some convenient -# derived variables. -pkg_names = daemons dev doc libs smf -pkg_frr_daemons = zebra bgpd ospfd ospf6d ripd ripngd -pkg_name_rev = @PACKAGE_VERSION@-@CONFDATE@-@host_os@-@host_cpu@ -pkg_depends = $(pkg_names:%=depend.%) -pkg_packages = $(pkg_names:%=@PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg) -pkg_pkginfos = $(pkg_names:%=pkginfo.%.full) -pkg_prototypes = $(pkg_names:%=prototype.%) -pkg_manifests = frr.xml - -# pkgmk variable substitutions wont grok ${variable} in prototype -# file, so we cant let autoconf generate the file sadly -# wish automake would just provide a template for this -edit = $(SED) \ - -e 's,@prefix\@,$(prefix),g' \ - -e 's,@exec_prefix,$(exec_prefix),g' \ - -e 's,@bindir\@,$(bindir),g' \ - -e 's,@sbindir\@,$(sbindir),g' \ - -e 's,@libexecdir\@,$(libexecdir),g' \ - -e 's,@datadir\@,$(datadir),g' \ - -e 's,@sysconfdir\@,$(sysconfdir),g' \ - -e 's,@sharedstatedir\@,$(sharedstatedir),g' \ - -e 's,@localstatedir\@,$(localstatedir),g' \ - -e 's,@libdir\@,$(libdir),g' \ - -e 's,@includedir\@,$(includedir),g' \ - -e 's,@infodir\@,$(infodir),g' \ - -e 's,@mandir\@,$(mandir),g' \ - -e 's,@enable_user\@,$(enable_user),g' \ - -e 's,@enable_group\@,$(enable_group),g' \ - -e 's,@enable_vty_group\@,$(enable_vty_group),g' \ - -e 's,@frr_statedir\@,$(frr_statedir),g' \ - -e 's,[@]PACKAGE_NAME[@],@PACKAGE_NAME@,g' \ - -e 's,[@]PACKAGE_TARNAME[@],@PACKAGE_TARNAME@,g' \ - -e 's,[@]PACKAGE_VERSION[@],@PACKAGE_VERSION@,g' \ - -e 's,[@]PACKAGE_BUGREPORT[@],@PACKAGE_BUGREPORT@,g' \ - -e 's,[@]CONFDATE[@],@CONFDATE@,g' \ - -e 's,[@]host_cpu[@],$(host_cpu),g' \ - -e 's,[@]host_os[@],$(host_os),g' - -# common options for pkgmk -pkg_make_vars = exec_prefix=@exec_prefix@ prefix=@prefix@ \ - builddir=@builddir@ srcdir=@srcdir@ \ - top_builddir=@top_builddir@ top_srcdir=@top_srcdir@ \ - abs_builddir=@abs_builddir@ abs_srcdir=@abs_srcdir@ \ - abs_top_builddir=@abs_top_builddir@ abs_top_srcdir=@abs_top_srcdir@ - -# pkgmk: write the package to spool in build dir, to avoid root dependencies -pkg_make = pkgmk -o -d @abs_builddir@ \ - -f $< DESTDIR="$(DESTDIR)/" $(pkg_make_vars) - -# pkgtrans: write a pkg file stream, shame we cant pipe directly to it from -# pkgmk.. -pkg_trans = pkgtrans -s @abs_builddir@ "@abs_builddir@/$@" - -# pkgmk can only cope with a single pkginfo, cant 'stack' various -# pkginfo template files and a package specific pkginfo file in the prototype -# Create the package specific template here, and create the full pkginfo -# by cating this and the common pkginfo.tmpl together. -pkginfo.tmpl: $(srcdir)/pkginfo.tmpl.in Makefile - rm -f $@ - $(edit) $< > $@ - -pkginfo.%.tmpl: $(srcdir)/pkginfo.%.tmpl.in Makefile - rm -f $@ - $(edit) $< > $@ - -pkginfo.%.full: pkginfo.%.tmpl pkginfo.tmpl Makefile - cat pkginfo.tmpl pkginfo.$*.tmpl > $@ - -# use 'edit' above to transform prototype.in to pkgmk acceptable prototype -prototype.%: $(srcdir)/prototype.%.in Makefile - rm -f $@ - $(edit) $< > $@ - -# use edit to construct the SMF manifest files -%.xml: $(srcdir)/%.xml.in Makefile - rm -f $@ - $(edit) $< > $@ -# use edit to construct the depend files -depend.%: $(srcdir)/depend.%.in Makefile - rm -f $@ - $(edit) $< > $@ - -# method file (bit like init script) -frr.init: $(srcdir)/frr.init.in Makefile - rm -f $@ - $(edit) $< > $@ - -# construct the pkg -@PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg: prototype.% \ - depend.% frr.init pkginfo.%.full - ($(pkg_make) && \ - $(pkg_trans) "FRR$*") - -%.pkg.gz : %.pkg - (gzip -c $< > $@) - -# pkginfo.package and prototype.package are all built sources -#BUILT_SOURCES = pkginfo.daemons pkginfo.dev pkginfo.doc pkginfo.libs \ -# prototype.daemons prototype.dev prototype.doc prototype.libs -BUILT_SOURCES = $(pkg_pkginfos) pkginfo.tmpl $(pkg_prototypes) \ - $(pkg_manifests) $(pkg_depends) frr.init - -CLEANFILES = $(BUILT_SOURCES) $(pkg_packages) - -EXTRA_DIST = $(pkg_manifests:%=%.in) $(pkg_prototypes:%=%.in) \ - $(pkg_names:%=pkginfo.%.tmpl.in) $(srcdir)/pkginfo.tmpl.in \ - $(pkg_depends:%=%.in) frr.init.in README.txt - -pkg-root-install: - (cd $(top_builddir) && \ - $(MAKE) DESTDIR=$(abs_builddir)/frr-root install) - -packages: $(pkg_packages) - -#nodist_pkgdata_DATA = $(pkg_packages) diff --git a/solaris/Makefile.in b/solaris/Makefile.in new file mode 100644 index 0000000000..df9122a1db --- /dev/null +++ b/solaris/Makefile.in @@ -0,0 +1,155 @@ +# Solaris packages automake file + +# XXX This file uses GNU make extensions. + +.PHONY: packages all all-files + +all: all-files + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datarootdir = @datarootdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +includedir = @includedir@ +infodir = @infodir@ +mandir = @mandir@ +frr_statedir = @frr_statedir@ + +builddir = @builddir@ +srcdir = @srcdir@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ + +enable_user = @enable_user@ +enable_group = @enable_group@ +enable_vty_group = @enable_vty_group@ + +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +CONFDATE = @CONFDATE@ + +host_cpu = @host_cpu@ +host_os = @host_os@ + +SED = @SED@ +MAKE = @MAKE@ + +# the names of the various subpackages, and some convenient +# derived variables. +pkg_names = daemons dev doc libs smf +pkg_frr_daemons = zebra bgpd ospfd ospf6d ripd ripngd +pkg_name_rev = $(PACKAGE_VERSION)-$(CONFDATE)-$(host_os)-$(host_cpu) +pkg_depends = $(pkg_names:%=depend.%) +pkg_packages = $(pkg_names:%=@PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg) +pkg_pkginfos = $(pkg_names:%=pkginfo.%.full) +pkg_prototypes = $(pkg_names:%=prototype.%) +pkg_manifests = frr.xml + +# pkgmk variable substitutions wont grok ${variable} in prototype +# file, so we cant let autoconf generate the file sadly +# wish automake would just provide a template for this +edit = $(SED) \ + -e 's,@prefix\@,$(prefix),g' \ + -e 's,@exec_prefix,$(exec_prefix),g' \ + -e 's,@bindir\@,$(bindir),g' \ + -e 's,@sbindir\@,$(sbindir),g' \ + -e 's,@libexecdir\@,$(libexecdir),g' \ + -e 's,@datadir\@,$(datadir),g' \ + -e 's,@sysconfdir\@,$(sysconfdir),g' \ + -e 's,@sharedstatedir\@,$(sharedstatedir),g' \ + -e 's,@localstatedir\@,$(localstatedir),g' \ + -e 's,@libdir\@,$(libdir),g' \ + -e 's,@includedir\@,$(includedir),g' \ + -e 's,@infodir\@,$(infodir),g' \ + -e 's,@mandir\@,$(mandir),g' \ + -e 's,@enable_user\@,$(enable_user),g' \ + -e 's,@enable_group\@,$(enable_group),g' \ + -e 's,@enable_vty_group\@,$(enable_vty_group),g' \ + -e 's,@frr_statedir\@,$(frr_statedir),g' \ + -e 's,[@]PACKAGE_NAME[@],$(PACKAGE_NAME),g' \ + -e 's,[@]PACKAGE_TARNAME[@],$(PACKAGE_TARNAME),g' \ + -e 's,[@]PACKAGE_VERSION[@],$(PACKAGE_VERSION),g' \ + -e 's,[@]PACKAGE_BUGREPORT[@],$(PACKAGE_BUGREPORT),g' \ + -e 's,[@]CONFDATE[@],$(CONFDATE),g' \ + -e 's,[@]host_cpu[@],$(host_cpu),g' \ + -e 's,[@]host_os[@],$(host_os),g' + +# common options for pkgmk +pkg_make_vars = exec_prefix=$(exec_prefix) prefix=$(prefix) \ + builddir=$(builddir) srcdir=$(srcdir) \ + top_builddir=$(top_builddir) top_srcdir=$(top_srcdir) \ + abs_builddir=$(abs_builddir) abs_srcdir=$(abs_srcdir) \ + abs_top_builddir=$(abs_top_builddir) abs_top_srcdir=$(abs_top_srcdir) + +# pkgmk: write the package to spool in build dir, to avoid root dependencies +pkg_make = pkgmk -o -d $(abs_builddir) \ + -f $< DESTDIR="$(DESTDIR)/" $(pkg_make_vars) + +# pkgtrans: write a pkg file stream, shame we cant pipe directly to it from +# pkgmk.. +pkg_trans = pkgtrans -s $(abs_builddir) "$(abs_builddir)/$@" + +# pkgmk can only cope with a single pkginfo, cant 'stack' various +# pkginfo template files and a package specific pkginfo file in the prototype +# Create the package specific template here, and create the full pkginfo +# by cating this and the common pkginfo.tmpl together. +pkginfo.tmpl: $(srcdir)/pkginfo.tmpl.in Makefile + rm -f $@ + $(edit) $< > $@ + +pkginfo.%.tmpl: $(srcdir)/pkginfo.%.tmpl.in Makefile + rm -f $@ + $(edit) $< > $@ + +pkginfo.%.full: pkginfo.%.tmpl pkginfo.tmpl Makefile + cat pkginfo.tmpl pkginfo.$*.tmpl > $@ + +# use 'edit' above to transform prototype.in to pkgmk acceptable prototype +prototype.%: $(srcdir)/prototype.%.in Makefile + rm -f $@ + $(edit) $< > $@ + +# use edit to construct the SMF manifest files +%.xml: $(srcdir)/%.xml.in Makefile + rm -f $@ + $(edit) $< > $@ +# use edit to construct the depend files +depend.%: $(srcdir)/depend.%.in Makefile + rm -f $@ + $(edit) $< > $@ + +# method file (bit like init script) +frr.init: $(srcdir)/frr.init.in Makefile + rm -f $@ + $(edit) $< > $@ + +# construct the pkg +$(PACKAGE_TARNAME)-%-$(pkg_name_rev).pkg: prototype.% \ + depend.% frr.init pkginfo.%.full + ($(pkg_make) && \ + $(pkg_trans) "FRR$*") + +%.pkg.gz : %.pkg + (gzip -c $< > $@) + +pkg-root-install: + (cd $(top_builddir) && \ + $(MAKE) DESTDIR=$(abs_builddir)/frr-root install) + +packages: $(pkg_packages) + +all-files: $(pkg_pkginfos) pkginfo.tmpl $(pkg_prototypes) \ + $(pkg_manifests) $(pkg_depends) frr.init diff --git a/solaris/subdir.am b/solaris/subdir.am new file mode 100644 index 0000000000..1d19d56a4d --- /dev/null +++ b/solaris/subdir.am @@ -0,0 +1,53 @@ +# +# solaris +# + +.PHONY: solaris/all +if SOLARIS +all: solaris/all +solaris/all: + @make -s -C solaris all +endif + +CLEANFILES += \ + solaris/frr.xml \ + solaris/frr.init \ + solaris/pkginfo.tmpl \ + solaris/prototype.daemons \ + solaris/prototype.dev \ + solaris/prototype.doc \ + solaris/prototype.libs \ + solaris/prototype.smf \ + solaris/pkginfo.daemons.tmpl \ + solaris/pkginfo.dev.tmpl \ + solaris/pkginfo.doc.tmpl \ + solaris/pkginfo.libs.tmpl \ + solaris/pkginfo.smf.tmpl \ + solaris/depend.daemons \ + solaris/depend.dev \ + solaris/depend.doc \ + solaris/depend.libs \ + solaris/depend.smf \ + # end + +EXTRA_DIST += \ + solaris/frr.xml.in \ + solaris/frr.init.in \ + solaris/pkginfo.tmpl.in \ + solaris/prototype.daemons.in \ + solaris/prototype.dev.in \ + solaris/prototype.doc.in \ + solaris/prototype.libs.in \ + solaris/prototype.smf.in \ + solaris/pkginfo.daemons.tmpl.in \ + solaris/pkginfo.dev.tmpl.in \ + solaris/pkginfo.doc.tmpl.in \ + solaris/pkginfo.libs.tmpl.in \ + solaris/pkginfo.smf.tmpl.in \ + solaris/depend.daemons.in \ + solaris/depend.dev.in \ + solaris/depend.doc.in \ + solaris/depend.libs.in \ + solaris/depend.smf.in \ + solaris/README.txt \ + # end