core-extra/Makefile.am

165 lines
3.8 KiB
Makefile

# CORE
# (c)2010-2012 the Boeing Company.
# See the LICENSE file included in this distribution.
#
# author: Jeff Ahrenholz <jeffrey.m.ahrenholz@boeing.com>
#
# Top-level Makefile for CORE project.
#
if WANT_DOCS
DOCS = doc
endif
if WANT_GUI
GUI = gui
endif
if WANT_DAEMON
DAEMON = scripts daemon
endif
if WANT_NETNS
NETNS = netns ns3
endif
# keep docs last due to dependencies on binaries
SUBDIRS = ${GUI} ${DAEMON} ${DOCS} ${NETNS}
ACLOCAL_AMFLAGS = -I config
# extra files to include with distribution tarball
EXTRA_DIST = bootstrap.sh LICENSE \
README.md ASSIGNMENT_OF_COPYRIGHT.pdf \
Changelog kernel \
python-prefix.py revision.sh \
.version .version.date \
packaging/deb/compat \
packaging/deb/copyright \
packaging/deb/changelog \
packaging/deb/rules \
packaging/deb/control \
packaging/deb/core-daemon.install.in \
packaging/deb/core-daemon.prerm.in \
packaging/deb/core-gui.install.in \
packaging/rpm/core.spec.in \
packaging/rpm/specfiles.sh
DISTCLEAN_TARGETS = aclocal.m4 config.h.in
# extra cruft to remove
DISTCLEANFILES = aclocal.m4 config.h.in configure Makefile.in config/compile
MAINTAINERCLEANFILES = \
.version \
.version.date
# don't include svn dirs in source tarball
dist-hook:
rm -rf `find $(distdir)/kernel -name .svn`
# build a source RPM
.PHONY: rpm
rpm: dist
mkdir -p $(HOME)/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
echo '%_topdir $(HOME)/rpmbuild' > ~/.rpmmacros
cp -afv core-@CORE_VERSION@.tar.gz ~/rpmbuild/SOURCES
cp -afv packaging/rpm/core.spec ~/rpmbuild/SPECS
rpmbuild -bs ~/rpmbuild/SPECS/core.spec
# build a Ubuntu deb package using CDBS
.PHONY: deb
deb:
rm -rf debian
mkdir -p debian
cp -vf packaging/deb/* debian/
@echo "First create source archive with: dpkg-source -b core-@CORE_VERSION@"
@echo "Then build with: pbuilder-dist precise i386 build core*.dsc"
define fpm-python =
fpm -s python -t $1 \
-m "$(CORE_MAINTAINERS)" \
--vendor "$(CORE_VENDOR)" \
$2
endef
define fpm-gui =
fpm -s dir -t $1 -n core-gui \
-m "$(CORE_MAINTAINERS)" \
--license "BSD" \
--description "Common Open Research Emulator GUI front-end" \
--url http://www.nrl.navy.mil/itd/ncs/products/core \
--vendor "$(CORE_VENDOR)" \
-p core-gui_VERSION_ARCH.$1 \
-v $(CORE_VERSION) \
-d "bash" \
-d "tcl" \
-d "tk" \
$2 \
-C $(DESTDIR)
endef
define fpm-daemon-rpm =
fpm -s python -t rpm \
-p NAME_$1_VERSION_ARCH.rpm \
--python-setup-py-arguments --service=$1 \
-m "$(CORE_MAINTAINERS)" \
--vendor "$(CORE_VENDOR)" \
-d "procps-ng" \
-d "bash >= 3.0" \
-d "bridge-utils" \
-d "ebtables" \
-d "iproute" \
-d "libev" \
-d "net-tools" \
-d "python >= 2.7, python < 3.0" \
netns/setup.py daemon/setup.py
endef
define fpm-daemon-deb =
fpm -s python -t deb \
-p NAME_$1_VERSION_ARCH.deb \
--python-setup-py-arguments --service=$1 \
-m "$(CORE_MAINTAINERS)" \
--vendor "$(CORE_VENDOR)" \
-d "procps" \
-d "libc6 >= 2.14" \
-d "bash >= 3.0" \
-d "bridge-utils" \
-d "ebtables" \
-d "iproute2" \
-d "libev4" \
-d "python (>= 2.7), python (<< 3.0)" \
--deb-recommends quagga \
netns/setup.py daemon/setup.py
endef
.PHONY: fpm
fpm: clean-local-fpm
$(MAKE) -C gui install DESTDIR=$(DESTDIR)
$(call fpm-gui,rpm,-d "tkimg")
$(call fpm-gui,deb,-d "libtk-img")
$(call fpm-python,rpm,ns3/setup.py)
$(call fpm-python,deb,ns3/setup.py)
$(call fpm-daemon-rpm,systemd)
$(call fpm-daemon-rpm,sysv)
$(call fpm-daemon-deb,systemd)
$(call fpm-daemon-deb,sysv)
.PHONY: clean-local-fpm
clean-local-fpm:
-rm -rf *.deb
-rm -rf *.rpm
.PHONY: core-restart
core-restart:
/etc/init.d/core-daemon stop
daemon/sbin/core-cleanup
rm -f /var/log/core-daemon.log
/etc/init.d/core-daemon start
clean-local: clean-local-fpm
.version: Makefile
echo $(CORE_VERSION) > $@
.version.date: Makefile
echo $(CORE_VERSION_DATE) > $@