From 8159d9b5405c362d5503ddc22e974858eef04645 Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Thu, 7 Mar 2019 11:15:23 +0100 Subject: [PATCH] treewide: rearrange source directories The src directory containing lib and tools is not necessary and will actually cause problems if we tried to add a new component to src/ which would depend on libraries from the bindings directory because it (bindings) already depends on src/lib. Simplify the directory structure. Move lib and tools to the root source directory and update all relevant files. That way we can specify the exact build order of components from the top source Makefile.am. Signed-off-by: Bartosz Golaszewski --- Makefile.am | 16 ++++++++-------- bindings/cxx/Makefile.am | 2 +- bindings/python/Makefile.am | 2 +- configure.ac | 7 +++---- {src/lib => lib}/Makefile.am | 0 {src/lib => lib}/core.c | 0 {src/lib => lib}/ctxless.c | 0 {src/lib => lib}/helpers.c | 0 {src/lib => lib}/iter.c | 0 {src/lib => lib}/misc.c | 0 man/Makefile.am | 4 ++-- src/Makefile.am | 15 --------------- tests/Makefile.am | 2 +- tests/gpiod-test.c | 2 +- {src/tools => tools}/Makefile.am | 2 +- {src/tools => tools}/gpiodetect.c | 0 {src/tools => tools}/gpiofind.c | 0 {src/tools => tools}/gpioget.c | 0 {src/tools => tools}/gpioinfo.c | 0 {src/tools => tools}/gpiomon.c | 0 {src/tools => tools}/gpioset.c | 0 {src/tools => tools}/tools-common.c | 0 {src/tools => tools}/tools-common.h | 0 23 files changed, 18 insertions(+), 34 deletions(-) rename {src/lib => lib}/Makefile.am (100%) rename {src/lib => lib}/core.c (100%) rename {src/lib => lib}/ctxless.c (100%) rename {src/lib => lib}/helpers.c (100%) rename {src/lib => lib}/iter.c (100%) rename {src/lib => lib}/misc.c (100%) delete mode 100644 src/Makefile.am rename {src/tools => tools}/Makefile.am (90%) rename {src/tools => tools}/gpiodetect.c (100%) rename {src/tools => tools}/gpiofind.c (100%) rename {src/tools => tools}/gpioget.c (100%) rename {src/tools => tools}/gpioinfo.c (100%) rename {src/tools => tools}/gpiomon.c (100%) rename {src/tools => tools}/gpioset.c (100%) rename {src/tools => tools}/tools-common.c (100%) rename {src/tools => tools}/tools-common.h (100%) diff --git a/Makefile.am b/Makefile.am index 03f844b..adf0d9c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -8,20 +8,17 @@ ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = foreign -SUBDIRS = include src bindings +SUBDIRS = include lib bindings -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = libgpiod.pc - -if WITH_TESTS +if WITH_TOOLS -SUBDIRS += tests +SUBDIRS += tools man endif -if WITH_TOOLS +if WITH_TESTS -SUBDIRS += man +SUBDIRS += tests endif @@ -39,3 +36,6 @@ clean-local: EXTRA_DIST = Doxyfile endif + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = libgpiod.pc diff --git a/bindings/cxx/Makefile.am b/bindings/cxx/Makefile.am index 16a2a2c..d901836 100644 --- a/bindings/cxx/Makefile.am +++ b/bindings/cxx/Makefile.am @@ -11,7 +11,7 @@ libgpiodcxx_la_SOURCES = chip.cpp iter.cpp line.cpp line_bulk.cpp libgpiodcxx_la_CPPFLAGS = -Wall -Wextra -g -std=gnu++11 libgpiodcxx_la_CPPFLAGS += -fvisibility=hidden -I$(top_srcdir)/include/ libgpiodcxx_la_LDFLAGS = -version-info $(subst .,:,$(ABI_CXX_VERSION)) -libgpiodcxx_la_LDFLAGS += -lgpiod -L$(top_builddir)/src/lib +libgpiodcxx_la_LDFLAGS += -lgpiod -L$(top_builddir)/lib include_HEADERS = gpiod.hpp diff --git a/bindings/python/Makefile.am b/bindings/python/Makefile.am index 506b733..2c00c6e 100644 --- a/bindings/python/Makefile.am +++ b/bindings/python/Makefile.am @@ -15,4 +15,4 @@ gpiod_la_SOURCES = gpiodmodule.c gpiod_la_CFLAGS = -I$(top_srcdir)/include/ gpiod_la_CFLAGS += -Wall -Wextra -g $(PYTHON_CPPFLAGS) gpiod_la_LDFLAGS = -module -avoid-version -gpiod_la_LIBADD = $(top_builddir)/src/lib/libgpiod.la $(PYTHON_LIBS) +gpiod_la_LIBADD = $(top_builddir)/lib/libgpiod.la $(PYTHON_LIBS) diff --git a/configure.ac b/configure.ac index 1253cb1..4adff7b 100644 --- a/configure.ac +++ b/configure.ac @@ -47,7 +47,7 @@ AC_ARG_VAR([PYTHON_CPPFLAGS], AC_ARG_VAR([PYTHON_LIBS], [Libraries to link into Python extensions [default: auto-detect]]) -AC_CONFIG_SRCDIR([src]) +AC_CONFIG_SRCDIR([lib]) AC_CONFIG_HEADER([config.h]) AC_DEFINE([_GNU_SOURCE], [], [We want GNU extensions]) @@ -177,9 +177,8 @@ fi AC_CONFIG_FILES([libgpiod.pc Makefile include/Makefile - src/Makefile - src/lib/Makefile - src/tools/Makefile + lib/Makefile + tools/Makefile tests/Makefile bindings/cxx/libgpiodcxx.pc bindings/Makefile diff --git a/src/lib/Makefile.am b/lib/Makefile.am similarity index 100% rename from src/lib/Makefile.am rename to lib/Makefile.am diff --git a/src/lib/core.c b/lib/core.c similarity index 100% rename from src/lib/core.c rename to lib/core.c diff --git a/src/lib/ctxless.c b/lib/ctxless.c similarity index 100% rename from src/lib/ctxless.c rename to lib/ctxless.c diff --git a/src/lib/helpers.c b/lib/helpers.c similarity index 100% rename from src/lib/helpers.c rename to lib/helpers.c diff --git a/src/lib/iter.c b/lib/iter.c similarity index 100% rename from src/lib/iter.c rename to lib/iter.c diff --git a/src/lib/misc.c b/lib/misc.c similarity index 100% rename from src/lib/misc.c rename to lib/misc.c diff --git a/man/Makefile.am b/man/Makefile.am index d8f4e66..8877858 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -10,8 +10,8 @@ if WITH_MANPAGES dist_man1_MANS = gpiodetect.man gpioinfo.man gpioget.man gpioset.man gpiofind.man gpiomon.man -%.man: $(top_srcdir)/src/tools/$(*F) - help2man $(top_srcdir)/src/tools/$(*F) --include=./template --output=./$@ --no-info +%.man: $(top_srcdir)/tools/$(*F) + help2man $(top_srcdir)/tools/$(*F) --include=./template --output=./$@ --no-info clean-local: rm -f $(dist_man1_MANS) diff --git a/src/Makefile.am b/src/Makefile.am deleted file mode 100644 index e8c955d..0000000 --- a/src/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later - -# -# This file is part of libgpiod. -# -# Copyright (C) 2017-2018 Bartosz Golaszewski -# - -SUBDIRS = lib - -if WITH_TOOLS - -SUBDIRS += tools - -endif diff --git a/tests/Makefile.am b/tests/Makefile.am index c887289..a6593b9 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -9,7 +9,7 @@ AM_CFLAGS = -I$(top_srcdir)/include/ -include $(top_builddir)/config.h AM_CFLAGS += -Wall -Wextra -g $(KMOD_CFLAGS) $(UDEV_CFLAGS) AM_LDFLAGS = -pthread -LDADD = $(top_builddir)/src/lib/libgpiod.la $(KMOD_LIBS) $(UDEV_LIBS) +LDADD = $(top_builddir)/lib/libgpiod.la $(KMOD_LIBS) $(UDEV_LIBS) check_PROGRAMS = gpiod-test diff --git a/tests/gpiod-test.c b/tests/gpiod-test.c index c673143..4c51f4a 100644 --- a/tests/gpiod-test.c +++ b/tests/gpiod-test.c @@ -453,7 +453,7 @@ static char *gpiotool_proc_get_path(const char *tool) progpath = xstrdup(program_invocation_name); progdir = dirname(progpath); - path = xappend(NULL, "%s/../../src/tools/%s", progdir, tool); + path = xappend(NULL, "%s/../../tools/%s", progdir, tool); free(progpath); return path; diff --git a/src/tools/Makefile.am b/tools/Makefile.am similarity index 90% rename from src/tools/Makefile.am rename to tools/Makefile.am index f72a8c1..4198dba 100644 --- a/src/tools/Makefile.am +++ b/tools/Makefile.am @@ -12,7 +12,7 @@ AM_CFLAGS += -Wall -Wextra -g noinst_LTLIBRARIES = libtools-common.la libtools_common_la_SOURCES = tools-common.c tools-common.h -LDADD = libtools-common.la $(top_builddir)/src/lib/libgpiod.la +LDADD = libtools-common.la $(top_builddir)/lib/libgpiod.la bin_PROGRAMS = gpiodetect gpioinfo gpioget gpioset gpiomon gpiofind diff --git a/src/tools/gpiodetect.c b/tools/gpiodetect.c similarity index 100% rename from src/tools/gpiodetect.c rename to tools/gpiodetect.c diff --git a/src/tools/gpiofind.c b/tools/gpiofind.c similarity index 100% rename from src/tools/gpiofind.c rename to tools/gpiofind.c diff --git a/src/tools/gpioget.c b/tools/gpioget.c similarity index 100% rename from src/tools/gpioget.c rename to tools/gpioget.c diff --git a/src/tools/gpioinfo.c b/tools/gpioinfo.c similarity index 100% rename from src/tools/gpioinfo.c rename to tools/gpioinfo.c diff --git a/src/tools/gpiomon.c b/tools/gpiomon.c similarity index 100% rename from src/tools/gpiomon.c rename to tools/gpiomon.c diff --git a/src/tools/gpioset.c b/tools/gpioset.c similarity index 100% rename from src/tools/gpioset.c rename to tools/gpioset.c diff --git a/src/tools/tools-common.c b/tools/tools-common.c similarity index 100% rename from src/tools/tools-common.c rename to tools/tools-common.c diff --git a/src/tools/tools-common.h b/tools/tools-common.h similarity index 100% rename from src/tools/tools-common.h rename to tools/tools-common.h -- 2.30.2