From patchwork Tue Jul 1 17:29:31 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anders Roxell X-Patchwork-Id: 32921 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-yh0-f70.google.com (mail-yh0-f70.google.com [209.85.213.70]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 34196203C0 for ; Tue, 1 Jul 2014 17:30:11 +0000 (UTC) Received: by mail-yh0-f70.google.com with SMTP id a41sf24503936yho.5 for ; Tue, 01 Jul 2014 10:30:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:from:to:date:message-id:in-reply-to :references:subject:precedence:list-id:list-unsubscribe:list-archive :list-post:list-help:list-subscribe:mime-version:errors-to:sender :x-original-sender:x-original-authentication-results:mailing-list :content-type:content-transfer-encoding; bh=nt0HGHX/TGXW1hX+98KgfZ5Z1OT+PSjEVJ6dHqI45/c=; b=TS/CrigdUBMkYtCT9hNYmEG6oswLmyRQXghZFu5b+dSjfVs9+Jysc8/T2RKUl74VIC c3+X2gSKthNVr4Ey+NsycZsb8bribKBmFQjR3zgxOhgV/pEtkAR6k7opZ+NEMLPeJa3U hftzI0EaQoxUJlaPuWrunm94uAATDwcuP+iGVoHShFgYlg6xr2z/oTLRivzd6a2w+tkC 9de0wjfHZk6fTwQXkdoxuSY8vmE+4YpsrenNA9/YbPLcpIn/AJ0G70WM74HD38N/dold 4Z1FTyN5EFKQbVgUX2u0g3WpGRYlikr+YCvzTGXiVt28IhypAc0zvfBSa7VCxDc8Yo6g EkgA== X-Gm-Message-State: ALoCoQmHGqc7wZ2c5mHAnIt1gT3hF3oE8F2EcPn1HJrsedTqg4/zwO+XFA15QK8ZGJooQGkdnt9H X-Received: by 10.58.172.5 with SMTP id ay5mr26572904vec.37.1404235811006; Tue, 01 Jul 2014 10:30:11 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.106.99 with SMTP id d90ls2103202qgf.57.gmail; Tue, 01 Jul 2014 10:30:10 -0700 (PDT) X-Received: by 10.52.163.208 with SMTP id yk16mr2238317vdb.36.1404235810869; Tue, 01 Jul 2014 10:30:10 -0700 (PDT) Received: from mail-ve0-f170.google.com (mail-ve0-f170.google.com [209.85.128.170]) by mx.google.com with ESMTPS id gv1si11681978vdb.27.2014.07.01.10.30.10 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 01 Jul 2014 10:30:10 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.128.170 as permitted sender) client-ip=209.85.128.170; Received: by mail-ve0-f170.google.com with SMTP id i13so10044010veh.29 for ; Tue, 01 Jul 2014 10:30:10 -0700 (PDT) X-Received: by 10.52.244.81 with SMTP id xe17mr1326173vdc.24.1404235810196; Tue, 01 Jul 2014 10:30:10 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.221.37.5 with SMTP id tc5csp232222vcb; Tue, 1 Jul 2014 10:30:09 -0700 (PDT) X-Received: by 10.224.104.10 with SMTP id m10mr75125058qao.27.1404235809000; Tue, 01 Jul 2014 10:30:09 -0700 (PDT) Received: from ip-10-141-164-156.ec2.internal (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTPS id v7si6168180qgv.4.2014.07.01.10.30.08 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Tue, 01 Jul 2014 10:30:08 -0700 (PDT) Received-SPF: none (google.com: lng-odp-bounces@lists.linaro.org does not designate permitted sender hosts) client-ip=54.225.227.206; Received: from localhost ([127.0.0.1] helo=ip-10-141-164-156.ec2.internal) by ip-10-141-164-156.ec2.internal with esmtp (Exim 4.76) (envelope-from ) id 1X21qd-0001AC-Q0; Tue, 01 Jul 2014 17:28:03 +0000 Received: from mail-la0-f50.google.com ([209.85.215.50]) by ip-10-141-164-156.ec2.internal with esmtp (Exim 4.76) (envelope-from ) id 1X21qS-00019i-4v for lng-odp@lists.linaro.org; Tue, 01 Jul 2014 17:27:52 +0000 Received: by mail-la0-f50.google.com with SMTP id pv20so6064381lab.23 for ; Tue, 01 Jul 2014 10:29:50 -0700 (PDT) X-Received: by 10.152.21.132 with SMTP id v4mr4125444lae.24.1404235790018; Tue, 01 Jul 2014 10:29:50 -0700 (PDT) Received: from localhost (c-4f661858-74736162.cust.telenor.se. [79.102.24.88]) by mx.google.com with ESMTPSA id e1sm5565325lam.30.2014.07.01.10.29.46 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Tue, 01 Jul 2014 10:29:49 -0700 (PDT) From: Anders Roxell To: lng-odp@lists.linaro.org Date: Tue, 1 Jul 2014 19:29:31 +0200 Message-Id: <1404235772-21873-2-git-send-email-anders.roxell@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1404235772-21873-1-git-send-email-anders.roxell@linaro.org> References: <1404235772-21873-1-git-send-email-anders.roxell@linaro.org> X-Topics: patch Subject: [lng-odp] [PATCHv3 1/2] Autotoolise build system X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: , List-Help: , List-Subscribe: , MIME-Version: 1.0 Errors-To: lng-odp-bounces@lists.linaro.org Sender: lng-odp-bounces@lists.linaro.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: anders.roxell@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.128.170 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 Signed-off-by: Anders Roxell --- Makefile | 49 -- Makefile.am | 11 + Makefile.inc | 62 --- aminclude.am | 166 +++++++ bootstrap | 7 + configure.ac | 151 ++++++ platform/linux-generic/Doxyfile.in => doxygen.cfg | 12 +- m4/ax_prog_doxygen.m4 | 532 +++++++++++++++++++++ m4/ax_pthread.m4 | 332 +++++++++++++ pkgconfig/libodp.pc.in | 11 + platform/Makefile.am | 1 + platform/linux-generic/Makefile | 142 ------ platform/linux-generic/Makefile.am | 84 ++++ platform/linux-generic/{source => }/odp_barrier.c | 0 platform/linux-generic/{source => }/odp_buffer.c | 0 .../linux-generic/{source => }/odp_buffer_pool.c | 0 platform/linux-generic/{source => }/odp_coremask.c | 0 platform/linux-generic/{source => }/odp_init.c | 0 platform/linux-generic/{source => }/odp_linux.c | 0 platform/linux-generic/{source => }/odp_packet.c | 0 .../linux-generic/{source => }/odp_packet_flags.c | 0 .../linux-generic/{source => }/odp_packet_io.c | 0 .../linux-generic/{source => }/odp_packet_netmap.c | 0 .../linux-generic/{source => }/odp_packet_socket.c | 0 platform/linux-generic/{source => }/odp_queue.c | 0 platform/linux-generic/{source => }/odp_ring.c | 0 platform/linux-generic/{source => }/odp_rwlock.c | 0 platform/linux-generic/{source => }/odp_schedule.c | 0 .../linux-generic/{source => }/odp_shared_memory.c | 0 platform/linux-generic/{source => }/odp_spinlock.c | 0 .../linux-generic/{source => }/odp_system_info.c | 0 platform/linux-generic/{source => }/odp_thread.c | 0 .../linux-generic/{source => }/odp_ticketlock.c | 0 platform/linux-generic/{source => }/odp_time.c | 0 platform/linux-generic/{source => }/odp_timer.c | 0 platform/linux-keystone2/Makefile | 118 ----- platform/linux-keystone2/Makefile.am | 95 ++++ platform/linux-keystone2/README | 10 +- platform/linux-keystone2/{source => }/odp_buffer.c | 0 .../linux-keystone2/{source => }/odp_buffer_pool.c | 0 platform/linux-keystone2/{source => }/odp_init.c | 0 platform/linux-keystone2/{source => }/odp_packet.c | 0 .../linux-keystone2/{source => }/odp_packet_io.c | 0 platform/linux-keystone2/{source => }/odp_queue.c | 0 .../{source => }/odp_shared_memory.c | 0 test/Makefile | 17 - test/Makefile.am | 1 + test/Makefile.inc | 10 +- test/api_test/Makefile | 87 ---- test/api_test/Makefile.am | 8 + test/example/Makefile | 44 -- test/example/Makefile.am | 5 + test/generator/Makefile | 44 -- test/generator/Makefile.am | 5 + test/l2fwd/Makefile | 43 -- test/l2fwd/Makefile.am | 5 + test/packet/Makefile | 43 -- test/packet/Makefile.am | 5 + test/packet_netmap/Makefile | 45 -- test/packet_netmap/Makefile.am | 7 + test/timer/Makefile | 44 -- test/timer/Makefile.am | 5 + 62 files changed, 1444 insertions(+), 757 deletions(-) delete mode 100644 Makefile create mode 100644 Makefile.am delete mode 100644 Makefile.inc create mode 100644 aminclude.am create mode 100755 bootstrap create mode 100644 configure.ac rename platform/linux-generic/Doxyfile.in => doxygen.cfg (70%) create mode 100644 m4/ax_prog_doxygen.m4 create mode 100644 m4/ax_pthread.m4 create mode 100644 pkgconfig/libodp.pc.in create mode 100644 platform/Makefile.am delete mode 100644 platform/linux-generic/Makefile create mode 100644 platform/linux-generic/Makefile.am rename platform/linux-generic/{source => }/odp_barrier.c (100%) rename platform/linux-generic/{source => }/odp_buffer.c (100%) rename platform/linux-generic/{source => }/odp_buffer_pool.c (100%) rename platform/linux-generic/{source => }/odp_coremask.c (100%) rename platform/linux-generic/{source => }/odp_init.c (100%) rename platform/linux-generic/{source => }/odp_linux.c (100%) rename platform/linux-generic/{source => }/odp_packet.c (100%) rename platform/linux-generic/{source => }/odp_packet_flags.c (100%) rename platform/linux-generic/{source => }/odp_packet_io.c (100%) rename platform/linux-generic/{source => }/odp_packet_netmap.c (100%) rename platform/linux-generic/{source => }/odp_packet_socket.c (100%) rename platform/linux-generic/{source => }/odp_queue.c (100%) rename platform/linux-generic/{source => }/odp_ring.c (100%) rename platform/linux-generic/{source => }/odp_rwlock.c (100%) rename platform/linux-generic/{source => }/odp_schedule.c (100%) rename platform/linux-generic/{source => }/odp_shared_memory.c (100%) rename platform/linux-generic/{source => }/odp_spinlock.c (100%) rename platform/linux-generic/{source => }/odp_system_info.c (100%) rename platform/linux-generic/{source => }/odp_thread.c (100%) rename platform/linux-generic/{source => }/odp_ticketlock.c (100%) rename platform/linux-generic/{source => }/odp_time.c (100%) rename platform/linux-generic/{source => }/odp_timer.c (100%) delete mode 100644 platform/linux-keystone2/Makefile create mode 100644 platform/linux-keystone2/Makefile.am rename platform/linux-keystone2/{source => }/odp_buffer.c (100%) rename platform/linux-keystone2/{source => }/odp_buffer_pool.c (100%) rename platform/linux-keystone2/{source => }/odp_init.c (100%) rename platform/linux-keystone2/{source => }/odp_packet.c (100%) rename platform/linux-keystone2/{source => }/odp_packet_io.c (100%) rename platform/linux-keystone2/{source => }/odp_queue.c (100%) rename platform/linux-keystone2/{source => }/odp_shared_memory.c (100%) delete mode 100644 test/Makefile create mode 100644 test/Makefile.am delete mode 100644 test/api_test/Makefile create mode 100644 test/api_test/Makefile.am delete mode 100644 test/example/Makefile create mode 100644 test/example/Makefile.am delete mode 100644 test/generator/Makefile create mode 100644 test/generator/Makefile.am delete mode 100644 test/l2fwd/Makefile create mode 100644 test/l2fwd/Makefile.am delete mode 100644 test/packet/Makefile create mode 100644 test/packet/Makefile.am delete mode 100644 test/packet_netmap/Makefile create mode 100644 test/packet_netmap/Makefile.am delete mode 100644 test/timer/Makefile create mode 100644 test/timer/Makefile.am diff --git a/Makefile b/Makefile deleted file mode 100644 index 7d10fd5..0000000 --- a/Makefile +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (c) 2013, Linaro Limited -# All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause - -.DEFAULT_GOAL := default - -ODP_ROOT = $(CURDIR) -ODP_TESTS = $(ODP_ROOT)/test - -include $(ODP_ROOT)/Makefile.inc - -.PHONY: default -default: lib tests - -.PHONY: all -all: tests_install docs_install - -.PHONY: tests_install -tests_install: tests - $(MAKE) -C test install - -.PHONY: tests -tests: libs_install - $(MAKE) -C $(ODP_TESTS) - -.PHONY: docs -docs: - $(MAKE) -C $(ODP_DIR) docs - -.PHONY: docs_install -docs_install: docs - $(MAKE) -C $(ODP_DIR) docs_install - -.PHONY: lib -lib: - $(MAKE) -C $(ODP_DIR) libs - -.PHONY: clean -clean: - $(MAKE) -C $(ODP_DIR) clean - $(MAKE) -C $(ODP_TESTS) clean - -.PHONY: libs_install -libs_install: lib - $(MAKE) -C platform/$(PLATFORM) install - -.PHONY: install -install: libs_install docs_install tests_install diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..36d5c23 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,11 @@ +ACLOCAL_AMFLAGS=-I m4 +AUTOMAKE_OPTIONS = foreign + +SUBDIRS = platform test + +include $(top_srcdir)/aminclude.am + +EXTRA_DIST = bootstrap $(DX_CONFIG) + +clean-local: + rm -rf $(top_builddir)/doxygen-doc diff --git a/Makefile.inc b/Makefile.inc deleted file mode 100644 index ff16043..0000000 --- a/Makefile.inc +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright (c) 2013, Linaro Limited -# All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause - -PLATFORM ?= linux-generic -OBJ_DIR = ./obj -ODP_DIR = $(ODP_ROOT)/platform/$(PLATFORM) - -export DESTDIR = $(ODP_ROOT)/build - -CC ?= gcc -LD ?= gcc -AR ?= ar -ECHO := @echo -MKDIR := mkdir -p -RMDIR := rm -rf -RM := rm -f -COPY := cp -r -SYNC := rsync -a --delete - -ifneq ($(VERBOSE),yes) -Q = @ -MAKEFLAGS += --no-print-directory -endif - -QUIET_CC = $(Q:@=@echo ' CC '$@;) -QUIET_LD = $(Q:@=@echo ' LD '$@;) -QUIET_AR = $(Q:@=@echo ' AR '$@;) -export Q QUIET_CC QUIET_LD QUIET_AR - -ifeq ($(ODP_DEBUG_PRINT),no) -EXTRA_CFLAGS += -DODP_DEBUG_PRINT=0 -else -EXTRA_CFLAGS += -DODP_DEBUG_PRINT=1 -endif - -ifeq ($(DEBUG),yes) -EXTRA_CFLAGS += -O0 -g -else -EXTRA_CFLAGS += -O3 -endif - -EXTRA_CFLAGS += -pthread -EXTRA_CFLAGS += -W -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -EXTRA_CFLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith -EXTRA_CFLAGS += -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonliteral -EXTRA_CFLAGS += -Wformat-security -Wundef -Wwrite-strings - - -LDFLAGS += -pthread -LDFLAGS += $(CFLAGS) - -STD_LIBS += -lrt - -include $(wildcard $(ODP_DIR)/Makefile.inc) - -.PHONY: default -default: - -$(OBJ_DIR): - $(Q)$(MKDIR) $(OBJ_DIR) diff --git a/aminclude.am b/aminclude.am new file mode 100644 index 0000000..fc9665a --- /dev/null +++ b/aminclude.am @@ -0,0 +1,166 @@ +# LICENSE +# +# Copyright (c) 2009 Oren Ben-Kiki +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. +# + +## --------------------------------- ## +## Format-independent Doxygen rules. ## +## --------------------------------- ## + +if DX_COND_doc + +## ------------------------------- ## +## Rules specific for HTML output. ## +## ------------------------------- ## + +if DX_COND_html + +DX_CLEAN_HTML = @DX_DOCDIR@/html + +endif DX_COND_html + +## ------------------------------ ## +## Rules specific for CHM output. ## +## ------------------------------ ## + +if DX_COND_chm + +DX_CLEAN_CHM = @DX_DOCDIR@/chm + +if DX_COND_chi + +DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi + +endif DX_COND_chi + +endif DX_COND_chm + +## ------------------------------ ## +## Rules specific for MAN output. ## +## ------------------------------ ## + +if DX_COND_man + +DX_CLEAN_MAN = @DX_DOCDIR@/man + +endif DX_COND_man + +## ------------------------------ ## +## Rules specific for RTF output. ## +## ------------------------------ ## + +if DX_COND_rtf + +DX_CLEAN_RTF = @DX_DOCDIR@/rtf + +endif DX_COND_rtf + +## ------------------------------ ## +## Rules specific for XML output. ## +## ------------------------------ ## + +if DX_COND_xml + +DX_CLEAN_XML = @DX_DOCDIR@/xml + +endif DX_COND_xml + +## ----------------------------- ## +## Rules specific for PS output. ## +## ----------------------------- ## + +if DX_COND_ps + +DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps + +DX_PS_GOAL = doxygen-ps + +doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps + +@DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag + cd @DX_DOCDIR@/latex; \ + rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ + $(DX_LATEX) refman.tex; \ + $(MAKEINDEX_PATH) refman.idx; \ + $(DX_LATEX) refman.tex; \ + countdown=5; \ + while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ + refman.log > /dev/null 2>&1 \ + && test $$countdown -gt 0; do \ + $(DX_LATEX) refman.tex; \ + countdown=`expr $$countdown - 1`; \ + done; \ + $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi + +endif DX_COND_ps + +## ------------------------------ ## +## Rules specific for PDF output. ## +## ------------------------------ ## + +if DX_COND_pdf + +DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf + +DX_PDF_GOAL = doxygen-pdf + +doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf + +@DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag + cd @DX_DOCDIR@/latex; \ + rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ + $(DX_PDFLATEX) refman.tex; \ + $(DX_MAKEINDEX) refman.idx; \ + $(DX_PDFLATEX) refman.tex; \ + countdown=5; \ + while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ + refman.log > /dev/null 2>&1 \ + && test $$countdown -gt 0; do \ + $(DX_PDFLATEX) refman.tex; \ + countdown=`expr $$countdown - 1`; \ + done; \ + mv refman.pdf ../@PACKAGE@.pdf + +endif DX_COND_pdf + +## ------------------------------------------------- ## +## Rules specific for LaTeX (shared for PS and PDF). ## +## ------------------------------------------------- ## + +if DX_COND_latex + +DX_CLEAN_LATEX = @DX_DOCDIR@/latex + +endif DX_COND_latex + +.PHONY: doxygen-run doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) + +.INTERMEDIATE: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL) + +doxygen-run: @DX_DOCDIR@/@PACKAGE@.tag + +doxygen-doc: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL) + +@DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) + rm -rf @DX_DOCDIR@ + $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) + +DX_CLEANFILES = \ + @DX_DOCDIR@/@PACKAGE@.tag \ + -r \ + $(DX_CLEAN_HTML) \ + $(DX_CLEAN_CHM) \ + $(DX_CLEAN_CHI) \ + $(DX_CLEAN_MAN) \ + $(DX_CLEAN_RTF) \ + $(DX_CLEAN_XML) \ + $(DX_CLEAN_PS) \ + $(DX_CLEAN_PDF) \ + $(DX_CLEAN_LATEX) + +endif DX_COND_doc diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000..12f9388 --- /dev/null +++ b/bootstrap @@ -0,0 +1,7 @@ +#! /bin/sh +set -x +aclocal -I config +libtoolize --copy +autoheader +automake --add-missing --copy +autoconf diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..873ea9e --- /dev/null +++ b/configure.ac @@ -0,0 +1,151 @@ +AC_PREREQ([2.5]) +AC_INIT([OpenDataPlane], [0.2], [lng-odp@lists.linaro.org]) +AC_CONFIG_SRCDIR([include/config.h.in]) +AM_CONFIG_HEADER([include/config.h]) + +AC_USE_SYSTEM_EXTENSIONS +AC_SYS_LARGEFILE +AC_CONFIG_MACRO_DIR([m4]) +AM_SILENT_RULES([yes]) + +DX_HTML_FEATURE(ON) +DX_PDF_FEATURE(ON) +DX_INIT_DOXYGEN($PACKAGE_NAME, doxygen.cfg) + +# Checks for programs. +AC_PROG_CC +AM_PROG_CC_C_O +AM_INIT_AUTOMAKE([subdir-objects]) + +AC_PROG_INSTALL +AC_PROG_MAKE_SET + +#Use libtool +LT_INIT([disable-shared static]) +AC_SUBST([LIBTOOL_DEPS]) +AM_PROG_LIBTOOL + +# Checks for header files. +AC_HEADER_RESOLV +AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h limits.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h unistd.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_HEADER_STDBOOL +AC_C_INLINE +AC_TYPE_SIZE_T +AC_TYPE_SSIZE_T +AC_TYPE_UINT8_T +AC_TYPE_UINT16_T +AC_TYPE_INT32_T +AC_TYPE_UINT32_T +AC_TYPE_UINT64_T + +########################################################################## +# Determine which platform to build for +########################################################################## +AC_ARG_WITH([platform], + [AS_HELP_STRING([--with-platform=prefix], + [Select platform to be used, default linux-generic])], + [], + [with_platform=linux-generic]) + +AM_CONDITIONAL([ODP_PLATFORM_GENERIC], [test "x$with_platform" = xlinux-generic]) +AM_CONDITIONAL([ODP_PLATFORM_KEYSTONE2], [test "x$with_platform" = xlinux-keystone2]) + +AC_SUBST([with_platform]) + +########################################################################## +# Enable/disable netmap support +########################################################################## +AC_ARG_ENABLE([netmap], + [ --enable-netmap Enable/disable netmap], + [if test x$enableval = xyes; then + netmap_support=yes + ODP_CFLAGS="$ODP_CFLAGS -DODP_HAVE_NETMAP=1" + fi]) + +AM_CONDITIONAL([ODP_NETMAP_ENABLED], [test x$netmap_support = xyes ]) + +########################################################################## +# Enable/disable ODP_DEBUG_PRINT +########################################################################## +ODP_DEBUG=1 +AC_ARG_ENABLE([debug], + [ --enable-debug Enable/disable debug], + [if ! test "x$enableval" = "xyes"; then + ODP_DEBUG=0 + fi]) +ODP_CFLAGS="$ODP_CFLAGS -DODP_DEBUG_PRINT=$ODP_DEBUG" + +########################################################################## +# Check for pthreads availability +########################################################################## + +AX_PTHREAD([CC="$PTHREAD_CC"], [ + echo "Error! We require pthreads to be available" + exit -1 + ]) +LIBS="$PTHREAD_LIBS $LIBS" +AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS" +AM_LDFLAGS="$AM_LDFLAGS $PTHREAD_LDFLAGS" + +########################################################################## +# Default warning setup +########################################################################## +ODP_CFLAGS="$ODP_CFLAGS -W -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes" +ODP_CFLAGS="$ODP_CFLAGS -Wmissing-declarations -Wold-style-definition -Wpointer-arith" +ODP_CFLAGS="$ODP_CFLAGS -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonliteral" +ODP_CFLAGS="$ODP_CFLAGS -Wformat-security -Wundef -Wwrite-strings" + +########################################################################## +# Default include setup +########################################################################## +AM_CFLAGS="$AM_CFLAGS $ODP_CFLAGS" + +# Checks for library functions. +AC_FUNC_MALLOC +AC_FUNC_MMAP +AC_CHECK_FUNCS([bzero clock_gettime gethostbyname getpagesize gettimeofday memset munmap socket strchr strerror strrchr strstr strtoull]) + +AC_CONFIG_FILES([Makefile + platform/Makefile + platform/linux-generic/Makefile + platform/linux-keystone2/Makefile + test/Makefile + test/api_test/Makefile + test/example/Makefile + test/generator/Makefile + test/l2fwd/Makefile + test/packet/Makefile + test/packet_netmap/Makefile + test/timer/Makefile + pkgconfig/libodp.pc]) + +AC_SEARCH_LIBS([timer_create],[rt posix4]) + +########################################################################## +# distribute the changed variables among the Makefiles + +AM_LDFLAGS="$AM_LDFLAGS -pthread -lrt" + +AC_SUBST([LIBS]) +AC_SUBST([AM_CFLAGS]) +AC_SUBST([CFLAGS]) +AC_SUBST([AM_LDFLAGS]) + +AC_OUTPUT +AC_MSG_RESULT([ + $PACKAGE $VERSION + ======== + + prefix: ${prefix} + sysconfdir: ${sysconfdir} + libdir: ${libdir} + includedir: ${includedir} + + compiler: ${CC} + cflags: ${CFLAGS} + am_cflags: ${AM_CFLAGS} + ldflags: ${LDFLAGS} + am_ldflags: ${AM_LDFLAGS} +]) diff --git a/platform/linux-generic/Doxyfile.in b/doxygen.cfg similarity index 70% rename from platform/linux-generic/Doxyfile.in rename to doxygen.cfg index 572a3dd..6c78712 100644 --- a/platform/linux-generic/Doxyfile.in +++ b/doxygen.cfg @@ -1,7 +1,7 @@ PROJECT_NAME = "API Reference Manual" -PROJECT_LOGO = ../../doc/images/ODP-Logo-HQ.png +PROJECT_LOGO = $(SRCDIR)/doc/images/ODP-Logo-HQ.png QUIET = YES -OUTPUT_DIRECTORY = ./doc +OUTPUT_DIRECTORY = $(DOCDIR) FULL_PATH_NAMES = NO JAVADOC_AUTOBRIEF = YES OPTIMIZE_OUTPUT_FOR_C = YES @@ -9,7 +9,7 @@ TYPEDEF_HIDES_STRUCT = YES EXTRACT_STATIC = YES SORT_MEMBER_DOCS = NO WARN_NO_PARAMDOC = YES -INPUT = ../../doc ../../include ../../test +INPUT = $(SRCDIR)/doc $(SRCDIR)/include $(SRCDIR)/test FILE_PATTERNS = odp*.h odp*.c *.dox RECURSIVE = YES SOURCE_BROWSER = YES @@ -23,10 +23,10 @@ CLASS_DIAGRAMS = NO HAVE_DOT = YES CALL_GRAPH = YES DOT_MULTI_TARGETS = NO -EXAMPLE_PATH = ../../test +EXAMPLE_PATH = $(SRCDIR)/test EXAMPLE_PATTERNS = *.c EXAMPLE_RECURSIVE = YES -IMAGE_PATH = ../../doc/images -HTML_EXTRA_STYLESHEET = ../../doc/odpdoxygen.css +IMAGE_PATH = $(SRCDIR)/doc/images +HTML_EXTRA_STYLESHEET = $(SRCDIR)/doc/odpdoxygen.css PREDEFINED = __GNUC__ INTERNAL_DOCS = YES diff --git a/m4/ax_prog_doxygen.m4 b/m4/ax_prog_doxygen.m4 new file mode 100644 index 0000000..44b22b0 --- /dev/null +++ b/m4/ax_prog_doxygen.m4 @@ -0,0 +1,532 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_prog_doxygen.html +# =========================================================================== +# +# SYNOPSIS +# +# DX_INIT_DOXYGEN(PROJECT-NAME, DOXYFILE-PATH, [OUTPUT-DIR]) +# DX_DOXYGEN_FEATURE(ON|OFF) +# DX_DOT_FEATURE(ON|OFF) +# DX_HTML_FEATURE(ON|OFF) +# DX_CHM_FEATURE(ON|OFF) +# DX_CHI_FEATURE(ON|OFF) +# DX_MAN_FEATURE(ON|OFF) +# DX_RTF_FEATURE(ON|OFF) +# DX_XML_FEATURE(ON|OFF) +# DX_PDF_FEATURE(ON|OFF) +# DX_PS_FEATURE(ON|OFF) +# +# DESCRIPTION +# +# The DX_*_FEATURE macros control the default setting for the given +# Doxygen feature. Supported features are 'DOXYGEN' itself, 'DOT' for +# generating graphics, 'HTML' for plain HTML, 'CHM' for compressed HTML +# help (for MS users), 'CHI' for generating a seperate .chi file by the +# .chm file, and 'MAN', 'RTF', 'XML', 'PDF' and 'PS' for the appropriate +# output formats. The environment variable DOXYGEN_PAPER_SIZE may be +# specified to override the default 'a4wide' paper size. +# +# By default, HTML, PDF and PS documentation is generated as this seems to +# be the most popular and portable combination. MAN pages created by +# Doxygen are usually problematic, though by picking an appropriate subset +# and doing some massaging they might be better than nothing. CHM and RTF +# are specific for MS (note that you can't generate both HTML and CHM at +# the same time). The XML is rather useless unless you apply specialized +# post-processing to it. +# +# The macros mainly control the default state of the feature. The use can +# override the default by specifying --enable or --disable. The macros +# ensure that contradictory flags are not given (e.g., +# --enable-doxygen-html and --enable-doxygen-chm, +# --enable-doxygen-anything with --disable-doxygen, etc.) Finally, each +# feature will be automatically disabled (with a warning) if the required +# programs are missing. +# +# Once all the feature defaults have been specified, call DX_INIT_DOXYGEN +# with the following parameters: a one-word name for the project for use +# as a filename base etc., an optional configuration file name (the +# default is 'Doxyfile', the same as Doxygen's default), and an optional +# output directory name (the default is 'doxygen-doc'). +# +# Automake Support +# +# The following is a template aminclude.am file for use with Automake. +# Make targets and variables values are controlled by the various +# DX_COND_* conditionals set by autoconf. +# +# The provided targets are: +# +# doxygen-doc: Generate all doxygen documentation. +# +# doxygen-run: Run doxygen, which will generate some of the +# documentation (HTML, CHM, CHI, MAN, RTF, XML) +# but will not do the post processing required +# for the rest of it (PS, PDF, and some MAN). +# +# doxygen-man: Rename some doxygen generated man pages. +# +# doxygen-ps: Generate doxygen PostScript documentation. +# +# doxygen-pdf: Generate doxygen PDF documentation. +# +# Note that by default these are not integrated into the automake targets. +# If doxygen is used to generate man pages, you can achieve this +# integration by setting man3_MANS to the list of man pages generated and +# then adding the dependency: +# +# $(man3_MANS): doxygen-doc +# +# This will cause make to run doxygen and generate all the documentation. +# +# The following variable is intended for use in Makefile.am: +# +# DX_CLEANFILES = everything to clean. +# +# Then add this variable to MOSTLYCLEANFILES. +# +# ----- begin aminclude.am ------------------------------------- +# +# ## --------------------------------- ## +# ## Format-independent Doxygen rules. ## +# ## --------------------------------- ## +# +# if DX_COND_doc +# +# ## ------------------------------- ## +# ## Rules specific for HTML output. ## +# ## ------------------------------- ## +# +# if DX_COND_html +# +# DX_CLEAN_HTML = @DX_DOCDIR@/html +# +# endif DX_COND_html +# +# ## ------------------------------ ## +# ## Rules specific for CHM output. ## +# ## ------------------------------ ## +# +# if DX_COND_chm +# +# DX_CLEAN_CHM = @DX_DOCDIR@/chm +# +# if DX_COND_chi +# +# DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi +# +# endif DX_COND_chi +# +# endif DX_COND_chm +# +# ## ------------------------------ ## +# ## Rules specific for MAN output. ## +# ## ------------------------------ ## +# +# if DX_COND_man +# +# DX_CLEAN_MAN = @DX_DOCDIR@/man +# +# endif DX_COND_man +# +# ## ------------------------------ ## +# ## Rules specific for RTF output. ## +# ## ------------------------------ ## +# +# if DX_COND_rtf +# +# DX_CLEAN_RTF = @DX_DOCDIR@/rtf +# +# endif DX_COND_rtf +# +# ## ------------------------------ ## +# ## Rules specific for XML output. ## +# ## ------------------------------ ## +# +# if DX_COND_xml +# +# DX_CLEAN_XML = @DX_DOCDIR@/xml +# +# endif DX_COND_xml +# +# ## ----------------------------- ## +# ## Rules specific for PS output. ## +# ## ----------------------------- ## +# +# if DX_COND_ps +# +# DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps +# +# DX_PS_GOAL = doxygen-ps +# +# doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps +# +# @DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag +# cd @DX_DOCDIR@/latex; \ +# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ +# $(DX_LATEX) refman.tex; \ +# $(MAKEINDEX_PATH) refman.idx; \ +# $(DX_LATEX) refman.tex; \ +# countdown=5; \ +# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ +# refman.log > /dev/null 2>&1 \ +# && test $$countdown -gt 0; do \ +# $(DX_LATEX) refman.tex; \ +# countdown=`expr $$countdown - 1`; \ +# done; \ +# $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi +# +# endif DX_COND_ps +# +# ## ------------------------------ ## +# ## Rules specific for PDF output. ## +# ## ------------------------------ ## +# +# if DX_COND_pdf +# +# DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf +# +# DX_PDF_GOAL = doxygen-pdf +# +# doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf +# +# @DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag +# cd @DX_DOCDIR@/latex; \ +# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ +# $(DX_PDFLATEX) refman.tex; \ +# $(DX_MAKEINDEX) refman.idx; \ +# $(DX_PDFLATEX) refman.tex; \ +# countdown=5; \ +# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ +# refman.log > /dev/null 2>&1 \ +# && test $$countdown -gt 0; do \ +# $(DX_PDFLATEX) refman.tex; \ +# countdown=`expr $$countdown - 1`; \ +# done; \ +# mv refman.pdf ../@PACKAGE@.pdf +# +# endif DX_COND_pdf +# +# ## ------------------------------------------------- ## +# ## Rules specific for LaTeX (shared for PS and PDF). ## +# ## ------------------------------------------------- ## +# +# if DX_COND_latex +# +# DX_CLEAN_LATEX = @DX_DOCDIR@/latex +# +# endif DX_COND_latex +# +# .PHONY: doxygen-run doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) +# +# .INTERMEDIATE: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL) +# +# doxygen-run: @DX_DOCDIR@/@PACKAGE@.tag +# +# doxygen-doc: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL) +# +# @DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) +# rm -rf @DX_DOCDIR@ +# $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) +# +# DX_CLEANFILES = \ +# @DX_DOCDIR@/@PACKAGE@.tag \ +# -r \ +# $(DX_CLEAN_HTML) \ +# $(DX_CLEAN_CHM) \ +# $(DX_CLEAN_CHI) \ +# $(DX_CLEAN_MAN) \ +# $(DX_CLEAN_RTF) \ +# $(DX_CLEAN_XML) \ +# $(DX_CLEAN_PS) \ +# $(DX_CLEAN_PDF) \ +# $(DX_CLEAN_LATEX) +# +# endif DX_COND_doc +# +# ----- end aminclude.am --------------------------------------- +# +# LICENSE +# +# Copyright (c) 2009 Oren Ben-Kiki +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 12 + +## ----------## +## Defaults. ## +## ----------## + +DX_ENV="" +AC_DEFUN([DX_FEATURE_doc], ON) +AC_DEFUN([DX_FEATURE_dot], OFF) +AC_DEFUN([DX_FEATURE_man], OFF) +AC_DEFUN([DX_FEATURE_html], ON) +AC_DEFUN([DX_FEATURE_chm], OFF) +AC_DEFUN([DX_FEATURE_chi], OFF) +AC_DEFUN([DX_FEATURE_rtf], OFF) +AC_DEFUN([DX_FEATURE_xml], OFF) +AC_DEFUN([DX_FEATURE_pdf], ON) +AC_DEFUN([DX_FEATURE_ps], ON) + +## --------------- ## +## Private macros. ## +## --------------- ## + +# DX_ENV_APPEND(VARIABLE, VALUE) +# ------------------------------ +# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen. +AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])]) + +# DX_DIRNAME_EXPR +# --------------- +# Expand into a shell expression prints the directory part of a path. +AC_DEFUN([DX_DIRNAME_EXPR], + [[expr ".$1" : '\(\.\)[^/]*$' \| "x$1" : 'x\(.*\)/[^/]*$']]) + +# DX_IF_FEATURE(FEATURE, IF-ON, IF-OFF) +# ------------------------------------- +# Expands according to the M4 (static) status of the feature. +AC_DEFUN([DX_IF_FEATURE], [ifelse(DX_FEATURE_$1, ON, [$2], [$3])]) + +# DX_REQUIRE_PROG(VARIABLE, PROGRAM) +# ---------------------------------- +# Require the specified program to be found for the DX_CURRENT_FEATURE to work. +AC_DEFUN([DX_REQUIRE_PROG], [ +AC_PATH_TOOL([$1], [$2]) +if test "$DX_FLAG_[]DX_CURRENT_FEATURE$$1" = 1; then + AC_MSG_WARN([$2 not found - will not DX_CURRENT_DESCRIPTION]) + AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0) +fi +]) + +# DX_TEST_FEATURE(FEATURE) +# ------------------------ +# Expand to a shell expression testing whether the feature is active. +AC_DEFUN([DX_TEST_FEATURE], [test "$DX_FLAG_$1" = 1]) + +# DX_CHECK_DEPEND(REQUIRED_FEATURE, REQUIRED_STATE) +# ------------------------------------------------- +# Verify that a required features has the right state before trying to turn on +# the DX_CURRENT_FEATURE. +AC_DEFUN([DX_CHECK_DEPEND], [ +test "$DX_FLAG_$1" = "$2" \ +|| AC_MSG_ERROR([doxygen-DX_CURRENT_FEATURE ifelse([$2], 1, + requires, contradicts) doxygen-DX_CURRENT_FEATURE]) +]) + +# DX_CLEAR_DEPEND(FEATURE, REQUIRED_FEATURE, REQUIRED_STATE) +# ---------------------------------------------------------- +# Turn off the DX_CURRENT_FEATURE if the required feature is off. +AC_DEFUN([DX_CLEAR_DEPEND], [ +test "$DX_FLAG_$1" = "$2" || AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0) +]) + +# DX_FEATURE_ARG(FEATURE, DESCRIPTION, +# CHECK_DEPEND, CLEAR_DEPEND, +# REQUIRE, DO-IF-ON, DO-IF-OFF) +# -------------------------------------------- +# Parse the command-line option controlling a feature. CHECK_DEPEND is called +# if the user explicitly turns the feature on (and invokes DX_CHECK_DEPEND), +# otherwise CLEAR_DEPEND is called to turn off the default state if a required +# feature is disabled (using DX_CLEAR_DEPEND). REQUIRE performs additional +# requirement tests (DX_REQUIRE_PROG). Finally, an automake flag is set and +# DO-IF-ON or DO-IF-OFF are called according to the final state of the feature. +AC_DEFUN([DX_ARG_ABLE], [ + AC_DEFUN([DX_CURRENT_FEATURE], [$1]) + AC_DEFUN([DX_CURRENT_DESCRIPTION], [$2]) + AC_ARG_ENABLE(doxygen-$1, + [AS_HELP_STRING(DX_IF_FEATURE([$1], [--disable-doxygen-$1], + [--enable-doxygen-$1]), + DX_IF_FEATURE([$1], [don't $2], [$2]))], + [ +case "$enableval" in +#( +y|Y|yes|Yes|YES) + AC_SUBST([DX_FLAG_$1], 1) + $3 +;; #( +n|N|no|No|NO) + AC_SUBST([DX_FLAG_$1], 0) +;; #( +*) + AC_MSG_ERROR([invalid value '$enableval' given to doxygen-$1]) +;; +esac +], [ +AC_SUBST([DX_FLAG_$1], [DX_IF_FEATURE([$1], 1, 0)]) +$4 +]) +if DX_TEST_FEATURE([$1]); then + $5 + : +fi +AM_CONDITIONAL(DX_COND_$1, DX_TEST_FEATURE([$1])) +if DX_TEST_FEATURE([$1]); then + $6 + : +else + $7 + : +fi +]) + +## -------------- ## +## Public macros. ## +## -------------- ## + +# DX_XXX_FEATURE(DEFAULT_STATE) +# ----------------------------- +AC_DEFUN([DX_DOXYGEN_FEATURE], [AC_DEFUN([DX_FEATURE_doc], [$1])]) +AC_DEFUN([DX_DOT_FEATURE], [AC_DEFUN([DX_FEATURE_dot], [$1])]) +AC_DEFUN([DX_MAN_FEATURE], [AC_DEFUN([DX_FEATURE_man], [$1])]) +AC_DEFUN([DX_HTML_FEATURE], [AC_DEFUN([DX_FEATURE_html], [$1])]) +AC_DEFUN([DX_CHM_FEATURE], [AC_DEFUN([DX_FEATURE_chm], [$1])]) +AC_DEFUN([DX_CHI_FEATURE], [AC_DEFUN([DX_FEATURE_chi], [$1])]) +AC_DEFUN([DX_RTF_FEATURE], [AC_DEFUN([DX_FEATURE_rtf], [$1])]) +AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) +AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) +AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])]) +AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])]) + +# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR]) +# --------------------------------------------------------- +# PROJECT also serves as the base name for the documentation files. +# The default CONFIG-FILE is "Doxyfile" and OUTPUT-DOC-DIR is "doxygen-doc". +AC_DEFUN([DX_INIT_DOXYGEN], [ + +# Files: +AC_SUBST([DX_PROJECT], [$1]) +AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])]) +AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])]) + +# Environment variables used inside doxygen.cfg: +DX_ENV_APPEND(SRCDIR, $srcdir) +DX_ENV_APPEND(PROJECT, $DX_PROJECT) +DX_ENV_APPEND(DOCDIR, $DX_DOCDIR) +DX_ENV_APPEND(VERSION, $PACKAGE_VERSION) + +# Doxygen itself: +DX_ARG_ABLE(doc, [generate any doxygen documentation], + [], + [], + [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen) + DX_REQUIRE_PROG([DX_PERL], perl)], + [DX_ENV_APPEND(PERL_PATH, $DX_PERL)]) + +# Dot for graphics: +DX_ARG_ABLE(dot, [generate graphics for doxygen documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_DOT], dot)], + [DX_ENV_APPEND(HAVE_DOT, YES) + DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])], + [DX_ENV_APPEND(HAVE_DOT, NO)]) + +# Man pages generation: +DX_ARG_ABLE(man, [generate doxygen manual pages], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [], + [DX_ENV_APPEND(GENERATE_MAN, YES)], + [DX_ENV_APPEND(GENERATE_MAN, NO)]) + +# RTF file generation: +DX_ARG_ABLE(rtf, [generate doxygen RTF documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [], + [DX_ENV_APPEND(GENERATE_RTF, YES)], + [DX_ENV_APPEND(GENERATE_RTF, NO)]) + +# XML file generation: +DX_ARG_ABLE(xml, [generate doxygen XML documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [], + [DX_ENV_APPEND(GENERATE_XML, YES)], + [DX_ENV_APPEND(GENERATE_XML, NO)]) + +# (Compressed) HTML help generation: +DX_ARG_ABLE(chm, [generate doxygen compressed HTML help documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_HHC], hhc)], + [DX_ENV_APPEND(HHC_PATH, $DX_HHC) + DX_ENV_APPEND(GENERATE_HTML, YES) + DX_ENV_APPEND(GENERATE_HTMLHELP, YES)], + [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)]) + +# Seperate CHI file generation. +DX_ARG_ABLE(chi, [generate doxygen seperate compressed HTML help index file], + [DX_CHECK_DEPEND(chm, 1)], + [DX_CLEAR_DEPEND(chm, 1)], + [], + [DX_ENV_APPEND(GENERATE_CHI, YES)], + [DX_ENV_APPEND(GENERATE_CHI, NO)]) + +# Plain HTML pages generation: +DX_ARG_ABLE(html, [generate doxygen plain HTML documentation], + [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)], + [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)], + [], + [DX_ENV_APPEND(GENERATE_HTML, YES)], + [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)]) + +# PostScript file generation: +DX_ARG_ABLE(ps, [generate doxygen PostScript documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_LATEX], latex) + DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) + DX_REQUIRE_PROG([DX_DVIPS], dvips) + DX_REQUIRE_PROG([DX_EGREP], egrep)]) + +# PDF file generation: +DX_ARG_ABLE(pdf, [generate doxygen PDF documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex) + DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) + DX_REQUIRE_PROG([DX_EGREP], egrep)]) + +# LaTeX generation for PS and/or PDF: +AM_CONDITIONAL(DX_COND_latex, DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf)) +if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then + DX_ENV_APPEND(GENERATE_LATEX, YES) +else + DX_ENV_APPEND(GENERATE_LATEX, NO) +fi + +# Paper size for PS and/or PDF: +AC_ARG_VAR(DOXYGEN_PAPER_SIZE, + [a4wide (default), a4, letter, legal or executive]) +case "$DOXYGEN_PAPER_SIZE" in +#( +"") + AC_SUBST(DOXYGEN_PAPER_SIZE, "") +;; #( +a4wide|a4|letter|legal|executive) + DX_ENV_APPEND(PAPER_SIZE, $DOXYGEN_PAPER_SIZE) +;; #( +*) + AC_MSG_ERROR([unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE']) +;; +esac + +#For debugging: +#echo DX_FLAG_doc=$DX_FLAG_doc +#echo DX_FLAG_dot=$DX_FLAG_dot +#echo DX_FLAG_man=$DX_FLAG_man +#echo DX_FLAG_html=$DX_FLAG_html +#echo DX_FLAG_chm=$DX_FLAG_chm +#echo DX_FLAG_chi=$DX_FLAG_chi +#echo DX_FLAG_rtf=$DX_FLAG_rtf +#echo DX_FLAG_xml=$DX_FLAG_xml +#echo DX_FLAG_pdf=$DX_FLAG_pdf +#echo DX_FLAG_ps=$DX_FLAG_ps +#echo DX_ENV=$DX_ENV +]) diff --git a/m4/ax_pthread.m4 b/m4/ax_pthread.m4 new file mode 100644 index 0000000..d383ad5 --- /dev/null +++ b/m4/ax_pthread.m4 @@ -0,0 +1,332 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_pthread.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +# +# DESCRIPTION +# +# This macro figures out how to build C programs using POSIX threads. It +# sets the PTHREAD_LIBS output variable to the threads library and linker +# flags, and the PTHREAD_CFLAGS output variable to any special C compiler +# flags that are needed. (The user can also force certain compiler +# flags/libs to be tested by setting these environment variables.) +# +# Also sets PTHREAD_CC to any special C compiler that is needed for +# multi-threaded programs (defaults to the value of CC otherwise). (This +# is necessary on AIX to use the special cc_r compiler alias.) +# +# NOTE: You are assumed to not only compile your program with these flags, +# but also link it with them as well. e.g. you should link with +# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS +# +# If you are only building threads programs, you may wish to use these +# variables in your default LIBS, CFLAGS, and CC: +# +# LIBS="$PTHREAD_LIBS $LIBS" +# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +# CC="$PTHREAD_CC" +# +# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant +# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name +# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). +# +# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the +# PTHREAD_PRIO_INHERIT symbol is defined when compiling with +# PTHREAD_CFLAGS. +# +# ACTION-IF-FOUND is a list of shell commands to run if a threads library +# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it +# is not found. If ACTION-IF-FOUND is not specified, the default action +# will define HAVE_PTHREAD. +# +# Please let the authors know if this macro fails on any platform, or if +# you have any other suggestions or comments. This macro was based on work +# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help +# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by +# Alejandro Forero Cuervo to the autoconf macro repository. We are also +# grateful for the helpful feedback of numerous users. +# +# Updated for Autoconf 2.68 by Daniel Richard G. +# +# LICENSE +# +# Copyright (c) 2008 Steven G. Johnson +# Copyright (c) 2011 Daniel Richard G. +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 21 + +AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) +AC_DEFUN([AX_PTHREAD], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_LANG_PUSH([C]) +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) + AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes]) + AC_MSG_RESULT([$ax_pthread_ok]) + if test x"$ax_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# ... -mt is also the pthreads flag for HP/aCC +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case ${host_os} in + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" + ;; + + darwin*) + ax_pthread_flags="-pthread $ax_pthread_flags" + ;; +esac + +# Clang doesn't consider unrecognized options an error unless we specify +# -Werror. We throw in some extra Clang-specific options to ensure that +# this doesn't happen for GCC, which also accepts -Werror. + +AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags]) +save_CFLAGS="$CFLAGS" +ax_pthread_extra_flags="-Werror" +CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument" +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])], + [AC_MSG_RESULT([yes])], + [ax_pthread_extra_flags= + AC_MSG_RESULT([no])]) +CFLAGS="$save_CFLAGS" + +if test x"$ax_pthread_ok" = xno; then +for flag in $ax_pthread_flags; do + + case $flag in + none) + AC_MSG_CHECKING([whether pthreads work without any flags]) + ;; + + -*) + AC_MSG_CHECKING([whether pthreads work with $flag]) + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) + if test x"$ax_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + AC_MSG_CHECKING([for the pthreads library -l$flag]) + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include + static void routine(void *a) { a = 0; } + static void *start_routine(void *a) { return a; }], + [pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */])], + [ax_pthread_ok=yes], + []) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + AC_MSG_RESULT([$ax_pthread_ok]) + if test "x$ax_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$ax_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + AC_MSG_CHECKING([for joinable pthread attribute]) + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [int attr = $attr; return attr /* ; */])], + [attr_name=$attr; break], + []) + done + AC_MSG_RESULT([$attr_name]) + if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then + AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name], + [Define to necessary symbol if this constant + uses a non-standard name on your system.]) + fi + + AC_MSG_CHECKING([if more special flags are required for pthreads]) + flag=no + case ${host_os} in + aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; + osf* | hpux*) flag="-D_REENTRANT";; + solaris*) + if test "$GCC" = "yes"; then + flag="-D_REENTRANT" + else + # TODO: What about Clang on Solaris? + flag="-mt -D_REENTRANT" + fi + ;; + esac + AC_MSG_RESULT([$flag]) + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], + [ax_cv_PTHREAD_PRIO_INHERIT], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[int i = PTHREAD_PRIO_INHERIT;]])], + [ax_cv_PTHREAD_PRIO_INHERIT=yes], + [ax_cv_PTHREAD_PRIO_INHERIT=no]) + ]) + AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"], + [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])]) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != xyes; then + case $host_os in + aix*) + AS_CASE(["x/$CC"], + [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6], + [#handle absolute path differently from PATH based program lookup + AS_CASE(["x$CC"], + [x/*], + [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])], + [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])]) + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + +AC_SUBST([PTHREAD_LIBS]) +AC_SUBST([PTHREAD_CFLAGS]) +AC_SUBST([PTHREAD_CC]) + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$ax_pthread_ok" = xyes; then + ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1]) + : +else + ax_pthread_ok=no + $2 +fi +AC_LANG_POP +])dnl AX_PTHREAD diff --git a/pkgconfig/libodp.pc.in b/pkgconfig/libodp.pc.in new file mode 100644 index 0000000..7cdf9ea --- /dev/null +++ b/pkgconfig/libodp.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libodp +Description: The ODP packet processing engine +Version: @VERSION@ +Libs: -L${libdir} -lodp +Libs.private: +Cflags: -I${includedir} diff --git a/platform/Makefile.am b/platform/Makefile.am new file mode 100644 index 0000000..e618747 --- /dev/null +++ b/platform/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = @with_platform@ diff --git a/platform/linux-generic/Makefile b/platform/linux-generic/Makefile deleted file mode 100644 index 0737656..0000000 --- a/platform/linux-generic/Makefile +++ /dev/null @@ -1,142 +0,0 @@ -## Copyright (c) 2013, Linaro Limited -## All rights reserved. -## -## Redistribution and use in source and binary forms, with or without -## modification, are permitted provided that the following conditions are met: -## -## * Redistributions of source code must retain the above copyright notice, this -## list of conditions and the following disclaimer. -## -## * Redistributions in binary form must reproduce the above copyright notice, this -## list of conditions and the following disclaimer in the documentation and/or -## other materials provided with the distribution. -## -## * Neither the name of Linaro Limited nor the names of its contributors may be -## used to endorse or promote products derived from this software without specific -## prior written permission. -## -## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -## ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -## WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -## DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -## SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -## CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -.DEFAULT_GOAL := libs - -ODP_ROOT = ../.. -LIB_DIR = ./lib -DOC_DIR = ./doc - -EXTRA_CFLAGS += -I$(ODP_ROOT)/include -EXTRA_CFLAGS += -I./include -EXTRA_CFLAGS += -I./include/api - -# Option for shared libraries. -# Decreases performance with static libraries. -ifeq ($(ODP_RELOC),yes) -EXTRA_CFLAGS += -fpic -endif - -ifeq ($(ODP_HAVE_NETMAP),yes) -EXTRA_CFLAGS += -DODP_HAVE_NETMAP -endif - -include $(ODP_ROOT)/Makefile.inc -STATIC_LIB = ./lib/libodp.a - -# -# Object files -# -OBJS = -OBJS += $(OBJ_DIR)/odp_barrier.o -OBJS += $(OBJ_DIR)/odp_buffer.o -OBJS += $(OBJ_DIR)/odp_buffer_pool.o -OBJS += $(OBJ_DIR)/odp_coremask.o -OBJS += $(OBJ_DIR)/odp_init.o -OBJS += $(OBJ_DIR)/odp_linux.o -OBJS += $(OBJ_DIR)/odp_packet.o -OBJS += $(OBJ_DIR)/odp_packet_flags.o -OBJS += $(OBJ_DIR)/odp_packet_io.o -OBJS += $(OBJ_DIR)/odp_packet_socket.o -OBJS += $(OBJ_DIR)/odp_queue.o -OBJS += $(OBJ_DIR)/odp_schedule.o -OBJS += $(OBJ_DIR)/odp_shared_memory.o -OBJS += $(OBJ_DIR)/odp_spinlock.o -OBJS += $(OBJ_DIR)/odp_system_info.o -OBJS += $(OBJ_DIR)/odp_thread.o -OBJS += $(OBJ_DIR)/odp_ticketlock.o -OBJS += $(OBJ_DIR)/odp_time.o -OBJS += $(OBJ_DIR)/odp_timer.o -OBJS += $(OBJ_DIR)/odp_ring.o -OBJS += $(OBJ_DIR)/odp_rwlock.o -ifeq ($(ODP_HAVE_NETMAP),yes) -OBJS += $(OBJ_DIR)/odp_packet_netmap.o -endif - -DEPS = $(OBJS:.o=.d) - -.PHONY: all -all: libs docs - --include $(DEPS) - -$(LIB_DIR): - $(Q)$(MKDIR) $(LIB_DIR) - -$(DOC_DIR): - $(Q)$(MKDIR) $(DOC_DIR)/html - $(Q)$(MKDIR) $(DOC_DIR)/latex - -# -# Compile rules -# -$(OBJ_DIR)/%.o: ./source/%.c - $(QUIET_CC)$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< - -# -# Lib rule -# -$(STATIC_LIB): $(OBJS) - $(QUIET_AR)$(AR) -cr $@ $(OBJS) - -clean: - $(Q)$(RMDIR) $(OBJ_DIR) - $(Q)$(RMDIR) $(LIB_DIR) - $(Q)$(RMDIR) $(DOC_DIR) - $(Q)$(RM) Doxyfile - -Doxyfile: Doxyfile.in - doxygen -u - < $< > $@ - -.PHONY: docs -docs: $(DOC_DIR) Doxyfile ./include/odp*.h - doxygen - -.PHONY: docs_install -docs_install: docs - $(SYNC) doc $(DESTDIR) - -.PHONY: pdf -pdf: docs - make --directory doc/latex refman.pdf 1> /dev/null - -.PHONY: libs -libs: $(OBJ_DIR) $(LIB_DIR) $(STATIC_LIB) - -.PHONY: lib_install -lib_install: libs - $(Q)install -d $(DESTDIR)/lib - $(Q)install -m 0644 ${STATIC_LIB} $(DESTDIR)/lib/ - -.PHONY: headers_install -headers_install: libs - $(ECHO) Installing headers to $(DESTDIR)/include - $(Q)$(SYNC) $(ODP_ROOT)/include $(DESTDIR) - $(Q)$(SYNC) include/api/* $(DESTDIR)/include/ - -install: lib_install headers_install diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am new file mode 100644 index 0000000..34b13d3 --- /dev/null +++ b/platform/linux-generic/Makefile.am @@ -0,0 +1,84 @@ +LIB = $(top_builddir)/lib + +dist_pkgdata_DATA = $(LIB)/libodp.la + +pkgconfigdir = pkgconfig +nodist_pkgconfig_DATA = $(top_builddir)/pkgconfig/libodp.pc + +.PHONY: pkgconfig/libodp.pc + +AM_CFLAGS += -I$(srcdir)/include +AM_CFLAGS += -I$(srcdir)/include/api +AM_CFLAGS += -I$(top_srcdir)/include +VPATH = $(srcdir) $(builddir) +if ODP_PLATFORM_GENERIC +lib_LTLIBRARIES = $(LIB)/libodp.la + +include_HEADERS = \ + $(top_srcdir)/include/odp.h \ + $(top_srcdir)/include/odp_align.h \ + $(top_srcdir)/include/odp_atomic.h \ + $(top_srcdir)/include/odp_barrier.h \ + $(top_srcdir)/include/odp_buffer.h \ + $(top_srcdir)/include/odp_buffer_pool.h \ + $(top_srcdir)/include/odp_byteorder.h \ + $(top_srcdir)/include/odp_compiler.h \ + $(top_srcdir)/include/odp_config.h \ + $(top_srcdir)/include/odp_coremask.h \ + $(top_srcdir)/include/odp_debug.h \ + $(top_srcdir)/include/odp_hints.h \ + $(top_srcdir)/include/odp_init.h \ + $(top_srcdir)/include/odp_packet_flags.h \ + $(top_srcdir)/include/odp_packet.h \ + $(top_srcdir)/include/odp_packet_io.h \ + $(top_srcdir)/include/odp_queue.h \ + $(top_srcdir)/include/odp_rwlock.h \ + $(top_srcdir)/include/odp_schedule.h \ + $(top_srcdir)/include/odp_shared_memory.h \ + $(top_srcdir)/include/odp_spinlock.h \ + $(top_srcdir)/include/odp_std_types.h \ + $(top_srcdir)/include/odp_sync.h \ + $(top_srcdir)/include/odp_system_info.h \ + $(top_srcdir)/include/odp_thread.h \ + $(top_srcdir)/include/odp_ticketlock.h \ + $(top_srcdir)/include/odp_time.h \ + $(top_srcdir)/include/odp_timer.h \ + $(top_srcdir)/include/odp_version.h \ + $(top_srcdir)/platform/linux-generic/include/api/odp_pktio_types.h \ + $(top_srcdir)/platform/linux-generic/include/api/odp_pktio_netmap.h \ + $(top_srcdir)/platform/linux-generic/include/api/odp_pktio_socket.h + +subdirheadersdir = $(includedir)/helper +subdirheaders_HEADERS = \ + $(top_srcdir)/include/helper/odp_chksum.h \ + $(top_srcdir)/include/helper/odp_eth.h \ + $(top_srcdir)/include/helper/odp_ip.h \ + $(top_srcdir)/include/helper/odp_linux.h \ + $(top_srcdir)/include/helper/odp_packet_helper.h \ + $(top_srcdir)/include/helper/odp_ring.h \ + $(top_srcdir)/include/helper/odp_udp.h + +__LIB__libodp_la_SOURCES = \ + odp_barrier.c \ + odp_buffer.c \ + odp_buffer_pool.c \ + odp_coremask.c \ + odp_init.c \ + odp_linux.c \ + odp_packet.c \ + odp_packet_flags.c \ + odp_packet_io.c \ + odp_packet_socket.c \ + odp_queue.c \ + odp_ring.c \ + odp_rwlock.c \ + odp_schedule.c \ + odp_shared_memory.c \ + odp_spinlock.c \ + odp_system_info.c \ + odp_thread.c \ + odp_ticketlock.c \ + odp_time.c \ + odp_timer.c + +endif diff --git a/platform/linux-generic/source/odp_barrier.c b/platform/linux-generic/odp_barrier.c similarity index 100% rename from platform/linux-generic/source/odp_barrier.c rename to platform/linux-generic/odp_barrier.c diff --git a/platform/linux-generic/source/odp_buffer.c b/platform/linux-generic/odp_buffer.c similarity index 100% rename from platform/linux-generic/source/odp_buffer.c rename to platform/linux-generic/odp_buffer.c diff --git a/platform/linux-generic/source/odp_buffer_pool.c b/platform/linux-generic/odp_buffer_pool.c similarity index 100% rename from platform/linux-generic/source/odp_buffer_pool.c rename to platform/linux-generic/odp_buffer_pool.c diff --git a/platform/linux-generic/source/odp_coremask.c b/platform/linux-generic/odp_coremask.c similarity index 100% rename from platform/linux-generic/source/odp_coremask.c rename to platform/linux-generic/odp_coremask.c diff --git a/platform/linux-generic/source/odp_init.c b/platform/linux-generic/odp_init.c similarity index 100% rename from platform/linux-generic/source/odp_init.c rename to platform/linux-generic/odp_init.c diff --git a/platform/linux-generic/source/odp_linux.c b/platform/linux-generic/odp_linux.c similarity index 100% rename from platform/linux-generic/source/odp_linux.c rename to platform/linux-generic/odp_linux.c diff --git a/platform/linux-generic/source/odp_packet.c b/platform/linux-generic/odp_packet.c similarity index 100% rename from platform/linux-generic/source/odp_packet.c rename to platform/linux-generic/odp_packet.c diff --git a/platform/linux-generic/source/odp_packet_flags.c b/platform/linux-generic/odp_packet_flags.c similarity index 100% rename from platform/linux-generic/source/odp_packet_flags.c rename to platform/linux-generic/odp_packet_flags.c diff --git a/platform/linux-generic/source/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c similarity index 100% rename from platform/linux-generic/source/odp_packet_io.c rename to platform/linux-generic/odp_packet_io.c diff --git a/platform/linux-generic/source/odp_packet_netmap.c b/platform/linux-generic/odp_packet_netmap.c similarity index 100% rename from platform/linux-generic/source/odp_packet_netmap.c rename to platform/linux-generic/odp_packet_netmap.c diff --git a/platform/linux-generic/source/odp_packet_socket.c b/platform/linux-generic/odp_packet_socket.c similarity index 100% rename from platform/linux-generic/source/odp_packet_socket.c rename to platform/linux-generic/odp_packet_socket.c diff --git a/platform/linux-generic/source/odp_queue.c b/platform/linux-generic/odp_queue.c similarity index 100% rename from platform/linux-generic/source/odp_queue.c rename to platform/linux-generic/odp_queue.c diff --git a/platform/linux-generic/source/odp_ring.c b/platform/linux-generic/odp_ring.c similarity index 100% rename from platform/linux-generic/source/odp_ring.c rename to platform/linux-generic/odp_ring.c diff --git a/platform/linux-generic/source/odp_rwlock.c b/platform/linux-generic/odp_rwlock.c similarity index 100% rename from platform/linux-generic/source/odp_rwlock.c rename to platform/linux-generic/odp_rwlock.c diff --git a/platform/linux-generic/source/odp_schedule.c b/platform/linux-generic/odp_schedule.c similarity index 100% rename from platform/linux-generic/source/odp_schedule.c rename to platform/linux-generic/odp_schedule.c diff --git a/platform/linux-generic/source/odp_shared_memory.c b/platform/linux-generic/odp_shared_memory.c similarity index 100% rename from platform/linux-generic/source/odp_shared_memory.c rename to platform/linux-generic/odp_shared_memory.c diff --git a/platform/linux-generic/source/odp_spinlock.c b/platform/linux-generic/odp_spinlock.c similarity index 100% rename from platform/linux-generic/source/odp_spinlock.c rename to platform/linux-generic/odp_spinlock.c diff --git a/platform/linux-generic/source/odp_system_info.c b/platform/linux-generic/odp_system_info.c similarity index 100% rename from platform/linux-generic/source/odp_system_info.c rename to platform/linux-generic/odp_system_info.c diff --git a/platform/linux-generic/source/odp_thread.c b/platform/linux-generic/odp_thread.c similarity index 100% rename from platform/linux-generic/source/odp_thread.c rename to platform/linux-generic/odp_thread.c diff --git a/platform/linux-generic/source/odp_ticketlock.c b/platform/linux-generic/odp_ticketlock.c similarity index 100% rename from platform/linux-generic/source/odp_ticketlock.c rename to platform/linux-generic/odp_ticketlock.c diff --git a/platform/linux-generic/source/odp_time.c b/platform/linux-generic/odp_time.c similarity index 100% rename from platform/linux-generic/source/odp_time.c rename to platform/linux-generic/odp_time.c diff --git a/platform/linux-generic/source/odp_timer.c b/platform/linux-generic/odp_timer.c similarity index 100% rename from platform/linux-generic/source/odp_timer.c rename to platform/linux-generic/odp_timer.c diff --git a/platform/linux-keystone2/Makefile b/platform/linux-keystone2/Makefile deleted file mode 100644 index a0e2922..0000000 --- a/platform/linux-keystone2/Makefile +++ /dev/null @@ -1,118 +0,0 @@ -## -## Copyright (c) 2013, Linaro Limited -## All rights reserved. -## -## SPDX-License-Identifier: BSD-3-Clause -## - -.DEFAULT_GOAL := libs - -ODP_ROOT = ../.. -LIB_DIR = ./lib -DOC_DIR = ./doc - -LINUX_GENERIC_DIR = ../linux-generic - -# Option for shared libraries. -# Decreases performance with static libraries. -ifeq ($(ODP_RELOC),yes) -EXTRA_CFLAGS += -fpic -endif - -MY_PLATFORM = DEVICE_K2K - -PLAT_CFLAGS = -D$(MY_PLATFORM) -PLAT_CFLAGS += -D_GNU_SOURCE -DEM_32_BIT -DTI_EM_CENTRAL_SCHED -PLAT_CFLAGS += -DTI_EM_TRACE_LEVEL=3 -DEM_CHECK_LEVEL=1 -PLAT_CFLAGS += -DTI_EM_LINUX -DTI_EM_GCC -DTI_EM_ARM_A15 -DTI_EM_C6638 -PLAT_CFLAGS += -D_LITTLE_ENDIAN -DTI_EM_USE_MSM -DTI_EM_XGE_LOOPBACK -PLAT_CFLAGS += -DTI_ODP - -EXTRA_CFLAGS += $(PLAT_CFLAGS) -EXTRA_CFLAGS += -I./include -EXTRA_CFLAGS += -I./include/api -EXTRA_CFLAGS += -I$(LINUX_GENERIC_DIR)/include -EXTRA_CFLAGS += -I$(LINUX_GENERIC_DIR)/include/api -EXTRA_CFLAGS += -I$(ODP_ROOT)/include - -include $(ODP_ROOT)/Makefile.inc -STATIC_LIB = ./lib/libodp.a - -# -# Object files -# -OBJS = -OBJS += $(OBJ_DIR)/odp_barrier.o -OBJS += $(OBJ_DIR)/odp_buffer.o -OBJS += $(OBJ_DIR)/odp_buffer_pool.o -OBJS += $(OBJ_DIR)/odp_coremask.o -OBJS += $(OBJ_DIR)/odp_init.o -OBJS += $(OBJ_DIR)/odp_linux.o -OBJS += $(OBJ_DIR)/odp_packet.o -OBJS += $(OBJ_DIR)/odp_packet_flags.o -OBJS += $(OBJ_DIR)/odp_packet_io.o -OBJS += $(OBJ_DIR)/odp_packet_socket.o -OBJS += $(OBJ_DIR)/odp_queue.o -OBJS += $(OBJ_DIR)/odp_schedule.o -OBJS += $(OBJ_DIR)/odp_shared_memory.o -OBJS += $(OBJ_DIR)/odp_spinlock.o -OBJS += $(OBJ_DIR)/odp_system_info.o -OBJS += $(OBJ_DIR)/odp_thread.o -OBJS += $(OBJ_DIR)/odp_ticketlock.o -OBJS += $(OBJ_DIR)/odp_time.o -OBJS += $(OBJ_DIR)/odp_timer.o -OBJS += $(OBJ_DIR)/odp_ring.o -OBJS += $(OBJ_DIR)/odp_rwlock.o - -DEPS = $(OBJS:.o=.d) - -.PHONY: all -all: libs - --include $(DEPS) - -$(LIB_DIR): - $(Q)$(MKDIR) $(LIB_DIR) - -# -# Compile rules -# -vpath %.c source:$(LINUX_GENERIC_DIR)/source - -$(OBJ_DIR)/%.o: %.c - $(QUIET_CC)$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< - -# -# Lib rule -# -$(OBJ_DIR)/libodp.o: $(OBJS) - $(QUIET_LD)$(LD) -r -o $@ $(OBJS) $(LDFLAGS) -lopenem_rh -lopenem_osal - -$(STATIC_LIB): $(OBJ_DIR)/libodp.o - $(QUIET_AR)$(AR) -cr $@ $(OBJ_DIR)/libodp.o - -clean: - $(Q)$(RMDIR) $(OBJ_DIR) - $(Q)$(RMDIR) $(LIB_DIR) - -.PHONY: docs -docs: - $(ECHO) "Documenation is not yet available" - @false - -.PHONY: libs -libs: $(OBJ_DIR) $(LIB_DIR) $(STATIC_LIB) - -.PHONY: lib_install -lib_install: libs - $(Q)install -d $(DESTDIR)/lib - $(Q)install -m 0644 ${STATIC_LIB} $(DESTDIR)/lib/ - -.PHONY: headers_install -headers_install: libs - $(ECHO) Installing headers to $(DESTDIR)/include - $(Q)$(SYNC) $(ODP_ROOT)/include $(DESTDIR) - $(Q)$(SYNC) $(LINUX_GENERIC_DIR)/include/api/* $(DESTDIR)/include/ - $(Q)-$(SYNC) include/api/* $(DESTDIR)/include/ - -install: lib_install headers_install diff --git a/platform/linux-keystone2/Makefile.am b/platform/linux-keystone2/Makefile.am new file mode 100644 index 0000000..e9713b2 --- /dev/null +++ b/platform/linux-keystone2/Makefile.am @@ -0,0 +1,95 @@ +LIB = $(top_builddir)/lib + +dist_pkgdata_DATA = $(LIB)/libodp.la + +pkgconfigdir = pkgconfig +nodist_pkgconfig_DATA = $(top_builddir)/pkgconfig/libodp.pc + +.PHONY: pkgconfig/libodp.pc + +KS2_PLATFORM = DEVICE_K2K + +PLAT_CFLAGS = -D$(KS2_PLATFORM) +PLAT_CFLAGS += -D_GNU_SOURCE -DEM_32_BIT -DTI_EM_CENTRAL_SCHED +PLAT_CFLAGS += -DTI_EM_TRACE_LEVEL=3 -DEM_CHECK_LEVEL=1 +PLAT_CFLAGS += -DTI_EM_LINUX -DTI_EM_GCC -DTI_EM_ARM_A15 -DTI_EM_C6638 +PLAT_CFLAGS += -D_LITTLE_ENDIAN -DTI_EM_USE_MSM -DTI_EM_XGE_LOOPBACK +PLAT_CFLAGS += -DTI_ODP + +AM_CFLAGS += $(PLAT_CFLAGS) +AM_CFLAGS += -I$(srcdir)/include +AM_CFLAGS += -I$(srcdir)/include/api +AM_CFLAGS += -I$(top_srcdir)/platform/linux-generic/include +AM_CFLAGS += -I$(top_srcdir)/platform/linux-generic/include/api +AM_CFLAGS += -I$(top_srcdir)/include +VPATH = $(srcdir) $(builddir) +#if ODP_PLATFORM_KEYSTONE2 +lib_LTLIBRARIES = $(LIB)/libodp.la +KS2_LIBS="-lopenem_rh -lopenem_osal" +LIBS += $(KS2_LIBS) + +include_HEADERS = \ + $(top_srcdir)/platform/linux-keystone2/include/api/odp_buffer.h \ + $(top_srcdir)/include/odp.h \ + $(top_srcdir)/include/odp_align.h \ + $(top_srcdir)/include/odp_atomic.h \ + $(top_srcdir)/include/odp_barrier.h \ + $(top_srcdir)/include/odp_buffer_pool.h \ + $(top_srcdir)/include/odp_byteorder.h \ + $(top_srcdir)/include/odp_compiler.h \ + $(top_srcdir)/include/odp_config.h \ + $(top_srcdir)/include/odp_coremask.h \ + $(top_srcdir)/include/odp_debug.h \ + $(top_srcdir)/include/odp_hints.h \ + $(top_srcdir)/include/odp_init.h \ + $(top_srcdir)/include/odp_packet_flags.h \ + $(top_srcdir)/include/odp_packet.h \ + $(top_srcdir)/include/odp_packet_io.h \ + $(top_srcdir)/include/odp_queue.h \ + $(top_srcdir)/include/odp_rwlock.h \ + $(top_srcdir)/include/odp_schedule.h \ + $(top_srcdir)/include/odp_shared_memory.h \ + $(top_srcdir)/include/odp_spinlock.h \ + $(top_srcdir)/include/odp_std_types.h \ + $(top_srcdir)/include/odp_sync.h \ + $(top_srcdir)/include/odp_system_info.h \ + $(top_srcdir)/include/odp_thread.h \ + $(top_srcdir)/include/odp_ticketlock.h \ + $(top_srcdir)/include/odp_time.h \ + $(top_srcdir)/include/odp_timer.h \ + $(top_srcdir)/include/odp_version.h + +subdirheadersdir = $(includedir)/helper +subdirheaders_HEADERS = \ + $(top_srcdir)/include/helper/odp_chksum.h \ + $(top_srcdir)/include/helper/odp_eth.h \ + $(top_srcdir)/include/helper/odp_ip.h \ + $(top_srcdir)/include/helper/odp_linux.h \ + $(top_srcdir)/include/helper/odp_packet_helper.h \ + $(top_srcdir)/include/helper/odp_ring.h \ + $(top_srcdir)/include/helper/odp_udp.h + +__LIB__libodp_la_SOURCES = \ + ../linux-generic/odp_barrier.c \ + odp_buffer.c \ + odp_buffer_pool.c \ + ../linux-generic/odp_coremask.c \ + odp_init.c \ + ../linux-generic/odp_linux.c \ + odp_packet.c \ + ../linux-generic/odp_packet_flags.c \ + odp_packet_io.c \ + ../linux-generic/odp_packet_socket.c \ + odp_queue.c \ + ../linux-generic/odp_ring.c \ + ../linux-generic/odp_rwlock.c \ + ../linux-generic/odp_schedule.c \ + odp_shared_memory.c \ + ../linux-generic/odp_spinlock.c \ + ../linux-generic/odp_system_info.c \ + ../linux-generic/odp_thread.c \ + ../linux-generic/odp_ticketlock.c \ + ../linux-generic/odp_time.c \ + ../linux-generic/odp_timer.c + +#endif diff --git a/platform/linux-keystone2/README b/platform/linux-keystone2/README index 01b61e2..2f95b98 100644 --- a/platform/linux-keystone2/README +++ b/platform/linux-keystone2/README @@ -32,10 +32,6 @@ Check README file in OpenEM root directory for build instructions. 3. Keystone2 ODP build -Keystone implementation uses partial linking (ld -r) to link external -static libraries into libodp. During partial linking ld searches for libraries -only in path specified explicitly (via -L), but not in standard paths. I'm not -sure whether it is gcc bug or feature, but until fix is found a path should be -passed explicitly. If helper libraries installed into /usr/lib, then: - -make PLATFORM=linux-keystone2 LD='ld -L/usr/lib' +./bootstrap +./configure --host=arm-linux-gnueabihf --with-platform=linux-keystone2 LDFLAGS=-L/usr/lib CFLAGS=-I/usr/include +make diff --git a/platform/linux-keystone2/source/odp_buffer.c b/platform/linux-keystone2/odp_buffer.c similarity index 100% rename from platform/linux-keystone2/source/odp_buffer.c rename to platform/linux-keystone2/odp_buffer.c diff --git a/platform/linux-keystone2/source/odp_buffer_pool.c b/platform/linux-keystone2/odp_buffer_pool.c similarity index 100% rename from platform/linux-keystone2/source/odp_buffer_pool.c rename to platform/linux-keystone2/odp_buffer_pool.c diff --git a/platform/linux-keystone2/source/odp_init.c b/platform/linux-keystone2/odp_init.c similarity index 100% rename from platform/linux-keystone2/source/odp_init.c rename to platform/linux-keystone2/odp_init.c diff --git a/platform/linux-keystone2/source/odp_packet.c b/platform/linux-keystone2/odp_packet.c similarity index 100% rename from platform/linux-keystone2/source/odp_packet.c rename to platform/linux-keystone2/odp_packet.c diff --git a/platform/linux-keystone2/source/odp_packet_io.c b/platform/linux-keystone2/odp_packet_io.c similarity index 100% rename from platform/linux-keystone2/source/odp_packet_io.c rename to platform/linux-keystone2/odp_packet_io.c diff --git a/platform/linux-keystone2/source/odp_queue.c b/platform/linux-keystone2/odp_queue.c similarity index 100% rename from platform/linux-keystone2/source/odp_queue.c rename to platform/linux-keystone2/odp_queue.c diff --git a/platform/linux-keystone2/source/odp_shared_memory.c b/platform/linux-keystone2/odp_shared_memory.c similarity index 100% rename from platform/linux-keystone2/source/odp_shared_memory.c rename to platform/linux-keystone2/odp_shared_memory.c diff --git a/test/Makefile b/test/Makefile deleted file mode 100644 index 879d775..0000000 --- a/test/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) 2013, Linaro Limited -# All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause - -TESTS=$(filter %, $(wildcard */)) - -.PHONY: all clean install - -all: $(TESTS) - $(Q)for T in $(TESTS); do $(MAKE) -C $$T || exit 1; done - -clean: - $(Q)for T in $(TESTS); do $(MAKE) -C $$T clean || true; done - -install: - $(Q)for T in $(TESTS); do $(MAKE) -C $$T install ||exit 1; done diff --git a/test/Makefile.am b/test/Makefile.am new file mode 100644 index 0000000..bae381e --- /dev/null +++ b/test/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = api_test example generator l2fwd packet packet_netmap timer diff --git a/test/Makefile.inc b/test/Makefile.inc index 8536402..1884d16 100644 --- a/test/Makefile.inc +++ b/test/Makefile.inc @@ -1,7 +1,5 @@ -# Copyright (c) 2013, Linaro Limited -# All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause +LIB = $(top_builddir)/lib +LDADD = $(LIB)/libodp.la +AM_CFLAGS += -I$(top_srcdir)/platform/@with_platform@/include/api -I$(top_srcdir)/platform/linux-generic/include/api -I$(top_srcdir)/include -ODP_LIB = $(DESTDIR)/lib/libodp.a -EXTRA_CFLAGS += -I$(DESTDIR)/include +AM_LDFLAGS += -L$(LIB) diff --git a/test/api_test/Makefile b/test/api_test/Makefile deleted file mode 100644 index 55a81ed..0000000 --- a/test/api_test/Makefile +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright (c) 2013, Linaro Limited -# All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause - -ODP_ROOT = ../.. - -# -# API testing stuffs -# -ODP_ATOMIC = odp_atomic -ODP_SHM = odp_shm -ODP_RING = odp_ring -ODP_TIM = odp_timer - -include $(ODP_ROOT)/Makefile.inc -include ../Makefile.inc - -.PHONY: default -default: all - -EXTRA_CFLAGS += -I. - -ATOMIC_OBJS = -ATOMIC_OBJS += $(OBJ_DIR)/odp_common.o -ATOMIC_OBJS += $(OBJ_DIR)/odp_atomic_test.o - -SHM_OBJS = -SHM_OBJS += $(OBJ_DIR)/odp_common.o -SHM_OBJS += $(OBJ_DIR)/odp_shm_test.o - -RING_OBJS = -RING_OBJS += $(OBJ_DIR)/odp_common.o -RING_OBJS += $(OBJ_DIR)/odp_ring_test.o - -TIM_OBJS = -TIM_OBJS += $(OBJ_DIR)/odp_common.o -TIM_OBJS += $(OBJ_DIR)/odp_timer_ping.o - -DEPS = $(ATOMIC_OBJS:.o=.d) $(SHM_OBJS:.o=.d) $(RING_OBJS:.o=.d) $(TIM_OBJS:.o=.d) - -.PHONY: all -all: $(OBJ_DIR) $(ODP_ATOMIC) $(ODP_SHM) $(ODP_RING) $(ODP_TIM) -atomic: $(OBJ_DIR) $(ODP_ATOMIC) -shm: $(OBJ_DIR) $(ODP_SHM) -ring: $(OBJ_DIR) $(ODP_RING) -timer: $(OBJ_DIR) $(ODP_TIM) - --include $(DEPS) - -# -# Compile rules -# -$(OBJ_DIR)/%.o: %.c - $(QUIET_CC)$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< - -# -# Link rule -# -$(ODP_ATOMIC): $(ODP_LIB) $(ATOMIC_OBJS) - $(QUIET_LD)$(CC) $(LDFLAGS) $(ATOMIC_OBJS) $(ODP_LIB) $(STD_LIBS) -o $@ - -$(ODP_SHM): $(ODP_LIB) $(SHM_OBJS) - $(QUIET_LD)$(CC) $(LDFLAGS) $(SHM_OBJS) $(ODP_LIB) $(STD_LIBS) -o $@ - -$(ODP_RING): $(ODP_LIB) $(RING_OBJS) - $(QUIET_LD)$(CC) $(LDFLAGS) $(RING_OBJS) $(ODP_LIB) $(STD_LIBS) -o $@ - -$(ODP_TIM): $(ODP_LIB) $(TIM_OBJS) - $(QUIET_LD)$(CC) $(LDFLAGS) $(TIM_OBJS) $(ODP_LIB) $(STD_LIBS) -o $@ - -.PHONY: clean -clean: - $(Q)$(RMDIR) $(OBJ_DIR) - $(Q)$(RM) $(ODP_ATOMIC) - $(Q)$(RM) $(ODP_SHM) - $(Q)$(RM) $(ODP_RING) - $(Q)$(RM) $(ODP_TIM) - $(MAKE) -C $(ODP_DIR) clean - -.PHONY: install -install: - install -d $(DESTDIR)/share/odp - install -m 0755 $(ODP_ATOMIC) $(DESTDIR)/share/odp/ - install -m 0755 $(ODP_SHM) $(DESTDIR)/share/odp/ - install -m 0755 $(ODP_RING) $(DESTDIR)/share/odp/ - install -m 0755 $(ODP_TIM) $(DESTDIR)/share/odp/ diff --git a/test/api_test/Makefile.am b/test/api_test/Makefile.am new file mode 100644 index 0000000..e58a278 --- /dev/null +++ b/test/api_test/Makefile.am @@ -0,0 +1,8 @@ +include $(top_srcdir)/test/Makefile.inc + +bin_PROGRAMS = odp_atomic odp_shm odp_ring odp_timer + +dist_odp_atomic_SOURCES = odp_atomic_test.c odp_common.c +dist_odp_shm_SOURCES = odp_shm_test.c odp_common.c +dist_odp_ring_SOURCES = odp_ring_test.c odp_common.c +dist_odp_timer_SOURCES = odp_timer_ping.c odp_common.c diff --git a/test/example/Makefile b/test/example/Makefile deleted file mode 100644 index 266de6f..0000000 --- a/test/example/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -# Copyright (c) 2013, Linaro Limited -# All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause - -ODP_ROOT = ../.. -ODP_APP = odp_example - -include $(ODP_ROOT)/Makefile.inc -include ../Makefile.inc - -.PHONY: default -default: $(OBJ_DIR) $(ODP_APP) - -OBJS = -OBJS += $(OBJ_DIR)/odp_example.o - -DEPS = $(OBJS:.o=.d) - --include $(DEPS) - - -# -# Compile rules -# -$(OBJ_DIR)/%.o: %.c - $(QUIET_CC)$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< - -# -# Link rule -# -$(ODP_APP): $(ODP_LIB) $(OBJS) - $(QUIET_LD)$(CC) $(LDFLAGS) $(OBJS) $(ODP_LIB) $(STD_LIBS) -o $@ - -.PHONY: clean -clean: - $(Q)$(RMDIR) $(OBJ_DIR) - $(Q)$(RM) $(ODP_APP) - $(MAKE) -C $(ODP_DIR) clean - -.PHONY: install -install: - install -d $(DESTDIR)/share/odp - install -m 0755 $(ODP_APP) $(DESTDIR)/share/odp/ diff --git a/test/example/Makefile.am b/test/example/Makefile.am new file mode 100644 index 0000000..aeee0e9 --- /dev/null +++ b/test/example/Makefile.am @@ -0,0 +1,5 @@ +include $(top_srcdir)/test/Makefile.inc + +bin_PROGRAMS = odp_example + +dist_odp_example_SOURCES = odp_example.c diff --git a/test/generator/Makefile b/test/generator/Makefile deleted file mode 100644 index 11ab30f..0000000 --- a/test/generator/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -# Copyright (c) 2014, Linaro Limited -# All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause - -ODP_ROOT = ../.. -ODP_APP = odp_generator - -include $(ODP_ROOT)/Makefile.inc -include ../Makefile.inc - -.PHONY: default -default: $(OBJ_DIR) $(ODP_APP) - -OBJS = -OBJS += $(OBJ_DIR)/odp_generator.o - -DEPS = $(OBJS:.o=.d) - --include $(DEPS) - - -# -# Compile rules -# -$(OBJ_DIR)/%.o: %.c - $(QUIET_CC)$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< - -# -# Link rule -# -$(ODP_APP): $(ODP_LIB) $(OBJS) - $(QUIET_LD)$(CC) $(LDFLAGS) $(OBJS) $(ODP_LIB) $(STD_LIBS) -o $@ - -.PHONY: clean -clean: - $(Q)$(RMDIR) $(OBJ_DIR) - $(Q)$(RM) $(ODP_APP) - $(MAKE) -C $(ODP_DIR) clean - -.PHONY: install -install: - install -d $(DESTDIR)/share/odp - install -m 0755 $(ODP_APP) $(DESTDIR)/share/odp/ diff --git a/test/generator/Makefile.am b/test/generator/Makefile.am new file mode 100644 index 0000000..bd6f200 --- /dev/null +++ b/test/generator/Makefile.am @@ -0,0 +1,5 @@ +include $(top_srcdir)/test/Makefile.inc + +bin_PROGRAMS = odp_generator + +dist_odp_generator_SOURCES = odp_generator.c diff --git a/test/l2fwd/Makefile b/test/l2fwd/Makefile deleted file mode 100644 index 9b956e9..0000000 --- a/test/l2fwd/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (c) 2014, Linaro Limited -# All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause - -ODP_ROOT = ../.. -ODP_APP = odp_l2fwd - -include $(ODP_ROOT)/Makefile.inc -include ../Makefile.inc - -OBJS = -OBJS += $(OBJ_DIR)/l2fwd.o - -DEPS = $(OBJS:.o=.d) - -.PHONY: default -default: $(OBJ_DIR) $(ODP_APP) - --include $(DEPS) - -# -# Compile rules -# -$(OBJ_DIR)/%.o: %.c - $(QUIET_CC)$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< - -# -# Link rule -# -$(ODP_APP): $(ODP_LIB) $(OBJS) - $(QUIET_LD)$(CC) $(LDFLAGS) $(OBJS) $(ODP_LIB) $(STD_LIBS) -o $@ - -.PHONY: clean -clean: - $(Q)$(RMDIR) $(OBJ_DIR) - $(Q)$(RM) $(ODP_APP) - $(MAKE) -C $(ODP_DIR) clean - -.PHONY: install -install: - install -d $(DESTDIR)/share/odp - install -m 0755 $(ODP_APP) $(DESTDIR)/share/odp/ diff --git a/test/l2fwd/Makefile.am b/test/l2fwd/Makefile.am new file mode 100644 index 0000000..a29bd5a --- /dev/null +++ b/test/l2fwd/Makefile.am @@ -0,0 +1,5 @@ +include $(top_srcdir)/test/Makefile.inc + +bin_PROGRAMS = odp_l2fwd + +dist_odp_l2fwd_SOURCES = l2fwd.c diff --git a/test/packet/Makefile b/test/packet/Makefile deleted file mode 100644 index d3c3e02..0000000 --- a/test/packet/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (c) 2013, Linaro Limited -# All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause - -ODP_ROOT = ../.. -ODP_APP = odp_packet - -include $(ODP_ROOT)/Makefile.inc -include ../Makefile.inc - -OBJS = -OBJS += $(OBJ_DIR)/odp_example_pktio.o - -DEPS = $(OBJS:.o=.d) - -.PHONY: default -default: $(OBJ_DIR) $(ODP_APP) - --include $(DEPS) - -# -# Compile rules -# -$(OBJ_DIR)/%.o: %.c - $(QUIET_CC)$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< - -# -# Link rule -# -$(ODP_APP): $(ODP_LIB) $(OBJS) - $(QUIET_LD)$(CC) $(LDFLAGS) $(OBJS) $(ODP_LIB) $(STD_LIBS) -o $@ - -.PHONY: clean -clean: - $(Q)$(RMDIR) $(OBJ_DIR) - $(Q)$(RM) $(ODP_APP) - $(MAKE) -C $(ODP_DIR) clean - -.PHONY: install -install: - install -d $(DESTDIR)/share/odp - install -m 0755 $(ODP_APP) $(DESTDIR)/share/odp/ diff --git a/test/packet/Makefile.am b/test/packet/Makefile.am new file mode 100644 index 0000000..3cbdaac --- /dev/null +++ b/test/packet/Makefile.am @@ -0,0 +1,5 @@ +include $(top_srcdir)/test/Makefile.inc + +bin_PROGRAMS = odp_pktio + +dist_odp_pktio_SOURCES = odp_example_pktio.c diff --git a/test/packet_netmap/Makefile b/test/packet_netmap/Makefile deleted file mode 100644 index 1e5cfa5..0000000 --- a/test/packet_netmap/Makefile +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright (c) 2013, Linaro Limited -# All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause - -ODP_ROOT = ../.. -ODP_APP = odp_packet_netmap - -EXTRA_CFLAGS += -DODP_HAVE_NETMAP - -include $(ODP_ROOT)/Makefile.inc -include ../Makefile.inc - -OBJS = -OBJS += $(OBJ_DIR)/odp_example_pktio_netmap.o - -DEPS = $(OBJS:.o=.d) - -.PHONY: default -default: $(OBJ_DIR) $(ODP_APP) - --include $(DEPS) - -# -# Compile rules -# -$(OBJ_DIR)/%.o: %.c - $(QUIET_CC)$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< - -# -# Link rule -# -$(ODP_APP): $(ODP_LIB) $(OBJS) - $(QUIET_LD)$(CC) $(LDFLAGS) $(OBJS) $(ODP_LIB) $(STD_LIBS) -o $@ - -.PHONY: clean -clean: - $(Q)$(RMDIR) $(OBJ_DIR) - $(Q)$(RM) $(ODP_APP) - $(MAKE) -C $(ODP_DIR) clean - -.PHONY: install -install: - install -d $(DESTDIR)/share/odp - install -m 0755 $(ODP_APP) $(DESTDIR)/share/odp/ diff --git a/test/packet_netmap/Makefile.am b/test/packet_netmap/Makefile.am new file mode 100644 index 0000000..fd54eb3 --- /dev/null +++ b/test/packet_netmap/Makefile.am @@ -0,0 +1,7 @@ +include $(top_srcdir)/test/Makefile.inc + +if ODP_NETMAP_ENABLED +bin_PROGRAMS = odp_pktio_netmap +endif + +dist_odp_pktio_netmap_SOURCES = odp_example_pktio_netmap.c diff --git a/test/timer/Makefile b/test/timer/Makefile deleted file mode 100644 index effaf54..0000000 --- a/test/timer/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -# Copyright (c) 2013, Linaro Limited -# All rights reserved. -# -# SPDX-License-Identifier: BSD-3-Clause - -ODP_ROOT = ../.. -ODP_APP = odp_timer_test - -include $(ODP_ROOT)/Makefile.inc -include ../Makefile.inc - -.PHONY: default -default: $(OBJ_DIR) $(ODP_APP) - -OBJS = -OBJS += $(OBJ_DIR)/odp_timer_test.o - -DEPS = $(OBJS:.o=.d) - --include $(DEPS) - - -# -# Compile rules -# -$(OBJ_DIR)/%.o: %.c - $(QUIET_CC)$(CC) -c -MD $(EXTRA_CFLAGS) $(CFLAGS) -o $@ $< - -# -# Link rule -# -$(ODP_APP): $(ODP_LIB) $(OBJS) - $(QUIET_LD)$(CC) $(LDFLAGS) $(OBJS) $(ODP_LIB) $(STD_LIBS) -o $@ - -.PHONY: clean -clean: - $(Q)$(RMDIR) $(OBJ_DIR) - $(Q)$(RM) $(ODP_APP) - $(MAKE) -C $(ODP_DIR) clean - -.PHONY: install -install: - install -d $(DESTDIR)/share/odp - install -m 0755 $(ODP_APP) $(DESTDIR)/share/odp/ diff --git a/test/timer/Makefile.am b/test/timer/Makefile.am new file mode 100644 index 0000000..096ff49 --- /dev/null +++ b/test/timer/Makefile.am @@ -0,0 +1,5 @@ +include $(top_srcdir)/test/Makefile.inc + +bin_PROGRAMS = odp_timer_test + +dist_odp_timer_test_SOURCES = odp_timer_test.c