initial cleanup passing over all makefiles and configure.ac

This commit is contained in:
Blake J. Harnden 2018-03-13 16:20:50 -07:00
parent ac705f4908
commit 6210e70c80
28 changed files with 328 additions and 641 deletions

View file

@ -10,53 +10,63 @@
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}
SUBDIRS = $(GUI) $(DAEMON) $(NETNS) $(DOCS)
ACLOCAL_AMFLAGS = -I config
# extra files to include with distribution tarball
EXTRA_DIST = bootstrap.sh LICENSE \
README.md ASSIGNMENT_OF_COPYRIGHT.pdf \
EXTRA_DIST = bootstrap.sh \
LICENSE \
README.md \
ASSIGNMENT_OF_COPYRIGHT.pdf \
Changelog \
python-prefix.py revision.sh \
.version .version.date
python-prefix.py \
revision.sh \
.version \
.version.date
DISTCLEAN_TARGETS = aclocal.m4 config.h.in
# extra cruft to remove
DISTCLEANFILES = aclocal.m4 config.h.in configure Makefile.in config/compile
DISTCLEANFILES = aclocal.m4 \
config.h.in \
configure \
Makefile.in \
config/compile
MAINTAINERCLEANFILES = \
.version \
MAINTAINERCLEANFILES = .version \
.version.date
define fpm-python =
fpm -s python -t $1 \
-m "$(CORE_MAINTAINERS)" \
--vendor "$(CORE_VENDOR)" \
-m "$(PACKAGE_MAINTAINERS)" \
--vendor "$(PACKAGE_VENDOR)" \
$2
endef
define fpm-gui =
fpm -s dir -t $1 -n core-gui \
-m "$(CORE_MAINTAINERS)" \
-m "$(PACKAGE_MAINTAINERS)" \
--license "BSD" \
--description "Common Open Research Emulator GUI front-end" \
--url http://www.nrl.navy.mil/itd/ncs/products/core \
--vendor "$(CORE_VENDOR)" \
--vendor "$(PACKAGE_VENDOR)" \
-p core-gui_VERSION_ARCH.$1 \
-v $(CORE_VERSION) \
-v $(PACKAGE_VERSION) \
-d "bash" \
-d "tcl" \
-d "tk" \
@ -66,10 +76,13 @@ 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)" \
-p NAME_sysv_VERSION_ARCH.rpm \
--rpm-init scripts/core-daemon \
--python-install-bin $(bindir) \
--python-install-data $(prefix) \
--python-install-lib $(pythondir) \
-m "$(PACKAGE_MAINTAINERS)" \
--vendor "$(PACKAGE_VENDOR)" \
-d "procps-ng" \
-d "bash >= 3.0" \
-d "bridge-utils" \
@ -84,9 +97,12 @@ 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)" \
--python-install-bin $(bindir) \
--python-install-data $(prefix) \
--python-install-lib $(pythondir) \
$2 $3 \
-m "$(PACKAGE_MAINTAINERS)" \
--vendor "$(PACKAGE_VENDOR)" \
-d "procps" \
-d "libc6 >= 2.14" \
-d "bash >= 3.0" \
@ -106,27 +122,51 @@ fpm: clean-local-fpm
$(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)
$(call fpm-daemon-rpm)
$(call fpm-daemon-deb,sysv,--deb-init,scripts/core-daemon)
$(call fpm-daemon-deb,systemd,--deb-systemd,scripts/core-daemon.service)
.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) > $@
echo $(PACKAGE_VERSION) > $@
.version.date: Makefile
echo $(CORE_VERSION_DATE) > $@
echo $(PACKAGE_DATE) > $@
define change-files =
$(info creating file $1 from $1.in)
@$(SED) -e 's,[@]sbindir[@],$(sbindir),g' \
-e 's,[@]bindir[@],$(bindir),g' \
-e 's,[@]PYTHON[@],$(PYTHON),g' \
-e 's,[@]PACKAGE_VERSION[@],$(PACKAGE_VERSION),g' \
-e 's,[@]PACKAGE_DATE[@],$(PACKAGE_DATE),g' \
-e 's,[@]CORE_LIB_DIR[@],$(CORE_LIB_DIR),g' \
-e 's,[@]CORE_STATE_DIR[@],$(CORE_STATE_DIR),g' \
-e 's,[@]CORE_DATA_DIR[@],$(CORE_DATA_DIR),g' \
-e 's,[@]CORE_CONF_DIR[@],$(CORE_CONF_DIR),g' \
-e 's,[@]CORE_GUI_CONF_DIR[@],$(CORE_GUI_CONF_DIR),g' \
-e 's,[@]brctl_path[@],$(brctl_path),g' \
-e 's,[@]sysctl_path[@],$(sysctl_path),g' \
-e 's,[@]ip_path[@],$(ip_path),g' \
-e 's,[@]tc_path[@],$(tc_path),g' \
-e 's,[@]ebtables_path[@],$(ebtables_path),g' \
-e 's,[@]mount_path[@],$(mount_path),g' \
-e 's,[@]umount_path[@],$(umount_path),g' \
-e 's,[@]ovs_vs_path[@],$(ovs_vs_path),g' \
-e 's,[@]ovs_of_path[@],$(ovs_of_path),g' \
< $1.in > $1
endef
all: change-files
.PHONY: change-files
change-files:
$(call change-files,gui/core-gui)
$(call change-files,scripts/core-daemon.service)
$(call change-files,daemon/core/constants.py)

View file

@ -9,82 +9,37 @@
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
#
# this defines the CORE version number, must be static for AC_INIT
#
AC_INIT(core, 5.1, core-dev@nrl.navy.mil)
VERSION=$PACKAGE_VERSION
CORE_VERSION=$PACKAGE_VERSION
CORE_VERSION_DATE=m4_esyscmd_s([date +%Y%m%d])
COREDPY_VERSION=$PACKAGE_VERSION
CORE_MAINTAINERS="CORE Developers <core-dev@nrl.navy.mil>"
CORE_VENDOR="CORE Developers"
#
# autoconf and automake initialization
#
AC_CONFIG_SRCDIR([netns/version.h.in])
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_MACRO_DIR(config)
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([tar-ustar])
AC_SUBST(CORE_VERSION)
AC_SUBST(CORE_VERSION_DATE)
AC_SUBST(COREDPY_VERSION)
AC_SUBST(CORE_MAINTAINERS)
AC_SUBST(CORE_VENDOR)
# define variables used for packaging and date display
PACKAGE_DATE=m4_esyscmd_s([date +%Y%m%d])
PACKAGE_VENDOR="CORE Developers"
PACKAGE_MAINTAINERS="$PACKAGE_VENDOR <$PACKAGE_BUGREPORT>"
CORE_LIB_DIR="\${prefix}/lib/core"
# TODO: hard setting path, until support by setup.py
CORE_CONF_DIR="/etc/core"
CORE_DATA_DIR="\${datarootdir}/core"
# TODO: verify there is need to hard set /var
CORE_STATE_DIR="\${localstatedir}"
#
# some of the following directory variables are not expanded at configure-time,
# so we have special checks to expand them
#
# CORE GUI files in LIBDIR
# AC_PREFIX_DEFAULT is /usr/local, but not expanded yet
if test "x$prefix" = "xNONE" ; then
prefix="/usr/local"
fi
if test "x$exec_prefix" = "xNONE" ; then
exec_prefix="$prefix"
fi
if test "$libdir" = "\${exec_prefix}/lib" ; then
libdir="${exec_prefix}/lib"
fi
if test "$sbindir" = "\${exec_prefix}/sbin" ; then
sbindir="${exec_prefix}/sbin"
fi
if test "$bindir" = "\${exec_prefix}/bin" ; then
bindir="${exec_prefix}/bin"
fi
# this can be /usr/lib or /usr/lib64
LIB_DIR="${libdir}"
# don't let the Tcl files install to /usr/lib64/core
CORE_LIB_DIR="${prefix}/lib/core"
AC_SUBST(LIB_DIR)
AC_SUBST(PACKAGE_DATE)
AC_SUBST(PACKAGE_MAINTAINERS)
AC_SUBST(PACKAGE_VENDOR)
AC_SUBST(CORE_LIB_DIR)
SBINDIR="${sbindir}"
AC_SUBST(SBINDIR)
BINDIR="${bindir}"
AC_SUBST(BINDIR)
# CORE daemon configuration file (core.conf) in CORE_CONF_DIR
if test "$sysconfdir" = "\${prefix}/etc" ; then
sysconfdir="/etc"
CORE_CONF_DIR="/etc/core"
else
CORE_CONF_DIR="$sysconfdir/core"
fi
AC_SUBST(CORE_CONF_DIR)
if test "$datarootdir" = "\${prefix}/share" ; then
datarootdir="${prefix}/share"
fi
CORE_DATA_DIR="$datarootdir/core"
AC_SUBST(CORE_DATA_DIR)
AC_SUBST(CORE_STATE_DIR)
# CORE GUI configuration files and preferences in CORE_GUI_CONF_DIR
# scenario files in ~/.core/configs/
#AC_ARG_VAR(CORE_GUI_CONF_DIR, [GUI configuration directory.])
AC_ARG_WITH([guiconfdir],
[AS_HELP_STRING([--with-guiconfdir=dir],
[specify GUI configuration directory])],
@ -102,91 +57,27 @@ AC_ARG_ENABLE([daemon],
(default is yes)])],
[], [enable_daemon=yes])
AC_SUBST(enable_daemon)
if test "x$enable_daemon" = "xno"; then
want_python=no
want_linux_netns=no
fi
# CORE state files
if test "$localstatedir" = "\${prefix}/var" ; then
# use /var instead of /usr/local/var (/usr/local/var/log isn't standard)
CORE_STATE_DIR="/var"
else
CORE_STATE_DIR="$localstatedir"
fi
AC_SUBST(CORE_STATE_DIR)
SEARCHPATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/sbin:/usr/local/bin"
# default compiler flags
# _GNU_SOURCE is defined to get c99 defines for lrint()
CFLAGS="$CFLAGS -O3 -Werror -Wall -D_GNU_SOURCE"
# debug flags
#CFLAGS="$CFLAGS -g -Werror -Wall -D_GNU_SOURCE"
# Checks for programs.
# checks for programs
AC_PROG_AWK
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_PROG_RANLIB
AC_PROG_SED
AM_PATH_PYTHON(2.6, want_python=yes, want_python=no)
SEARCHPATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/sbin:/usr/local/bin"
#
# daemon dependencies
#
if test "x$enable_daemon" = "xyes" ; then
AC_CHECK_PROG(brctl_path, brctl, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(sysctl_path, sysctl, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(ebtables_path, ebtables, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(ip_path, ip, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(tc_path, tc, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(ifconfig_path, ifconfig, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(ngctl_path, ngctl, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(vimage_path, vimage, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(mount_path, mount, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(umount_path, umount, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(convert, convert, yes, no, $SEARCHPATH)
AC_CHECK_PROG(ovs_vs_path, ovs-vsctl, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(ovs_of_path, ovs-ofctl, $as_dir, no, $SEARCHPATH)
fi
want_python=no
want_linux_netns=no
if test "x$enable_daemon" = "xyes"; then
want_python=yes
want_linux_netns=yes
#AC_CHECK_PROG(dia, dia, yes, no)
AC_CHECK_PROG(help2man, help2man, yes, no, $SEARCHPATH)
if test "x$convert" = "xno" ; then
AC_MSG_WARN([Could not locate ImageMagick convert.])
#want_docs_missing="convert"
fi
#if test "x$dia" = "xno" ; then
# AC_MSG_WARN([Could not locate dia.])
# want_docs_missing="dia"
#fi
if test "x$help2man" = "xno" ; then
AC_MSG_WARN([Could not locate help2man.])
want_docs_missing="$want_docs_missing help2man"
fi
if test "x$want_docs_missing" = "x" ; then
want_docs=yes
else
AC_MSG_WARN([Could not find required helper utilities (${want_docs_missing}) so the CORE documentation will not be built.])
want_docs=no
fi
# check for sphinx required during make
AC_CHECK_PROG(sphinxapi_path, sphinx-apidoc, $as_dir, no, $SEARCHPATH)
if test "x$sphinxapi_path" = "xno" ; then
AC_MSG_ERROR(["Could not location sphinx-apidoc, from the python-sphinx package"])
fi
#AC_PATH_PROGS(tcl_path, [tclsh tclsh8.5 tclsh8.4], no)
#if test "x$tcl_path" = "xno" ; then
# AC_MSG_ERROR([Could not locate tclsh. Please install Tcl/Tk.])
#fi
#AC_PATH_PROGS(wish_path, [wish wish8.5 wish8.4], no)
#if test "x$wish_path" = "xno" ; then
# AC_MSG_ERROR([Could not locate wish. Please install Tcl/Tk.])
#fi
if test "x$enable_daemon" = "xyes" ; then
# Checks for libraries.
AC_CHECK_LIB([netgraph], [NgMkSockNode])
@ -207,17 +98,41 @@ if test "x$enable_daemon" = "xyes" ; then
AC_FUNC_MALLOC
AC_FUNC_REALLOC
AC_CHECK_FUNCS([atexit dup2 gettimeofday memset socket strerror uname])
fi
# Host-specific detection
want_linux_netns=yes
AM_PATH_PYTHON(2.6)
if test "x$want_python" = "xno"; then
want_linux_netns=no
fi
AC_CHECK_PROG(brctl_path, brctl, $as_dir, no, $SEARCHPATH)
if test "x$brctl_path" = "xno" ; then
AC_MSG_ERROR([Could not locate brctl (from bridge-utils package).])
fi
AC_CHECK_PROG(sysctl_path, sysctl, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(ebtables_path, ebtables, $as_dir, no, $SEARCHPATH)
if test "x$ebtables_path" = "xno" ; then
AC_MSG_ERROR([Could not locate ebtables (from ebtables package).])
fi
AC_CHECK_PROG(ip_path, ip, $as_dir, no, $SEARCHPATH)
if test "x$ip_path" = "xno" ; then
AC_MSG_ERROR([Could not locate ip (from iproute package).])
fi
AC_CHECK_PROG(tc_path, tc, $as_dir, no, $SEARCHPATH)
if test "x$tc_path" = "xno" ; then
AC_MSG_ERROR([Could not locate tc (from iproute package).])
fi
AC_CHECK_PROG(mount_path, mount, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(umount_path, umount, $as_dir, no, $SEARCHPATH)
AC_CHECK_PROG(convert, convert, yes, no, $SEARCHPATH)
if test "x$convert" = "xno" ; then
AC_MSG_WARN([Could not locate ImageMagick convert.])
fi
AC_CHECK_PROG(ovs_vs_path, ovs-vsctl, $as_dir, no, $SEARCHPATH)
if test "x$ovs_vs_path" = "xno" ; then
AC_MSG_WARN([Could not locate ovs-vsctl cannot use OVS nodes])
fi
AC_CHECK_PROG(ovs_of_path, ovs-ofctl, $as_dir, no, $SEARCHPATH)
if test "x$ovs_of_path" = "xno" ; then
AC_MSG_WARN([Could not locate ovs-ofctl cannot use OVS nodes])
fi
if test "x$want_python" = "xyes"; then
if test "x$want_linux_netns" = "xyes"; then
CFLAGS_save=$CFLAGS
CPPFLAGS_save=$CPPFLAGS
if test "x$PYTHON_INCLUDE_DIR" = "x"; then
@ -239,41 +154,38 @@ if test "x$want_python" = "xyes"; then
AC_SUBST(libev_CFLAGS)
AC_SUBST(libev_LIBS, [-lev]),
AC_MSG_ERROR([Python bindings require libev (try installing your 'libev-devel' or 'libev-dev' package)])))
fi
AC_SUBST(pyprefix, `eval ${PYTHON} ./python-prefix.py ${PYTHON_PREFIX} ${PYTHON_VERSION}`)
if test "${pyprefix}" != "${PYTHON_PREFIX}"; then
pythondir=`echo ${pythondir} | sed -e 's,[$][{]prefix[}],${pyprefix},g'`
pyexecdir=`echo ${pyexecdir} | sed -e 's,[$][{]exec_prefix[}],${pyprefix},g'`
fi
else
# Namespace support requires Python support
want_linux_netns=no
fi
progs_missing=""
if test "x$want_linux_netns" = "xyes"; then
if test "x$brctl_path" = "xno" ; then
progs_missing="${progs_missing}brctl "
brctl_path="/usr/sbin"
AC_MSG_ERROR([Could not locate brctl (from bridge-utils package).])
fi
if test "x$ebtables_path" = "xno" ; then
progs_missing="${progs_missing}ebtables "
ebtables_path="/sbin"
AC_MSG_ERROR([Could not locate ebtables (from ebtables package).])
fi
if test "x$ip_path" = "xno" ; then
progs_missing="${progs_missing}ip "
ip_path="/sbin"
AC_MSG_ERROR([Could not locate ip (from iproute package).])
fi
if test "x$tc_path" = "xno" ; then
progs_missing="${progs_missing}tc "
tc_path="/sbin"
AC_MSG_ERROR([Could not locate tc (from iproute package).])
fi
AC_CHECK_PROG(help2man, help2man, yes, no, $SEARCHPATH)
if test "x$help2man" = "xno" ; then
AC_MSG_WARN([Could not locate help2man.])
want_docs_missing="$want_docs_missing help2man"
fi
if test "x$want_docs_missing" = "x" ; then
want_docs=yes
else
AC_MSG_WARN([Could not find required helper utilities (${want_docs_missing}) so the CORE documentation will not be built.])
want_docs=no
fi
# check for sphinx required during make
AC_CHECK_PROG(sphinxapi_path, sphinx-apidoc, $as_dir, no, $SEARCHPATH)
if test "x$sphinxapi_path" = "xno" ; then
AC_MSG_ERROR(["Could not location sphinx-apidoc, from the python-sphinx package"])
fi
#AC_PATH_PROGS(tcl_path, [tclsh tclsh8.5 tclsh8.4], no)
#if test "x$tcl_path" = "xno" ; then
# AC_MSG_ERROR([Could not locate tclsh. Please install Tcl/Tk.])
#fi
#AC_PATH_PROGS(wish_path, [wish wish8.5 wish8.4], no)
#if test "x$wish_path" = "xno" ; then
# AC_MSG_ERROR([Could not locate wish. Please install Tcl/Tk.])
#fi
AC_ARG_WITH([startup],
[AS_HELP_STRING([--with-startup=option],
[option=systemd,suse,none to install systemd/SUSE init scripts])],
@ -288,7 +200,6 @@ AM_CONDITIONAL(WANT_DAEMON, test x$enable_daemon = xyes)
AM_CONDITIONAL(WANT_DOCS, test x$want_docs = xyes)
AM_CONDITIONAL(WANT_PYTHON, test x$want_python = xyes)
AM_CONDITIONAL(WANT_NETNS, test x$want_linux_netns = xyes)
AM_CONDITIONAL(WANT_INITD, test x$with_startup = xinitd)
AM_CONDITIONAL(WANT_SYSTEMD, test x$with_startup = xsystemd)
AM_CONDITIONAL(WANT_SUSE, test x$with_startup = xsuse)
@ -299,28 +210,26 @@ else
HELP2MAN=:
fi
# Output files
#gui/core-gui
#scripts/core-daemon.service
#daemon/core/constants.py
AC_CONFIG_FILES([Makefile
gui/core-gui
gui/version.tcl
gui/Makefile
gui/icons/Makefile
scripts/Makefile
scripts/core-daemon.service
scripts/perf/Makefile
doc/Makefile
doc/conf.py
doc/man/Makefile
doc/figures/Makefile
daemon/Makefile
daemon/core/constants.py
daemon/doc/Makefile
daemon/doc/conf.py
netns/Makefile
netns/version.h
ns3/Makefile
ns3/corens3/constants.py],)
ns3/Makefile],)
AC_OUTPUT
# Summary text
@ -331,12 +240,12 @@ ${PACKAGE_STRING} Configuration:
Host System Type: ${host}
C Compiler and flags: ${CC} ${CFLAGS}
Install prefix: ${prefix}
Exec prefix: ${exec_prefix}
Build GUI: ${enable_gui}
GUI path: ${CORE_LIB_DIR}
GUI config: ${CORE_GUI_CONF_DIR}
Daemon path: ${SBINDIR}
Daemon path: ${sbindir}
Daemon config: ${CORE_CONF_DIR}
Python install prefix: ${pyprefix}
Python modules: ${pythondir}
Logs: ${CORE_STATE_DIR}/log
@ -352,8 +261,3 @@ if test "x${want_linux_netns}" = "xyes" ; then
------------------------------------------------------------------------"
fi
if test "x${progs_missing}" != "x" ; then
echo ">>> NOTE: the following programs could not be found:"
echo " $progs_missing
------------------------------------------------------------------------"
fi

View file

@ -1,4 +0,0 @@
recursive-include sbin *.sh *.py
include data/core.conf
recursive-include examples/netns *.py *.sh
recursive-exclude examples/netns *.pyc *.pyo

View file

@ -14,66 +14,10 @@ if WANT_DOCS
SUBDIRS = doc
endif
SBIN_FILES = \
sbin/core-cleanup \
sbin/core-daemon \
sbin/core-manage \
sbin/coresendmsg
SCRIPT_FILES := $(notdir $(wildcard sbin/*))
MAN_FILES := $(notdir $(wildcard ../doc/man/*.1))
dist_sbin_SCRIPTS = $(SBIN_FILES)
CONF_FILES = \
data/core.conf
coreconfdir = $(CORE_CONF_DIR)
dist_coreconf_DATA = $(CONF_FILES)
EXAMPLE_FILES = \
examples/controlnet_updown \
examples/emanemanifest2core.py \
examples/emanemodel2core.py \
examples/findcore.py \
examples/stopsession.py
coreexdir = $(datadir)/core/examples
dist_coreex_SCRIPTS = $(EXAMPLE_FILES)
EXAMPLE_MYSERVICES_FILES = \
examples/myservices/README.txt \
examples/myservices/__init__.py \
examples/myservices/sample.py
coreexmyservicesdir = $(coreexdir)/myservices
dist_coreexmyservices_DATA = $(EXAMPLE_MYSERVICES_FILES)
EXAMPLE_NETNS_FILES = \
examples/netns/basicrange.py \
examples/netns/daemonnodes.py \
examples/netns/distributed.py \
examples/netns/emane80211.py \
examples/netns/howmanynodes.py \
examples/netns/iperf-performance-chain.py \
examples/netns/iperf-performance.sh \
examples/netns/ospfmanetmdrtest.py \
examples/netns/switch.py \
examples/netns/switchtest.py \
examples/netns/twonodes.sh \
examples/netns/wlanemanetests.py \
examples/netns/wlantest.py
coreexnetnsdir = $(coreexdir)/netns
dist_coreexnetns_SCRIPTS= $(EXAMPLE_NETNS_FILES)
EXAMPLE_SERVICES_FILES = \
examples/services/sampleFirewall \
examples/services/sampleIPsec \
examples/services/sampleVPNClient \
examples/services/sampleVPNServer
coreexservicesdir = $(coreexdir)/services
dist_coreexservices_DATA= $(EXAMPLE_SERVICES_FILES)
LOGROTATE_DIR = $(sysconfdir)/logrotate.d
LOGROTATE_DIR = $(DESTDIR)/$(sysconfdir)/logrotate.d
LOGROTATE_FILE = data/core-daemon.logrotate
# Python package build
@ -83,45 +27,38 @@ build:
# Python package install
install-exec-hook:
$(MKDIR_P) ${DESTDIR}/${pythondir}
$(MKDIR_P) ${DESTDIR}/${pyexecdir}
PYTHONPATH=${DESTDIR}/${pythondir} $(PYTHON) $(SETUPPY) $(SETUPPYFLAGS) install \
--prefix=${DESTDIR}/${pyprefix} \
--install-purelib=${DESTDIR}/${pythondir} \
--install-platlib=${DESTDIR}/${pyexecdir}
$(PYTHON) $(SETUPPY) $(SETUPPYFLAGS) install \
--root=/$(DESTDIR) \
--prefix=$(prefix) \
--install-lib=$(pythondir) \
--single-version-externally-managed
install-data-local:
$(MKDIR_P) $(DESTDIR)$(LOGROTATE_DIR)
$(INSTALL_DATA) $(LOGROTATE_FILE) \
$(DESTDIR)$(LOGROTATE_DIR)/`basename $(LOGROTATE_FILE) .logrotate`
#install-data-local:
# $(MKDIR_P) $(DESTDIR)$(LOGROTATE_DIR)
# $(INSTALL_DATA) $(LOGROTATE_FILE) \
# $(DESTDIR)$(LOGROTATE_DIR)/`basename $(LOGROTATE_FILE) .logrotate`
uninstall-local:
rm -f $(DESTDIR)$(LOGROTATE_DIR)/`basename $(LOGROTATE_FILE) .logrotate`
#uninstall-local:
# rm -f $(DESTDIR)$(LOGROTATE_DIR)/`basename $(LOGROTATE_FILE) .logrotate`
# Python package uninstall
#rmdir -p $(LOGROTATE_DIR) || true
uninstall-hook:
rm -rf ${pythondir}/core_python-${COREDPY_VERSION}-py${PYTHON_VERSION}.egg-info
rm -f ${pythondir}/core_python_netns-1.0-py${PYTHON_VERSION}.egg-info
rm -rf ${pythondir}/core
rmdir -p $(coreexservicesdir) || true
rmdir -p $(coreexnetnsdir) || true
rmdir -p $(coreexmyservicesdir) || true
rmdir -p $(coreexdir) || true
rmdir -p $(coreconfdir) || true
rmdir -p $(LOGROTATE_DIR) || true
rm -rf $(DESTDIR)/etc/core
rm -rf $(DESTDIR)/$(datadir)/core
rm -f $(addprefix $(DESTDIR)/$(datadir)/man/man1/, $(MAN_FILES))
rm -f $(addprefix $(DESTDIR)/$(bindir)/,$(SCRIPT_FILES))
rm -rf $(DESTDIR)/$(pythondir)/core-$(PACKAGE_VERSION)-py$(PYTHON_VERSION).egg-info
rm -rf $(DESTDIR)/$(pythondir)/core
# Python package cleanup
clean-local:
-rm -rf build
# Python RPM package
rpm:
$(PYTHON) $(SETUPPY) $(SETUPPYFLAGS) bdist_rpm
# because we include entire directories with EXTRA_DIST, we need to clean up
# the source control files
dist-hook:
rm -rf `find $(distdir)/ -name .svn` `find $(distdir)/ -name '*.pyc'`
rm -rf `find $(distdir)/ -name '*.pyc'`
DISTCLEANFILES = Makefile.in core/*.pyc MANIFEST

View file

@ -1,20 +1,16 @@
# Constants created by autoconf ./configure script
COREDPY_VERSION = "@COREDPY_VERSION@"
COREDPY_VERSION = "@PACKAGE_VERSION@"
CORE_STATE_DIR = "@CORE_STATE_DIR@"
CORE_CONF_DIR = "@CORE_CONF_DIR@"
CORE_DATA_DIR = "@CORE_DATA_DIR@"
CORE_LIB_DIR = "@CORE_LIB_DIR@"
CORE_SBIN_DIR = "@SBINDIR@"
CORE_BIN_DIR = "@BINDIR@"
VNODED_BIN = "@bindir@/vnoded"
VCMD_BIN = "@bindir@/vcmd"
BRCTL_BIN = "@brctl_path@/brctl"
SYSCTL_BIN = "@sysctl_path@/sysctl"
IP_BIN = "@ip_path@/ip"
TC_BIN = "@tc_path@/tc"
EBTABLES_BIN = "@ebtables_path@/ebtables"
IFCONFIG_BIN = "@ifconfig_path@/ifconfig"
NGCTL_BIN = "@ngctl_path@/ngctl"
VIMAGE_BIN = "@vimage_path@/vimage"
QUAGGA_STATE_DIR = "@CORE_STATE_DIR@/run/quagga"
MOUNT_BIN = "@mount_path@/mount"
UMOUNT_BIN = "@umount_path@/umount"

View file

@ -86,7 +86,7 @@ class SimpleLxcNode(PyCoreNode):
# create a new namespace for this node using vnoded
vnoded = [
"%s/vnoded" % constants.CORE_BIN_DIR,
constants.VNODED_BIN,
"-v",
"-c", self.ctrlchnlname,
"-l", self.ctrlchnlname + ".log",

View file

@ -14,8 +14,6 @@ from core import constants
from core import logger
from core.misc import utils
VCMD = os.path.join(constants.CORE_BIN_DIR, "vcmd")
class VnodeClient(object):
"""
@ -134,7 +132,7 @@ class VnodeClient(object):
:rtype: int
"""
args = utils.split_args(args)
return os.spawnlp(os.P_WAIT, VCMD, VCMD, "-c", self.ctrlchnlname, "--", *args)
return os.spawnlp(os.P_WAIT, constants.VCMD_BIN, constants.VCMD_BIN, "-c", self.ctrlchnlname, "--", *args)
def redircmd(self, infd, outfd, errfd, args, wait=True):
"""
@ -171,7 +169,7 @@ class VnodeClient(object):
:return: terminal command result
:rtype: int
"""
args = ("xterm", "-ut", "-title", self.name, "-e", VCMD, "-c", self.ctrlchnlname, "--", sh)
args = ("xterm", "-ut", "-title", self.name, "-e", constants.VCMD_BIN, "-c", self.ctrlchnlname, "--", sh)
if "SUDO_USER" in os.environ:
args = ("su", "-s", "/bin/sh", "-c",
"exec " + " ".join(map(lambda x: "'%s'" % x, args)),
@ -185,7 +183,7 @@ class VnodeClient(object):
:param str sh: shell to execute command in
:return: str
"""
return "%s -c %s -- %s" % (VCMD, self.ctrlchnlname, sh)
return "%s -c %s -- %s" % (constants.VCMD_BIN, self.ctrlchnlname, sh)
def shcmd(self, cmd, sh="/bin/sh"):
"""

View file

@ -49,9 +49,9 @@ copyright = u'2017, core-dev'
# built documents.
#
# The short X.Y version.
version = '@CORE_VERSION@'
version = '@PACKAGE_VERSION@'
# The full version, including alpha/beta/rc tags.
release = '@CORE_VERSION@'
release = '@PACKAGE_VERSION@'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View file

@ -4,13 +4,13 @@ Defines how CORE will be built for installation.
import glob
import os
from distutils.command.install import install
from setuptools import setup, find_packages
from setuptools import find_packages
from distutils.core import setup
_CORE_DIR = "/etc/core"
_MAN_DIR = "/usr/local/share/man/man1"
_SHARE_DIR = "/usr/local/share/core"
_MAN_DIR = "share/man/man1"
_EXAMPLES_DIR = "share/core"
_SYSV = "/etc/init.d"
_SYSTEMD = "/etc/systemd/system"
@ -30,31 +30,6 @@ def glob_files(glob_path):
return glob.glob(glob_path)
class CustomInstall(install):
user_options = install.user_options + [
("service=", None, "determine which service file to include")
]
def initialize_options(self):
install.initialize_options(self)
self.service = "sysv"
def finalize_options(self):
install.finalize_options(self)
assert self.service in ("sysv", "systemd"), "must be sysv or systemd"
def run(self):
if self.service == "sysv":
self.distribution.data_files.append((
_SYSV, ["../scripts/core-daemon"]
))
else:
self.distribution.data_files.append((
_SYSTEMD, ["../scripts/core-daemon.service"]
))
install.run(self)
data_files = [
(_CORE_DIR, [
"data/core.conf",
@ -62,7 +37,7 @@ data_files = [
]),
(_MAN_DIR, glob_files("../doc/man/**.1")),
]
data_files.extend(recursive_files(_SHARE_DIR, "examples"))
data_files.extend(recursive_files(_EXAMPLES_DIR, "examples"))
setup(
name="core",
@ -90,7 +65,4 @@ setup(
author_email="core-dev@nrl.navy.mil",
license="BSD",
long_description="Python scripts and modules for building virtual emulated networks.",
cmdclass={
"install": CustomInstall
}
)

View file

@ -49,9 +49,9 @@ copyright = u'2017, core-dev'
# built documents.
#
# The short X.Y version.
version = '@CORE_VERSION@'
version = '@PACKAGE_VERSION@'
# The full version, including alpha/beta/rc tags.
release = '@CORE_VERSION@'
release = '@PACKAGE_VERSION@'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View file

@ -22,10 +22,10 @@ generate-mans:
$(HELP2MAN) --no-info --source CORE $(top_srcdir)/netns/vnoded -o vnoded.1.new
$(HELP2MAN) --no-info --source CORE $(top_srcdir)/netns/vcmd -o vcmd.1.new
$(HELP2MAN) --no-info --source CORE $(top_srcdir)/netns/netns -o netns.1.new
$(HELP2MAN) --version-string=$(CORE_VERSION) --no-info --source CORE $(top_srcdir)/daemon/sbin/core-daemon -o core-daemon.1.new
$(HELP2MAN) --version-string=$(CORE_VERSION) --no-info --source CORE $(top_srcdir)/daemon/sbin/coresendmsg -o coresendmsg.1.new
$(HELP2MAN) --version-string=$(CORE_VERSION) --no-info --source CORE $(top_srcdir)/daemon/sbin/core-cleanup -o core-cleanup.1.new
$(HELP2MAN) --version-string=$(CORE_VERSION) --no-info --source CORE $(top_srcdir)/daemon/sbin/core-manage -o core-manage.1.new
$(HELP2MAN) --version-string=$(PACKAGE_VERSION) --no-info --source CORE $(top_srcdir)/daemon/sbin/core-daemon -o core-daemon.1.new
$(HELP2MAN) --version-string=$(PACKAGE_VERSION) --no-info --source CORE $(top_srcdir)/daemon/sbin/coresendmsg -o coresendmsg.1.new
$(HELP2MAN) --version-string=$(PACKAGE_VERSION) --no-info --source CORE $(top_srcdir)/daemon/sbin/core-cleanup -o core-cleanup.1.new
$(HELP2MAN) --version-string=$(PACKAGE_VERSION) --no-info --source CORE $(top_srcdir)/daemon/sbin/core-manage -o core-manage.1.new
.PHONY: diff
diff:

View file

@ -10,61 +10,26 @@
SUBDIRS = icons
TCL_FILES = annotations.tcl api.tcl canvas.tcl cfgparse.tcl \
core.tcl debug.tcl editor.tcl exec.tcl \
filemgmt.tcl gpgui.tcl \
graph_partitioning.tcl help.tcl \
initgui.tcl ipv4.tcl ipv6.tcl \
linkcfg.tcl mobility.tcl nodecfg.tcl \
nodes.tcl services.tcl ns2imunes.tcl plugins.tcl \
tooltips.tcl topogen.tcl traffic.tcl util.tcl \
version.tcl widget.tcl wlan.tcl wlanscript.tcl \
exceptions.tcl
TCL_FILES := $(wildcard *.tcl)
ADDONS_FILES := $(wildcard addons/*)
CONFIG_FILES := $(wildcard configs/*)
ADDONS_FILES = addons/ipsecservice.tcl
CONFIG_FILES = configs/sample1.imn configs/sample1.scen \
configs/sample1-bg.gif configs/sample2-ssh.imn \
configs/sample3-bgp.imn configs/sample4-nrlsmf.imn \
configs/sample4.scen configs/sample4-bg.jpg \
configs/sample5-mgen.imn configs/sample6-emane-rfpipe.imn \
configs/sample7-emane-ieee80211abg.imn \
configs/sample8-ipsec-service.imn \
configs/sample9-vpn.imn \
configs/sample10-kitchen-sink.imn
#
# CORE GUI script (/usr/local/bin/core-gui)
#
dist_bin_SCRIPTS = core-gui
#
# Tcl/Tk scripts (/usr/local/lib/core)
#
coredir = $(CORE_LIB_DIR)
dist_core_DATA = $(TCL_FILES)
dist_core_SCRIPTS = $(OTHER_FILES)
#
# Addon files
#
coreaddonsdir = $(coredir)/addons
dist_coreaddons_DATA = $(ADDONS_FILES)
#
# Sample configs (/usr/local/share/core/examples/configs)
#
coreconfigsdir = $(datadir)/core/examples/configs
dist_coreconfigs_DATA = $(CONFIG_FILES)
dist-hook:
rm -rf $(distdir)/addons/.svn
uninstall-hook:
rmdir -p $(coreconfigsdir) || true
rmdir -p $(coreaddonsdir) || true
rmdir -p $(coredir) || true
# extra cruft to remove
DISTCLEANFILES = Makefile.in

View file

@ -54,7 +54,7 @@ case $1 in
exit 0
;;
-v | --version)
exec echo "`basename $0` version @CORE_VERSION@ (@CORE_VERSION_DATE@)"
exec echo "`basename $0` version @PACKAGE_VERSION@ (@PACKAGE_DATE@)"
exit 0
;;
esac
@ -63,7 +63,7 @@ SHELL=/bin/sh
export SHELL
export LIBDIR="@CORE_LIB_DIR@"
export SBINDIR="@SBINDIR@"
export SBINDIR="@sbindir@"
# eval is used here to expand "~" to user's home dir
if [ x$CONFDIR = x ]; then export CONFDIR=`eval "echo @CORE_GUI_CONF_DIR@"` ; fi
export CORE_STATE_DIR="@CORE_STATE_DIR@"

View file

@ -5,79 +5,17 @@
# author: Jeff Ahrenholz <jeffrey.m.ahrenholz@boeing.com>
#
TINY_ICONS = tiny/button.play.gif \
tiny/select.gif tiny/marker.gif \
tiny/rj45.gif tiny/text.gif \
tiny/edit-delete.gif tiny/stop.gif \
tiny/blank.gif tiny/mobility.gif \
tiny/script_play.gif tiny/arrow.gif \
tiny/lanswitch.gif tiny/script_pause.gif \
tiny/pc.gif tiny/rectangle.gif \
tiny/observe.gif tiny/document-new.gif \
tiny/document-save.gif \
tiny/view-refresh.gif tiny/moboff.gif \
tiny/document-properties.gif tiny/arrow.up.gif \
tiny/host.gif tiny/hub.gif \
tiny/twonode.gif tiny/router.gif \
tiny/eraser.gif \
tiny/stock_connect.gif tiny/stock_disconnect.gif \
tiny/ping.gif tiny/link.gif \
tiny/start.gif \
tiny/trace.gif tiny/button.stop.gif \
tiny/arrow.down.gif tiny/oval.gif \
tiny/wlan.gif tiny/delete.gif \
tiny/run.gif tiny/tunnel.gif \
tiny/script_stop.gif \
tiny/router_black.gif tiny/router_green.gif \
tiny/router_red.gif tiny/router_yellow.gif \
tiny/router_purple.gif \
tiny/ap.gif tiny/mdr.gif \
tiny/folder.gif \
tiny/cel.gif \
tiny/fileopen.gif \
tiny/plot.gif
TINY_ICONS := $(wildcard tiny/*)
NORM_ICONS := $(wildcard normal/*)
SVG_ICONS := $(wildcard svg/*)
NORM_ICONS = normal/gps-diagram.xbm \
normal/router_black.gif normal/host.gif \
normal/hub.gif \
normal/router.gif \
normal/rj45.gif normal/antenna.gif \
normal/text.gif \
normal/lanswitch.gif normal/core-icon.png \
normal/core-icon.xbm normal/oval.gif \
normal/wlan.gif normal/pc.gif \
normal/tunnel.gif normal/core-logo-275x75.gif \
normal/router_red.gif normal/router_green.gif \
normal/simple.xbm \
normal/document-properties.gif \
normal/thumb-unknown.gif \
normal/router_purple.gif normal/router_yellow.gif \
normal/ap.gif normal/mdr.gif
SVG_ICONS = svg/ap.svg \
svg/cel.svg \
svg/hub.svg \
svg/lanswitch.svg \
svg/mdr.svg \
svg/otr.svg \
svg/rj45.svg \
svg/router_black.svg \
svg/router_green.svg \
svg/router_purple.svg \
svg/router_red.svg \
svg/router.svg \
svg/router_yellow.svg \
svg/start.svg \
svg/tunnel.svg \
svg/vlan.svg
#
# Icon files (/usr/local/share/core/icons/[tiny,normal,svg])
#
coreiconnormaldir = $(CORE_DATA_DIR)/icons/normal
dist_coreiconnormal_DATA = $(NORM_ICONS)
coreicontinydir = $(CORE_DATA_DIR)/icons/tiny
dist_coreicontiny_DATA = $(TINY_ICONS)
coreiconsvgdir = $(CORE_DATA_DIR)/icons/svg
dist_coreiconsvg_DATA = $(SVG_ICONS)
@ -87,12 +25,5 @@ dist_iconpixmap_DATA = core-gui.xpm
icondesktopdir = $(datarootdir)/applications
dist_icondesktop_DATA = core-gui.desktop
uninstall-hook:
rmdir -p $(icondesktopdir) || true
rmdir -p $(iconpixmapdir) || true
rmdir -p $(coreiconsvgdir) || true
rmdir -p $(coreicontinydir) || true
rmdir -p $(coreiconnormaldir) || true
# extra cruft to remove
DISTCLEANFILES = Makefile.in

0
gui/icons/normal/OVS.gif Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 744 B

After

Width:  |  Height:  |  Size: 744 B

0
gui/icons/svg/OVS.svg Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

0
gui/icons/tiny/OVS.gif Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 744 B

After

Width:  |  Height:  |  Size: 744 B

View file

@ -6,5 +6,5 @@
#
# define the version number and release date here
#
set CORE_VERSION @CORE_VERSION@
set CORE_VERSION_DATE @CORE_VERSION_DATE@
set CORE_VERSION @PACKAGE_VERSION@
set CORE_VERSION_DATE @PACKAGE_DATE@

View file

@ -1,2 +1 @@
include *.h
include sbin/*

View file

@ -10,7 +10,6 @@
AM_CFLAGS = -Wall -fno-strict-aliasing -O3 -g @libev_CFLAGS@
SETUPPY = setup.py
SETUPPYFLAGS = -v
# -DDEBUG
SRC_COMMON = vnode_msg.c vnode_cmd.c vnode_chnl.c vnode_io.c \
vnode_msg.h vnode_cmd.h vnode_chnl.h vnode_io.h \
@ -21,12 +20,12 @@ SRC_VCMD = vcmd_main.c vnode_client.c \
vnode_client.h
SRC_NETNS = netns_main.c netns.c netns.h
sbin_PROGRAMS = vnoded vcmd netns
noinst_PROGRAMS = vnoded vcmd netns
vnoded_LDADD = @libev_LIBS@
vnoded_SOURCES = ${SRC_COMMON} ${SRC_VNODED}
vnoded_SOURCES = $(SRC_COMMON) $(SRC_VNODED)
vcmd_LDADD = @libev_LIBS@
vcmd_SOURCES = ${SRC_COMMON} ${SRC_VCMD}
netns_SOURCES = ${SRC_NETNS}
vcmd_SOURCES = $(SRC_COMMON) $(SRC_VCMD)
netns_SOURCES = $(SRC_NETNS)
# this triggers automake to run setup.py for building the Python libraries
# actual library names are netns.so and vcmd.so
@ -34,23 +33,23 @@ netns_SOURCES = ${SRC_NETNS}
noinst_LIBRARIES = libnetns.a
libnetns_a_SOURCES = netnsmodule.c vcmdmodule.c
libnetns.a:
SBINDIR=@SBINDIR@ LDFLAGS="$(LDFLAGS) @libev_LIBS@" CFLAGS="$(CFLAGS) @libev_CFLAGS@" $(PYTHON) setup.py build_ext
LDFLAGS="$(LDFLAGS) @libev_LIBS@" CFLAGS="$(CFLAGS) @libev_CFLAGS@" $(PYTHON) setup.py build_ext
# Python libraries install
install-exec-local:
$(MKDIR_P) ${DESTDIR}/${pythondir}
$(MKDIR_P) ${DESTDIR}/${pyexecdir}
SBINDIR=${DESTDIR}/@SBINDIR@ PYTHONPATH=${DESTDIR}/${pythondir} $(PYTHON) $(SETUPPY) $(SETUPPYFLAGS) install \
--prefix=${DESTDIR}/${pyprefix} \
--install-purelib=${DESTDIR}/${pythondir} \
--install-platlib=${DESTDIR}/${pyexecdir} \
$(PYTHON) $(SETUPPY) $(SETUPPYFLAGS) install \
--root=/$(DESTDIR) \
--prefix=$(prefix) \
--install-lib=$(pythondir) \
--single-version-externally-managed \
--no-compile
# Python libraries uninstall
uninstall-hook:
rm -f ${pyexecdir}/core_python_netns-1.0-py${PYTHON_VERSION}.egg-info
rm -f ${pyexecdir}/netns.so
rm -f ${pyexecdir}/vcmd.so
rm -rf core_netns.egg-info
rm -rf $(DESTDIR)/$(pythondir)/core_netns-$(PACKAGE_VERSION)-py$(PYTHON_VERSION).egg-info
rm -f $(DESTDIR)/$(bindir)/{vnoded,vcmd,netns}
rm -f $(DESTDIR)/$(pythondir)/{netns.so,vcmd.so}
# Python libraries cleanup
clean-local: clean-local-check
@ -58,15 +57,8 @@ clean-local: clean-local-check
clean-local-check:
-rm -rf build
rpmbuild.sh:
echo SBINDIR=@SBINDIR@ LDFLAGS="$(LDFLAGS)" CFLAGS="$(CFLAGS) @libev_CFLAGS@" $(PYTHON) setup.py build > rpmbuild.sh
chmod a+x rpmbuild.sh
rpm: rpmbuild.sh
$(PYTHON) setup.py bdist_rpm --build-script=rpmbuild.sh --requires="libev" --build-requires="libev-devel"
# extra cruft to remove
DISTCLEANFILES = Makefile.in rpmbuild.sh MANIFEST
DISTCLEANFILES = Makefile.in MANIFEST
# include source files for Python libraries with distribution tarball
EXTRA_DIST = setup.py MANIFEST.in

View file

@ -3,25 +3,8 @@ Defines how CORE netns will be build for installation.
"""
from setuptools import setup, Extension
from distutils.command.install import install
class CustomInstall(install):
user_options = install.user_options + [
("service=", None, "determine which service file to include")
]
def initialize_options(self):
install.initialize_options(self)
self.service = "sysv"
def finalize_options(self):
install.finalize_options(self)
assert self.service in ("sysv", "systemd"), "must be sysv or systemd"
def run(self):
install.run(self)
netns = Extension(
"netns",
sources=[
@ -58,7 +41,4 @@ setup(
author_email="core-dev@nrl.navy.mil",
license="BSD",
long_description="Extension modules and utilities to support virtual nodes using Linux network namespaces",
cmdclass={
"install": CustomInstall
}
)

View file

@ -11,6 +11,6 @@
#ifndef _VERSION_H_
#define _VERSION_H_
#define CORE_VERSION "@CORE_VERSION@"
#define CORE_VERSION "@PACKAGE_VERSION@"
#endif /* _VERSION_H_ */

View file

@ -10,14 +10,9 @@
SETUPPY = setup.py
SETUPPYFLAGS = -v
EXAMPLE_FILES = \
examples/ns3lte.py \
examples/ns3wifi.py \
examples/ns3wifirandomwalk.py \
examples/ns3wimax.py
coreexampledir = $(datadir)/core/examples/corens3
dist_coreexample_SCRIPTS= $(EXAMPLE_FILES)
#EXAMPLE_FILES := $(wildcard examples/*)
#coreexampledir = $(datadir)/core/examples/corens3
#dist_coreexample_SCRIPTS = $(EXAMPLE_FILES)
# Python package build
noinst_SCRIPTS = build
@ -26,32 +21,28 @@ build:
# Python package install
install-exec-hook:
$(MKDIR_P) ${DESTDIR}/${pythondir}
$(MKDIR_P) ${DESTDIR}/${pyexecdir}
PYTHONPATH=${DESTDIR}/${pythondir} $(PYTHON) $(SETUPPY) $(SETUPPYFLAGS) install \
--prefix=${DESTDIR}/${pyprefix} \
--install-purelib=${DESTDIR}/${pythondir} \
--install-platlib=${DESTDIR}/${pyexecdir} \
$(PYTHON) $(SETUPPY) $(SETUPPYFLAGS) install \
--root=/$(DESTDIR) \
--prefix=$(prefix) \
--install-lib=$(pythondir) \
--single-version-externally-managed \
--no-compile
# Python package uninstall
uninstall-hook:
rm -f ${pythondir}/corens3_python-${COREDPY_VERSION}-py${PYTHON_VERSION}.egg-info
rm -rf ${pythondir}/corens3
rmdir -p $(coreexampledir) || true
rm -rf core_ns3.egg-info
rm -rf $(DESTDIR)/$(pythondir)/core_ns3-$(PACKAGE_VERSION)-py$(PYTHON_VERSION).egg-info
rm -rf $(DESTDIR)/$(pythondir)/corens3
rm -rf $(DESTDIR)/$(datadir)/corens3
# Python package cleanup
clean-local:
-rm -rf build
# Python RPM package
rpm:
$(PYTHON) $(SETUPPY) $(SETUPPYFLAGS) bdist_rpm
# because we include entire directories with EXTRA_DIST, we need to clean up
# the source control files
dist-hook:
rm -rf `find $(distdir)/ -name .svn` `find $(distdir)/ -name '*.pyc'`
rm -rf `find $(distdir)/ -name '*.pyc'`
DISTCLEANFILES = Makefile.in *.pyc corens3/*.pyc MANIFEST

View file

@ -1 +0,0 @@
constants.py

View file

@ -1,18 +0,0 @@
# Constants created by autoconf ./configure script
COREDPY_VERSION = "@COREDPY_VERSION@"
CORE_STATE_DIR = "@CORE_STATE_DIR@"
CORE_CONF_DIR = "@CORE_CONF_DIR@"
CORE_DATA_DIR = "@CORE_DATA_DIR@"
CORE_LIB_DIR = "@CORE_LIB_DIR@"
CORE_SBIN_DIR = "@SBINDIR@"
BRCTL_BIN = "@brctl_path@/brctl"
IP_BIN = "@ip_path@/ip"
TC_BIN = "@tc_path@/tc"
EBTABLES_BIN = "@ebtables_path@/ebtables"
IFCONFIG_BIN = "@ifconfig_path@/ifconfig"
NGCTL_BIN = "@ngctl_path@/ngctl"
VIMAGE_BIN = "@vimage_path@/vimage"
QUAGGA_STATE_DIR = "@CORE_STATE_DIR@/run/quagga"
MOUNT_BIN = "@mount_path@/mount"
UMOUNT_BIN = "@umount_path@/umount"

View file

@ -1,11 +1,16 @@
import glob
from setuptools import setup
_EXAMPLES_DIR = "share/corens3/examples"
setup(
name="core-ns3",
version="5.1",
packages=[
"corens3",
],
data_files=[(_EXAMPLES_DIR, glob.glob("examples/*"))],
description="Python ns-3 components of CORE",
url="http://www.nrl.navy.mil/itd/ncs/products/core",
author="Boeing Research & Technology",

View file

@ -5,7 +5,7 @@ After=network.target
[Service]
Type=forking
PIDFile=/var/run/core-daemon.pid
ExecStart=@PYTHON@ @SBINDIR@/core-daemon -d
ExecStart=@PYTHON@ @bindir@/core-daemon -d
TasksMax=infinity
[Install]

View file

@ -17,7 +17,7 @@ dist_hooks_SCRIPTS = perflogstart.sh perflogstop.sh sessiondatacollect.sh \
configuration_hook.sh datacollect_hook.sh
# Files installed to /etc/core/
perfconfdir=$(sysconfdir)/core
perfconfdir=$(CORE_CONF_DIR)
dist_perfconf_DATA = perflogserver.conf
uninstall-hook: