build: non-recursive solaris

Signed-off-by: David Lamparter <equinox@diac24.net>
This commit is contained in:
David Lamparter 2018-08-18 04:05:55 +02:00 committed by David Lamparter
parent 84c5337efd
commit e386324530
5 changed files with 119 additions and 34 deletions

View File

@ -48,6 +48,7 @@ include qpb/subdir.am
include fpm/subdir.am include fpm/subdir.am
include tools/subdir.am include tools/subdir.am
include debianpkg/subdir.am include debianpkg/subdir.am
include solaris/subdir.am
include ripd/subdir.am include ripd/subdir.am
include ripngd/subdir.am include ripngd/subdir.am
@ -68,11 +69,11 @@ include bfdd/subdir.am
SUBDIRS = . @LIBRFP@ @RFPTEST@ \ SUBDIRS = . @LIBRFP@ @RFPTEST@ \
@BGPD@ \ @BGPD@ \
@VTYSH@ \ @VTYSH@ \
@SOLARIS@ tests tests
DIST_SUBDIRS = . bgpd \ DIST_SUBDIRS = . bgpd \
vtysh tests \ vtysh tests \
solaris bgpd/rfp-example/librfp \ bgpd/rfp-example/librfp \
bgpd/rfp-example/rfptest \ bgpd/rfp-example/rfptest \
# end # end

View File

@ -1988,6 +1988,7 @@ AC_CONFIG_FILES([Makefile
bgpd/rfp-example/rfptest/Makefile bgpd/rfp-example/rfptest/Makefile
bgpd/rfp-example/librfp/Makefile bgpd/rfp-example/librfp/Makefile
redhat/frr.spec redhat/frr.spec
solaris/Makefile
debianpkg/changelog debianpkg/changelog
alpine/APKBUILD alpine/APKBUILD
snapcraft/snapcraft.yaml snapcraft/snapcraft.yaml
@ -2003,8 +2004,6 @@ if test "${enable_bgp_vnc}" != "no"; then
fi fi
fi fi
AC_CONFIG_FILES([solaris/Makefile])
AC_CONFIG_FILES([vtysh/extract.pl],[chmod +x vtysh/extract.pl]) AC_CONFIG_FILES([vtysh/extract.pl],[chmod +x vtysh/extract.pl])
AC_CONFIG_COMMANDS([lib/route_types.h], [ AC_CONFIG_COMMANDS([lib/route_types.h], [

4
solaris/.gitignore vendored
View File

@ -1,5 +1,5 @@
Makefile Makefile
Makefile.in !Makefile.in
?.manifest ?.manifest
*.xml *.xml
pkginfo.*.full pkginfo.*.full
@ -19,4 +19,4 @@ frr.init
*.pkg.gz *.pkg.gz
*~ *~
*.loT *.loT
*.a *.a

View File

@ -2,13 +2,56 @@
# XXX This file uses GNU make extensions. # XXX This file uses GNU make extensions.
.PHONY: packages .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 # the names of the various subpackages, and some convenient
# derived variables. # derived variables.
pkg_names = daemons dev doc libs smf pkg_names = daemons dev doc libs smf
pkg_frr_daemons = zebra bgpd ospfd ospf6d ripd ripngd pkg_frr_daemons = zebra bgpd ospfd ospf6d ripd ripngd
pkg_name_rev = @PACKAGE_VERSION@-@CONFDATE@-@host_os@-@host_cpu@ pkg_name_rev = $(PACKAGE_VERSION)-$(CONFDATE)-$(host_os)-$(host_cpu)
pkg_depends = $(pkg_names:%=depend.%) pkg_depends = $(pkg_names:%=depend.%)
pkg_packages = $(pkg_names:%=@PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg) pkg_packages = $(pkg_names:%=@PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg)
pkg_pkginfos = $(pkg_names:%=pkginfo.%.full) pkg_pkginfos = $(pkg_names:%=pkginfo.%.full)
@ -36,28 +79,28 @@ edit = $(SED) \
-e 's,@enable_group\@,$(enable_group),g' \ -e 's,@enable_group\@,$(enable_group),g' \
-e 's,@enable_vty_group\@,$(enable_vty_group),g' \ -e 's,@enable_vty_group\@,$(enable_vty_group),g' \
-e 's,@frr_statedir\@,$(frr_statedir),g' \ -e 's,@frr_statedir\@,$(frr_statedir),g' \
-e 's,[@]PACKAGE_NAME[@],@PACKAGE_NAME@,g' \ -e 's,[@]PACKAGE_NAME[@],$(PACKAGE_NAME),g' \
-e 's,[@]PACKAGE_TARNAME[@],@PACKAGE_TARNAME@,g' \ -e 's,[@]PACKAGE_TARNAME[@],$(PACKAGE_TARNAME),g' \
-e 's,[@]PACKAGE_VERSION[@],@PACKAGE_VERSION@,g' \ -e 's,[@]PACKAGE_VERSION[@],$(PACKAGE_VERSION),g' \
-e 's,[@]PACKAGE_BUGREPORT[@],@PACKAGE_BUGREPORT@,g' \ -e 's,[@]PACKAGE_BUGREPORT[@],$(PACKAGE_BUGREPORT),g' \
-e 's,[@]CONFDATE[@],@CONFDATE@,g' \ -e 's,[@]CONFDATE[@],$(CONFDATE),g' \
-e 's,[@]host_cpu[@],$(host_cpu),g' \ -e 's,[@]host_cpu[@],$(host_cpu),g' \
-e 's,[@]host_os[@],$(host_os),g' -e 's,[@]host_os[@],$(host_os),g'
# common options for pkgmk # common options for pkgmk
pkg_make_vars = exec_prefix=@exec_prefix@ prefix=@prefix@ \ pkg_make_vars = exec_prefix=$(exec_prefix) prefix=$(prefix) \
builddir=@builddir@ srcdir=@srcdir@ \ builddir=$(builddir) srcdir=$(srcdir) \
top_builddir=@top_builddir@ top_srcdir=@top_srcdir@ \ top_builddir=$(top_builddir) top_srcdir=$(top_srcdir) \
abs_builddir=@abs_builddir@ abs_srcdir=@abs_srcdir@ \ abs_builddir=$(abs_builddir) abs_srcdir=$(abs_srcdir) \
abs_top_builddir=@abs_top_builddir@ abs_top_srcdir=@abs_top_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 # pkgmk: write the package to spool in build dir, to avoid root dependencies
pkg_make = pkgmk -o -d @abs_builddir@ \ pkg_make = pkgmk -o -d $(abs_builddir) \
-f $< DESTDIR="$(DESTDIR)/" $(pkg_make_vars) -f $< DESTDIR="$(DESTDIR)/" $(pkg_make_vars)
# pkgtrans: write a pkg file stream, shame we cant pipe directly to it from # pkgtrans: write a pkg file stream, shame we cant pipe directly to it from
# pkgmk.. # pkgmk..
pkg_trans = pkgtrans -s @abs_builddir@ "@abs_builddir@/$@" pkg_trans = pkgtrans -s $(abs_builddir) "$(abs_builddir)/$@"
# pkgmk can only cope with a single pkginfo, cant 'stack' various # pkgmk can only cope with a single pkginfo, cant 'stack' various
# pkginfo template files and a package specific pkginfo file in the prototype # pkginfo template files and a package specific pkginfo file in the prototype
@ -94,7 +137,7 @@ frr.init: $(srcdir)/frr.init.in Makefile
$(edit) $< > $@ $(edit) $< > $@
# construct the pkg # construct the pkg
@PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg: prototype.% \ $(PACKAGE_TARNAME)-%-$(pkg_name_rev).pkg: prototype.% \
depend.% frr.init pkginfo.%.full depend.% frr.init pkginfo.%.full
($(pkg_make) && \ ($(pkg_make) && \
$(pkg_trans) "FRR$*") $(pkg_trans) "FRR$*")
@ -102,22 +145,11 @@ frr.init: $(srcdir)/frr.init.in Makefile
%.pkg.gz : %.pkg %.pkg.gz : %.pkg
(gzip -c $< > $@) (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: pkg-root-install:
(cd $(top_builddir) && \ (cd $(top_builddir) && \
$(MAKE) DESTDIR=$(abs_builddir)/frr-root install) $(MAKE) DESTDIR=$(abs_builddir)/frr-root install)
packages: $(pkg_packages) packages: $(pkg_packages)
#nodist_pkgdata_DATA = $(pkg_packages) all-files: $(pkg_pkginfos) pkginfo.tmpl $(pkg_prototypes) \
$(pkg_manifests) $(pkg_depends) frr.init

53
solaris/subdir.am Normal file
View File

@ -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